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 @@
-
+