kopia lustrzana https://gitlab.com/eliggett/wfview
Add more commands to rigctld
rodzic
f7c532007e
commit
d47b9be7e1
|
@ -1484,13 +1484,16 @@ void rigCommander::parseLevels()
|
|||
emit haveTPBFInner(level);
|
||||
else
|
||||
emit haveIFShift(level);
|
||||
state.set(PBTIN, level, false);
|
||||
break;
|
||||
case '\x08':
|
||||
// Twin BPF Outer
|
||||
emit haveTPBFOuter(level);
|
||||
state.set(PBTOUT, level, false);
|
||||
break;
|
||||
case '\x09':
|
||||
// CW Pitch - ignore for now
|
||||
state.set(CWPITCH, level, false);
|
||||
break;
|
||||
case '\x0A':
|
||||
// TX RF level
|
||||
|
@ -1507,6 +1510,7 @@ void rigCommander::parseLevels()
|
|||
break;
|
||||
case '\x0D':
|
||||
// Notch filder setting - ignore for now
|
||||
state.set(NOTCHF, level, false);
|
||||
break;
|
||||
case '\x0E':
|
||||
// compressor level
|
||||
|
@ -1515,6 +1519,7 @@ void rigCommander::parseLevels()
|
|||
break;
|
||||
case '\x12':
|
||||
// NB level - ignore for now
|
||||
state.set(NB, level, false);
|
||||
break;
|
||||
case '\x15':
|
||||
// monitor level
|
||||
|
@ -4840,13 +4845,62 @@ void rigCommander::stateUpdated()
|
|||
break;
|
||||
case SATMODEFUNC:
|
||||
break;
|
||||
case NBLEVEL:
|
||||
break;
|
||||
case NBDEPTH:
|
||||
break;
|
||||
case NBWIDTH:
|
||||
break;
|
||||
case NRLEVEL:
|
||||
case NB:
|
||||
break;
|
||||
case NR: {
|
||||
if (i.value()._valid) {
|
||||
QByteArray payload("\x14\x06");
|
||||
payload.append(bcdEncodeInt(state.getChar(NR)));
|
||||
prepDataAndSend(payload);
|
||||
}
|
||||
break;
|
||||
}
|
||||
case CWPITCH: {
|
||||
if (i.value()._valid) {
|
||||
QByteArray payload("\x14\x09");
|
||||
payload.append(bcdEncodeInt(state.getChar(CWPITCH)));
|
||||
prepDataAndSend(payload);
|
||||
}
|
||||
break;
|
||||
}
|
||||
case NOTCHF: {
|
||||
if (i.value()._valid) {
|
||||
QByteArray payload("\x14\x0d");
|
||||
payload.append(bcdEncodeInt(state.getChar(NOTCHF)));
|
||||
prepDataAndSend(payload);
|
||||
}
|
||||
break;
|
||||
}
|
||||
case IF: {
|
||||
if (i.value()._valid) {
|
||||
setIFShift(state.getChar(IF));
|
||||
}
|
||||
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:
|
||||
break;
|
||||
case RESUMEFUNC:
|
||||
break;
|
||||
|
|
241
rigctld.cpp
241
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.
|
||||
|
||||
|
@ -195,6 +195,8 @@ void rigCtlClient::socketReadyRead()
|
|||
}
|
||||
else if (command[0] == "dump_state")
|
||||
{
|
||||
quint64 modes = getRadioModes();
|
||||
|
||||
// rigctld protocol version
|
||||
response.append("1");
|
||||
// Radio model
|
||||
|
@ -212,7 +214,7 @@ void rigCtlClient::socketReadyRead()
|
|||
highFreq = band.highFreq;
|
||||
}
|
||||
response.append(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(0x16000000, 0, 16).arg(getAntennas(), 0, 16));
|
||||
.arg(modes, 0, 16).arg(-1).arg(-1).arg(0x16000000, 0, 16).arg(getAntennas(), 0, 16));
|
||||
response.append("0 0 0 0 0 0 0");
|
||||
|
||||
if (rigCaps.hasTransmit) {
|
||||
|
@ -220,29 +222,63 @@ void rigCtlClient::socketReadyRead()
|
|||
for (bandType band : rigCaps.bands)
|
||||
{
|
||||
response.append(QString("%1.000000 %2.000000 0x%3 %4 %5 0x%6 0x%7").arg(band.lowFreq).arg(band.highFreq)
|
||||
.arg(getRadioModes(), 0, 16).arg(2000).arg(100000).arg(0x16000000, 0, 16).arg(getAntennas(), 0, 16));
|
||||
.arg(modes, 0, 16).arg(2000).arg(100000).arg(0x16000000, 0, 16).arg(getAntennas(), 0, 16));
|
||||
}
|
||||
}
|
||||
response.append("0 0 0 0 0 0 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(QString("0x%1 1").arg(modes, 0, 16));
|
||||
response.append(QString("0x%1 10").arg(modes, 0, 16));
|
||||
response.append(QString("0x%1 100").arg(modes, 0, 16));
|
||||
response.append(QString("0x%1 1000").arg(modes, 0, 16));
|
||||
response.append(QString("0x%1 2500").arg(modes, 0, 16));
|
||||
response.append(QString("0x%1 5000").arg(modes, 0, 16));
|
||||
response.append(QString("0x%1 6125").arg(modes, 0, 16));
|
||||
response.append(QString("0x%1 8333").arg(modes, 0, 16));
|
||||
response.append(QString("0x%1 10000").arg(modes, 0, 16));
|
||||
response.append(QString("0x%1 12500").arg(modes, 0, 16));
|
||||
response.append(QString("0x%1 25000").arg(modes, 0, 16));
|
||||
response.append(QString("0x%1 100000").arg(modes, 0, 16));
|
||||
response.append(QString("0x%1 250000").arg(modes, 0, 16));
|
||||
response.append(QString("0x%1 1000000").arg(modes, 0, 16));
|
||||
response.append("0 0");
|
||||
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));
|
||||
|
||||
modes = getRadioModes("SB");
|
||||
if (modes) {
|
||||
response.append(QString("0x%1 3000").arg(modes, 0, 16));
|
||||
response.append(QString("0x%1 2400").arg(modes, 0, 16));
|
||||
response.append(QString("0x%1 1800").arg(modes, 0, 16));
|
||||
}
|
||||
modes = getRadioModes("AM");
|
||||
if (modes) {
|
||||
response.append(QString("0x%1 9000").arg(modes, 0, 16));
|
||||
response.append(QString("0x%1 6000").arg(modes, 0, 16));
|
||||
response.append(QString("0x%1 3000").arg(modes, 0, 16));
|
||||
}
|
||||
modes = getRadioModes("CW");
|
||||
if (modes) {
|
||||
response.append(QString("0x%1 1200").arg(modes, 0, 16));
|
||||
response.append(QString("0x%1 500").arg(modes, 0, 16));
|
||||
response.append(QString("0x%1 200").arg(modes, 0, 16));
|
||||
}
|
||||
modes = getRadioModes("FM");
|
||||
if (modes) {
|
||||
response.append(QString("0x%1 15000").arg(modes, 0, 16));
|
||||
response.append(QString("0x%1 10000").arg(modes, 0, 16));
|
||||
response.append(QString("0x%1 7000").arg(modes, 0, 16));
|
||||
}
|
||||
modes = getRadioModes("RTTY");
|
||||
if (modes) {
|
||||
response.append(QString("0x%1 2400").arg(modes, 0, 16));
|
||||
response.append(QString("0x%1 500").arg(modes, 0, 16));
|
||||
response.append(QString("0x%1 250").arg(modes, 0, 16));
|
||||
}
|
||||
modes = getRadioModes("PSK");
|
||||
if (modes) {
|
||||
response.append(QString("0x%1 1200").arg(modes, 0, 16));
|
||||
response.append(QString("0x%1 500").arg(modes, 0, 16));
|
||||
response.append(QString("0x%1 250").arg(modes, 0, 16));
|
||||
}
|
||||
response.append("0 0");
|
||||
response.append("9900");
|
||||
response.append("9900");
|
||||
|
@ -250,7 +286,7 @@ void rigCtlClient::socketReadyRead()
|
|||
response.append("0");
|
||||
QString preamps="";
|
||||
if (rigCaps.hasPreamp) {
|
||||
for (unsigned char pre : rigCaps.preamps)
|
||||
for (quint8 pre : rigCaps.preamps)
|
||||
{
|
||||
if (pre == 0)
|
||||
continue;
|
||||
|
@ -266,7 +302,7 @@ void rigCtlClient::socketReadyRead()
|
|||
|
||||
QString attens = "";
|
||||
if (rigCaps.hasAttenuator) {
|
||||
for (unsigned char att : rigCaps.attenuators)
|
||||
for (quint8 att : rigCaps.attenuators)
|
||||
{
|
||||
if (att == 0)
|
||||
continue;
|
||||
|
@ -280,7 +316,6 @@ void rigCtlClient::socketReadyRead()
|
|||
}
|
||||
response.append(attens);
|
||||
|
||||
|
||||
response.append("0xffffffffffffffff");
|
||||
response.append("0xffffffffffffffff");
|
||||
response.append("0xffffffffffffffff");
|
||||
|
@ -288,23 +323,6 @@ void rigCtlClient::socketReadyRead()
|
|||
response.append("0xffffffffffffffff");
|
||||
response.append("0xffffffffffffffff");
|
||||
|
||||
/*
|
||||
response.append("0xffffffffffffffff");
|
||||
response.append("0xffffffffffffffff");
|
||||
response.append("0xfffffffff7ffffff");
|
||||
response.append("0xfffffff083ffffff");
|
||||
response.append("0xffffffffffffffff");
|
||||
response.append("0xffffffffffffffbf");
|
||||
*/
|
||||
|
||||
/*
|
||||
response.append("0x3effffff");
|
||||
response.append("0x3effffff");
|
||||
response.append("0x7fffffff");
|
||||
response.append("0x7fffffff");
|
||||
response.append("0x7fffffff");
|
||||
response.append("0x7fffffff");
|
||||
*/
|
||||
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));
|
||||
|
@ -365,7 +383,7 @@ void rigCtlClient::socketReadyRead()
|
|||
freqt freq;
|
||||
bool ok=false;
|
||||
double newFreq=0.0f;
|
||||
unsigned char vfo=0;
|
||||
quint8 vfo=0;
|
||||
if (command.length() == 2)
|
||||
{
|
||||
newFreq = command[1].toDouble(&ok);
|
||||
|
@ -383,10 +401,10 @@ void rigCtlClient::socketReadyRead()
|
|||
freq.Hz = static_cast<int>(newFreq);
|
||||
qDebug(logRigCtlD()) << QString("Set frequency: %1 (%2)").arg(freq.Hz).arg(command[1]);
|
||||
if (vfo == 0) {
|
||||
rigState->set(VFOAFREQ, freq.Hz,true);
|
||||
rigState->set(VFOAFREQ, (quint64)freq.Hz,true);
|
||||
}
|
||||
else {
|
||||
rigState->set(VFOBFREQ, freq.Hz,true);
|
||||
rigState->set(VFOBFREQ, (quint64)freq.Hz,true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -689,13 +707,13 @@ void rigCtlClient::socketReadyRead()
|
|||
|
||||
if (command.length() > 1) {
|
||||
if (longReply) {
|
||||
response.append(QString("AntCurr: %1").arg(getAntName((unsigned char)command[1].toInt())));
|
||||
response.append(QString("AntCurr: %1").arg(getAntName((quint8)command[1].toInt())));
|
||||
response.append(QString("Option: %1").arg(0));
|
||||
response.append(QString("AntTx: %1").arg(getAntName(rigState->getChar(ANTENNA))));
|
||||
response.append(QString("AntRx: %1").arg(getAntName(rigState->getChar(ANTENNA))));
|
||||
}
|
||||
else {
|
||||
response.append(QString("%1").arg(getAntName((unsigned char)command[1].toInt())));
|
||||
response.append(QString("%1").arg(getAntName((quint8)command[1].toInt())));
|
||||
response.append(QString("%1").arg(0));
|
||||
response.append(QString("%1").arg(getAntName(rigState->getChar(ANTENNA))));
|
||||
response.append(QString("%1").arg(getAntName(rigState->getChar(ANTENNA))));
|
||||
|
@ -774,6 +792,30 @@ void rigCtlClient::socketReadyRead()
|
|||
else if (command[1] == "ATT") {
|
||||
resp.append(QString("%1").arg(rigState->getChar(ATTENUATOR)));
|
||||
}
|
||||
else if (command[1] == "CWPITCH") {
|
||||
resp.append(QString("%1").arg(rigState->getInt16(CWPITCH)));
|
||||
}
|
||||
else if (command[1] == "NOTCHF") {
|
||||
resp.append(QString("%1").arg(rigState->getInt16(NOTCHF)));
|
||||
}
|
||||
else if (command[1] == "IF") {
|
||||
resp.append(QString("%1").arg(rigState->getInt16(IF)));
|
||||
}
|
||||
else if (command[1] == "PBT_IN") {
|
||||
resp.append(QString("%1").arg((float)rigState->getChar(PBTIN) / 255.0));
|
||||
}
|
||||
else if (command[1] == "PBT_OUT") {
|
||||
resp.append(QString("%1").arg((float)rigState->getChar(PBTOUT) / 255.0));
|
||||
}
|
||||
else if (command[1] == "APF") {
|
||||
resp.append(QString("%1").arg((float)rigState->getChar(APF) / 255.0));
|
||||
}
|
||||
else if (command[1] == "NR") {
|
||||
resp.append(QString("%1").arg((float)rigState->getChar(NR) / 255.0));
|
||||
}
|
||||
else if (command[1] == "BAL") {
|
||||
resp.append(QString("%1").arg((float)rigState->getChar(BAL) / 255.0));
|
||||
}
|
||||
else {
|
||||
resp.append(QString("%1").arg(value));
|
||||
}
|
||||
|
@ -782,55 +824,87 @@ void rigCtlClient::socketReadyRead()
|
|||
}
|
||||
else if (command.length() > 2 && (command[0] == "L" || command[0] == "set_level"))
|
||||
{
|
||||
unsigned char value=0;
|
||||
int value=0;
|
||||
setCommand = true;
|
||||
if (command[1] == "AF") {
|
||||
value = command[2].toFloat() * 255;
|
||||
rigState->set(AFGAIN, value, true);
|
||||
rigState->set(AFGAIN, quint8(value), true);
|
||||
}
|
||||
else if (command[1] == "RF") {
|
||||
value = command[2].toFloat() * 255;
|
||||
rigState->set(RFGAIN, value, true);
|
||||
rigState->set(RFGAIN, quint8(value), true);
|
||||
}
|
||||
else if (command[1] == "RFPOWER") {
|
||||
value = command[2].toFloat() * 255;
|
||||
rigState->set(RFPOWER, value, true);
|
||||
value = command[2].toFloat() * 255;
|
||||
rigState->set(RFPOWER, quint8(value), true);
|
||||
}
|
||||
else if (command[1] == "SQL") {
|
||||
value = command[2].toFloat() * 255;
|
||||
rigState->set(SQUELCH, value, true);
|
||||
rigState->set(SQUELCH, quint8(value), true);
|
||||
}
|
||||
else if (command[1] == "COMP") {
|
||||
value = command[2].toFloat() * 255;
|
||||
rigState->set(COMPLEVEL, value, true);
|
||||
rigState->set(COMPLEVEL, quint8(value), true);
|
||||
}
|
||||
else if (command[1] == "MICGAIN") {
|
||||
value = command[2].toFloat() * 255;
|
||||
rigState->set(MICGAIN, value, true);
|
||||
rigState->set(MICGAIN, quint8(value), true);
|
||||
}
|
||||
else if (command[1] == "MON") {
|
||||
value = command[2].toFloat() * 255;
|
||||
rigState->set(MONITORLEVEL, value, true);
|
||||
rigState->set(MONITORLEVEL, quint8(value), true);
|
||||
}
|
||||
else if (command[1] == "VOXGAIN") {
|
||||
value = command[2].toFloat() * 255;
|
||||
rigState->set(VOXGAIN, value, true);
|
||||
rigState->set(VOXGAIN, quint8(value), true);
|
||||
}
|
||||
else if (command[1] == "ANTIVOX") {
|
||||
value = command[2].toFloat() * 255;
|
||||
rigState->set(ANTIVOXGAIN, value, true);
|
||||
rigState->set(ANTIVOXGAIN, quint8(value), true);
|
||||
}
|
||||
else if (command[1] == "ATT") {
|
||||
value = command[2].toInt();
|
||||
rigState->set(ATTENUATOR, value, true);
|
||||
rigState->set(ATTENUATOR, quint8(value), true);
|
||||
}
|
||||
else if (command[1] == "PREAMP") {
|
||||
value = command[2].toFloat() / 10;
|
||||
rigState->set(PREAMP, value, true);
|
||||
rigState->set(PREAMP, quint8(value), true);
|
||||
}
|
||||
else if (command[1] == "AGC") {
|
||||
value = command[2].toInt();;
|
||||
rigState->set(AGC, value, true);
|
||||
value = command[2].toFloat() * 255;
|
||||
rigState->set(AGC, quint8(value), true);
|
||||
}
|
||||
else if (command[1] == "CWPITCH") {
|
||||
value = command[2].toInt();
|
||||
rigState->set(CWPITCH, value, true);
|
||||
}
|
||||
else if (command[1] == "NOTCHF") {
|
||||
value = command[2].toInt();
|
||||
rigState->set(NOTCHF, value, true);
|
||||
}
|
||||
else if (command[1] == "IF") {
|
||||
value = command[2].toInt();
|
||||
rigState->set(IF, qint16(value), true);
|
||||
}
|
||||
else if (command[1] == "PBT_IN") {
|
||||
value = command[2].toFloat() * 255;
|
||||
rigState->set(PBTIN, quint8(value), true);
|
||||
}
|
||||
else if (command[1] == "PBT_OUT") {
|
||||
value = command[2].toFloat() * 255;
|
||||
rigState->set(PBTOUT, quint8(value), true);
|
||||
}
|
||||
else if (command[1] == "APF") {
|
||||
value = command[2].toFloat() * 255;
|
||||
rigState->set(APF, quint8(value), true);
|
||||
}
|
||||
else if (command[1] == "NR") {
|
||||
value = command[2].toFloat() * 255;
|
||||
rigState->set(NR, quint8(value), true);
|
||||
}
|
||||
else if (command[1] == "BAL") {
|
||||
value = command[2].toFloat() * 255;
|
||||
rigState->set(BAL, quint8(value), true);
|
||||
}
|
||||
|
||||
qInfo(logRigCtlD()) << "Setting:" << command[1] << command[2] << value;
|
||||
|
@ -1187,7 +1261,7 @@ void rigCtlClient::closeSocket()
|
|||
|
||||
void rigCtlClient::sendData(QString data)
|
||||
{
|
||||
qDebug(logRigCtlD()) << sessionId << "TX:" << data;
|
||||
//qDebug(logRigCtlD()) << sessionId << "TX:" << data;
|
||||
if (socket != Q_NULLPTR && socket->isValid() && socket->isOpen())
|
||||
{
|
||||
socket->write(data.toLatin1());
|
||||
|
@ -1198,7 +1272,7 @@ void rigCtlClient::sendData(QString data)
|
|||
}
|
||||
}
|
||||
|
||||
QString rigCtlClient::getFilter(unsigned char mode, unsigned char filter) {
|
||||
QString rigCtlClient::getFilter(quint8 mode, quint8 filter) {
|
||||
|
||||
if (mode == 3 || mode == 7 || mode == 12 || mode == 17) {
|
||||
switch (filter) {
|
||||
|
@ -1256,7 +1330,7 @@ QString rigCtlClient::getFilter(unsigned char mode, unsigned char filter) {
|
|||
return QString("");
|
||||
}
|
||||
|
||||
QString rigCtlClient::getMode(unsigned char mode, bool datamode) {
|
||||
QString rigCtlClient::getMode(quint8 mode, bool datamode) {
|
||||
|
||||
QString ret;
|
||||
|
||||
|
@ -1309,7 +1383,7 @@ QString rigCtlClient::getMode(unsigned char mode, bool datamode) {
|
|||
return ret;
|
||||
}
|
||||
|
||||
unsigned char rigCtlClient::getMode(QString modeString) {
|
||||
quint8 rigCtlClient::getMode(QString modeString) {
|
||||
|
||||
if (modeString == QString("LSB")) {
|
||||
return 0;
|
||||
|
@ -1354,46 +1428,47 @@ unsigned char rigCtlClient::getMode(QString modeString) {
|
|||
}
|
||||
|
||||
|
||||
unsigned char rigCtlClient::getAntennas()
|
||||
quint8 rigCtlClient::getAntennas()
|
||||
{
|
||||
unsigned char ant=0;
|
||||
for (unsigned char i : rigCaps.antennas)
|
||||
quint8 ant=0;
|
||||
for (quint8 i : rigCaps.antennas)
|
||||
{
|
||||
ant |= 1<<i;
|
||||
}
|
||||
return ant;
|
||||
}
|
||||
|
||||
quint64 rigCtlClient::getRadioModes()
|
||||
quint64 rigCtlClient::getRadioModes(QString md)
|
||||
{
|
||||
quint64 modes = 0;
|
||||
for (mode_info mode : rigCaps.modes)
|
||||
{
|
||||
for (int i = 0; mode_str[i].str[0] != '\0'; i++)
|
||||
{
|
||||
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;
|
||||
}
|
||||
QString mstr = QString(mode_str[i].str);
|
||||
if (rigCaps.hasDataModes) {
|
||||
curMode = "PKT" + mode.name;
|
||||
if (!strcmp(curMode.toLocal8Bit(), mode_str[i].str))
|
||||
if (mstr.contains(mode.name))
|
||||
{
|
||||
if (mode.name == "LSB" || mode.name == "USB" || mode.name == "FM" || mode.name == "AM")
|
||||
{
|
||||
// qDebug(logRigCtlD()) << "Found data mode:" << mode.name << mode_str[i].mode;
|
||||
// qDebug(logRigCtlD()) << "Found data mode:" << mode.name << mode_str[i].mode;
|
||||
if (md.isEmpty() || mstr.contains(md)) {
|
||||
modes |= mode_str[i].mode;
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (mode.name==mstr)
|
||||
{
|
||||
//qDebug(logRigCtlD()) << "Found mode:" << mode.name << mode_str[i].mode;
|
||||
if (md.isEmpty() || mstr==md)
|
||||
{
|
||||
modes |= mode_str[i].mode;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return modes;
|
||||
}
|
||||
|
||||
QString rigCtlClient::getAntName(unsigned char ant)
|
||||
QString rigCtlClient::getAntName(quint8 ant)
|
||||
{
|
||||
QString ret;
|
||||
switch (ant)
|
||||
|
@ -1410,8 +1485,8 @@ QString rigCtlClient::getAntName(unsigned char ant)
|
|||
return ret;
|
||||
}
|
||||
|
||||
unsigned char rigCtlClient::antFromName(QString name) {
|
||||
unsigned char ret;
|
||||
quint8 rigCtlClient::antFromName(QString name) {
|
||||
quint8 ret;
|
||||
|
||||
if (name.toUpper() == "ANT1")
|
||||
ret = 0;
|
||||
|
@ -1432,7 +1507,7 @@ unsigned char rigCtlClient::antFromName(QString name) {
|
|||
return ret;
|
||||
}
|
||||
|
||||
int rigCtlClient::getCalibratedValue(unsigned char meter,cal_table_t cal) {
|
||||
int rigCtlClient::getCalibratedValue(quint8 meter,cal_table_t cal) {
|
||||
|
||||
int interp;
|
||||
|
||||
|
|
48
rigctld.h
48
rigctld.h
|
@ -337,12 +337,12 @@ signals:
|
|||
void onStarted();
|
||||
void onStopped();
|
||||
void sendData(QString data);
|
||||
void setFrequency(unsigned char vfo, freqt freq);
|
||||
void setFrequency(quint8 vfo, freqt freq);
|
||||
void setPTT(bool state);
|
||||
void setMode(unsigned char mode, unsigned char modeFilter);
|
||||
void setDataMode(bool dataOn, unsigned char modeFilter);
|
||||
void setVFO(unsigned char vfo);
|
||||
void setSplit(unsigned char split);
|
||||
void setMode(quint8 mode, quint8 modeFilter);
|
||||
void setDataMode(bool dataOn, quint8 modeFilter);
|
||||
void setVFO(quint8 vfo);
|
||||
void setSplit(quint8 split);
|
||||
void setDuplexMode(duplexMode dm);
|
||||
void stateUpdated();
|
||||
// Power
|
||||
|
@ -350,19 +350,19 @@ signals:
|
|||
void sendPowerOff();
|
||||
|
||||
// Att/preamp
|
||||
void setAttenuator(unsigned char att);
|
||||
void setPreamp(unsigned char pre);
|
||||
void setAttenuator(quint8 att);
|
||||
void setPreamp(quint8 pre);
|
||||
|
||||
//Level set
|
||||
void setRfGain(unsigned char level);
|
||||
void setAfGain(unsigned char level);
|
||||
void setSql(unsigned char level);
|
||||
void setMicGain(unsigned char);
|
||||
void setCompLevel(unsigned char);
|
||||
void setTxPower(unsigned char);
|
||||
void setMonitorLevel(unsigned char);
|
||||
void setVoxGain(unsigned char);
|
||||
void setAntiVoxGain(unsigned char);
|
||||
void setRfGain(quint8 level);
|
||||
void setAfGain(quint8 level);
|
||||
void setSql(quint8 level);
|
||||
void setMicGain(quint8);
|
||||
void setCompLevel(quint8);
|
||||
void setTxPower(quint8);
|
||||
void setMonitorLevel(quint8);
|
||||
void setVoxGain(quint8);
|
||||
void setAntiVoxGain(quint8);
|
||||
void setSpectrumRefLevel(int);
|
||||
|
||||
|
||||
|
@ -403,14 +403,14 @@ private:
|
|||
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);
|
||||
unsigned char getAntennas();
|
||||
quint64 getRadioModes();
|
||||
QString getAntName(unsigned char ant);
|
||||
unsigned char antFromName(QString name);
|
||||
int getCalibratedValue(unsigned char meter,cal_table_t cal);
|
||||
QString getMode(quint8 mode, bool datamode);
|
||||
quint8 getMode(QString modeString);
|
||||
QString getFilter(quint8 mode, quint8 filter);
|
||||
quint8 getAntennas();
|
||||
quint64 getRadioModes(QString mode = "");
|
||||
QString getAntName(quint8 ant);
|
||||
quint8 antFromName(QString name);
|
||||
int getCalibratedValue(quint8 meter,cal_table_t cal);
|
||||
};
|
||||
|
||||
|
||||
|
|
56
rigstate.h
56
rigstate.h
|
@ -13,10 +13,10 @@
|
|||
|
||||
// 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, VOXGAIN, ANTIVOXGAIN,
|
||||
PREAMP, AGC, ATTENUATOR, MODINPUT, AFGAIN, RFGAIN, SQUELCH, RFPOWER, MICGAIN, COMPLEVEL, MONITORLEVEL, BAL,
|
||||
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,
|
||||
NBLEVEL, NBDEPTH, NBWIDTH, NRLEVEL, RIGINPUT, POWERONOFF, RITVALUE,
|
||||
AROFUNC, MUTEFUNC, VSCFUNC, REVFUNC, SQLFUNC, ABMFUNC, BCFUNC, MBCFUNC, RITFUNC, AFCFUNC, SATMODEFUNC, SCOPEFUNC,
|
||||
RESUMEFUNC, TBURSTFUNC, TUNERFUNC, LOCKFUNC, SMETER, POWERMETER, SWRMETER, ALCMETER, COMPMETER, VOLTAGEMETER, CURRENTMETER
|
||||
};
|
||||
|
||||
|
@ -40,7 +40,7 @@ public:
|
|||
void set(stateTypes s, quint64 x, bool u) {
|
||||
if (x != map[s]._value) {
|
||||
_mutex.lock();
|
||||
map[s]._value = (quint64)x;
|
||||
map[s]._value = quint64(x);
|
||||
map[s]._valid = true;
|
||||
map[s]._updated = u;
|
||||
map[s]._dateUpdated = QDateTime::currentDateTime();
|
||||
|
@ -48,9 +48,19 @@ public:
|
|||
}
|
||||
}
|
||||
void set(stateTypes s, qint32 x, bool u) {
|
||||
if (static_cast<quint64>(x) != map[s]._value) {
|
||||
if (quint64(x) != map[s]._value) {
|
||||
_mutex.lock();
|
||||
map[s]._value = (quint64)x;
|
||||
map[s]._value = quint64(x);
|
||||
map[s]._valid = true;
|
||||
map[s]._updated = u;
|
||||
map[s]._dateUpdated = QDateTime::currentDateTime();
|
||||
_mutex.unlock();
|
||||
}
|
||||
}
|
||||
void set(stateTypes s, qint16 x, bool u) {
|
||||
if (quint64(x) != map[s]._value) {
|
||||
_mutex.lock();
|
||||
map[s]._value = quint64(x);
|
||||
map[s]._valid = true;
|
||||
map[s]._updated = u;
|
||||
map[s]._dateUpdated = QDateTime::currentDateTime();
|
||||
|
@ -58,9 +68,9 @@ public:
|
|||
}
|
||||
}
|
||||
void set(stateTypes s, quint16 x, bool u) {
|
||||
if (static_cast<quint64>(x) != map[s]._value) {
|
||||
if (quint64(x) != map[s]._value) {
|
||||
_mutex.lock();
|
||||
map[s]._value = (quint64)x;
|
||||
map[s]._value = quint64(x);
|
||||
map[s]._valid = true;
|
||||
map[s]._updated = u;
|
||||
map[s]._dateUpdated = QDateTime::currentDateTime();
|
||||
|
@ -68,9 +78,9 @@ public:
|
|||
}
|
||||
}
|
||||
void set(stateTypes s, quint8 x, bool u) {
|
||||
if (static_cast<quint64>(x) != map[s]._value) {
|
||||
if (quint64(x) != map[s]._value) {
|
||||
_mutex.lock();
|
||||
map[s]._value = (quint64)x;
|
||||
map[s]._value = quint64(x);
|
||||
map[s]._valid = true;
|
||||
map[s]._updated = u;
|
||||
map[s]._dateUpdated = QDateTime::currentDateTime();
|
||||
|
@ -78,9 +88,9 @@ public:
|
|||
}
|
||||
}
|
||||
void set(stateTypes s, bool x, bool u) {
|
||||
if (static_cast<quint64>(x) != map[s]._value) {
|
||||
if (quint64(x) != map[s]._value) {
|
||||
_mutex.lock();
|
||||
map[s]._value = (quint64)x;
|
||||
map[s]._value = quint64(x);
|
||||
map[s]._valid = true;
|
||||
map[s]._updated = u;
|
||||
map[s]._dateUpdated = QDateTime::currentDateTime();
|
||||
|
@ -88,9 +98,9 @@ public:
|
|||
}
|
||||
}
|
||||
void set(stateTypes s, duplexMode x, bool u) {
|
||||
if (static_cast<quint64>(x) != map[s]._value) {
|
||||
if (quint64(x) != map[s]._value) {
|
||||
_mutex.lock();
|
||||
map[s]._value = (quint64)x;
|
||||
map[s]._value = quint64(x);
|
||||
map[s]._valid = true;
|
||||
map[s]._updated = u;
|
||||
map[s]._dateUpdated = QDateTime::currentDateTime();
|
||||
|
@ -99,9 +109,9 @@ public:
|
|||
}
|
||||
|
||||
void set(stateTypes s, rigInput x, bool u) {
|
||||
if (static_cast<quint64>(x) != map[s]._value) {
|
||||
if (quint64(x) != map[s]._value) {
|
||||
_mutex.lock();
|
||||
map[s]._value = (quint64)x;
|
||||
map[s]._value = quint64(x);
|
||||
map[s]._valid = true;
|
||||
map[s]._updated = u;
|
||||
map[s]._dateUpdated = QDateTime::currentDateTime();
|
||||
|
@ -110,14 +120,14 @@ public:
|
|||
}
|
||||
|
||||
bool getBool(stateTypes s) { return map[s]._value != 0; }
|
||||
quint8 getChar(stateTypes s) { return static_cast<quint8>(map[s]._value); }
|
||||
quint16 getInt16(stateTypes s) { return static_cast<qint16>(map[s]._value); }
|
||||
quint16 getUInt16(stateTypes s) { return static_cast<quint16>(map[s]._value); }
|
||||
qint32 getInt32(stateTypes s) { return static_cast<qint32>(map[s]._value); }
|
||||
quint32 getUInt32(stateTypes s) { return static_cast<quint32>(map[s]._value); }
|
||||
quint8 getChar(stateTypes s) { return quint8(map[s]._value); }
|
||||
qint16 getInt16(stateTypes s) { return qint16(map[s]._value); }
|
||||
quint16 getUInt16(stateTypes s) { return quint16(map[s]._value); }
|
||||
qint32 getInt32(stateTypes s) { return qint32(map[s]._value); }
|
||||
quint32 getUInt32(stateTypes s) { return quint32(map[s]._value); }
|
||||
quint64 getInt64(stateTypes s) { return map[s]._value; }
|
||||
duplexMode getDuplex(stateTypes s) { return static_cast<duplexMode>(map[s]._value); }
|
||||
rigInput getInput(stateTypes s) { return static_cast<rigInput>(map[s]._value); }
|
||||
duplexMode getDuplex(stateTypes s) { return duplexMode(map[s]._value); }
|
||||
rigInput getInput(stateTypes s) { return rigInput(map[s]._value); }
|
||||
QMap<stateTypes, value> map;
|
||||
|
||||
|
||||
|
|
Ładowanie…
Reference in New Issue