kopia lustrzana https://gitlab.com/eliggett/wfview
Added quicksplit checkbox
rodzic
bbcc0e4842
commit
156f45d42f
|
@ -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()
|
||||||
|
@ -831,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>
|
||||||
|
|
|
@ -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;
|
||||||
|
@ -3523,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");
|
||||||
|
@ -3596,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");
|
||||||
|
@ -3650,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");
|
||||||
|
@ -3684,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;
|
||||||
|
@ -3719,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;
|
||||||
|
@ -3758,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");
|
||||||
|
@ -3784,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");
|
||||||
|
@ -3809,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");
|
||||||
|
@ -3840,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");
|
||||||
|
@ -3864,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");
|
||||||
|
@ -3892,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");
|
||||||
|
@ -4132,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");
|
||||||
|
@ -4155,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");
|
||||||
|
@ -4186,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,
|
||||||
|
@ -3825,6 +3819,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