diff --git a/rigcommander.cpp b/rigcommander.cpp index d2aa849..132403a 100644 --- a/rigcommander.cpp +++ b/rigcommander.cpp @@ -4244,6 +4244,17 @@ void rigCommander::parseSpectrum() return; } + if(payloadIn.length() >= 15) + { + bool outOfRange = (bool)payloadIn[16]; + if(outOfRange != wasOutOfRange) + { + emit haveScopeOutOfRange(outOfRange); + wasOutOfRange = outOfRange; + return; + } + } + // unsigned char waveInfo = payloadIn[06]; // really just one byte? //qInfo(logRig()) << "Spectrum Data received: " << sequence << "/" << sequenceMax << " mode: " << scopeMode << " waveInfo: " << waveInfo << " length: " << payloadIn.length(); diff --git a/rigcommander.h b/rigcommander.h index bf07110..9cec30e 100644 --- a/rigcommander.h +++ b/rigcommander.h @@ -291,6 +291,7 @@ signals: void haveSpectrumMode(spectrumMode spectmode); void haveScopeEdge(char edge); void haveSpectrumRefLevel(int level); + void haveScopeOutOfRange(bool outOfRange); // Rig ID: void haveRigID(rigCapabilities rigCaps); @@ -457,6 +458,7 @@ private: quint16 spectAmpMax; quint16 spectLenMax; spectrumMode oldScopeMode; + bool wasOutOfRange = false; bool usingNativeLAN; // indicates using OEM LAN connection (705,7610,9700,7850) bool lookingForRig; diff --git a/wfmain.cpp b/wfmain.cpp index 477fa6b..b28faad 100644 --- a/wfmain.cpp +++ b/wfmain.cpp @@ -457,6 +457,7 @@ void wfmain::rigConnections() connect(rig, SIGNAL(haveSpectrumData(QByteArray, double, double)), this, SLOT(receiveSpectrumData(QByteArray, double, double))); connect(rig, SIGNAL(haveSpectrumMode(spectrumMode)), this, SLOT(receiveSpectrumMode(spectrumMode))); + connect(rig, SIGNAL(haveScopeOutOfRange(bool)), this, SLOT(handleScopeOutOfRange(bool))); connect(this, SIGNAL(setScopeMode(spectrumMode)), rig, SLOT(setSpectrumMode(spectrumMode))); connect(this, SIGNAL(getScopeMode()), rig, SLOT(getScopeMode())); @@ -5083,6 +5084,17 @@ void wfmain::receiveSpectrumMode(spectrumMode spectMode) setUISpectrumControlsToMode(spectMode); } +void wfmain::handleScopeOutOfRange(bool outOfRange) +{ + if(outOfRange) + { + ui->scopeOutOfRangeLabel->setText("OUT OF RANGE"); + ui->scopeOutOfRangeLabel->setStyleSheet("QLabel { background-color : red; color : blue; }"); + } else { + ui->scopeOutOfRangeLabel->setText(""); + ui->scopeOutOfRangeLabel->setStyleSheet(""); + } +} void wfmain::handlePlotDoubleClick(QMouseEvent *me) { @@ -9166,4 +9178,4 @@ void wfmain::resetUsbCommands() usbCommands.append(COMMAND(51, "Split On", cmdNone, 0x01)); usbCommands.append(COMMAND(52, "Split Off", cmdNone, 0x0)); emit sendUsbControllerCommands(&usbCommands); -} \ No newline at end of file +} diff --git a/wfmain.h b/wfmain.h index 21e151b..b3a1396 100644 --- a/wfmain.h +++ b/wfmain.h @@ -281,6 +281,7 @@ private slots: void receiveSpectrumData(QByteArray spectrum, double startFreq, double endFreq); void receiveSpectrumMode(spectrumMode spectMode); void receiveSpectrumSpan(freqt freqspan, bool isSub); + void handleScopeOutOfRange(bool outOfRange); void receivePTTstatus(bool pttOn); void receiveDataModeStatus(bool dataOn); void receiveBandStackReg(freqt f, char mode, char filter, bool dataOn); // freq, mode, (filter,) datamode diff --git a/wfmain.ui b/wfmain.ui index 3958d51..8ebb962 100644 --- a/wfmain.ui +++ b/wfmain.ui @@ -6,7 +6,7 @@ 0 0 - 1012 + 1042 660 @@ -18,7 +18,7 @@ - 3 + 0 @@ -117,6 +117,19 @@ + + + + + 5 + 0 + + + + + + + @@ -1808,6 +1821,7 @@ DejaVu Sans Mono 14 + 75 true @@ -3430,8 +3444,8 @@ 0 0 - 790 - 302 + 570 + 224 @@ -5441,6 +5455,7 @@ + 50 false @@ -5459,8 +5474,8 @@ 0 0 - 1012 - 22 + 1042 + 21 @@ -5488,7 +5503,7 @@ - +