kopia lustrzana https://gitlab.com/eliggett/wfview
Continued repeater status work...
rodzic
17d6493338
commit
d503df03bd
|
@ -1207,8 +1207,9 @@ void rigCommander::setRptAccessMode(rptAccessTxRx ratr)
|
|||
void rigCommander::setRptAccessMode(rptrAccessData_t rd)
|
||||
{
|
||||
QByteArray payload;
|
||||
if(rigCaps.model==model9700)
|
||||
if(rigCaps.hasAdvancedRptrToneCmds)
|
||||
{
|
||||
// IC-9700 basically
|
||||
payload.setRawData("\x16\x5D", 2);
|
||||
payload.append((unsigned char)rd.accessMode);
|
||||
} else {
|
||||
|
@ -1224,8 +1225,15 @@ void rigCommander::setRptAccessMode(rptrAccessData_t rd)
|
|||
{
|
||||
case ratrNN:
|
||||
// No tone at all
|
||||
payload.append("\x16\x42\x00", 3); // TONE off
|
||||
//payload.append("\x16\x43\x00", 3); // TSQL off
|
||||
if(state.getBool(TONEFUNC))
|
||||
{
|
||||
payload.append("\x16\x42\x00", 3); // TONE off
|
||||
} else if (state.getBool(TSQLFUNC)) {
|
||||
payload.append("\x16\x43\x00", 3); // TSQL off
|
||||
} else {
|
||||
// ?? turn off TSQL ??
|
||||
payload.append("\x16\x43\x00", 3); // TSQL off
|
||||
}
|
||||
break;
|
||||
case ratrTN:
|
||||
// TONE on transmit only
|
||||
|
@ -3567,6 +3575,7 @@ void rigCommander::determineRigCaps()
|
|||
rigCaps.transceiveCommand = QByteArrayLiteral("\x1a\x05\x01\x27");
|
||||
rigCaps.hasVFOMS = true;
|
||||
rigCaps.hasVFOAB = true;
|
||||
rigCaps.hasAdvancedRptrToneCmds = true;
|
||||
break;
|
||||
case model910h:
|
||||
rigCaps.modelName = QString("IC-910H");
|
||||
|
@ -4821,7 +4830,7 @@ void rigCommander::setToneSql(bool enabled)
|
|||
prepDataAndSend(payload);
|
||||
}
|
||||
|
||||
void rigCommander::getToneSql()
|
||||
void rigCommander::getToneSqlEnabled()
|
||||
{
|
||||
QByteArray payload;
|
||||
payload.setRawData("\x16\x43", 2);
|
||||
|
@ -5199,7 +5208,7 @@ void rigCommander::stateUpdated()
|
|||
if (i.value()._valid) {
|
||||
setToneSql(state.getBool(TSQLFUNC));
|
||||
}
|
||||
getToneSql();
|
||||
getToneSqlEnabled();
|
||||
break;
|
||||
case COMPFUNC:
|
||||
if (i.value()._valid) {
|
||||
|
|
|
@ -112,7 +112,7 @@ public slots:
|
|||
void setToneEnabled(bool enabled);
|
||||
void getToneEnabled();
|
||||
void setToneSql(bool enabled);
|
||||
void getToneSql();
|
||||
void getToneSqlEnabled();
|
||||
void setCompressor(bool enabled);
|
||||
void getCompressor();
|
||||
void setMonitor(bool enabled);
|
||||
|
|
|
@ -152,6 +152,8 @@ struct rigCapabilities {
|
|||
bool hasVFOMS = false;
|
||||
bool hasVFOAB = true; // 0x07 [00||01]
|
||||
|
||||
bool hasAdvancedRptrToneCmds = false;
|
||||
|
||||
std::vector <unsigned char> attenuators;
|
||||
std::vector <unsigned char> preamps;
|
||||
std::vector <unsigned char> antennas;
|
||||
|
|
41
wfmain.cpp
41
wfmain.cpp
|
@ -399,8 +399,30 @@ void wfmain::rigConnections()
|
|||
connect(this->rpt, &repeaterSetup::setTSQL,
|
||||
[=](const rptrTone_t &t) { issueCmd(cmdSetTSQL, t);});
|
||||
|
||||
// TODO: struct with the DCS components and command queue entry
|
||||
connect(rpt, SIGNAL(setDTCS(quint16,bool,bool)), rig, SLOT(setDTCS(quint16,bool,bool)));
|
||||
connect(rpt, SIGNAL(getRptAccessMode()), rig, SLOT(getRptAccessMode()));
|
||||
|
||||
//connect(rpt, SIGNAL(getRptAccessMode()), rig, SLOT(getRptAccessMode()));
|
||||
connect(this->rpt, &repeaterSetup::getRptAccessMode,
|
||||
[=]() {
|
||||
if(rigCaps.hasAdvancedRptrToneCmds) {
|
||||
issueDelayedCommand(cmdGetRptAccessMode);
|
||||
} else {
|
||||
issueDelayedCommand(cmdGetToneEnabled);
|
||||
issueDelayedCommand(cmdGetTSQLEnabled);
|
||||
}
|
||||
});
|
||||
|
||||
// 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(rpt, SIGNAL(setRptAccessMode(rptAccessTxRx)), rig, SLOT(setRptAccessMode(rptAccessTxRx)));
|
||||
|
||||
|
@ -422,6 +444,9 @@ void wfmain::rigConnections()
|
|||
this->splitModeEnabled = false;
|
||||
});
|
||||
|
||||
connect(this, SIGNAL(getToneEnabled()), rig, SLOT(getToneEnabled()));
|
||||
connect(this, SIGNAL(getTSQLEnabled()), rig, SLOT(getToneSqlEnabled()));
|
||||
|
||||
connect(this->rpt, &repeaterSetup::setTransmitFrequency,
|
||||
[=](const freqt &transmitFreq) { issueCmd(cmdSetFreq, transmitFreq);});
|
||||
connect(this->rpt, &repeaterSetup::setTransmitMode,
|
||||
|
@ -3951,7 +3976,19 @@ void wfmain::doCmd(cmds cmd)
|
|||
emit getDTCS();
|
||||
break;
|
||||
case cmdGetRptAccessMode:
|
||||
emit getRptAccessMode();
|
||||
if(rigCaps.hasAdvancedRptrToneCmds) {
|
||||
emit getRptAccessMode();
|
||||
} else {
|
||||
// Get both TONE and TSQL enabled status
|
||||
emit getToneEnabled();
|
||||
issueDelayedCommand(cmdGetTSQLEnabled);
|
||||
}
|
||||
break;
|
||||
case cmdGetToneEnabled:
|
||||
emit getToneEnabled();
|
||||
break;
|
||||
case cmdGetTSQLEnabled:
|
||||
emit getTSQLEnabled();
|
||||
break;
|
||||
case cmdDispEnable:
|
||||
emit scopeDisplayEnable();
|
||||
|
|
2
wfmain.h
2
wfmain.h
|
@ -118,6 +118,8 @@ signals:
|
|||
void setRepeaterAccessMode(rptrAccessData_t rd);
|
||||
void setTone(rptrTone_t t);
|
||||
void setTSQL(rptrTone_t t);
|
||||
void getToneEnabled();
|
||||
void getTSQLEnabled();
|
||||
void setRptDuplexOffset(freqt f);
|
||||
void getRptDuplexOffset();
|
||||
|
||||
|
|
|
@ -153,7 +153,7 @@ enum cmds {
|
|||
cmdGetCurrentModLevel, cmdStartRegularPolling, cmdStopRegularPolling, cmdQueNormalSpeed,
|
||||
cmdGetVdMeter, cmdGetIdMeter, cmdGetSMeter, cmdGetCenterMeter, cmdGetPowerMeter,
|
||||
cmdGetSWRMeter, cmdGetALCMeter, cmdGetCompMeter, cmdGetTxRxMeter,
|
||||
cmdGetTone, cmdGetTSQL, cmdGetDTCS, cmdGetRptAccessMode, cmdSetTone, cmdSetTSQL, cmdSetRptAccessMode, cmdSetRptDuplexOffset, cmdGetRptDuplexOffset,
|
||||
cmdGetTone, cmdGetTSQL, cmdGetToneEnabled, cmdGetTSQLEnabled, cmdGetDTCS, cmdGetRptAccessMode, cmdSetTone, cmdSetTSQL, cmdSetRptAccessMode, cmdSetRptDuplexOffset, cmdGetRptDuplexOffset,
|
||||
cmdSelVFO, cmdVFOSwap, cmdVFOEqualAB, cmdVFOEqualMS,
|
||||
cmdGetPreamp, cmdGetAttenuator, cmdGetAntenna,
|
||||
cmdGetBandStackReg, cmdGetKeySpeed, cmdSetKeySpeed, cmdGetBreakMode, cmdSetBreakMode, cmdSendCW, cmdStopCW,
|
||||
|
|
Ładowanie…
Reference in New Issue