From 1fe19166f34c29c51fc51050570a1ae2b3204e38 Mon Sep 17 00:00:00 2001 From: Phil Taylor Date: Sat, 26 Nov 2022 19:01:16 +0000 Subject: [PATCH] Add some more commands --- rigcommander.cpp | 41 +++++++++++++++++++++++++---------------- rigctld.cpp | 29 ++++++++--------------------- rigstate.h | 3 +-- 3 files changed, 34 insertions(+), 39 deletions(-) diff --git a/rigcommander.cpp b/rigcommander.cpp index e2c23d7..965674b 100644 --- a/rigcommander.cpp +++ b/rigcommander.cpp @@ -1507,6 +1507,7 @@ void rigCommander::parseLevels() break; case '\x0C': // CW Keying Speed - ignore for now + state.set(KEYSPD, level, false); break; case '\x0D': // Notch filder setting - ignore for now @@ -4874,6 +4875,22 @@ void rigCommander::stateUpdated() } break; } + case PBTIN: { + if (i.value()._valid) { + QByteArray payload("\x14\x07"); + payload.append(bcdEncodeInt(state.getChar(PBTIN))); + prepDataAndSend(payload); + } + break; + } + case PBTOUT: { + if (i.value()._valid) { + QByteArray payload("\x14\x08"); + payload.append(bcdEncodeInt(state.getChar(PBTOUT))); + prepDataAndSend(payload); + } + break; + } case CWPITCH: { if (i.value()._valid) { QByteArray payload("\x14\x09"); @@ -4882,6 +4899,14 @@ void rigCommander::stateUpdated() } break; } + case KEYSPD: { + if (i.value()._valid) { + QByteArray payload("\x14\x0c"); + payload.append(bcdEncodeInt(state.getChar(KEYSPD))); + prepDataAndSend(payload); + } + break; + } case NOTCHF: { if (i.value()._valid) { QByteArray payload("\x14\x0d"); @@ -4897,22 +4922,6 @@ void rigCommander::stateUpdated() getIFShift(); break; } - case PBTIN: { - if (i.value()._valid) { - QByteArray payload("\x14\x07"); - payload.append(bcdEncodeInt(state.getChar(PBTIN))); - prepDataAndSend(payload); - } - break; - } - case PBTOUT: { - if (i.value()._valid) { - QByteArray payload("\x14\x08"); - payload.append(bcdEncodeInt(state.getChar(PBTOUT))); - prepDataAndSend(payload); - } - break; - } case APF: break; case BAL: diff --git a/rigctld.cpp b/rigctld.cpp index 29c3761..416aac6 100644 --- a/rigctld.cpp +++ b/rigctld.cpp @@ -144,7 +144,7 @@ void rigCtlClient::socketReadyRead() continue; } - //qDebug(logRigCtlD()) << sessionId << "RX:" << commands; + qDebug(logRigCtlD()) << sessionId << "RX:" << commands; // We have a full line so process command. @@ -456,7 +456,7 @@ void rigCtlClient::socketReadyRead() } else if (command[0] == "v" || command[0] == "v\nv" || command[0] == "get_vfo") { - QString resp; + QString resp; if (longReply) { resp.append("VFO: "); } @@ -475,7 +475,7 @@ void rigCtlClient::socketReadyRead() } else if (command.length() > 1 && (command[0] == "V" || command[0] == "set_vfo")) { - setCommand = true; + setCommand = true; if (command[1] == "?") { response.append("set_vfo: ?"); response.append("VFOA"); @@ -499,7 +499,7 @@ void rigCtlClient::socketReadyRead() } else if (command[0] == "s" || command[0] == "get_split_vfo") { - + if (longReply) { response.append(QString("Split: %1").arg(rigState->getChar(DUPLEX))); } @@ -625,7 +625,7 @@ void rigCtlClient::socketReadyRead() response.append(QString("%1").arg(getMode(rigState->getChar(MODE), rigState->getBool(DATAMODE)))); response.append(QString("%1").arg(rigState->getUInt16(PASSBAND))); } - qDebug(logRigCtlD()) << QString("get_mode: %1 passband: %2").arg(getMode(rigState->getChar(MODE), rigState->getBool(DATAMODE))).arg(rigState->getUInt16(PASSBAND)); + //qDebug(logRigCtlD()) << QString("get_mode: %1 passband: %2").arg(getMode(rigState->getChar(MODE), rigState->getBool(DATAMODE))).arg(rigState->getUInt16(PASSBAND)); } else if (command[0] == "M" || command[0] == "set_mode") { @@ -674,19 +674,6 @@ void rigCtlClient::socketReadyRead() rigState->set(PASSBAND, passband, true); } } - else if (command[0] == "s" || command[0] == "get_split_vfo") - { - if (longReply) { - response.append(QString("Split: 1")); - response.append(QString("TX VFO: VFOB")); - } - else - { - response.append("1"); - response.append("VFOB"); - } - - } else if (command[0] == "j" || command[0] == "get_rit") { QString resp; @@ -817,7 +804,7 @@ void rigCtlClient::socketReadyRead() resp.append(QString("%1").arg((float)rigState->getChar(BAL) / 255.0)); } else if (command[1] == "KEYSPD") { - resp.append(QString("%1").arg(rigState->getChar(KEYSPD))); + resp.append(QString("%1").arg(rigState->getChar(KEYSPD)/5.1)); } else { resp.append(QString("%1").arg(value)); @@ -910,8 +897,8 @@ void rigCtlClient::socketReadyRead() rigState->set(BAL, quint8(value), true); } else if (command[1] == "KEYSPD") { - value = command[2].toInt(); - rigState->set(IF, quint8(value), true); + value = command[2].toInt() * 5.1; + rigState->set(KEYSPD, quint8(value), true); } qInfo(logRigCtlD()) << "Setting:" << command[1] << command[2] << value; diff --git a/rigstate.h b/rigstate.h index 031a37c..478f471 100644 --- a/rigstate.h +++ b/rigstate.h @@ -13,12 +13,11 @@ // Meters at the end as they are ALWAYS updated from the rig! enum stateTypes { VFOAFREQ, VFOBFREQ, CURRENTVFO, PTT, MODE, FILTER, PASSBAND, DUPLEX, DATAMODE, ANTENNA, RXANTENNA, CTCSS, TSQL, DTCS, CSQL, - PREAMP, AGC, ATTENUATOR, MODINPUT, AFGAIN, RFGAIN, SQUELCH, RFPOWER, MICGAIN, COMPLEVEL, MONITORLEVEL, BAL, + PREAMP, AGC, ATTENUATOR, MODINPUT, AFGAIN, RFGAIN, SQUELCH, RFPOWER, MICGAIN, COMPLEVEL, MONITORLEVEL, BAL, KEYSPD, VOXGAIN, ANTIVOXGAIN, CWPITCH, NOTCHF, IF, PBTIN, PBTOUT, APF, NR, NB, NBDEPTH, NBWIDTH, RIGINPUT, POWERONOFF, RITVALUE, FAGCFUNC, NBFUNC, COMPFUNC, VOXFUNC, TONEFUNC, TSQLFUNC, SBKINFUNC, FBKINFUNC, ANFFUNC, NRFUNC, AIPFUNC, APFFUNC, MONFUNC, MNFUNC,RFFUNC, AROFUNC, MUTEFUNC, VSCFUNC, REVFUNC, SQLFUNC, ABMFUNC, BCFUNC, MBCFUNC, RITFUNC, AFCFUNC, SATMODEFUNC, SCOPEFUNC, RESUMEFUNC, TBURSTFUNC, TUNERFUNC, LOCKFUNC, SMETER, POWERMETER, SWRMETER, ALCMETER, COMPMETER, VOLTAGEMETER, CURRENTMETER, - KEYSPD }; struct value {