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->setToneSubVFOBtn->setEnabled(rig.hasSpecifyMainSubCmd);
|
||||
ui->setRptrSubVFOBtn->setEnabled(rig.hasSpecifyMainSubCmd);
|
||||
ui->quickSplitChk->setVisible(rig.hasQuickSplitCommand);
|
||||
}
|
||||
|
||||
void repeaterSetup::populateTones()
|
||||
|
@ -831,3 +832,8 @@ void repeaterSetup::on_setSplitRptrToneChk_clicked(bool checked)
|
|||
on_setToneSubVFOBtn_clicked();
|
||||
}
|
||||
}
|
||||
|
||||
void repeaterSetup::on_quickSplitChk_clicked(bool checked)
|
||||
{
|
||||
emit setQuickSplit(checked);
|
||||
}
|
||||
|
|
|
@ -35,6 +35,7 @@ signals:
|
|||
void getRptDuplexOffset();
|
||||
// Split:
|
||||
void getSplitModeEnabled();
|
||||
void setQuickSplit(bool qsOn);
|
||||
void getTransmitFrequency();
|
||||
// Use the duplexMode to communicate split.
|
||||
// void setSplitModeEnabled(bool splitEnabled);
|
||||
|
@ -108,6 +109,8 @@ private slots:
|
|||
|
||||
void on_setSplitRptrToneChk_clicked(bool checked);
|
||||
|
||||
void on_quickSplitChk_clicked(bool checked);
|
||||
|
||||
private:
|
||||
Ui::repeaterSetup *ui;
|
||||
freqt currentMainFrequency;
|
||||
|
|
|
@ -151,6 +151,13 @@
|
|||
</attribute>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QCheckBox" name="quickSplitChk">
|
||||
<property name="text">
|
||||
<string>QuickSplit</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
|
|
|
@ -935,6 +935,16 @@ void rigCommander::getDuplexMode()
|
|||
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)
|
||||
{
|
||||
QByteArray payload;
|
||||
|
@ -3523,6 +3533,8 @@ void rigCommander::determineRigCaps()
|
|||
rigCaps.transceiveCommand = QByteArrayLiteral("\x1a\x05\x00\x71");
|
||||
rigCaps.hasVFOMS = false;
|
||||
rigCaps.hasVFOAB = true;
|
||||
rigCaps.hasQuickSplitCommand = true;
|
||||
rigCaps.quickSplitCommand = QByteArrayLiteral("\x1a\x05\x00\x30");
|
||||
break;
|
||||
case modelR8600:
|
||||
rigCaps.modelName = QString("IC-R8600");
|
||||
|
@ -3596,6 +3608,8 @@ void rigCommander::determineRigCaps()
|
|||
rigCaps.hasVFOMS = true;
|
||||
rigCaps.hasVFOAB = true;
|
||||
rigCaps.hasAdvancedRptrToneCmds = true;
|
||||
rigCaps.hasQuickSplitCommand = true;
|
||||
rigCaps.quickSplitCommand = QByteArrayLiteral("\x1a\x05\x00\x43");
|
||||
break;
|
||||
case model910h:
|
||||
rigCaps.modelName = QString("IC-910H");
|
||||
|
@ -3650,6 +3664,8 @@ void rigCommander::determineRigCaps()
|
|||
rigCaps.transceiveCommand = QByteArrayLiteral("\x1a\x05\x00\x97");
|
||||
rigCaps.hasVFOMS = true;
|
||||
rigCaps.hasVFOAB = false;
|
||||
rigCaps.hasQuickSplitCommand = true;
|
||||
rigCaps.quickSplitCommand = QByteArrayLiteral("\x1a\x05\x00\x64");
|
||||
break;
|
||||
case model7610:
|
||||
rigCaps.modelName = QString("IC-7610");
|
||||
|
@ -3684,6 +3700,8 @@ void rigCommander::determineRigCaps()
|
|||
rigCaps.hasRXAntenna = true;
|
||||
rigCaps.transceiveCommand = QByteArrayLiteral("\x1a\x05\x01\x12");
|
||||
rigCaps.hasSpecifyMainSubCmd = true;
|
||||
rigCaps.hasQuickSplitCommand = true;
|
||||
rigCaps.quickSplitCommand = QByteArrayLiteral("\x1a\x05\x00\x33");
|
||||
rigCaps.hasVFOMS = true;
|
||||
rigCaps.hasVFOAB = false;
|
||||
break;
|
||||
|
@ -3719,6 +3737,8 @@ void rigCommander::determineRigCaps()
|
|||
rigCaps.hasRXAntenna = true;
|
||||
rigCaps.transceiveCommand = QByteArrayLiteral("\x1a\x05\x01\x55");
|
||||
rigCaps.hasSpecifyMainSubCmd = true;
|
||||
rigCaps.hasQuickSplitCommand = true;
|
||||
rigCaps.quickSplitCommand = QByteArrayLiteral("\x1a\x05\x01\x13");
|
||||
rigCaps.hasVFOMS = true;
|
||||
rigCaps.hasVFOAB = false;
|
||||
break;
|
||||
|
@ -3758,6 +3778,8 @@ void rigCommander::determineRigCaps()
|
|||
rigCaps.transceiveCommand = QByteArrayLiteral("\x1a\x05\x01\x31");
|
||||
rigCaps.hasVFOMS = false;
|
||||
rigCaps.hasVFOAB = true;
|
||||
rigCaps.hasQuickSplitCommand = true;
|
||||
rigCaps.quickSplitCommand = QByteArrayLiteral("\x1a\x05\x00\x45");
|
||||
break;
|
||||
case model7000:
|
||||
rigCaps.modelName = QString("IC-7000");
|
||||
|
@ -3784,6 +3806,8 @@ void rigCommander::determineRigCaps()
|
|||
rigCaps.transceiveCommand = QByteArrayLiteral("\x1a\x05\x00\x92");
|
||||
rigCaps.hasVFOMS = false;
|
||||
rigCaps.hasVFOAB = true;
|
||||
rigCaps.hasQuickSplitCommand = true;
|
||||
rigCaps.quickSplitCommand = QByteArrayLiteral("\x1a\x05\x00\x52");
|
||||
break;
|
||||
case model7410:
|
||||
rigCaps.modelName = QString("IC-7410");
|
||||
|
@ -3809,6 +3833,8 @@ void rigCommander::determineRigCaps()
|
|||
rigCaps.transceiveCommand = QByteArrayLiteral("\x1a\x05\x00\x40");
|
||||
rigCaps.hasVFOMS = false;
|
||||
rigCaps.hasVFOAB = true;
|
||||
rigCaps.hasQuickSplitCommand = true;
|
||||
rigCaps.quickSplitCommand = QByteArrayLiteral("\x1a\x05\x00\x11");
|
||||
break;
|
||||
case model7100:
|
||||
rigCaps.modelName = QString("IC-7100");
|
||||
|
@ -3840,6 +3866,8 @@ void rigCommander::determineRigCaps()
|
|||
rigCaps.transceiveCommand = QByteArrayLiteral("\x1a\x05\x00\x95");
|
||||
rigCaps.hasVFOMS = false;
|
||||
rigCaps.hasVFOAB = true;
|
||||
rigCaps.hasQuickSplitCommand = true;
|
||||
rigCaps.quickSplitCommand = QByteArrayLiteral("\x1a\x05\x00\x15");
|
||||
break;
|
||||
case model7200:
|
||||
rigCaps.modelName = QString("IC-7200");
|
||||
|
@ -3864,6 +3892,8 @@ void rigCommander::determineRigCaps()
|
|||
rigCaps.transceiveCommand = QByteArrayLiteral("\x1a\x03\x48");
|
||||
rigCaps.hasVFOMS = false;
|
||||
rigCaps.hasVFOAB = true;
|
||||
rigCaps.hasQuickSplitCommand = true;
|
||||
rigCaps.quickSplitCommand = QByteArrayLiteral("\x1a\x03\x18");
|
||||
break;
|
||||
case model7700:
|
||||
rigCaps.modelName = QString("IC-7700");
|
||||
|
@ -3892,6 +3922,8 @@ void rigCommander::determineRigCaps()
|
|||
rigCaps.transceiveCommand = QByteArrayLiteral("\x1a\x05\x00\x95");
|
||||
rigCaps.hasVFOMS = false;
|
||||
rigCaps.hasVFOAB = true;
|
||||
rigCaps.hasQuickSplitCommand = true;
|
||||
rigCaps.quickSplitCommand = QByteArrayLiteral("\x1a\x05\x00\x67");
|
||||
break;
|
||||
case model703:
|
||||
rigCaps.modelName = QString("IC-703");
|
||||
|
@ -4132,6 +4164,8 @@ void rigCommander::determineRigCaps()
|
|||
rigCaps.transceiveCommand = QByteArrayLiteral("\x1a\x05\x00\x00");
|
||||
rigCaps.hasVFOMS = true;
|
||||
rigCaps.hasVFOAB = false;
|
||||
rigCaps.hasQuickSplitCommand = true;
|
||||
rigCaps.quickSplitCommand = QByteArrayLiteral("\x1a\x05\x24");
|
||||
break;
|
||||
case model756proiii:
|
||||
rigCaps.modelName = QString("IC-756 Pro III");
|
||||
|
@ -4155,6 +4189,8 @@ void rigCommander::determineRigCaps()
|
|||
rigCaps.transceiveCommand = QByteArrayLiteral("\x1a\x05\x00\x00");
|
||||
rigCaps.hasVFOMS = true;
|
||||
rigCaps.hasVFOAB = false;
|
||||
rigCaps.hasQuickSplitCommand = true;
|
||||
rigCaps.quickSplitCommand = QByteArrayLiteral("\x1a\x05\x24");
|
||||
break;
|
||||
case model9100:
|
||||
rigCaps.modelName = QString("IC-9100");
|
||||
|
@ -4186,6 +4222,8 @@ void rigCommander::determineRigCaps()
|
|||
rigCaps.modes.insert(rigCaps.modes.end(), {createMode(modeDV, 0x17, "DV")});
|
||||
rigCaps.hasVFOMS = true;
|
||||
rigCaps.hasVFOAB = true;
|
||||
rigCaps.hasQuickSplitCommand = true;
|
||||
rigCaps.quickSplitCommand = QByteArrayLiteral("\x1a\x05\x00\x14");
|
||||
break;
|
||||
default:
|
||||
rigCaps.modelName = QString("IC-0x%1").arg(rigCaps.modelID, 2, 16);
|
||||
|
|
|
@ -137,6 +137,7 @@ public slots:
|
|||
// Repeater:
|
||||
void setDuplexMode(duplexMode dm);
|
||||
void getDuplexMode();
|
||||
void setQuickSplit(bool qsOn);
|
||||
void getTransmitFrequency();
|
||||
void setTone(rptrTone_t t);
|
||||
void setTSQL(rptrTone_t t);
|
||||
|
|
|
@ -153,6 +153,8 @@ struct rigCapabilities {
|
|||
bool hasVFOAB = true; // 0x07 [00||01]
|
||||
|
||||
bool hasAdvancedRptrToneCmds = false;
|
||||
bool hasQuickSplitCommand = false;
|
||||
QByteArray quickSplitCommand;
|
||||
|
||||
std::vector <unsigned char> attenuators;
|
||||
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
|
||||
// ......
|
||||
// it's currently only read into rigState.
|
||||
// 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->rpt, &repeaterSetup::setQuickSplit,
|
||||
[=](const bool &qsEnabled) {
|
||||
issueCmd(cmdSetQuickSplit, qsEnabled);
|
||||
});
|
||||
|
||||
|
||||
//connect(rpt, SIGNAL(setRptAccessMode(rptAccessTxRx)), rig, SLOT(setRptAccessMode(rptAccessTxRx)));
|
||||
connect(this, SIGNAL(setQuickSplit(bool)), rig, SLOT(setQuickSplit(bool)));
|
||||
|
||||
connect(this->rpt, &repeaterSetup::setRptAccessMode,
|
||||
[=](const rptrAccessData_t &rd) {
|
||||
|
@ -453,7 +447,7 @@ void wfmain::rigConnections()
|
|||
connect(this, SIGNAL(getTSQLEnabled()), rig, SLOT(getToneSqlEnabled()));
|
||||
|
||||
connect(this->rpt, &repeaterSetup::setTransmitFrequency,
|
||||
[=](const freqt &transmitFreq) { issueCmd(cmdSetFreq, transmitFreq);});
|
||||
[=](const freqt &transmitFreq) { issueCmdUniquePriority(cmdSetFreq, transmitFreq);});
|
||||
connect(this->rpt, &repeaterSetup::setTransmitMode,
|
||||
[=](const mode_info &transmitMode) { issueCmd(cmdSetMode, transmitMode);});
|
||||
connect(this->rpt, &repeaterSetup::selectVFO,
|
||||
|
@ -3825,6 +3819,12 @@ void wfmain::doCmd(commandtype cmddata)
|
|||
emit setRptDuplexOffset(f);
|
||||
break;
|
||||
}
|
||||
case cmdSetQuickSplit:
|
||||
{
|
||||
bool qsEnabled = (*std::static_pointer_cast<bool>(data));
|
||||
emit setQuickSplit(qsEnabled);
|
||||
break;
|
||||
}
|
||||
case cmdSetPTT:
|
||||
{
|
||||
bool pttrequest = (*std::static_pointer_cast<bool>(data));
|
||||
|
|
1
wfmain.h
1
wfmain.h
|
@ -111,6 +111,7 @@ signals:
|
|||
|
||||
// Repeater:
|
||||
void getDuplexMode();
|
||||
void setQuickSplit(bool qsOn);
|
||||
void getTone();
|
||||
void getTSQL();
|
||||
void getDTCS();
|
||||
|
|
|
@ -164,7 +164,7 @@ enum cmds {
|
|||
cmdGetTone, cmdGetTSQL, cmdGetToneEnabled, cmdGetTSQLEnabled, cmdGetDTCS,
|
||||
cmdSetToneEnabled, cmdSetTSQLEnabled, cmdGetRptAccessMode, cmdSetTone, cmdSetTSQL,
|
||||
cmdSetRptAccessMode, cmdSetRptDuplexOffset, cmdGetRptDuplexOffset,
|
||||
cmdSelVFO, cmdVFOSwap, cmdVFOEqualAB, cmdVFOEqualMS,
|
||||
cmdSelVFO, cmdVFOSwap, cmdVFOEqualAB, cmdVFOEqualMS, cmdSetQuickSplit,
|
||||
cmdGetPreamp, cmdGetAttenuator, cmdGetAntenna,
|
||||
cmdGetBandStackReg, cmdGetKeySpeed, cmdSetKeySpeed, cmdGetBreakMode, cmdSetBreakMode, cmdSendCW, cmdStopCW,
|
||||
cmdSetTime, cmdSetDate, cmdSetUTCOffset,
|
||||
|
|
Ładowanie…
Reference in New Issue