From 86176555c2636d3fc00c4f2e7768ec7cb4d93103 Mon Sep 17 00:00:00 2001 From: f4exb Date: Sun, 5 Jul 2020 10:03:41 +0200 Subject: [PATCH] GLSpectrum: added a freeze button --- doc/img/MainWindow_spectrum_gui.png | Bin 17813 -> 20472 bytes doc/img/MainWindow_spectrum_gui.xcf | Bin 101673 -> 103477 bytes sdrbase/dsp/spectrumvis.cpp | 20 ++++++++- sdrbase/dsp/spectrumvis.h | 20 +++++++++ sdrgui/gui/glspectrum.cpp | 4 ++ sdrgui/gui/glspectrumgui.cpp | 6 +++ sdrgui/gui/glspectrumgui.h | 1 + sdrgui/gui/glspectrumgui.ui | 22 +++++----- sdrgui/readme.md | 66 ++++++++++++++++++++++++++++ 9 files changed, 128 insertions(+), 11 deletions(-) diff --git a/doc/img/MainWindow_spectrum_gui.png b/doc/img/MainWindow_spectrum_gui.png index ec92eaf15fe5c5cd655323e1638cb1672d2be0c5..aa2e13d749030f07fe84cd9b7ade4c7a7cb0095b 100644 GIT binary patch literal 20472 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 literal 17813 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 diff --git a/doc/img/MainWindow_spectrum_gui.xcf b/doc/img/MainWindow_spectrum_gui.xcf index 0745ac0c2ffed6f6ee4aebf096a65a9681c95efe..8eb84edaeb7a892b22ab1bae88a970855aca3ef4 100644 GIT binary patch literal 103477 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

n$m}gDQ`*TXAdWH=Yt(kIA|m^B$TEUqUX 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 literal 101673 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

sb2Kil2p_UGvjBD0qE(`GcPyOP~8?dgF9|ACy{` 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 W7d<=u()Vv|Zl-0nW0Hwo&DbAw$GUd_ diff --git a/sdrbase/dsp/spectrumvis.cpp b/sdrbase/dsp/spectrumvis.cpp index 5f0778d7e..bb617f61f 100644 --- a/sdrbase/dsp/spectrumvis.cpp +++ b/sdrbase/dsp/spectrumvis.cpp @@ -39,11 +39,13 @@ MESSAGE_CLASS_DEFINITION(SpectrumVis::MsgConfigureSpectrumVis, Message) MESSAGE_CLASS_DEFINITION(SpectrumVis::MsgConfigureScalingFactor, Message) MESSAGE_CLASS_DEFINITION(SpectrumVis::MsgConfigureWSpectrumOpenClose, Message) MESSAGE_CLASS_DEFINITION(SpectrumVis::MsgConfigureWSpectrum, Message) +MESSAGE_CLASS_DEFINITION(SpectrumVis::MsgStartStop, Message) const Real SpectrumVis::m_mult = (10.0f / log2f(10.0f)); SpectrumVis::SpectrumVis(Real scalef) : BasebandSampleSink(), + m_running(true), m_fft(nullptr), m_fftEngineSequence(0), m_fftBuffer(MAX_FFT_SIZE), @@ -319,8 +321,11 @@ void SpectrumVis::feed(const Complex *begin, unsigned int length) void SpectrumVis::feed(const SampleVector::const_iterator& cbegin, const SampleVector::const_iterator& end, bool positiveOnly) { - // if no visualisation is set, send the samples to /dev/null + if (!m_running) { + return; + } + // if no visualisation is set, send the samples to /dev/null if (!m_glSpectrum && !m_wsSpectrum.socketOpened()) { return; } @@ -621,10 +626,12 @@ void SpectrumVis::feed(const SampleVector::const_iterator& cbegin, const SampleV void SpectrumVis::start() { + m_running = true; } void SpectrumVis::stop() { + m_running = false; } bool SpectrumVis::handleMessage(const Message& message) @@ -663,6 +670,17 @@ bool SpectrumVis::handleMessage(const Message& message) handleConfigureWSSpectrum(conf.getAddress(), conf.getPort()); return true; } + else if (MsgStartStop::match(message)) { + MsgStartStop& cmd = (MsgStartStop&) message; + + if (cmd.getStartStop()) { + start(); + } else { + stop(); + } + + return true; + } else { return false; diff --git a/sdrbase/dsp/spectrumvis.h b/sdrbase/dsp/spectrumvis.h index 311411ef0..ad87a50b8 100644 --- a/sdrbase/dsp/spectrumvis.h +++ b/sdrbase/dsp/spectrumvis.h @@ -63,6 +63,25 @@ public: { } }; + class MsgStartStop : public Message { + MESSAGE_CLASS_DECLARATION + + public: + bool getStartStop() const { return m_startStop; } + + static MsgStartStop* create(bool startStop) { + return new MsgStartStop(startStop); + } + + protected: + bool m_startStop; + + MsgStartStop(bool startStop) : + Message(), + m_startStop(startStop) + { } + }; + enum AvgMode { AvgModeNone, @@ -150,6 +169,7 @@ private: uint16_t m_port; }; + bool m_running; FFTEngine* m_fft; FFTWindow m_window; unsigned int m_fftEngineSequence; diff --git a/sdrgui/gui/glspectrum.cpp b/sdrgui/gui/glspectrum.cpp index c781da183..f3d8be70e 100644 --- a/sdrgui/gui/glspectrum.cpp +++ b/sdrgui/gui/glspectrum.cpp @@ -1988,6 +1988,8 @@ void GLSpectrum::mousePressEvent(QMouseEvent* event) if ((m_waterfallMarkers.size() > 0) && (pWat.x() >= 0) && (pWat.x() <= 1) && (pWat.y() >= 0) && (pWat.y() <= 1)) { m_waterfallMarkers.pop_back(); } + + update(); } else if (event->button() == Qt::LeftButton) { @@ -2076,6 +2078,8 @@ void GLSpectrum::mousePressEvent(QMouseEvent* event) } } } + + update(); } if (m_cursorState == CSSplitter) diff --git a/sdrgui/gui/glspectrumgui.cpp b/sdrgui/gui/glspectrumgui.cpp index 24882b1b7..f42bda634 100644 --- a/sdrgui/gui/glspectrumgui.cpp +++ b/sdrgui/gui/glspectrumgui.cpp @@ -340,6 +340,12 @@ void GLSpectrumGUI::on_clearSpectrum_clicked(bool checked) } } +void GLSpectrumGUI::on_freeze_toggled(bool checked) +{ + SpectrumVis::MsgStartStop *msg = SpectrumVis::MsgStartStop::create(!checked); + m_spectrumVis->getInputMessageQueue()->push(msg); +} + int GLSpectrumGUI::getAveragingMaxScale(GLSpectrumSettings::AveragingMode averagingMode) { if (averagingMode == GLSpectrumSettings::AvgModeMoving) { diff --git a/sdrgui/gui/glspectrumgui.h b/sdrgui/gui/glspectrumgui.h index db04e7dd1..147f3c3ae 100644 --- a/sdrgui/gui/glspectrumgui.h +++ b/sdrgui/gui/glspectrumgui.h @@ -101,6 +101,7 @@ private slots: void on_invert_toggled(bool checked); void on_grid_toggled(bool checked); void on_clearSpectrum_clicked(bool checked); + void on_freeze_toggled(bool checked); void handleInputMessages(); }; diff --git a/sdrgui/gui/glspectrumgui.ui b/sdrgui/gui/glspectrumgui.ui index aa8040c00..65599b789 100644 --- a/sdrgui/gui/glspectrumgui.ui +++ b/sdrgui/gui/glspectrumgui.ui @@ -312,24 +312,26 @@ - - - Qt::Horizontal + + + Play/Pause spectrum display - - - 40 - 20 - + + + :/pause.png + :/play.png:/pause.png - + + true + + - 2 + 3 diff --git a/sdrgui/readme.md b/sdrgui/readme.md index 996007426..a741b7b3a 100644 --- a/sdrgui/readme.md +++ b/sdrgui/readme.md @@ -453,6 +453,72 @@ Use this toggle button to switch between spectrum logarithmic and linear scale d When in linear mode the range control (4.4) has no effect because the actual range is between 0 and the reference level. The reference level in dB (4.3) still applies but is translated to a linear value e.g -40 dB is 1e-4. In linear mode the scale numbers are formatted using scientific notation so that they always occupy the same space. +

4.K. Spectrum live display pause/resume (freeze)

+ +Use this control to pause or resume spectrum live display. You can use this control to freeze the spectrum display. This may be useful to make measurements using the markers (see section 7). + +

4.L. Spectrum server control

+ +⚠ Note: this is a v5 feature only. + +A websockets based server can be used to send spectrum data to clients. An example of such client can be found in the [SDRangelSpectrum](https://github.com/f4exb/sdrangelspectrum) project. + + - Left button: toggles server on/off + - Right button: opens a secondary dialog that lets you choose the server listening (local) address and port. + +The server only sends data. Control including FFT details is done via the REST API. FFT frames are formatted as follows (in bytes): + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
OffsetLengthValue
08Center frequency in Hz as 64 bit integer
88Effective FFT time in milliseconds as 64 bit integer
168Unix timestamp in milliseconds as 64 bit integer
244FFT size as 32 bit integer
284FFT bandwidth in Hz as 32 bit integer
324 + Indicators as 32 bit integer LSB to MSB: +
    +
  • bit 0: Linear (1) / log (0) spectrum indicator
  • +
  • bit 1: SSB (1) / DSB (0) spectrum indicator
  • +
  • bit 2: USB (1) / LSB (0) spectrum indicator
  • +
+
36N*4Vector of N = FFT size 32 bit floating point spectrum power values either log (dB) or linear
+

5. Presets and commands

The presets and commands tree view are by default stacked in tabs. The following sections describe the presets section 5A) and commands (section 5B) views successively