kopia lustrzana https://gitlab.com/eliggett/wfview
Add RIT function and other rigctl fixes
rodzic
81c9563f16
commit
247817077c
|
@ -675,6 +675,8 @@ void rigCommander::setRitValue(int ritValue)
|
|||
bool isNegative = false;
|
||||
payload.setRawData("\x21\x00", 2);
|
||||
|
||||
qDebug() << "Sending RIT" << ritValue;
|
||||
|
||||
if(ritValue < 0)
|
||||
{
|
||||
isNegative = true;
|
||||
|
@ -694,6 +696,7 @@ void rigCommander::setRitValue(int ritValue)
|
|||
payload.append(QByteArray(1,(char)isNegative));
|
||||
|
||||
prepDataAndSend(payload);
|
||||
qDebug() << "Sending RIT" << ritValue;
|
||||
}
|
||||
|
||||
void rigCommander::setMode(mode_info m)
|
||||
|
@ -2347,6 +2350,7 @@ void rigCommander::parseRegister21()
|
|||
break;
|
||||
ritHz = f.Hz*((payloadIn.at(4)=='\x01')?-1:1);
|
||||
emit haveRitFrequency(ritHz);
|
||||
state.set(RITVALUE, ritHz, false);
|
||||
break;
|
||||
case '\x01':
|
||||
// RIT on/off
|
||||
|
@ -2356,6 +2360,7 @@ void rigCommander::parseRegister21()
|
|||
} else {
|
||||
emit haveRitEnabled(false);
|
||||
}
|
||||
state.set(RITFUNC, (bool)payloadIn.at(02), false);
|
||||
break;
|
||||
case '\x02':
|
||||
// Delta TX setting on/off
|
||||
|
@ -2505,13 +2510,13 @@ void rigCommander::parseRegister16()
|
|||
case '\x43':
|
||||
state.set(TSQLFUNC, payloadIn.at(2) != 0, false);
|
||||
break;
|
||||
case '\44':
|
||||
case '\x44':
|
||||
state.set(COMPFUNC, payloadIn.at(2) != 0, false);
|
||||
break;
|
||||
case '\45':
|
||||
case '\x45':
|
||||
state.set(MONFUNC, payloadIn.at(2) != 0, false);
|
||||
break;
|
||||
case '\46':
|
||||
case '\x46':
|
||||
state.set(VOXFUNC, payloadIn.at(2) != 0, false);
|
||||
break;
|
||||
case '\x47':
|
||||
|
@ -2529,7 +2534,7 @@ void rigCommander::parseRegister16()
|
|||
state.set(SBKINFUNC, false, false);
|
||||
}
|
||||
break;
|
||||
case '\48': // Manual Notch
|
||||
case '\x48': // Manual Notch
|
||||
state.set(MNFUNC, payloadIn.at(2) != 0, false);
|
||||
break;
|
||||
default:
|
||||
|
@ -4469,6 +4474,27 @@ void rigCommander::stateUpdated()
|
|||
powerOff();
|
||||
}
|
||||
}
|
||||
break;
|
||||
case RITVALUE:
|
||||
if (i.value()._valid) {
|
||||
setRitValue(state.getInt32(RITVALUE));
|
||||
}
|
||||
getRitValue();
|
||||
break;
|
||||
case RITFUNC:
|
||||
if (i.value()._valid) {
|
||||
setRitEnable(state.getBool(RITFUNC));
|
||||
}
|
||||
getRitEnabled();
|
||||
break;
|
||||
|
||||
case SMETER:
|
||||
case POWERMETER:
|
||||
case ALCMETER:
|
||||
case COMPMETER:
|
||||
case VOLTAGEMETER:
|
||||
case CURRENTMETER:
|
||||
break;
|
||||
}
|
||||
}
|
||||
++i;
|
||||
|
|
61
rigctld.cpp
61
rigctld.cpp
|
@ -144,7 +144,7 @@ void rigCtlClient::socketReadyRead()
|
|||
continue;
|
||||
}
|
||||
|
||||
qDebug(logRigCtlD()) << sessionId << "command received" << commands;
|
||||
//qDebug(logRigCtlD()) << sessionId << "command received" << commands;
|
||||
|
||||
// We have a full line so process command.
|
||||
|
||||
|
@ -198,29 +198,42 @@ void rigCtlClient::socketReadyRead()
|
|||
response.append("1"); // rigctld protocol version
|
||||
response.append(QString("%1").arg(rigCaps.rigctlModel));
|
||||
response.append("0"); // Print something
|
||||
bandType lastBand;
|
||||
for (bandType band : rigCaps.bands)
|
||||
{
|
||||
if (band != lastBand)
|
||||
response.append(generateFreqRange(band));
|
||||
lastBand = band;
|
||||
}
|
||||
response.append("0 0 0 0 0 0 0");
|
||||
if (rigCaps.hasTransmit) {
|
||||
for (bandType band : rigCaps.bands)
|
||||
{
|
||||
if (band != lastBand)
|
||||
response.append(generateFreqRange(band));
|
||||
lastBand = band;
|
||||
}
|
||||
}
|
||||
response.append("0 0 0 0 0 0 0");
|
||||
|
||||
response.append("0x1ff 1");
|
||||
response.append("0x1ff 0");
|
||||
response.append(QString("0x%1 1").arg(getRadioModes(), 0, 16));
|
||||
response.append(QString("0x%1 10").arg(getRadioModes(), 0, 16));
|
||||
response.append(QString("0x%1 100").arg(getRadioModes(), 0, 16));
|
||||
response.append(QString("0x%1 1000").arg(getRadioModes(), 0, 16));
|
||||
response.append(QString("0x%1 2500").arg(getRadioModes(), 0, 16));
|
||||
response.append(QString("0x%1 5000").arg(getRadioModes(), 0, 16));
|
||||
response.append(QString("0x%1 6125").arg(getRadioModes(), 0, 16));
|
||||
response.append(QString("0x%1 8333").arg(getRadioModes(), 0, 16));
|
||||
response.append(QString("0x%1 10000").arg(getRadioModes(), 0, 16));
|
||||
response.append(QString("0x%1 12500").arg(getRadioModes(), 0, 16));
|
||||
response.append(QString("0x%1 25000").arg(getRadioModes(), 0, 16));
|
||||
response.append(QString("0x%1 100000").arg(getRadioModes(), 0, 16));
|
||||
response.append(QString("0x%1 250000").arg(getRadioModes(), 0, 16));
|
||||
response.append(QString("0x%1 1000000").arg(getRadioModes(), 0, 16));
|
||||
response.append("0 0");
|
||||
response.append("0x1e 2400");
|
||||
response.append("0x2 500");
|
||||
response.append("0x1 8000");
|
||||
response.append("0x1 2400");
|
||||
response.append("0x20 15000");
|
||||
response.append("0x20 8000");
|
||||
response.append("0x40 230000");
|
||||
response.append(QString("0x%1 1200").arg(getRadioModes(), 0, 16));
|
||||
response.append(QString("0x%1 2400").arg(getRadioModes(), 0, 16));
|
||||
response.append(QString("0x%1 3000").arg(getRadioModes(), 0, 16));
|
||||
response.append("0 0");
|
||||
response.append("9900");
|
||||
response.append("9900");
|
||||
|
@ -283,7 +296,7 @@ void rigCtlClient::socketReadyRead()
|
|||
response.append("0x7fffffff");
|
||||
response.append("0x7fffffff");
|
||||
*/
|
||||
response.append("done");
|
||||
//response.append("done");
|
||||
}
|
||||
|
||||
else if (command[0] == "f" || command[0] == "get_freq")
|
||||
|
@ -592,11 +605,13 @@ void rigCtlClient::socketReadyRead()
|
|||
if (longReply) {
|
||||
resp.append("RIT: ");
|
||||
}
|
||||
resp.append(QString("%1").arg(0));
|
||||
resp.append(QString("%1").arg(rigState->getInt32(RITVALUE)));
|
||||
response.append(resp);
|
||||
}
|
||||
else if (command[0] == "J" || command[0] == "set_rit")
|
||||
{
|
||||
qDebug(logRigCtlD()) << "set_rit:" << command[1];
|
||||
rigState->set(RITVALUE, command[1].toInt(),true);
|
||||
setCommand = true;
|
||||
}
|
||||
else if (command[0] == "y" || command[0] == "get_ant")
|
||||
|
@ -1074,12 +1089,11 @@ void rigCtlClient::socketReadyRead()
|
|||
if (str != "")
|
||||
sendData(QString("%1%2").arg(str).arg(sep));
|
||||
}
|
||||
|
||||
if (sep != "\n") {
|
||||
sendData(QString("\n"));
|
||||
}
|
||||
|
||||
sep = " ";
|
||||
sep = "\n";
|
||||
num = 0;
|
||||
|
||||
}
|
||||
|
@ -1100,7 +1114,7 @@ void rigCtlClient::closeSocket()
|
|||
|
||||
void rigCtlClient::sendData(QString data)
|
||||
{
|
||||
qDebug(logRigCtlD()) << "Sending:" << data;
|
||||
//qDebug(logRigCtlD()) << "Sending:" << data;
|
||||
if (socket != Q_NULLPTR && socket->isValid() && socket->isOpen())
|
||||
{
|
||||
socket->write(data.toLatin1());
|
||||
|
@ -1173,18 +1187,18 @@ QString rigCtlClient::getFilter(unsigned char mode, unsigned char filter) {
|
|||
QString rigCtlClient::getMode(unsigned char mode, bool datamode) {
|
||||
|
||||
QString ret;
|
||||
if (datamode) {
|
||||
ret="PKT";
|
||||
}
|
||||
|
||||
switch (mode) {
|
||||
case 0:
|
||||
if (datamode) { ret = "PKT"; }
|
||||
ret.append("LSB");
|
||||
break;
|
||||
case 1:
|
||||
if (datamode) { ret = "PKT"; }
|
||||
ret.append("USB");
|
||||
break;
|
||||
case 2:
|
||||
if (datamode) { ret = "PKT"; }
|
||||
ret.append("AM");
|
||||
break;
|
||||
case 3:
|
||||
|
@ -1194,6 +1208,7 @@ QString rigCtlClient::getMode(unsigned char mode, bool datamode) {
|
|||
ret.append("RTTY");
|
||||
break;
|
||||
case 5:
|
||||
if (datamode) { ret = "PKT"; }
|
||||
ret.append("FM");
|
||||
break;
|
||||
case 6:
|
||||
|
@ -1206,12 +1221,15 @@ QString rigCtlClient::getMode(unsigned char mode, bool datamode) {
|
|||
ret.append("RTTYR");
|
||||
break;
|
||||
case 12:
|
||||
if (datamode) { ret = "PKT"; }
|
||||
ret.append("USB");
|
||||
break;
|
||||
case 17:
|
||||
if (datamode) { ret = "PKT"; }
|
||||
ret.append("LSB");
|
||||
break;
|
||||
case 22:
|
||||
if (datamode) { ret = "PKT"; }
|
||||
ret.append("FM");
|
||||
break;
|
||||
}
|
||||
|
@ -1351,7 +1369,7 @@ QString rigCtlClient::generateFreqRange(bandType band)
|
|||
QString ret = "";
|
||||
|
||||
if (lowFreq > 0 && highFreq > 0) {
|
||||
ret = QString("%1 %2 0x%3 %4 %5 0x%6 0x%7").arg(lowFreq).arg(highFreq).arg(getRadioModes(),0,16).arg(-1).arg(-1).arg(0x16000003,0,16).arg(getAntennas(),0,16);
|
||||
ret = QString("%1.000000 %2.000000 0x%3 %4 %5 0x%6 0x%7").arg(lowFreq).arg(highFreq).arg(getRadioModes(),0,16).arg(-1).arg(-1).arg(0x16000003,0,16).arg(getAntennas(),0,16);
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
@ -1376,17 +1394,22 @@ quint64 rigCtlClient::getRadioModes()
|
|||
QString curMode = mode.name;
|
||||
if (!strcmp(curMode.toLocal8Bit(), mode_str[i].str))
|
||||
{
|
||||
//qDebug(logRigCtlD()) << "Found mode:" << mode.name << mode_str[i].mode;
|
||||
modes |= mode_str[i].mode;
|
||||
}
|
||||
if (rigCaps.hasDataModes) {
|
||||
curMode = "PKT" + mode.name;
|
||||
if (!strcmp(curMode.toLocal8Bit(), mode_str[i].str))
|
||||
{
|
||||
if (mode.name == "LSB" || mode.name == "USB" || mode.name == "FM" || mode.name == "AM")
|
||||
{
|
||||
// qDebug(logRigCtlD()) << "Found data mode:" << mode.name << mode_str[i].mode;
|
||||
modes |= mode_str[i].mode;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return modes;
|
||||
}
|
||||
|
||||
|
|
10
rigstate.h
10
rigstate.h
|
@ -16,7 +16,7 @@ enum stateTypes { NONE, VFOAFREQ, VFOBFREQ, CURRENTVFO, PTT, MODE, FILTER, DUPLE
|
|||
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,
|
||||
NBLEVEL, NBDEPTH, NBWIDTH, NRLEVEL, RIGINPUT, POWERONOFF,
|
||||
NBLEVEL, NBDEPTH, NBWIDTH, NRLEVEL, RIGINPUT, POWERONOFF, RITVALUE,
|
||||
RESUMEFUNC, TBURSTFUNC, TUNERFUNC, LOCKFUNC, SMETER, POWERMETER, SWRMETER, ALCMETER, COMPMETER, VOLTAGEMETER, CURRENTMETER
|
||||
};
|
||||
|
||||
|
@ -47,7 +47,7 @@ public:
|
|||
_mutex.unlock();
|
||||
}
|
||||
}
|
||||
void set(stateTypes s, quint32 x, bool u) {
|
||||
void set(stateTypes s, qint32 x, bool u) {
|
||||
if ((quint64)x != map[s]._value) {
|
||||
_mutex.lock();
|
||||
map[s]._value = (quint64)x;
|
||||
|
@ -110,9 +110,9 @@ public:
|
|||
}
|
||||
|
||||
bool getBool(stateTypes s) { return map[s]._value != 0; }
|
||||
quint8 getChar(stateTypes s) { return map[s]._value & 0xff; }
|
||||
quint16 getInt16(stateTypes s) { return map[s]._value != 0xffff; }
|
||||
quint32 getInt32(stateTypes s) { return map[s]._value != 0xffffffff; }
|
||||
quint8 getChar(stateTypes s) { return (quint8)map[s]._value; }
|
||||
quint16 getInt16(stateTypes s) { return (qint16)map[s]._value; }
|
||||
qint32 getInt32(stateTypes s) { return (qint32)map[s]._value; }
|
||||
quint64 getInt64(stateTypes s) { return map[s]._value; }
|
||||
duplexMode getDuplex(stateTypes s) { return(duplexMode)map[s]._value; }
|
||||
rigInput getInput(stateTypes s) { return(rigInput)map[s]._value; }
|
||||
|
|
Ładowanie…
Reference in New Issue