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