kopia lustrzana https://gitlab.com/eliggett/wfview
Merge branch 'morecontrols' into band-switching
commit
4ea80af164
|
@ -8,7 +8,7 @@ repeaterSetup::repeaterSetup(QWidget *parent) :
|
||||||
ui->setupUi(this);
|
ui->setupUi(this);
|
||||||
|
|
||||||
ui->autoTrackLiveBtn->setEnabled(false); // until we set split enabled.
|
ui->autoTrackLiveBtn->setEnabled(false); // until we set split enabled.
|
||||||
|
ui->warningFMLabel->setVisible(false);
|
||||||
// populate the CTCSS combo box:
|
// populate the CTCSS combo box:
|
||||||
populateTones();
|
populateTones();
|
||||||
|
|
||||||
|
@ -101,6 +101,7 @@ void repeaterSetup::setRig(rigCapabilities inRig)
|
||||||
ui->rptrOffsetSetBtn->setEnabled(rig.hasRepeaterModes);
|
ui->rptrOffsetSetBtn->setEnabled(rig.hasRepeaterModes);
|
||||||
ui->setToneSubVFOBtn->setEnabled(rig.hasSpecifyMainSubCmd);
|
ui->setToneSubVFOBtn->setEnabled(rig.hasSpecifyMainSubCmd);
|
||||||
ui->setRptrSubVFOBtn->setEnabled(rig.hasSpecifyMainSubCmd);
|
ui->setRptrSubVFOBtn->setEnabled(rig.hasSpecifyMainSubCmd);
|
||||||
|
ui->quickSplitChk->setVisible(rig.hasQuickSplitCommand);
|
||||||
}
|
}
|
||||||
|
|
||||||
void repeaterSetup::populateTones()
|
void repeaterSetup::populateTones()
|
||||||
|
@ -414,6 +415,10 @@ void repeaterSetup::handleUpdateCurrentMainMode(mode_info m)
|
||||||
this->currentModeMain = m;
|
this->currentModeMain = m;
|
||||||
this->modeTransmitVFO = m;
|
this->modeTransmitVFO = m;
|
||||||
this->modeTransmitVFO.VFO = inactiveVFO;
|
this->modeTransmitVFO.VFO = inactiveVFO;
|
||||||
|
if(m.mk == modeFM)
|
||||||
|
ui->warningFMLabel->setVisible(false);
|
||||||
|
else
|
||||||
|
ui->warningFMLabel->setVisible(true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -827,3 +832,8 @@ void repeaterSetup::on_setSplitRptrToneChk_clicked(bool checked)
|
||||||
on_setToneSubVFOBtn_clicked();
|
on_setToneSubVFOBtn_clicked();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void repeaterSetup::on_quickSplitChk_clicked(bool checked)
|
||||||
|
{
|
||||||
|
emit setQuickSplit(checked);
|
||||||
|
}
|
||||||
|
|
|
@ -35,6 +35,7 @@ signals:
|
||||||
void getRptDuplexOffset();
|
void getRptDuplexOffset();
|
||||||
// Split:
|
// Split:
|
||||||
void getSplitModeEnabled();
|
void getSplitModeEnabled();
|
||||||
|
void setQuickSplit(bool qsOn);
|
||||||
void getTransmitFrequency();
|
void getTransmitFrequency();
|
||||||
// Use the duplexMode to communicate split.
|
// Use the duplexMode to communicate split.
|
||||||
// void setSplitModeEnabled(bool splitEnabled);
|
// void setSplitModeEnabled(bool splitEnabled);
|
||||||
|
@ -108,6 +109,8 @@ private slots:
|
||||||
|
|
||||||
void on_setSplitRptrToneChk_clicked(bool checked);
|
void on_setSplitRptrToneChk_clicked(bool checked);
|
||||||
|
|
||||||
|
void on_quickSplitChk_clicked(bool checked);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
Ui::repeaterSetup *ui;
|
Ui::repeaterSetup *ui;
|
||||||
freqt currentMainFrequency;
|
freqt currentMainFrequency;
|
||||||
|
|
|
@ -151,6 +151,13 @@
|
||||||
</attribute>
|
</attribute>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QCheckBox" name="quickSplitChk">
|
||||||
|
<property name="text">
|
||||||
|
<string>QuickSplit</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
|
@ -163,6 +170,9 @@
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Set Rpt Tone</string>
|
<string>Set Rpt Tone</string>
|
||||||
</property>
|
</property>
|
||||||
|
<property name="checked">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
|
@ -392,6 +402,13 @@
|
||||||
<string>Repeater Tone Type</string>
|
<string>Repeater Tone Type</string>
|
||||||
</property>
|
</property>
|
||||||
<layout class="QVBoxLayout" name="verticalLayout_3">
|
<layout class="QVBoxLayout" name="verticalLayout_3">
|
||||||
|
<item>
|
||||||
|
<widget class="QLabel" name="warningFMLabel">
|
||||||
|
<property name="text">
|
||||||
|
<string>Only available in FM</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<widget class="QRadioButton" name="toneNone">
|
<widget class="QRadioButton" name="toneNone">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
|
|
|
@ -935,6 +935,16 @@ void rigCommander::getDuplexMode()
|
||||||
prepDataAndSend(payload);
|
prepDataAndSend(payload);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void rigCommander::setQuickSplit(bool qsOn)
|
||||||
|
{
|
||||||
|
if(rigCaps.hasQuickSplitCommand)
|
||||||
|
{
|
||||||
|
QByteArray payload = rigCaps.quickSplitCommand;
|
||||||
|
payload.append((unsigned char)qsOn);
|
||||||
|
prepDataAndSend(payload);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void rigCommander::setPassband(quint16 pass)
|
void rigCommander::setPassband(quint16 pass)
|
||||||
{
|
{
|
||||||
QByteArray payload;
|
QByteArray payload;
|
||||||
|
@ -1062,7 +1072,7 @@ void rigCommander::setTone(rptrTone_t t)
|
||||||
{
|
{
|
||||||
qDebug(logRig()) << "Sending TONE to secondary VFO";
|
qDebug(logRig()) << "Sending TONE to secondary VFO";
|
||||||
payload.prepend("\x29\x01");
|
payload.prepend("\x29\x01");
|
||||||
printHex(payload);
|
//printHex(payload);
|
||||||
}
|
}
|
||||||
|
|
||||||
prepDataAndSend(payload);
|
prepDataAndSend(payload);
|
||||||
|
@ -1089,7 +1099,7 @@ void rigCommander::setTSQL(rptrTone_t t)
|
||||||
{
|
{
|
||||||
qDebug(logRig()) << "Sending TSQL to secondary VFO";
|
qDebug(logRig()) << "Sending TSQL to secondary VFO";
|
||||||
payload.prepend("\x29\x01");
|
payload.prepend("\x29\x01");
|
||||||
printHex(payload);
|
//printHex(payload);
|
||||||
}
|
}
|
||||||
|
|
||||||
prepDataAndSend(payload);
|
prepDataAndSend(payload);
|
||||||
|
@ -1105,7 +1115,7 @@ void rigCommander::setDTCS(quint16 dcscode, bool tinv, bool rinv)
|
||||||
payload.append(denc);
|
payload.append(denc);
|
||||||
|
|
||||||
//qInfo() << __func__ << "DTCS encoded payload: ";
|
//qInfo() << __func__ << "DTCS encoded payload: ";
|
||||||
printHex(payload);
|
//printHex(payload);
|
||||||
|
|
||||||
prepDataAndSend(payload);
|
prepDataAndSend(payload);
|
||||||
}
|
}
|
||||||
|
@ -1270,8 +1280,8 @@ void rigCommander::setRptDuplexOffset(freqt f)
|
||||||
QByteArray freqPayload = makeFreqPayload(f);
|
QByteArray freqPayload = makeFreqPayload(f);
|
||||||
payload.append(freqPayload.mid(1, 3));
|
payload.append(freqPayload.mid(1, 3));
|
||||||
//qInfo(logRig()) << "Here is potential repeater offset setting, not sending to radio:";
|
//qInfo(logRig()) << "Here is potential repeater offset setting, not sending to radio:";
|
||||||
printHexNow(payload, logRig());
|
//printHexNow(payload, logRig());
|
||||||
QString g = getHex(payload);
|
//QString g = getHex(payload);
|
||||||
//qInfo(logRig()).noquote().nospace() << g;
|
//qInfo(logRig()).noquote().nospace() << g;
|
||||||
prepDataAndSend(payload);
|
prepDataAndSend(payload);
|
||||||
}
|
}
|
||||||
|
@ -1365,6 +1375,7 @@ void rigCommander::sendCW(QString textToSend)
|
||||||
|
|
||||||
QByteArray textData = textToSend.toLocal8Bit();
|
QByteArray textData = textToSend.toLocal8Bit();
|
||||||
unsigned char p=0;
|
unsigned char p=0;
|
||||||
|
bool printout=false;
|
||||||
for(int c=0; c < textData.length(); c++)
|
for(int c=0; c < textData.length(); c++)
|
||||||
{
|
{
|
||||||
p = textData.at(c);
|
p = textData.at(c);
|
||||||
|
@ -1380,10 +1391,12 @@ void rigCommander::sendCW(QString textToSend)
|
||||||
// Allowed character, continue
|
// Allowed character, continue
|
||||||
} else {
|
} else {
|
||||||
qWarning(logRig()) << "Invalid character detected in CW message at position " << c << ", the character is " << textToSend.at(c);
|
qWarning(logRig()) << "Invalid character detected in CW message at position " << c << ", the character is " << textToSend.at(c);
|
||||||
printHex(textData);
|
printout = true;
|
||||||
textData[c] = 0x3F; // "?"
|
textData[c] = 0x3F; // "?"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if(printout)
|
||||||
|
printHex(textData);
|
||||||
|
|
||||||
if(pttAllowed)
|
if(pttAllowed)
|
||||||
{
|
{
|
||||||
|
@ -3336,7 +3349,7 @@ void rigCommander::parseWFData()
|
||||||
// read edge mode center in edge mode
|
// read edge mode center in edge mode
|
||||||
emit haveScopeEdge((char)payloadIn[2]);
|
emit haveScopeEdge((char)payloadIn[2]);
|
||||||
//qInfo(logRig()) << "Received 0x16 edge in center mode:";
|
//qInfo(logRig()) << "Received 0x16 edge in center mode:";
|
||||||
printHex(payloadIn, false, true);
|
//printHex(payloadIn, false, true);
|
||||||
// [1] 0x16
|
// [1] 0x16
|
||||||
// [2] 0x01, 0x02, 0x03: Edge 1,2,3
|
// [2] 0x01, 0x02, 0x03: Edge 1,2,3
|
||||||
break;
|
break;
|
||||||
|
@ -3520,6 +3533,8 @@ void rigCommander::determineRigCaps()
|
||||||
rigCaps.transceiveCommand = QByteArrayLiteral("\x1a\x05\x00\x71");
|
rigCaps.transceiveCommand = QByteArrayLiteral("\x1a\x05\x00\x71");
|
||||||
rigCaps.hasVFOMS = false;
|
rigCaps.hasVFOMS = false;
|
||||||
rigCaps.hasVFOAB = true;
|
rigCaps.hasVFOAB = true;
|
||||||
|
rigCaps.hasQuickSplitCommand = true;
|
||||||
|
rigCaps.quickSplitCommand = QByteArrayLiteral("\x1a\x05\x00\x30");
|
||||||
break;
|
break;
|
||||||
case modelR8600:
|
case modelR8600:
|
||||||
rigCaps.modelName = QString("IC-R8600");
|
rigCaps.modelName = QString("IC-R8600");
|
||||||
|
@ -3593,6 +3608,8 @@ void rigCommander::determineRigCaps()
|
||||||
rigCaps.hasVFOMS = true;
|
rigCaps.hasVFOMS = true;
|
||||||
rigCaps.hasVFOAB = true;
|
rigCaps.hasVFOAB = true;
|
||||||
rigCaps.hasAdvancedRptrToneCmds = true;
|
rigCaps.hasAdvancedRptrToneCmds = true;
|
||||||
|
rigCaps.hasQuickSplitCommand = true;
|
||||||
|
rigCaps.quickSplitCommand = QByteArrayLiteral("\x1a\x05\x00\x43");
|
||||||
break;
|
break;
|
||||||
case model910h:
|
case model910h:
|
||||||
rigCaps.modelName = QString("IC-910H");
|
rigCaps.modelName = QString("IC-910H");
|
||||||
|
@ -3647,6 +3664,8 @@ void rigCommander::determineRigCaps()
|
||||||
rigCaps.transceiveCommand = QByteArrayLiteral("\x1a\x05\x00\x97");
|
rigCaps.transceiveCommand = QByteArrayLiteral("\x1a\x05\x00\x97");
|
||||||
rigCaps.hasVFOMS = true;
|
rigCaps.hasVFOMS = true;
|
||||||
rigCaps.hasVFOAB = false;
|
rigCaps.hasVFOAB = false;
|
||||||
|
rigCaps.hasQuickSplitCommand = true;
|
||||||
|
rigCaps.quickSplitCommand = QByteArrayLiteral("\x1a\x05\x00\x64");
|
||||||
break;
|
break;
|
||||||
case model7610:
|
case model7610:
|
||||||
rigCaps.modelName = QString("IC-7610");
|
rigCaps.modelName = QString("IC-7610");
|
||||||
|
@ -3681,6 +3700,8 @@ void rigCommander::determineRigCaps()
|
||||||
rigCaps.hasRXAntenna = true;
|
rigCaps.hasRXAntenna = true;
|
||||||
rigCaps.transceiveCommand = QByteArrayLiteral("\x1a\x05\x01\x12");
|
rigCaps.transceiveCommand = QByteArrayLiteral("\x1a\x05\x01\x12");
|
||||||
rigCaps.hasSpecifyMainSubCmd = true;
|
rigCaps.hasSpecifyMainSubCmd = true;
|
||||||
|
rigCaps.hasQuickSplitCommand = true;
|
||||||
|
rigCaps.quickSplitCommand = QByteArrayLiteral("\x1a\x05\x00\x33");
|
||||||
rigCaps.hasVFOMS = true;
|
rigCaps.hasVFOMS = true;
|
||||||
rigCaps.hasVFOAB = false;
|
rigCaps.hasVFOAB = false;
|
||||||
break;
|
break;
|
||||||
|
@ -3716,6 +3737,8 @@ void rigCommander::determineRigCaps()
|
||||||
rigCaps.hasRXAntenna = true;
|
rigCaps.hasRXAntenna = true;
|
||||||
rigCaps.transceiveCommand = QByteArrayLiteral("\x1a\x05\x01\x55");
|
rigCaps.transceiveCommand = QByteArrayLiteral("\x1a\x05\x01\x55");
|
||||||
rigCaps.hasSpecifyMainSubCmd = true;
|
rigCaps.hasSpecifyMainSubCmd = true;
|
||||||
|
rigCaps.hasQuickSplitCommand = true;
|
||||||
|
rigCaps.quickSplitCommand = QByteArrayLiteral("\x1a\x05\x01\x13");
|
||||||
rigCaps.hasVFOMS = true;
|
rigCaps.hasVFOMS = true;
|
||||||
rigCaps.hasVFOAB = false;
|
rigCaps.hasVFOAB = false;
|
||||||
break;
|
break;
|
||||||
|
@ -3755,6 +3778,8 @@ void rigCommander::determineRigCaps()
|
||||||
rigCaps.transceiveCommand = QByteArrayLiteral("\x1a\x05\x01\x31");
|
rigCaps.transceiveCommand = QByteArrayLiteral("\x1a\x05\x01\x31");
|
||||||
rigCaps.hasVFOMS = false;
|
rigCaps.hasVFOMS = false;
|
||||||
rigCaps.hasVFOAB = true;
|
rigCaps.hasVFOAB = true;
|
||||||
|
rigCaps.hasQuickSplitCommand = true;
|
||||||
|
rigCaps.quickSplitCommand = QByteArrayLiteral("\x1a\x05\x00\x45");
|
||||||
break;
|
break;
|
||||||
case model7000:
|
case model7000:
|
||||||
rigCaps.modelName = QString("IC-7000");
|
rigCaps.modelName = QString("IC-7000");
|
||||||
|
@ -3781,6 +3806,8 @@ void rigCommander::determineRigCaps()
|
||||||
rigCaps.transceiveCommand = QByteArrayLiteral("\x1a\x05\x00\x92");
|
rigCaps.transceiveCommand = QByteArrayLiteral("\x1a\x05\x00\x92");
|
||||||
rigCaps.hasVFOMS = false;
|
rigCaps.hasVFOMS = false;
|
||||||
rigCaps.hasVFOAB = true;
|
rigCaps.hasVFOAB = true;
|
||||||
|
rigCaps.hasQuickSplitCommand = true;
|
||||||
|
rigCaps.quickSplitCommand = QByteArrayLiteral("\x1a\x05\x00\x52");
|
||||||
break;
|
break;
|
||||||
case model7410:
|
case model7410:
|
||||||
rigCaps.modelName = QString("IC-7410");
|
rigCaps.modelName = QString("IC-7410");
|
||||||
|
@ -3806,6 +3833,8 @@ void rigCommander::determineRigCaps()
|
||||||
rigCaps.transceiveCommand = QByteArrayLiteral("\x1a\x05\x00\x40");
|
rigCaps.transceiveCommand = QByteArrayLiteral("\x1a\x05\x00\x40");
|
||||||
rigCaps.hasVFOMS = false;
|
rigCaps.hasVFOMS = false;
|
||||||
rigCaps.hasVFOAB = true;
|
rigCaps.hasVFOAB = true;
|
||||||
|
rigCaps.hasQuickSplitCommand = true;
|
||||||
|
rigCaps.quickSplitCommand = QByteArrayLiteral("\x1a\x05\x00\x11");
|
||||||
break;
|
break;
|
||||||
case model7100:
|
case model7100:
|
||||||
rigCaps.modelName = QString("IC-7100");
|
rigCaps.modelName = QString("IC-7100");
|
||||||
|
@ -3837,6 +3866,8 @@ void rigCommander::determineRigCaps()
|
||||||
rigCaps.transceiveCommand = QByteArrayLiteral("\x1a\x05\x00\x95");
|
rigCaps.transceiveCommand = QByteArrayLiteral("\x1a\x05\x00\x95");
|
||||||
rigCaps.hasVFOMS = false;
|
rigCaps.hasVFOMS = false;
|
||||||
rigCaps.hasVFOAB = true;
|
rigCaps.hasVFOAB = true;
|
||||||
|
rigCaps.hasQuickSplitCommand = true;
|
||||||
|
rigCaps.quickSplitCommand = QByteArrayLiteral("\x1a\x05\x00\x15");
|
||||||
break;
|
break;
|
||||||
case model7200:
|
case model7200:
|
||||||
rigCaps.modelName = QString("IC-7200");
|
rigCaps.modelName = QString("IC-7200");
|
||||||
|
@ -3861,6 +3892,8 @@ void rigCommander::determineRigCaps()
|
||||||
rigCaps.transceiveCommand = QByteArrayLiteral("\x1a\x03\x48");
|
rigCaps.transceiveCommand = QByteArrayLiteral("\x1a\x03\x48");
|
||||||
rigCaps.hasVFOMS = false;
|
rigCaps.hasVFOMS = false;
|
||||||
rigCaps.hasVFOAB = true;
|
rigCaps.hasVFOAB = true;
|
||||||
|
rigCaps.hasQuickSplitCommand = true;
|
||||||
|
rigCaps.quickSplitCommand = QByteArrayLiteral("\x1a\x03\x18");
|
||||||
break;
|
break;
|
||||||
case model7700:
|
case model7700:
|
||||||
rigCaps.modelName = QString("IC-7700");
|
rigCaps.modelName = QString("IC-7700");
|
||||||
|
@ -3889,6 +3922,8 @@ void rigCommander::determineRigCaps()
|
||||||
rigCaps.transceiveCommand = QByteArrayLiteral("\x1a\x05\x00\x95");
|
rigCaps.transceiveCommand = QByteArrayLiteral("\x1a\x05\x00\x95");
|
||||||
rigCaps.hasVFOMS = false;
|
rigCaps.hasVFOMS = false;
|
||||||
rigCaps.hasVFOAB = true;
|
rigCaps.hasVFOAB = true;
|
||||||
|
rigCaps.hasQuickSplitCommand = true;
|
||||||
|
rigCaps.quickSplitCommand = QByteArrayLiteral("\x1a\x05\x00\x67");
|
||||||
break;
|
break;
|
||||||
case model703:
|
case model703:
|
||||||
rigCaps.modelName = QString("IC-703");
|
rigCaps.modelName = QString("IC-703");
|
||||||
|
@ -4129,6 +4164,8 @@ void rigCommander::determineRigCaps()
|
||||||
rigCaps.transceiveCommand = QByteArrayLiteral("\x1a\x05\x00\x00");
|
rigCaps.transceiveCommand = QByteArrayLiteral("\x1a\x05\x00\x00");
|
||||||
rigCaps.hasVFOMS = true;
|
rigCaps.hasVFOMS = true;
|
||||||
rigCaps.hasVFOAB = false;
|
rigCaps.hasVFOAB = false;
|
||||||
|
rigCaps.hasQuickSplitCommand = true;
|
||||||
|
rigCaps.quickSplitCommand = QByteArrayLiteral("\x1a\x05\x24");
|
||||||
break;
|
break;
|
||||||
case model756proiii:
|
case model756proiii:
|
||||||
rigCaps.modelName = QString("IC-756 Pro III");
|
rigCaps.modelName = QString("IC-756 Pro III");
|
||||||
|
@ -4152,6 +4189,8 @@ void rigCommander::determineRigCaps()
|
||||||
rigCaps.transceiveCommand = QByteArrayLiteral("\x1a\x05\x00\x00");
|
rigCaps.transceiveCommand = QByteArrayLiteral("\x1a\x05\x00\x00");
|
||||||
rigCaps.hasVFOMS = true;
|
rigCaps.hasVFOMS = true;
|
||||||
rigCaps.hasVFOAB = false;
|
rigCaps.hasVFOAB = false;
|
||||||
|
rigCaps.hasQuickSplitCommand = true;
|
||||||
|
rigCaps.quickSplitCommand = QByteArrayLiteral("\x1a\x05\x24");
|
||||||
break;
|
break;
|
||||||
case model9100:
|
case model9100:
|
||||||
rigCaps.modelName = QString("IC-9100");
|
rigCaps.modelName = QString("IC-9100");
|
||||||
|
@ -4183,6 +4222,8 @@ void rigCommander::determineRigCaps()
|
||||||
rigCaps.modes.insert(rigCaps.modes.end(), {createMode(modeDV, 0x17, "DV")});
|
rigCaps.modes.insert(rigCaps.modes.end(), {createMode(modeDV, 0x17, "DV")});
|
||||||
rigCaps.hasVFOMS = true;
|
rigCaps.hasVFOMS = true;
|
||||||
rigCaps.hasVFOAB = true;
|
rigCaps.hasVFOAB = true;
|
||||||
|
rigCaps.hasQuickSplitCommand = true;
|
||||||
|
rigCaps.quickSplitCommand = QByteArrayLiteral("\x1a\x05\x00\x14");
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
rigCaps.modelName = QString("IC-0x%1").arg(rigCaps.modelID, 2, 16);
|
rigCaps.modelName = QString("IC-0x%1").arg(rigCaps.modelID, 2, 16);
|
||||||
|
|
|
@ -137,6 +137,7 @@ public slots:
|
||||||
// Repeater:
|
// Repeater:
|
||||||
void setDuplexMode(duplexMode dm);
|
void setDuplexMode(duplexMode dm);
|
||||||
void getDuplexMode();
|
void getDuplexMode();
|
||||||
|
void setQuickSplit(bool qsOn);
|
||||||
void getTransmitFrequency();
|
void getTransmitFrequency();
|
||||||
void setTone(rptrTone_t t);
|
void setTone(rptrTone_t t);
|
||||||
void setTSQL(rptrTone_t t);
|
void setTSQL(rptrTone_t t);
|
||||||
|
|
|
@ -153,6 +153,8 @@ struct rigCapabilities {
|
||||||
bool hasVFOAB = true; // 0x07 [00||01]
|
bool hasVFOAB = true; // 0x07 [00||01]
|
||||||
|
|
||||||
bool hasAdvancedRptrToneCmds = false;
|
bool hasAdvancedRptrToneCmds = false;
|
||||||
|
bool hasQuickSplitCommand = false;
|
||||||
|
QByteArray quickSplitCommand;
|
||||||
|
|
||||||
std::vector <unsigned char> attenuators;
|
std::vector <unsigned char> attenuators;
|
||||||
std::vector <unsigned char> preamps;
|
std::vector <unsigned char> preamps;
|
||||||
|
|
24
wfmain.cpp
24
wfmain.cpp
|
@ -415,18 +415,12 @@ void wfmain::rigConnections()
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
// How to understand the reply of getToneEnabled, getTSQLEnabled
|
connect(this->rpt, &repeaterSetup::setQuickSplit,
|
||||||
// ......
|
[=](const bool &qsEnabled) {
|
||||||
// it's currently only read into rigState.
|
issueCmd(cmdSetQuickSplit, qsEnabled);
|
||||||
// We could emit a signal from rigCommander, turn it into
|
});
|
||||||
// a rptrAccess data type and feed that to rptr.
|
|
||||||
// But there will be two replies, and we need to somehow
|
|
||||||
// understand both before forming a sensible reply to
|
|
||||||
// the rptr setup.
|
|
||||||
// If we don't care, then it just works but we don't know the current state.
|
|
||||||
|
|
||||||
|
connect(this, SIGNAL(setQuickSplit(bool)), rig, SLOT(setQuickSplit(bool)));
|
||||||
//connect(rpt, SIGNAL(setRptAccessMode(rptAccessTxRx)), rig, SLOT(setRptAccessMode(rptAccessTxRx)));
|
|
||||||
|
|
||||||
connect(this->rpt, &repeaterSetup::setRptAccessMode,
|
connect(this->rpt, &repeaterSetup::setRptAccessMode,
|
||||||
[=](const rptrAccessData_t &rd) {
|
[=](const rptrAccessData_t &rd) {
|
||||||
|
@ -453,7 +447,7 @@ void wfmain::rigConnections()
|
||||||
connect(this, SIGNAL(getTSQLEnabled()), rig, SLOT(getToneSqlEnabled()));
|
connect(this, SIGNAL(getTSQLEnabled()), rig, SLOT(getToneSqlEnabled()));
|
||||||
|
|
||||||
connect(this->rpt, &repeaterSetup::setTransmitFrequency,
|
connect(this->rpt, &repeaterSetup::setTransmitFrequency,
|
||||||
[=](const freqt &transmitFreq) { issueCmd(cmdSetFreq, transmitFreq);});
|
[=](const freqt &transmitFreq) { issueCmdUniquePriority(cmdSetFreq, transmitFreq);});
|
||||||
connect(this->rpt, &repeaterSetup::setTransmitMode,
|
connect(this->rpt, &repeaterSetup::setTransmitMode,
|
||||||
[=](const mode_info &transmitMode) { issueCmd(cmdSetMode, transmitMode);});
|
[=](const mode_info &transmitMode) { issueCmd(cmdSetMode, transmitMode);});
|
||||||
connect(this->rpt, &repeaterSetup::selectVFO,
|
connect(this->rpt, &repeaterSetup::selectVFO,
|
||||||
|
@ -3823,6 +3817,12 @@ void wfmain::doCmd(commandtype cmddata)
|
||||||
emit setRptDuplexOffset(f);
|
emit setRptDuplexOffset(f);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
case cmdSetQuickSplit:
|
||||||
|
{
|
||||||
|
bool qsEnabled = (*std::static_pointer_cast<bool>(data));
|
||||||
|
emit setQuickSplit(qsEnabled);
|
||||||
|
break;
|
||||||
|
}
|
||||||
case cmdSetPTT:
|
case cmdSetPTT:
|
||||||
{
|
{
|
||||||
bool pttrequest = (*std::static_pointer_cast<bool>(data));
|
bool pttrequest = (*std::static_pointer_cast<bool>(data));
|
||||||
|
|
1
wfmain.h
1
wfmain.h
|
@ -111,6 +111,7 @@ signals:
|
||||||
|
|
||||||
// Repeater:
|
// Repeater:
|
||||||
void getDuplexMode();
|
void getDuplexMode();
|
||||||
|
void setQuickSplit(bool qsOn);
|
||||||
void getTone();
|
void getTone();
|
||||||
void getTSQL();
|
void getTSQL();
|
||||||
void getDTCS();
|
void getDTCS();
|
||||||
|
|
|
@ -164,7 +164,7 @@ enum cmds {
|
||||||
cmdGetTone, cmdGetTSQL, cmdGetToneEnabled, cmdGetTSQLEnabled, cmdGetDTCS,
|
cmdGetTone, cmdGetTSQL, cmdGetToneEnabled, cmdGetTSQLEnabled, cmdGetDTCS,
|
||||||
cmdSetToneEnabled, cmdSetTSQLEnabled, cmdGetRptAccessMode, cmdSetTone, cmdSetTSQL,
|
cmdSetToneEnabled, cmdSetTSQLEnabled, cmdGetRptAccessMode, cmdSetTone, cmdSetTSQL,
|
||||||
cmdSetRptAccessMode, cmdSetRptDuplexOffset, cmdGetRptDuplexOffset,
|
cmdSetRptAccessMode, cmdSetRptDuplexOffset, cmdGetRptDuplexOffset,
|
||||||
cmdSelVFO, cmdVFOSwap, cmdVFOEqualAB, cmdVFOEqualMS,
|
cmdSelVFO, cmdVFOSwap, cmdVFOEqualAB, cmdVFOEqualMS, cmdSetQuickSplit,
|
||||||
cmdGetPreamp, cmdGetAttenuator, cmdGetAntenna,
|
cmdGetPreamp, cmdGetAttenuator, cmdGetAntenna,
|
||||||
cmdGetBandStackReg, cmdGetKeySpeed, cmdSetKeySpeed, cmdGetBreakMode, cmdSetBreakMode, cmdSendCW, cmdStopCW,
|
cmdGetBandStackReg, cmdGetKeySpeed, cmdSetKeySpeed, cmdGetBreakMode, cmdSetBreakMode, cmdSendCW, cmdStopCW,
|
||||||
cmdSetTime, cmdSetDate, cmdSetUTCOffset,
|
cmdSetTime, cmdSetDate, cmdSetUTCOffset,
|
||||||
|
|
Ładowanie…
Reference in New Issue