kopia lustrzana https://gitlab.com/eliggett/wfview
Merge branch 'master' into pbt-fixes
commit
5483732766
13
CHANGELOG
13
CHANGELOG
|
@ -1,3 +1,16 @@
|
|||
commit d53c9b028e1e962b80334bbeaac794d4572d9939
|
||||
Author: Elliott Liggett <kilocharlie8@gmail.com>
|
||||
Date: Tue Jan 24 10:37:26 2023 -0800
|
||||
|
||||
Added a rapidPollCmdQueue for things we need to poll rapidly on not-s-
|
||||
meter-intervals. Moved command types to wfviewtypes.h.
|
||||
|
||||
commit 2df82d4f922fcebd256816d41839977840d08e5b
|
||||
Author: Roeland Jansen <roeland.jansen69@gmail.com>
|
||||
Date: Tue Jan 24 17:22:34 2023 +0100
|
||||
|
||||
bumped to v1.58
|
||||
|
||||
commit 152f71c6cf2aeb811da7ff795cd3cfd05c8cfd20
|
||||
Merge: 2ada127 4137fce
|
||||
Author: Phil Taylor <phil@m0vse.uk>
|
||||
|
|
41
wfmain.cpp
41
wfmain.cpp
|
@ -3997,6 +3997,11 @@ void wfmain::sendRadioCommandLoop()
|
|||
cmds sCmd = slowPollCmdQueue[(slowCmdNum++)%nCmds];
|
||||
doCmd(sCmd);
|
||||
}
|
||||
} else if ((!rapidPollCmdQueue.empty()) && rapidPollCmdQueueEnabled)
|
||||
{
|
||||
int nrCmds = (int)rapidPollCmdQueue.size();
|
||||
cmds rCmd = rapidPollCmdQueue[(rapidCmdNum++)%nrCmds];
|
||||
doCmd(rCmd);
|
||||
}
|
||||
} else {
|
||||
// odd-number ticks:
|
||||
|
@ -4487,12 +4492,20 @@ void wfmain::initPeriodicCommands()
|
|||
}
|
||||
insertSlowPeriodicCommand(cmdGetDuplexMode, 128);
|
||||
|
||||
rapidPollCmdQueueEnabled = false;
|
||||
rapidPollCmdQueue.clear();
|
||||
if (rigCaps.hasSpectrum) {
|
||||
// Get passband
|
||||
insertPeriodicCommand(cmdGetPassband, 128);
|
||||
insertPeriodicCommand(cmdGetTPBFInner, 128);
|
||||
insertPeriodicCommand(cmdGetTPBFOuter, 128);
|
||||
insertPeriodicRapidCmd(cmdGetPassband);
|
||||
insertPeriodicRapidCmd(cmdGetTPBFInner);
|
||||
insertPeriodicRapidCmd(cmdGetTPBFOuter);
|
||||
}
|
||||
rapidPollCmdQueueEnabled = true;
|
||||
}
|
||||
|
||||
void wfmain::insertPeriodicRapidCmd(cmds cmd)
|
||||
{
|
||||
rapidPollCmdQueue.push_back(cmd);
|
||||
}
|
||||
|
||||
void wfmain::insertPeriodicCommand(cmds cmd, unsigned char priority=100)
|
||||
|
@ -4508,6 +4521,12 @@ void wfmain::insertPeriodicCommand(cmds cmd, unsigned char priority=100)
|
|||
}
|
||||
}
|
||||
|
||||
void wfmain::insertPeriodicRapidCmdUnique(cmds cmd)
|
||||
{
|
||||
removePeriodicRapidCmd(cmd);
|
||||
rapidPollCmdQueue.push_back(cmd);
|
||||
}
|
||||
|
||||
void wfmain::insertPeriodicCommandUnique(cmds cmd)
|
||||
{
|
||||
// Use this function to insert a non-duplicate command
|
||||
|
@ -4518,6 +4537,20 @@ void wfmain::insertPeriodicCommandUnique(cmds cmd)
|
|||
periodicCmdQueue.push_front(cmd);
|
||||
}
|
||||
|
||||
void wfmain::removePeriodicRapidCmd(cmds cmd)
|
||||
{
|
||||
while(true)
|
||||
{
|
||||
auto it = std::find(this->rapidPollCmdQueue.begin(), this->rapidPollCmdQueue.end(), cmd);
|
||||
if(it != rapidPollCmdQueue.end())
|
||||
{
|
||||
rapidPollCmdQueue.erase(it);
|
||||
} else {
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void wfmain::removePeriodicCommand(cmds cmd)
|
||||
{
|
||||
while(true)
|
||||
|
@ -7226,7 +7259,7 @@ void wfmain::on_wfInterpolateChk_clicked(bool checked)
|
|||
prefs.wfInterpolate = checked;
|
||||
}
|
||||
|
||||
wfmain::cmds wfmain::meterKindToMeterCommand(meterKind m)
|
||||
cmds wfmain::meterKindToMeterCommand(meterKind m)
|
||||
{
|
||||
cmds c;
|
||||
switch(m)
|
||||
|
|
38
wfmain.h
38
wfmain.h
|
@ -829,7 +829,8 @@ private:
|
|||
QTimer * delayedCommand;
|
||||
QTimer * pttTimer;
|
||||
uint16_t loopTickCounter;
|
||||
uint16_t slowCmdNum;
|
||||
uint16_t slowCmdNum=0;
|
||||
uint16_t rapidCmdNum=0;
|
||||
|
||||
void setupPlots();
|
||||
void makeRig();
|
||||
|
@ -896,35 +897,15 @@ private:
|
|||
unsigned char setModeVal=0;
|
||||
unsigned char setFilterVal=0;
|
||||
|
||||
enum cmds {
|
||||
cmdNone, cmdGetRigID, cmdGetRigCIV, cmdGetFreq, cmdSetFreq, cmdGetMode, cmdSetMode,
|
||||
cmdGetDataMode, cmdSetModeFilter, cmdSetDataModeOn, cmdSetDataModeOff, cmdGetRitEnabled, cmdGetRitValue,
|
||||
cmdSpecOn, cmdSpecOff, cmdDispEnable, cmdDispDisable, cmdGetRxGain, cmdSetRxRfGain, cmdGetAfGain, cmdSetAfGain,
|
||||
cmdGetSql, cmdSetSql, cmdGetIFShift, cmdSetIFShift, cmdGetTPBFInner, cmdSetTPBFInner,
|
||||
cmdGetTPBFOuter, cmdSetTPBFOuter, cmdGetATUStatus, cmdGetPassband, cmdSetPassband,
|
||||
cmdGetCwPitch, cmdGetPskTone, cmdGetRttyMark, cmdSetCwPitch, cmdSetPskTone, cmdSetRttyMark,
|
||||
cmdSetATU, cmdStartATU, cmdGetSpectrumMode,
|
||||
cmdGetSpectrumSpan, cmdScopeCenterMode, cmdScopeFixedMode, cmdGetPTT, cmdSetPTT,cmdPTTToggle,
|
||||
cmdGetTxPower, cmdSetTxPower, cmdGetMicGain, cmdSetMicGain, cmdSetModLevel,
|
||||
cmdGetSpectrumRefLevel, cmdGetDuplexMode, cmdGetModInput, cmdGetModDataInput,
|
||||
cmdGetCurrentModLevel, cmdStartRegularPolling, cmdStopRegularPolling, cmdQueNormalSpeed,
|
||||
cmdGetVdMeter, cmdGetIdMeter, cmdGetSMeter, cmdGetCenterMeter, cmdGetPowerMeter,
|
||||
cmdGetSWRMeter, cmdGetALCMeter, cmdGetCompMeter, cmdGetTxRxMeter,
|
||||
cmdGetTone, cmdGetTSQL, cmdGetDTCS, cmdGetRptAccessMode, cmdGetPreamp, cmdGetAttenuator, cmdGetAntenna,
|
||||
cmdGetBandStackReg, cmdGetKeySpeed, cmdSetKeySpeed, cmdGetBreakMode, cmdSetBreakMode, cmdSendCW, cmdStopCW,
|
||||
cmdSetTime, cmdSetDate, cmdSetUTCOffset};
|
||||
|
||||
struct commandtype {
|
||||
cmds cmd;
|
||||
std::shared_ptr<void> data;
|
||||
};
|
||||
|
||||
std::deque <commandtype> delayedCmdQue; // rapid que for commands to the radio
|
||||
std::deque <commandtype> delayedCmdQue; // rapid commands from user interaction
|
||||
std::deque <cmds> periodicCmdQueue; // rapid que for metering
|
||||
std::deque <cmds> slowPollCmdQueue; // slow, regular checking for UI sync
|
||||
std::deque <cmds> rapidPollCmdQueue; // rapid regular polling for non-meter actions
|
||||
void doCmd(cmds cmd);
|
||||
void doCmd(commandtype cmddata);
|
||||
|
||||
bool rapidPollCmdQueueEnabled = false;
|
||||
|
||||
void issueCmd(cmds cmd, freqt f);
|
||||
void issueCmd(cmds cmd, mode_info m);
|
||||
void issueCmd(cmds cmd, timekind t);
|
||||
|
@ -1030,11 +1011,16 @@ private:
|
|||
|
||||
void changeModLabelAndSlider(rigInput source);
|
||||
|
||||
// Fast command queue:
|
||||
void initPeriodicCommands();
|
||||
// Fast command queue for S-Meter:
|
||||
void insertPeriodicCommand(cmds cmd, unsigned char priority);
|
||||
void insertPeriodicCommandUnique(cmds cmd);
|
||||
void removePeriodicCommand(cmds cmd);
|
||||
// Fast command queue for other functions:
|
||||
void insertPeriodicRapidCmd(cmds cmd);
|
||||
void insertPeriodicRapidCmdUnique(cmds cmd);
|
||||
void removePeriodicRapidCmd(cmds cmd);
|
||||
|
||||
|
||||
void insertSlowPeriodicCommand(cmds cmd, unsigned char priority);
|
||||
void calculateTimingParameters();
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
#include <QString>
|
||||
#include <QtGlobal>
|
||||
#include <stdint.h>
|
||||
#include <memory>
|
||||
|
||||
enum underlay_t { underlayNone, underlayPeakHold, underlayPeakBuffer, underlayAverageBuffer };
|
||||
|
||||
|
@ -82,6 +83,30 @@ struct timekind {
|
|||
bool isMinus;
|
||||
};
|
||||
|
||||
enum cmds {
|
||||
cmdNone, cmdGetRigID, cmdGetRigCIV, cmdGetFreq, cmdSetFreq, cmdGetMode, cmdSetMode,
|
||||
cmdGetDataMode, cmdSetModeFilter, cmdSetDataModeOn, cmdSetDataModeOff, cmdGetRitEnabled, cmdGetRitValue,
|
||||
cmdSpecOn, cmdSpecOff, cmdDispEnable, cmdDispDisable, cmdGetRxGain, cmdSetRxRfGain, cmdGetAfGain, cmdSetAfGain,
|
||||
cmdGetSql, cmdSetSql, cmdGetIFShift, cmdSetIFShift, cmdGetTPBFInner, cmdSetTPBFInner,
|
||||
cmdGetTPBFOuter, cmdSetTPBFOuter, cmdGetATUStatus, cmdGetPassband, cmdSetPassband,
|
||||
cmdGetCwPitch, cmdGetPskTone, cmdGetRttyMark, cmdSetCwPitch, cmdSetPskTone, cmdSetRttyMark,
|
||||
cmdSetATU, cmdStartATU, cmdGetSpectrumMode,
|
||||
cmdGetSpectrumSpan, cmdScopeCenterMode, cmdScopeFixedMode, cmdGetPTT, cmdSetPTT,cmdPTTToggle,
|
||||
cmdGetTxPower, cmdSetTxPower, cmdGetMicGain, cmdSetMicGain, cmdSetModLevel,
|
||||
cmdGetSpectrumRefLevel, cmdGetDuplexMode, cmdGetModInput, cmdGetModDataInput,
|
||||
cmdGetCurrentModLevel, cmdStartRegularPolling, cmdStopRegularPolling, cmdQueNormalSpeed,
|
||||
cmdGetVdMeter, cmdGetIdMeter, cmdGetSMeter, cmdGetCenterMeter, cmdGetPowerMeter,
|
||||
cmdGetSWRMeter, cmdGetALCMeter, cmdGetCompMeter, cmdGetTxRxMeter,
|
||||
cmdGetTone, cmdGetTSQL, cmdGetDTCS, cmdGetRptAccessMode, cmdGetPreamp, cmdGetAttenuator, cmdGetAntenna,
|
||||
cmdGetBandStackReg, cmdGetKeySpeed, cmdSetKeySpeed, cmdGetBreakMode, cmdSetBreakMode, cmdSendCW, cmdStopCW,
|
||||
cmdSetTime, cmdSetDate, cmdSetUTCOffset
|
||||
};
|
||||
|
||||
struct commandtype {
|
||||
cmds cmd;
|
||||
std::shared_ptr<void> data;
|
||||
};
|
||||
|
||||
struct errorType {
|
||||
errorType() : alert(false) {};
|
||||
errorType(bool alert, QString message) : alert(alert), message(message) {};
|
||||
|
|
Ładowanie…
Reference in New Issue