kopia lustrzana https://gitlab.com/eliggett/wfview
Properly handle different rigctld client versions
rodzic
247817077c
commit
60118169e1
109
rigcommander.cpp
109
rigcommander.cpp
|
@ -22,6 +22,7 @@
|
|||
|
||||
rigCommander::rigCommander()
|
||||
{
|
||||
state.set(SCOPEFUNC,true,false);
|
||||
}
|
||||
|
||||
rigCommander::~rigCommander()
|
||||
|
@ -675,8 +676,6 @@ void rigCommander::setRitValue(int ritValue)
|
|||
bool isNegative = false;
|
||||
payload.setRawData("\x21\x00", 2);
|
||||
|
||||
qDebug() << "Sending RIT" << ritValue;
|
||||
|
||||
if(ritValue < 0)
|
||||
{
|
||||
isNegative = true;
|
||||
|
@ -696,7 +695,6 @@ void rigCommander::setRitValue(int ritValue)
|
|||
payload.append(QByteArray(1,(char)isNegative));
|
||||
|
||||
prepDataAndSend(payload);
|
||||
qDebug() << "Sending RIT" << ritValue;
|
||||
}
|
||||
|
||||
void rigCommander::setMode(mode_info m)
|
||||
|
@ -1706,6 +1704,20 @@ void rigCommander::setModInputLevel(rigInput input, unsigned char level)
|
|||
}
|
||||
}
|
||||
|
||||
void rigCommander::setAfMute(bool gainOn)
|
||||
{
|
||||
QByteArray payload("\x1a\x09");
|
||||
payload.append((quint8)gainOn);
|
||||
prepDataAndSend(payload);
|
||||
}
|
||||
|
||||
void rigCommander::setDialLock(bool lockOn)
|
||||
{
|
||||
QByteArray payload("\x16\x50");
|
||||
payload.append((quint8)lockOn);
|
||||
prepDataAndSend(payload);
|
||||
}
|
||||
|
||||
void rigCommander::getModInputLevel(rigInput input)
|
||||
{
|
||||
switch(input)
|
||||
|
@ -1739,6 +1751,18 @@ void rigCommander::getModInputLevel(rigInput input)
|
|||
}
|
||||
}
|
||||
|
||||
void rigCommander::getAfMute()
|
||||
{
|
||||
QByteArray payload("\x1a\x09");
|
||||
prepDataAndSend(payload);
|
||||
}
|
||||
|
||||
void rigCommander::getDialLock()
|
||||
{
|
||||
QByteArray payload("\x16\x50");
|
||||
prepDataAndSend(payload);
|
||||
}
|
||||
|
||||
QByteArray rigCommander::getUSBAddr()
|
||||
{
|
||||
QByteArray payload;
|
||||
|
@ -2378,6 +2402,8 @@ void rigCommander::parseATU()
|
|||
// [1]: 0x01
|
||||
// [2]: 0 = off, 0x01 = on, 0x02 = tuning in-progress
|
||||
emit haveATUStatus((unsigned char) payloadIn[2]);
|
||||
// This is a bool so any non-zero will mean enabled.
|
||||
state.set(TUNERFUNC, (bool)payloadIn[2], false);
|
||||
}
|
||||
|
||||
void rigCommander::parsePTT()
|
||||
|
@ -2438,6 +2464,8 @@ void rigCommander::parseRegisters1A()
|
|||
case '\x07':
|
||||
// IP+ status
|
||||
break;
|
||||
case '\x09':
|
||||
state.set(MUTEFUNC, (quint8)payloadIn[2], false);
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
@ -2537,6 +2565,9 @@ void rigCommander::parseRegister16()
|
|||
case '\x48': // Manual Notch
|
||||
state.set(MNFUNC, payloadIn.at(2) != 0, false);
|
||||
break;
|
||||
case '\x50': // Dial lock
|
||||
state.set(LOCKFUNC, payloadIn.at(2) != 0, false);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
@ -4482,12 +4513,12 @@ void rigCommander::stateUpdated()
|
|||
getRitValue();
|
||||
break;
|
||||
case RITFUNC:
|
||||
if (i.value()._valid) {
|
||||
setRitEnable(state.getBool(RITFUNC));
|
||||
}
|
||||
getRitEnabled();
|
||||
break;
|
||||
|
||||
if (i.value()._valid) {
|
||||
setRitEnable(state.getBool(RITFUNC));
|
||||
}
|
||||
getRitEnabled();
|
||||
break;
|
||||
// All meters can only be updated from the rig end.
|
||||
case SMETER:
|
||||
case POWERMETER:
|
||||
case ALCMETER:
|
||||
|
@ -4495,6 +4526,66 @@ void rigCommander::stateUpdated()
|
|||
case VOLTAGEMETER:
|
||||
case CURRENTMETER:
|
||||
break;
|
||||
case AGC:
|
||||
break;
|
||||
case MODINPUT:
|
||||
break;
|
||||
case FAGCFUNC:
|
||||
break;
|
||||
case AIPFUNC:
|
||||
break;
|
||||
case APFFUNC:
|
||||
break;
|
||||
case RFFUNC: // Should this set RF output power to 0?
|
||||
break;
|
||||
case AROFUNC:
|
||||
break;
|
||||
case MUTEFUNC:
|
||||
if (i.value()._valid) {
|
||||
setAfMute(state.getBool(MUTEFUNC));
|
||||
}
|
||||
getAfMute();
|
||||
break;
|
||||
case VSCFUNC:
|
||||
break;
|
||||
case REVFUNC:
|
||||
break;
|
||||
case SQLFUNC:
|
||||
break;
|
||||
case ABMFUNC:
|
||||
break;
|
||||
case BCFUNC:
|
||||
break;
|
||||
case MBCFUNC:
|
||||
break;
|
||||
case AFCFUNC:
|
||||
break;
|
||||
case SATMODEFUNC:
|
||||
break;
|
||||
case NBLEVEL:
|
||||
break;
|
||||
case NBDEPTH:
|
||||
break;
|
||||
case NBWIDTH:
|
||||
break;
|
||||
case NRLEVEL:
|
||||
break;
|
||||
case RESUMEFUNC:
|
||||
break;
|
||||
case TBURSTFUNC:
|
||||
break;
|
||||
case TUNERFUNC:
|
||||
if (i.value()._valid) {
|
||||
setATU(state.getBool(TUNERFUNC));
|
||||
}
|
||||
getATUStatus();
|
||||
break;
|
||||
case LOCKFUNC:
|
||||
if (i.value()._valid) {
|
||||
setDialLock(state.getBool(LOCKFUNC));
|
||||
}
|
||||
getDialLock();
|
||||
break;
|
||||
}
|
||||
}
|
||||
++i;
|
||||
|
|
|
@ -184,6 +184,8 @@ public slots:
|
|||
void getACCGain(unsigned char ab);
|
||||
void getModInput(bool dataOn);
|
||||
void getModInputLevel(rigInput input);
|
||||
void getAfMute();
|
||||
void getDialLock();
|
||||
|
||||
// Set Levels:
|
||||
void setSquelch(unsigned char level);
|
||||
|
@ -204,6 +206,8 @@ public slots:
|
|||
void setAntiVoxGain(unsigned char gain);
|
||||
void setModInput(rigInput input, bool dataOn);
|
||||
void setModInputLevel(rigInput input, unsigned char level);
|
||||
void setAfMute(bool muteOn);
|
||||
void setDialLock(bool lockOn);
|
||||
|
||||
// NB, NR, IP+:
|
||||
void setIPP(bool enabled);
|
||||
|
|
17
rigctld.cpp
17
rigctld.cpp
|
@ -185,6 +185,7 @@ void rigCtlClient::socketReadyRead()
|
|||
|
||||
if (command[0] == 0xf0 || command[0] == "chk_vfo")
|
||||
{
|
||||
chkVfoEecuted = true;
|
||||
QString resp;
|
||||
if (longReply) {
|
||||
resp.append(QString("ChkVFO: "));
|
||||
|
@ -296,7 +297,20 @@ void rigCtlClient::socketReadyRead()
|
|||
response.append("0x7fffffff");
|
||||
response.append("0x7fffffff");
|
||||
*/
|
||||
//response.append("done");
|
||||
if (chkVfoEecuted) {
|
||||
response.append(QString("vfo_ops=0x%1").arg(255, 0, 16));
|
||||
response.append(QString("ptt_type=0x%1").arg(rigCaps.hasTransmit, 0, 16));
|
||||
response.append(QString("has_set_vfo=0x%1").arg(1, 0, 16));
|
||||
response.append(QString("has_get_vfo=0x%1").arg(1, 0, 16));
|
||||
response.append(QString("has_set_freq=0x%1").arg(1, 0, 16));
|
||||
response.append(QString("has_get_freq=0x%1").arg(1, 0, 16));
|
||||
response.append(QString("has_set_conf=0x%1").arg(1, 0, 16));
|
||||
response.append(QString("has_get_conf=0x%1").arg(1, 0, 16));
|
||||
response.append(QString("has_power2mW=0x%1").arg(1, 0, 16));
|
||||
response.append(QString("has_mW2power=0x%1").arg(1, 0, 16));
|
||||
response.append(QString("timeout=0x%1").arg(1000, 0, 16));
|
||||
response.append("done");
|
||||
}
|
||||
}
|
||||
|
||||
else if (command[0] == "f" || command[0] == "get_freq")
|
||||
|
@ -610,7 +624,6 @@ void rigCtlClient::socketReadyRead()
|
|||
}
|
||||
else if (command[0] == "J" || command[0] == "set_rit")
|
||||
{
|
||||
qDebug(logRigCtlD()) << "set_rit:" << command[1];
|
||||
rigState->set(RITVALUE, command[1].toInt(),true);
|
||||
setCommand = true;
|
||||
}
|
||||
|
|
|
@ -402,6 +402,7 @@ private:
|
|||
rigCapabilities rigCaps;
|
||||
rigstate* rigState = Q_NULLPTR;
|
||||
rigCtlD* parent;
|
||||
bool chkVfoEecuted=false;
|
||||
QString getMode(unsigned char mode, bool datamode);
|
||||
unsigned char getMode(QString modeString);
|
||||
QString getFilter(unsigned char mode, unsigned char filter);
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
#include "rigidentities.h"
|
||||
|
||||
// Meters at the end as they are ALWAYS updated from the rig!
|
||||
enum stateTypes { NONE, VFOAFREQ, VFOBFREQ, CURRENTVFO, PTT, MODE, FILTER, DUPLEX, DATAMODE, ANTENNA, RXANTENNA, CTCSS, TSQL, DTCS, CSQL,
|
||||
enum stateTypes { VFOAFREQ, VFOBFREQ, CURRENTVFO, PTT, MODE, FILTER, DUPLEX, DATAMODE, ANTENNA, RXANTENNA, CTCSS, TSQL, DTCS, CSQL,
|
||||
PREAMP, AGC, ATTENUATOR, MODINPUT, AFGAIN, RFGAIN, SQUELCH, TXPOWER, MICGAIN, COMPLEVEL, MONITORLEVEL, VOXGAIN, ANTIVOXGAIN,
|
||||
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,
|
||||
|
|
Ładowanie…
Reference in New Issue