kopia lustrzana https://gitlab.com/eliggett/wfview
Now grabs scope state on startup. Found bug, did not fix, in the
frequency parsing code. Worked aroud it by using doubles for now.merge-requests/2/head
rodzic
aac777eb07
commit
ce3c4dfe54
|
@ -372,9 +372,15 @@ void rigCommander::setScopeEdge(char edge)
|
|||
}
|
||||
|
||||
void rigCommander::getScopeSpan()
|
||||
{
|
||||
getScopeSpan(false);
|
||||
}
|
||||
|
||||
void rigCommander::getScopeSpan(bool isSub)
|
||||
{
|
||||
QByteArray payload;
|
||||
payload.setRawData("\x27\x15", 2);
|
||||
payload.append(static_cast<unsigned char>(isSub));
|
||||
prepDataAndSend(payload);
|
||||
}
|
||||
|
||||
|
@ -1013,7 +1019,9 @@ void rigCommander::parseCommand()
|
|||
// note: data already is trimmed of the beginning FE FE E0 94 stuff.
|
||||
|
||||
#ifdef QT_DEBUG
|
||||
if( (payloadIn[00] != '\x27') && (payloadIn[00] != '\x15') )
|
||||
bool isSpectrumData = payloadIn.startsWith(QByteArray().setRawData("\x27\x00", 2));
|
||||
|
||||
if( (!isSpectrumData) && (payloadIn[00] != '\x15') )
|
||||
{
|
||||
// We do not log spectrum and meter data,
|
||||
// as they tend to clog up any useful logging.
|
||||
|
@ -2257,7 +2265,8 @@ void rigCommander::parseDetailedRegisters1A05()
|
|||
|
||||
void rigCommander::parseWFData()
|
||||
{
|
||||
//float freqSpan = 0.0;
|
||||
freqt freqSpan;
|
||||
bool isSub;
|
||||
switch(payloadIn[1])
|
||||
{
|
||||
case 0:
|
||||
|
@ -2281,8 +2290,10 @@ void rigCommander::parseWFData()
|
|||
// read span in center mode
|
||||
// [1] 0x15
|
||||
// [2] to [8] is span encoded as a frequency
|
||||
//freqSpan = parseFrequency(payloadIn, 8);
|
||||
//qDebug(logRig()) << "Received 0x15 center span data: for frequency " << freqSpan;
|
||||
isSub = payloadIn.at(2)==0x01;
|
||||
freqSpan = parseFrequency(payloadIn, 6);
|
||||
emit haveScopeSpan(freqSpan, isSub);
|
||||
qDebug(logRig()) << "Received 0x15 center span data: for frequency " << freqSpan.Hz;
|
||||
//printHex(payloadIn, false, true);
|
||||
break;
|
||||
case 0x16:
|
||||
|
@ -2807,6 +2818,10 @@ freqt rigCommander::parseFrequency(QByteArray data, unsigned char lastPosition)
|
|||
|
||||
//printHex(data, false, true);
|
||||
|
||||
// TODO: Check length of data array prior to reading +/- position
|
||||
|
||||
// TODO: 64-bit value is incorrect, multiplying by wrong numbers.
|
||||
|
||||
float freq = 0.0;
|
||||
|
||||
freqt freqs;
|
||||
|
|
|
@ -67,7 +67,9 @@ public slots:
|
|||
void getSpectrumRefLevel();
|
||||
void getSpectrumRefLevel(unsigned char mainSub);
|
||||
void setScopeSpan(char span);
|
||||
void getScopeSpan(bool isSub);
|
||||
void getScopeSpan();
|
||||
|
||||
void setScopeEdge(char edge);
|
||||
void getScopeEdge();
|
||||
void getScopeMode();
|
||||
|
@ -215,7 +217,7 @@ signals:
|
|||
// Spectrum:
|
||||
void haveSpectrumData(QByteArray spectrum, double startFreq, double endFreq); // pass along data to UI
|
||||
void haveSpectrumBounds();
|
||||
void haveScopeSpan(char span);
|
||||
void haveScopeSpan(freqt span, bool isSub);
|
||||
void haveSpectrumMode(spectrumMode spectmode);
|
||||
void haveScopeEdge(char edge);
|
||||
void haveSpectrumRefLevel(int level);
|
||||
|
|
49
wfmain.cpp
49
wfmain.cpp
|
@ -399,9 +399,10 @@ wfmain::wfmain(const QString serialPortCL, const QString hostCL, QWidget *parent
|
|||
connect(this, SIGNAL(setFrequency(freqt)), rig, SLOT(setFrequency(freqt)));
|
||||
connect(this, SIGNAL(setScopeEdge(char)), rig, SLOT(setScopeEdge(char)));
|
||||
connect(this, SIGNAL(setScopeSpan(char)), rig, SLOT(setScopeSpan(char)));
|
||||
connect(this, SIGNAL(getScopeMode()), rig, SLOT(getScopeMode()));
|
||||
//connect(this, SIGNAL(getScopeMode()), rig, SLOT(getScopeMode()));
|
||||
connect(this, SIGNAL(getScopeEdge()), rig, SLOT(getScopeEdge()));
|
||||
connect(this, SIGNAL(getScopeSpan()), rig, SLOT(getScopeSpan()));
|
||||
connect(rig, SIGNAL(haveScopeSpan(freqt,bool)), this, SLOT(receiveSpectrumSpan(freqt,bool)));
|
||||
connect(this, SIGNAL(setScopeFixedEdge(double,double,unsigned char)), rig, SLOT(setSpectrumBounds(double,double,unsigned char)));
|
||||
|
||||
connect(this, SIGNAL(setMode(unsigned char, unsigned char)), rig, SLOT(setMode(unsigned char, unsigned char)));
|
||||
|
@ -1498,6 +1499,9 @@ void wfmain:: getInitialRigState()
|
|||
cmdOutQue.append(cmdGetPreamp);
|
||||
}
|
||||
|
||||
cmdOutQue.append(cmdGetSpectrumMode);
|
||||
cmdOutQue.append(cmdGetSpectrumSpan);
|
||||
|
||||
cmdOutQue.append(cmdNone);
|
||||
cmdOutQue.append(cmdStartRegularPolling);
|
||||
|
||||
|
@ -1853,6 +1857,9 @@ void wfmain::runDelayedCommand()
|
|||
case cmdGetSpectrumMode:
|
||||
emit getScopeMode();
|
||||
break;
|
||||
case cmdGetSpectrumSpan:
|
||||
emit getScopeSpan();
|
||||
break;
|
||||
case cmdSpecOn:
|
||||
emit spectOutputEnable();
|
||||
break;
|
||||
|
@ -3694,6 +3701,44 @@ void wfmain::receiveAttenuator(unsigned char att)
|
|||
ui->attSelCombo->setCurrentIndex(attindex);
|
||||
}
|
||||
|
||||
void wfmain::receiveSpectrumSpan(freqt freqspan, bool isSub)
|
||||
{
|
||||
if(!isSub)
|
||||
{
|
||||
switch((int)(freqspan.MHzDouble * 1000000.0))
|
||||
{
|
||||
case(2500):
|
||||
ui->scopeBWCombo->setCurrentIndex(0);
|
||||
break;
|
||||
case(5000):
|
||||
ui->scopeBWCombo->setCurrentIndex(1);
|
||||
break;
|
||||
case(10000):
|
||||
ui->scopeBWCombo->setCurrentIndex(2);
|
||||
break;
|
||||
case(25000):
|
||||
ui->scopeBWCombo->setCurrentIndex(3);
|
||||
break;
|
||||
case(50000):
|
||||
ui->scopeBWCombo->setCurrentIndex(4);
|
||||
break;
|
||||
case(100000):
|
||||
ui->scopeBWCombo->setCurrentIndex(5);
|
||||
break;
|
||||
case(250000):
|
||||
ui->scopeBWCombo->setCurrentIndex(6);
|
||||
break;
|
||||
case(500000):
|
||||
ui->scopeBWCombo->setCurrentIndex(7);
|
||||
break;
|
||||
default:
|
||||
qDebug(logSystem()) << __func__ << "Could not match: " << freqspan.MHzDouble << " to anything like: " << (int)(freqspan.MHzDouble*1E6);
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
// --- DEBUG FUNCTION ---
|
||||
void wfmain::on_debugBtn_clicked()
|
||||
{
|
||||
|
@ -3709,5 +3754,5 @@ void wfmain::on_debugBtn_clicked()
|
|||
|
||||
// emit getTSQL();
|
||||
qDebug(logSystem()) << "Getting scope mode";
|
||||
emit getScopeMode();
|
||||
emit getScopeMode(); // center or fixed
|
||||
}
|
||||
|
|
3
wfmain.h
3
wfmain.h
|
@ -171,6 +171,7 @@ private slots:
|
|||
void receiveMode(unsigned char mode, unsigned char filter);
|
||||
void receiveSpectrumData(QByteArray spectrum, double startFreq, double endFreq);
|
||||
void receiveSpectrumMode(spectrumMode spectMode);
|
||||
void receiveSpectrumSpan(freqt freqspan, bool isSub);
|
||||
void receivePTTstatus(bool pttOn);
|
||||
void receiveDataModeStatus(bool dataOn);
|
||||
void receiveBandStackReg(float freq, char mode, bool dataOn); // freq, mode, (filter,) datamode
|
||||
|
@ -501,7 +502,7 @@ private:
|
|||
|
||||
enum cmds {cmdNone, cmdGetRigID, cmdGetRigCIV, cmdGetFreq, cmdGetMode, cmdGetDataMode, cmdSetDataModeOn, cmdSetDataModeOff,
|
||||
cmdSpecOn, cmdSpecOff, cmdDispEnable, cmdDispDisable, cmdGetRxGain, cmdGetAfGain,
|
||||
cmdGetSql, cmdGetATUStatus, cmdGetSpectrumMode, cmdScopeCenterMode, cmdScopeFixedMode, cmdGetPTT,
|
||||
cmdGetSql, cmdGetATUStatus, cmdGetSpectrumMode, cmdGetSpectrumSpan, cmdScopeCenterMode, cmdScopeFixedMode, cmdGetPTT,
|
||||
cmdGetTxPower, cmdGetMicGain, cmdGetSpectrumRefLevel, cmdGetDuplexMode, cmdGetModInput, cmdGetModDataInput,
|
||||
cmdGetCurrentModLevel, cmdStartRegularPolling, cmdStopRegularPolling, cmdGetVdMeter, cmdGetIdMeter,
|
||||
cmdGetSMeter, cmdGetPowerMeter, cmdGetALCMeter, cmdGetCompMeter,
|
||||
|
|
Ładowanie…
Reference in New Issue