From 3c7a39f71e587fb60bb4b6dba48dbe8b910f3066 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 18062 -> 20472 bytes doc/img/MainWindow_spectrum_gui.xcf | Bin 104977 -> 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 | 6 +++++- 9 files changed, 67 insertions(+), 12 deletions(-) diff --git a/doc/img/MainWindow_spectrum_gui.png b/doc/img/MainWindow_spectrum_gui.png index 18b4da1b74264c4e1f39cb8684b7af0acdf7cea4..aa2e13d749030f07fe84cd9b7ade4c7a7cb0095b 100644 GIT binary patch literal 20472 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 literal 18062 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 diff --git a/doc/img/MainWindow_spectrum_gui.xcf b/doc/img/MainWindow_spectrum_gui.xcf index c0a8f49f16545154305594fb3b1bb2bceb7c609e..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 104977 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 diff --git a/sdrbase/dsp/spectrumvis.cpp b/sdrbase/dsp/spectrumvis.cpp index b2292775c..07cb9c531 100644 --- a/sdrbase/dsp/spectrumvis.cpp +++ b/sdrbase/dsp/spectrumvis.cpp @@ -43,11 +43,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), @@ -285,8 +287,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; } @@ -587,10 +592,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) @@ -629,6 +636,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 78ee22108..fdaa56d9a 100644 --- a/sdrbase/dsp/spectrumvis.h +++ b/sdrbase/dsp/spectrumvis.h @@ -88,6 +88,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, @@ -157,6 +176,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 b6ca5cdce..e106a3522 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 3997c29c3..8ae138c30 100644 --- a/sdrgui/gui/glspectrumgui.cpp +++ b/sdrgui/gui/glspectrumgui.cpp @@ -350,6 +350,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 9d324b287..41309ef89 100644 --- a/sdrgui/gui/glspectrumgui.h +++ b/sdrgui/gui/glspectrumgui.h @@ -103,6 +103,7 @@ private slots: void on_invertWaterfall_toggled(bool checked); void on_grid_toggled(bool checked); void on_clearSpectrum_clicked(bool checked); + void on_freeze_toggled(bool checked); void handleInputMessages(); void openWebsocketSpectrumSettingsDialog(const QPoint& p); diff --git a/sdrgui/gui/glspectrumgui.ui b/sdrgui/gui/glspectrumgui.ui index 08b5b9857..52e042188 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 5db2489d1..2f1e07d7c 100644 --- a/sdrgui/readme.md +++ b/sdrgui/readme.md @@ -453,7 +453,11 @@ 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 server control

+

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

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.