diff --git a/repeaterattributes.h b/repeaterattributes.h
index e436ffa..b0389a2 100644
--- a/repeaterattributes.h
+++ b/repeaterattributes.h
@@ -27,5 +27,6 @@ enum rptAccessTxRx {
};
Q_DECLARE_METATYPE(enum duplexMode)
+Q_DECLARE_METATYPE(enum rptAccessTxRx)
#endif // REPEATERATTRIBUTES_H
diff --git a/repeatersetup.cpp b/repeatersetup.cpp
index 6db969e..db8e56b 100644
--- a/repeatersetup.cpp
+++ b/repeatersetup.cpp
@@ -12,7 +12,6 @@ repeaterSetup::repeaterSetup(QWidget *parent) :
// populate the DCS combo box:
populateDTCS();
-
}
repeaterSetup::~repeaterSetup()
@@ -209,19 +208,30 @@ void repeaterSetup::receiveDuplexMode(duplexMode dm)
}
}
-void repeaterSetup::handleToneMode(rptAccessTxRx tmode)
+void repeaterSetup::handleRptAccessMode(rptAccessTxRx tmode)
{
(void)tmode;
}
-void repeaterSetup::handleCTCSS(quint16 tone)
+void repeaterSetup::handleTone(quint16 tone)
{
- (void)tone;
+ int tindex = ui->rptToneCombo->findData(tone);
+ ui->rptToneCombo->setCurrentIndex(tindex);
}
-void repeaterSetup::handleDCS(quint16 dcode)
+void repeaterSetup::handleTSQL(quint16 tsql)
{
- (void)dcode;
+ //int tindex = ui->rptToneCombo->findData(tone);
+ //ui->rptToneCombo->setCurrentIndex(tindex);
+ (void)tsql;
+}
+
+void repeaterSetup::handleDTCS(quint16 dcode, bool tinv, bool rinv)
+{
+ int dindex = ui->rptDTCSCombo->findData(dcode);
+ ui->rptDTCSCombo->setCurrentIndex(dindex);
+ ui->rptDTCSInvertTx->setChecked(tinv);
+ ui->rptDTCSInvertRx->setChecked(rinv);
}
void repeaterSetup::on_rptSimplexBtn_clicked()
@@ -259,14 +269,23 @@ void repeaterSetup::on_rptReadRigBtn_clicked()
void repeaterSetup::on_rptToneCombo_activated(int index)
{
- quint16 ctcss=0;
- ctcss = ui->rptToneCombo->itemData(index).toUInt();
- emit setCTCSS(ctcss);
+ quint16 tsql=0;
+ tsql = (quint16)ui->rptToneCombo->itemData(index).toUInt();
+ emit setTSQL(tsql);
}
void repeaterSetup::on_rptDTCSCombo_activated(int index)
{
quint16 dcode=0;
- dcode = ui->rptDTCSCombo->itemData(index).toUInt();
- emit setDCS(dcode);
+ bool tinv = ui->rptDTCSInvertTx->isChecked();
+ bool rinv = ui->rptDTCSInvertRx->isChecked();
+ dcode = (quint16)ui->rptDTCSCombo->itemData(index).toUInt();
+ emit setDTCS(dcode, tinv, rinv);
+}
+
+void repeaterSetup::on_debugBtn_clicked()
+{
+ emit getTSQL();
+ //emit getTone();
+ //emit getDTCS();
}
diff --git a/repeatersetup.h b/repeatersetup.h
index f7c0ef8..18d14ae 100644
--- a/repeatersetup.h
+++ b/repeatersetup.h
@@ -20,34 +20,33 @@ public:
signals:
void getDuplexMode();
void setDuplexMode(duplexMode dm);
- void setCTCSS(quint16 tone);
- void setDCS(quint16 dcode);
- void setToneMode(rptAccessTxRx tmode);
- void getToneMode();
+ void setTone(quint16 tone);
+ void setTSQL(quint16 tsql);
+ void setDTCS(quint16 dcode, bool tinv, bool rinv);
+ void getTone();
+ void getTSQL();
+ void getDTCS();
+ void setRptAccessMode(rptAccessTxRx tmode);
+ void getRptAccessMode();
public slots:
void receiveDuplexMode(duplexMode dm);
- void handleToneMode(rptAccessTxRx tmode);
- void handleCTCSS(quint16 tone);
- void handleDCS(quint16 dcode);
+ void handleRptAccessMode(rptAccessTxRx tmode);
+ void handleTone(quint16 tone);
+ void handleTSQL(quint16 tsql);
+ void handleDTCS(quint16 dcscode, bool tinv, bool rinv);
private slots:
-
-
void on_rptSimplexBtn_clicked();
-
void on_rptDupPlusBtn_clicked();
-
void on_rptDupMinusBtn_clicked();
-
void on_rptAutoBtn_clicked();
-
void on_rptReadRigBtn_clicked();
-
void on_rptToneCombo_activated(int index);
-
void on_rptDTCSCombo_activated(int index);
+ void on_debugBtn_clicked();
+
private:
Ui::repeaterSetup *ui;
diff --git a/repeatersetup.ui b/repeatersetup.ui
index eaef7eb..cf17876 100644
--- a/repeatersetup.ui
+++ b/repeatersetup.ui
@@ -40,6 +40,13 @@
+ -
+
+
+ Debug
+
+
+
-
diff --git a/rigcommander.cpp b/rigcommander.cpp
index 34414c6..729e2e5 100644
--- a/rigcommander.cpp
+++ b/rigcommander.cpp
@@ -86,14 +86,6 @@ void rigCommander::commSetup(unsigned char rigCivAddr, udpPreferences prefs)
setup();
// ---
- /* is this used for anything now???
- this->ip = ip;
- this->cport = cport;
- this->sport = sport;
- this->aport = aport;
- this->username = username;
- this->password = password;
- */
if (udp == Q_NULLPTR) {
udp = new udpHandler(prefs);
@@ -651,8 +643,133 @@ void rigCommander::getDuplexMode()
prepDataAndSend(payload);
}
+void rigCommander::getTransmitFrequency()
+{
+ QByteArray payload;
+ payload.setRawData("\x1C\x03", 2);
+ prepDataAndSend(payload);
+}
+void rigCommander::setTone(quint16 tone)
+{
+ freqt f;
+ f.Hz = tone;
+ QByteArray fenc = makeFreqPayload(f);
+ qDebug() << __func__ << "tone encoded: ";
+ printHex(fenc);
+ QByteArray payload;
+ payload.setRawData("\x1B\x00", 2);
+ payload.append(fenc);
+ //prepDataAndSend(payload);
+}
+
+void rigCommander::setTSQL(quint16 tsql)
+{
+ freqt f;
+ f.Hz = tsql;
+ QByteArray fenc = makeFreqPayload(f);
+ qDebug() << __func__ << "tsql encoded: ";
+ printHex(fenc);
+
+ QByteArray payload;
+ payload.setRawData("\x1B\x00", 2);
+ payload.append(fenc);
+ //prepDataAndSend(payload);
+}
+
+void rigCommander::setDTCS(quint16 dcscode, bool tinv, bool rinv)
+{
+ freqt f;
+ f.Hz = dcscode;
+ QByteArray denc = makeFreqPayload(f);
+ qDebug() << __func__ << "dtcs encoded: ";
+ printHex(denc);
+
+ (void)tinv;
+ (void)rinv;
+
+ QByteArray payload;
+ payload.setRawData("\x1B\x02", 2);
+ payload.append(denc);
+ //prepDataAndSend(payload);
+}
+
+void rigCommander::getTone()
+{
+ QByteArray payload;
+ payload.setRawData("\x1B\x00", 2);
+ prepDataAndSend(payload);
+}
+
+void rigCommander::getTSQL()
+{
+ QByteArray payload;
+ payload.setRawData("\x1B\x01", 2);
+ prepDataAndSend(payload);
+}
+
+void rigCommander::getDTCS()
+{
+ QByteArray payload;
+ payload.setRawData("\x1B\x02", 2);
+ prepDataAndSend(payload);
+}
+
+void rigCommander::getRptAccessMode()
+{
+ QByteArray payload;
+ payload.setRawData("\x16\x5D", 2);
+ prepDataAndSend(payload);
+}
+
+void rigCommander::setRptAccessMode(rptAccessTxRx ratr)
+{
+ QByteArray payload;
+ payload.setRawData("\x16\x5D", 2);
+ payload.append((unsigned char)ratr);
+ prepDataAndSend(payload);
+}
+
+void rigCommander::setIPP(bool enabled)
+{
+ QByteArray payload;
+ payload.setRawData("\x16\x65", 2);
+ if(enabled)
+ {
+ payload.append("\x01");
+ } else {
+ payload.append("\x00");
+ }
+ prepDataAndSend(payload);
+}
+
+void rigCommander::getIPP()
+{
+ QByteArray payload;
+ payload.setRawData("\x16\x65", 2);
+ prepDataAndSend(payload);
+}
+
+void rigCommander::setSatelliteMode(bool enabled)
+{
+ QByteArray payload;
+ payload.setRawData("\x16\x5A", 2);
+ if(enabled)
+ {
+ payload.append("\x01");
+ } else {
+ payload.append("\x00");
+ }
+ prepDataAndSend(payload);
+}
+
+void rigCommander::getSatelliteMode()
+{
+ QByteArray payload;
+ payload.setRawData("\x16\x5A", 2);
+ prepDataAndSend(payload);
+}
void rigCommander::getPTT()
{
diff --git a/rigcommander.h b/rigcommander.h
index 70786c7..0c17b93 100644
--- a/rigcommander.h
+++ b/rigcommander.h
@@ -54,6 +54,7 @@ public slots:
void commSetup(unsigned char rigCivAddr, udpPreferences prefs);
void closeComm();
+ // Spectrum:
void enableSpectOutput();
void disableSpectOutput();
void enableSpectrumDisplay();
@@ -70,20 +71,38 @@ public slots:
void setScopeEdge(char edge);
void getScopeEdge();
void getScopeMode();
+
+ // Frequency, Mode, PTT:
void setFrequency(freqt freq);
- void setMode(unsigned char mode, unsigned char modeFilter);
void getFrequency();
- void getBandStackReg(char band, char regCode);
+ void setMode(unsigned char mode, unsigned char modeFilter);
void getMode();
- void getPTT();
- void setPTT(bool pttOn);
void setDataMode(bool dataOn);
void getDataMode();
+ void getBandStackReg(char band, char regCode);
+
+ // PTT and ATU:
+ void getPTT();
+ void setPTT(bool pttOn);
+ void startATU();
+ void setATU(bool enabled);
+ void getATUStatus();
+
+ // Repeater:
void setDuplexMode(duplexMode dm);
void getDuplexMode();
+ void getTransmitFrequency();
+ void setTone(quint16 tone);
+ void setTSQL(quint16 tsql);
+ void getTSQL();
+ void getTone();
+ void setDTCS(quint16 dcscode, bool tinv, bool rinv);
+ void getDTCS();
+ void setRptAccessMode(rptAccessTxRx ratr);
+ void getRptAccessMode();
+ // Get Levels:
void getLevels(); // all supported levels
-
void getRfGain();
void getAfGain();
void getSql();
@@ -97,18 +116,10 @@ public slots:
void getLANGain();
void getACCGain();
void getACCGain(unsigned char ab);
+ void getModInput(bool dataOn);
+ void getModInputLevel(rigInput input);
-
- void getSMeter();
- void getRFPowerMeter();
- void getSWRMeter();
- void getALCMeter();
- void getCompReductionMeter();
- void getVdMeter();
- void getIDMeter();
-
- void getMeters(meterKind meter); // all supported meters per transmit or receive
-
+ // Set Levels:
void setSquelch(unsigned char level);
void setRfGain(unsigned char level);
void setAfGain(unsigned char level);
@@ -118,57 +129,109 @@ public slots:
void setLANGain(unsigned char gain);
void setACCGain(unsigned char gain);
void setACCGain(unsigned char gain, unsigned char ab);
-
void setCompLevel(unsigned char compLevel);
void setMonitorLevel(unsigned char monitorLevel);
void setVoxGain(unsigned char gain);
void setAntiVoxGain(unsigned char gain);
-
- void getModInput(bool dataOn);
void setModInput(rigInput input, bool dataOn);
-
void setModInputLevel(rigInput input, unsigned char level);
- void getModInputLevel(rigInput input);
- void startATU();
- void setATU(bool enabled);
- void getATUStatus();
+ // NB, NR, IP+:
+ void setIPP(bool enabled);
+ void getIPP();
+ // Maybe put some of these into a struct?
+ // setReceiverDSPParam(dspParam param);
+ //void getNRLevel();
+ //void getNREnabled();
+ //void getNBLevel();
+ //void getNBEnabled();
+ //void getNotchEnabled();
+ //void getNotchLevel();
+ //void setNotchEnabled(bool enabled);
+ //void setNotchLevel(unsigned char level);
+
+
+ // Meters:
+ void getSMeter();
+ void getRFPowerMeter();
+ void getSWRMeter();
+ void getALCMeter();
+ void getCompReductionMeter();
+ void getVdMeter();
+ void getIDMeter();
+ void getMeters(meterKind meter); // all supported meters per transmit or receive
+
+ // Rig ID and CIV:
void getRigID();
void findRigs();
void setCIVAddr(unsigned char civAddr);
+
+ // Calibration:
void getRefAdjustCourse();
void getRefAdjustFine();
void setRefAdjustCourse(unsigned char level);
void setRefAdjustFine(unsigned char level);
+
+ // Satellite:
+ void setSatelliteMode(bool enabled);
+ void getSatelliteMode();
+
+ // UDP:
void handleNewData(const QByteArray& data);
void receiveAudioData(const audioPacket& data);
void handleSerialPortError(const QString port, const QString errorText);
- void handleStatusUpdate(const QString text);
void changeLatency(const quint16 value);
+ void dataFromServer(QByteArray data);
+
+ // Speech:
void sayFrequency();
void sayMode();
void sayAll();
+
+ // Housekeeping:
+ void handleStatusUpdate(const QString text);
void getDebug();
- void dataFromServer(QByteArray data);
signals:
+ // Communication:
void commReady();
- void haveSpectrumData(QByteArray spectrum, double startFreq, double endFreq); // pass along data to UI
- void haveRigID(rigCapabilities rigCaps);
- void discoveredRigID(rigCapabilities rigCaps);
void haveSerialPortError(const QString port, const QString errorText);
void haveStatusUpdate(const QString text);
- void haveFrequency(freqt freqStruct);
- void haveMode(unsigned char mode, unsigned char filter);
- void haveDataMode(bool dataModeEnabled);
- void haveDuplexMode(duplexMode);
- void haveBandStackReg(float freq, char mode, bool dataOn);
+ void dataForComm(const QByteArray &outData);
+
+ // UDP:
+ void haveChangeLatency(quint16 value);
+ void haveDataForServer(QByteArray outData);
+ void haveAudioData(audioPacket data);
+ void initUdpHandler();
+ void haveSetVolume(unsigned char level);
+
+ // Spectrum:
+ void haveSpectrumData(QByteArray spectrum, double startFreq, double endFreq); // pass along data to UI
void haveSpectrumBounds();
void haveScopeSpan(char span);
void haveSpectrumMode(spectrumMode spectmode);
void haveScopeEdge(char edge);
void haveSpectrumRefLevel(int level);
+ // Rig ID:
+ void haveRigID(rigCapabilities rigCaps);
+ void discoveredRigID(rigCapabilities rigCaps);
+
+ // Frequency, Mode, data, and bandstack:
+ void haveFrequency(freqt freqStruct);
+ void haveMode(unsigned char mode, unsigned char filter);
+ void haveDataMode(bool dataModeEnabled);
+ void haveBandStackReg(float freq, char mode, bool dataOn);
+
+ // Repeater:
+ void haveDuplexMode(duplexMode);
+ void haveRptAccessMode(rptAccessTxRx ratr);
+ void haveTone(quint16 tone);
+ void haveTSQL(quint16 tsql);
+ void haveDTCS(quint16 dcscode);
+
+ // Levels:
void haveRfGain(unsigned char level);
void haveAfGain(unsigned char level);
void haveSql(unsigned char level);
@@ -179,12 +242,14 @@ signals:
void haveVoxGain(unsigned char gain);
void haveAntiVoxGain(unsigned char gain);
+ // Modulation source and gain:
void haveModInput(rigInput input, bool isData);
void haveLANGain(unsigned char gain);
void haveUSBGain(unsigned char gain);
void haveACCGain(unsigned char gain, unsigned char ab);
void haveModSrcGain(rigInput input, unsigned char gain);
+ // Meters:
void haveMeter(meterKind meter, unsigned char level);
void haveSMeter(unsigned char level);
void haveRFMeter(unsigned char level);
@@ -194,19 +259,17 @@ signals:
void haveVdMeter(unsigned char voltage);
void haveIdMeter(unsigned char current);
- void thing();
+ // Calibration:
void haveRefAdjustCourse(unsigned char level);
void haveRefAdjustFine(unsigned char level);
- void dataForComm(const QByteArray &outData);
- void getMoreDebug();
- void finished();
+
+ // PTT and ATU:
void havePTTStatus(bool pttOn);
void haveATUStatus(unsigned char status);
- void haveChangeLatency(quint16 value);
- void haveDataForServer(QByteArray outData);
- void haveAudioData(audioPacket data);
- void initUdpHandler();
- void haveSetVolume(unsigned char level);
+
+ // Housekeeping:
+ void getMoreDebug();
+ void finished();
private:
void setup();
@@ -276,9 +339,8 @@ private:
bool foundRig;
double frequencyMhz;
- unsigned char civAddr; // IC-7300: 0x94 is default = 148decimal
+ unsigned char civAddr;
unsigned char incomingCIVAddr; // place to store the incoming CIV.
- //const unsigned char compCivAddr = 0xE1; // 0xE1 is new default, 0xE0 was before.
bool pttAllowed;
QString rigSerialPort;
diff --git a/wfmain.cpp b/wfmain.cpp
index 9bb5fe1..66dc49b 100644
--- a/wfmain.cpp
+++ b/wfmain.cpp
@@ -368,6 +368,7 @@ wfmain::wfmain(const QString serialPortCL, const QString hostCL, QWidget *parent
qRegisterMetaType();
qRegisterMetaType();
+ qRegisterMetaType();
qRegisterMetaType();
qRegisterMetaType();
qRegisterMetaType();
@@ -395,6 +396,16 @@ wfmain::wfmain(const QString serialPortCL, const QString hostCL, QWidget *parent
connect(rpt, SIGNAL(getDuplexMode()), rig, SLOT(getDuplexMode()));
connect(rpt, SIGNAL(setDuplexMode(duplexMode)), rig, SLOT(setDuplexMode(duplexMode)));
connect(rig, SIGNAL(haveDuplexMode(duplexMode)), rpt, SLOT(receiveDuplexMode(duplexMode)));
+ connect(rpt, SIGNAL(getTone()), rig, SLOT(getTone()));
+ connect(rpt, SIGNAL(getTSQL()), rig, SLOT(getTSQL()));
+ connect(rpt, SIGNAL(getDTCS()), rig, SLOT(getDTCS()));
+ connect(rpt, SIGNAL(getRptAccessMode()), rig, SLOT(getRptAccessMode()));
+ connect(rpt, SIGNAL(setRptAccessMode(rptAccessTxRx)), rig, SLOT(setRptAccessMode(rptAccessTxRx)));
+ connect(rig, SIGNAL(haveTone(quint16)), rpt, SLOT(handleTone(quint16)));
+ connect(rig, SIGNAL(haveTSQL(quint16)), rpt, SLOT(handleTSQL(quint16)));
+ connect(rig, SIGNAL(haveDTCS(quint16)), rpt, SLOT(handleDTCS(quint16,bool,bool)));
+ connect(rig, SIGNAL(haveRptAccessMode(rptAccessTxRx)), rpt, SLOT(handleRptAccessMode(rptAccessTxRx)));
+
connect(this, SIGNAL(getDuplexMode()), rig, SLOT(getDuplexMode()));
//connect(this, SIGNAL(setDuplexMode(duplexMode)), rig, SLOT(setDuplexMode(duplexMode)));
diff --git a/wfmain.ui b/wfmain.ui
index fa1a5d2..7f52bc1 100644
--- a/wfmain.ui
+++ b/wfmain.ui
@@ -6,7 +6,7 @@
0
0
- 810
+ 905
582
@@ -2050,7 +2050,7 @@
0
0
- 810
+ 905
22
@@ -2074,6 +2074,5 @@
-