diff --git a/rigcommander.cpp b/rigcommander.cpp index b847871..259522d 100644 --- a/rigcommander.cpp +++ b/rigcommander.cpp @@ -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() diff --git a/rigcommander.h b/rigcommander.h index fe11abb..08c0561 100644 --- a/rigcommander.h +++ b/rigcommander.h @@ -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); diff --git a/wfmain.cpp b/wfmain.cpp index 9feadd0..0e71e48 100644 --- a/wfmain.cpp +++ b/wfmain.cpp @@ -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) diff --git a/wfmain.h b/wfmain.h index eff3703..8af61a3 100644 --- a/wfmain.h +++ b/wfmain.h @@ -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 cmdOutQue;