Tone, TSQL, and DTCS code added, but not complete.

merge-requests/2/head
Elliott Liggett 2021-04-04 00:36:21 -07:00
rodzic 3f0ea7258c
commit 8cc78e37bb
8 zmienionych plików z 297 dodań i 82 usunięć

Wyświetl plik

@ -27,5 +27,6 @@ enum rptAccessTxRx {
};
Q_DECLARE_METATYPE(enum duplexMode)
Q_DECLARE_METATYPE(enum rptAccessTxRx)
#endif // REPEATERATTRIBUTES_H

Wyświetl plik

@ -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();
}

Wyświetl plik

@ -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;

Wyświetl plik

@ -40,6 +40,13 @@
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="debugBtn">
<property name="text">
<string>Debug</string>
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer">
<property name="orientation">

Wyświetl plik

@ -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()
{

Wyświetl plik

@ -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;

Wyświetl plik

@ -368,6 +368,7 @@ wfmain::wfmain(const QString serialPortCL, const QString hostCL, QWidget *parent
qRegisterMetaType<rigCapabilities>();
qRegisterMetaType<duplexMode>();
qRegisterMetaType<rptAccessTxRx>();
qRegisterMetaType<rigInput>();
qRegisterMetaType<meterKind>();
qRegisterMetaType<spectrumMode>();
@ -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)));

Wyświetl plik

@ -6,7 +6,7 @@
<rect>
<x>0</x>
<y>0</y>
<width>810</width>
<width>905</width>
<height>582</height>
</rect>
</property>
@ -2050,7 +2050,7 @@
<rect>
<x>0</x>
<y>0</y>
<width>810</width>
<width>905</width>
<height>22</height>
</rect>
</property>
@ -2074,6 +2074,5 @@
<connections/>
<buttongroups>
<buttongroup name="radioConnectionSerialNetworkGrp"/>
<buttongroup name="duplexBtnGrp"/>
</buttongroups>
</ui>