Cleaned up meter code, we can now query any meter we wish very easily,

either queued or directly.
merge-requests/2/head
Elliott Liggett 2021-02-25 23:57:37 -08:00
rodzic b14c8392c7
commit af2191da16
4 zmienionych plików z 49 dodań i 26 usunięć

Wyświetl plik

@ -1448,24 +1448,34 @@ void rigCommander::getLevels()
// getAntiVoxGain(); // 0x17
}
void rigCommander::getMeters(bool transmitting)
void rigCommander::getMeters(meterKind meter)
{
// Nice function to just grab every meter
if(transmitting)
switch(meter)
{
getRFPowerMeter();
//getSWRMeter();
//getALCMeter();
//getCompReductionMeter();
} else {
getSMeter();
case meterS:
getSMeter();
break;
case meterSWR:
getSWRMeter();
break;
case meterPower:
getRFPowerMeter();
break;
case meterALC:
getALCMeter();
break;
case meterComp:
getCompReductionMeter();
break;
case meterVoltage:
getVdMeter();
break;
case meterCurrent:
getIDMeter();
break;
default:
break;
}
//getVdMeter();
//getIDMeter();
}
void rigCommander::getSMeter()

Wyświetl plik

@ -103,7 +103,7 @@ public slots:
void getVdMeter();
void getIDMeter();
void getMeters(bool transmitting); // all supported meters per transmit or receive
void getMeters(meterKind meter); // all supported meters per transmit or receive
void setSquelch(unsigned char level);
void setRfGain(unsigned char level);

Wyświetl plik

@ -274,7 +274,7 @@ wfmain::wfmain(const QString serialPortCL, const QString hostCL, QWidget *parent
connect(delayedCommand, SIGNAL(timeout()), this, SLOT(runDelayedCommand()));
periodicPollingTimer = new QTimer(this);
periodicPollingTimer->setInterval(50);
periodicPollingTimer->setInterval(25);
periodicPollingTimer->setSingleShot(false);
connect(periodicPollingTimer, SIGNAL(timeout()), this, SLOT(runPeriodicCommands()));
@ -360,7 +360,7 @@ wfmain::wfmain(const QString serialPortCL, const QString hostCL, QWidget *parent
connect(rig, SIGNAL(haveLANGain(unsigned char)), this, SLOT(receiveLANGain(unsigned char)));
//Metering:
connect(this, SIGNAL(getMeters(bool)), rig, SLOT(getMeters(bool)));
connect(this, SIGNAL(getMeters(meterKind)), rig, SLOT(getMeters(meterKind)));
connect(rig, SIGNAL(haveMeter(meterKind,unsigned char)), this, SLOT(receiveMeter(meterKind,unsigned char)));
// Rig and ATU info:
@ -1467,19 +1467,32 @@ void wfmain::runPeriodicCommands()
break;
// Metering commands:
case cmdGetRxLevels:
case cmdGetTxLevels:
emit getMeters(amTransmitting);
break;
case cmdGetSMeter:
if(!amTransmitting)
emit getMeters(meterS);
break;
case cmdGetPowerMeter:
if(amTransmitting)
emit getMeters(meterPower);
break;
case cmdGetIdMeter:
emit getMeters(meterCurrent);
break;
case cmdGetVdMeter:
emit getMeters(meterVoltage);
break;
case cmdGetALCMeter:
if(amTransmitting)
emit getMeters(meterALC);
break;
case cmdGetCompMeter:
if(amTransmitting)
emit getMeters(meterComp);
break;
// Standard commands we are already checking:
case cmdGetRigID:
emit getRigID();
break;
@ -1819,8 +1832,8 @@ void wfmain::initPeriodicCommands()
// The commands are run using a timer,
// and the timer is started by the delayed command cmdStartPeriodicTimer.
insertPeriodicCommand(cmdGetRxLevels, 128);
insertPeriodicCommand(cmdGetTxLevels, 128);
insertPeriodicCommand(cmdGetSMeter, 128);
insertPeriodicCommand(cmdGetPowerMeter, 128);
}
void wfmain::insertPeriodicCommand(cmds cmd, unsigned char priority)

Wyświetl plik

@ -83,7 +83,7 @@ signals:
void setUSBGain(unsigned char level);
void setLANGain(unsigned char level);
void getMeters(bool isTransmitting);
void getMeters(meterKind meter);
@ -475,7 +475,7 @@ private:
cmdSpecOn, cmdSpecOff, cmdDispEnable, cmdDispDisable, cmdGetRxGain, cmdGetAfGain,
cmdGetSql, cmdGetATUStatus, cmdScopeCenterMode, cmdScopeFixedMode, cmdGetPTT,
cmdGetTxPower, cmdGetMicGain, cmdGetSpectrumRefLevel, cmdGetDuplexMode, cmdGetModInput, cmdGetModDataInput,
cmdGetCurrentModLevel, cmdStartRegularPolling, cmdStopRegularPolling, cmdGetRxLevels, cmdGetTxLevels,
cmdGetCurrentModLevel, cmdStartRegularPolling, cmdStopRegularPolling, cmdGetVdMeter, cmdGetIdMeter,
cmdGetSMeter, cmdGetPowerMeter, cmdGetALCMeter, cmdGetCompMeter};
cmds cmdOut;
QVector <cmds> cmdOutQue;