diff --git a/devsetup.cpp b/devsetup.cpp
index 3dc91b8d5..7bc1f2921 100644
--- a/devsetup.cpp
+++ b/devsetup.cpp
@@ -155,13 +155,13 @@ void DevSetup::initDlg()
ui.dataBitsComboBox->setEnabled(m_catEnabled);
ui.stopBitsComboBox->setEnabled(m_catEnabled);
ui.handshakeComboBox->setEnabled(m_catEnabled);
-
ui.rigComboBox->setCurrentIndex(m_rigIndex);
ui.catPortComboBox->setCurrentIndex(m_catPortIndex);
ui.serialRateComboBox->setCurrentIndex(m_serialRateIndex);
ui.dataBitsComboBox->setCurrentIndex(m_dataBitsIndex);
ui.stopBitsComboBox->setCurrentIndex(m_stopBitsIndex);
ui.handshakeComboBox->setCurrentIndex(m_handshakeIndex);
+ ui.rbData->setChecked(m_pttData);
// PY2SDR -- Per OS serial port names
ui.catPortComboBox->clear();
@@ -436,8 +436,15 @@ void DevSetup::on_testPTTButton_clicked()
if(m_pttMethodIndex==1 or m_pttMethodIndex==2) {
ptt(m_pttPort,m_test,&m_iptt,&m_COMportOpen);
}
+ if(m_pttMethodIndex==0 and !m_bRigOpen) {
+ on_testCATButton_clicked();
+ }
if(m_pttMethodIndex==0 and m_bRigOpen) {
- rig->setPTT((ptt_t)m_iptt, RIG_VFO_CURR);
+ if(m_test==0) rig->setPTT(RIG_PTT_OFF, RIG_VFO_CURR);
+ if(m_test==1) {
+ if(m_pttData) rig->setPTT(RIG_PTT_ON_DATA, RIG_VFO_CURR);
+ if(!m_pttData) rig->setPTT(RIG_PTT_ON_MIC, RIG_VFO_CURR);
+ }
}
}
@@ -445,3 +452,8 @@ void DevSetup::on_cbDTRoff_toggled(bool checked)
{
m_bDTRoff=checked;
}
+
+void DevSetup::on_rbData_toggled(bool checked)
+{
+ m_pttData=checked;
+}
diff --git a/devsetup.h b/devsetup.h
index 65477bc80..35e618bb9 100644
--- a/devsetup.h
+++ b/devsetup.h
@@ -47,6 +47,7 @@ public:
bool m_After73;
bool m_bRigOpen;
bool m_bDTRoff;
+ bool m_pttData;
QString m_myCall;
QString m_myGrid;
@@ -81,10 +82,9 @@ private slots:
void on_rigComboBox_activated(int index);
void on_cbID73_toggled(bool checked);
void on_testCATButton_clicked();
-
void on_testPTTButton_clicked();
-
void on_cbDTRoff_toggled(bool checked);
+ void on_rbData_toggled(bool checked);
private:
Rig* rig;
diff --git a/devsetup.ui b/devsetup.ui
index 29af0e20c..1ec6625ae 100644
--- a/devsetup.ui
+++ b/devsetup.ui
@@ -934,6 +934,39 @@
+ -
+
+
+ Qt::Horizontal
+
+
+ QSizePolicy::Fixed
+
+
+
+ 40
+ 20
+
+
+
+
+ -
+
+
+ Data
+
+
+
+ -
+
+
+ Mic
+
+
+ true
+
+
+
-
diff --git a/mainwindow.cpp b/mainwindow.cpp
index fddf71f3d..a7c78f9ad 100644
--- a/mainwindow.cpp
+++ b/mainwindow.cpp
@@ -401,6 +401,7 @@ void MainWindow::writeSettings()
settings.setValue("Tx2QSO",m_tx2QSO);
settings.setValue("MultipleOK",m_bMultipleOK);
settings.setValue("DTRoff",m_bDTRoff);
+ settings.setValue("pttData",m_pttData);
settings.endGroup();
}
@@ -514,6 +515,7 @@ void MainWindow::readSettings()
m_bMultipleOK=settings.value("MultipleOK",false).toBool();
ui->actionAllow_multiple_instances->setChecked(m_bMultipleOK);
m_bDTRoff=settings.value("DTRoff",false).toBool();
+ m_pttData=settings.value("pttData",false).toBool();
if(!ui->actionLinrad->isChecked() && !ui->actionCuteSDR->isChecked() &&
!ui->actionAFMHot->isChecked() && !ui->actionBlue->isChecked()) {
@@ -622,6 +624,7 @@ void MainWindow::on_actionDeviceSetup_triggered() //Setup Dialog
dlg.m_handshake=m_handshake;
dlg.m_handshakeIndex=m_handshakeIndex;
dlg.m_bDTRoff=m_bDTRoff;
+ dlg.m_pttData=m_pttData;
if(m_bRigOpen) {
rig->close();
@@ -658,6 +661,7 @@ void MainWindow::on_actionDeviceSetup_triggered() //Setup Dialog
m_handshake=dlg.m_handshake;
m_handshakeIndex=dlg.m_handshakeIndex;
m_bDTRoff=dlg.m_bDTRoff;
+ m_pttData=dlg.m_pttData;
#ifdef WIN32
if(dlg.m_pskReporter!=m_pskReporter) {
@@ -1450,7 +1454,8 @@ void MainWindow::guiUpdate()
//Raise PTT
if(m_catEnabled and m_bRigOpen and m_pttMethodIndex==0) {
m_iptt=1;
- rig->setPTT((ptt_t)m_iptt, RIG_VFO_CURR); //CAT control for PTT=1
+ if(m_pttData) rig->setPTT(RIG_PTT_ON_DATA, RIG_VFO_CURR);
+ if(!m_pttData) rig->setPTT(RIG_PTT_ON_MIC, RIG_VFO_CURR);
}
if(m_pttMethodIndex==1 or m_pttMethodIndex==2) { //DTR or RTS
ptt(m_pttPort,1,&m_iptt,&m_COMportOpen);
@@ -1579,7 +1584,7 @@ void MainWindow::guiUpdate()
//Lower PTT
if(m_catEnabled and m_bRigOpen and m_pttMethodIndex==0) {
m_iptt=0;
- rig->setPTT((ptt_t)m_iptt, RIG_VFO_CURR); //CAT control for PTT=1
+ rig->setPTT(RIG_PTT_OFF, RIG_VFO_CURR); //CAT control for PTT=0
}
if(m_pttMethodIndex==1 or m_pttMethodIndex==2) { //DTR-RTS
ptt(m_pttPort,0,&m_iptt,&m_COMportOpen);
@@ -1708,7 +1713,7 @@ void MainWindow::stopTx2()
{
//Lower PTT
if(m_catEnabled and m_bRigOpen and m_pttMethodIndex==0) {
- rig->setPTT((ptt_t)m_iptt, RIG_VFO_CURR); //CAT control for PTT=0
+ rig->setPTT(RIG_PTT_OFF, RIG_VFO_CURR); //CAT control for PTT=0
}
if(m_pttMethodIndex==1 or m_pttMethodIndex==2) {
ptt(m_pttPort,0,&m_iptt,&m_COMportOpen);
diff --git a/mainwindow.h b/mainwindow.h
index aea181521..872f22033 100644
--- a/mainwindow.h
+++ b/mainwindow.h
@@ -256,6 +256,7 @@ private:
bool m_bRigOpen;
bool m_bMultipleOK;
bool m_bDTRoff;
+ bool m_pttData;
char m_decoded[80];