From 13ace213a76f4f672805fcf68ce4404a76e1609e Mon Sep 17 00:00:00 2001 From: f4exb Date: Sat, 2 May 2020 00:35:47 +0200 Subject: [PATCH] Websocket spectrum: implemented start/stop server from spectrum GUI --- sdrbase/dsp/spectrumvis.cpp | 12 --------- sdrbase/dsp/spectrumvis.h | 41 ++++++++++++++++--------------- sdrbase/websockets/wsspectrum.cpp | 1 + sdrgui/gui/glspectrumgui.cpp | 19 +++++++------- sdrgui/gui/glspectrumgui.h | 1 + 5 files changed, 32 insertions(+), 42 deletions(-) diff --git a/sdrbase/dsp/spectrumvis.cpp b/sdrbase/dsp/spectrumvis.cpp index 3ca53414f..2617ce214 100644 --- a/sdrbase/dsp/spectrumvis.cpp +++ b/sdrbase/dsp/spectrumvis.cpp @@ -72,18 +72,6 @@ SpectrumVis::~SpectrumVis() fftFactory->releaseEngine(m_settings.m_fftSize, false, m_fftEngineSequence); } -void SpectrumVis::openWSSpectrum() -{ - MsgConfigureWSpectrumOpenClose *cmd = new MsgConfigureWSpectrumOpenClose(true); - getInputMessageQueue()->push(cmd); -} - -void SpectrumVis::closeWSSpectrum() -{ - MsgConfigureWSpectrumOpenClose *cmd = new MsgConfigureWSpectrumOpenClose(false); - getInputMessageQueue()->push(cmd); -} - void SpectrumVis::configure( int fftSize, float refLevel, diff --git a/sdrbase/dsp/spectrumvis.h b/sdrbase/dsp/spectrumvis.h index 5799288ae..bccba55fd 100644 --- a/sdrbase/dsp/spectrumvis.h +++ b/sdrbase/dsp/spectrumvis.h @@ -47,8 +47,7 @@ public: const GLSpectrumSettings& getSettings() const { return m_settings; } bool getForce() const { return m_force; } - static MsgConfigureSpectrumVis* create(const GLSpectrumSettings& settings, bool force) - { + static MsgConfigureSpectrumVis* create(const GLSpectrumSettings& settings, bool force) { return new MsgConfigureSpectrumVis(settings, force); } @@ -82,6 +81,26 @@ public: { } }; + class MsgConfigureWSpectrumOpenClose : public Message + { + MESSAGE_CLASS_DECLARATION + + public: + Real getOpenClose() const { return m_openClose; } + + static MsgConfigureWSpectrumOpenClose* create(bool openClose) { + return new MsgConfigureWSpectrumOpenClose(openClose); + } + + private: + bool m_openClose; + + MsgConfigureWSpectrumOpenClose(bool openClose) : + Message(), + m_openClose(openClose) + {} + }; + enum AvgMode { AvgModeNone, @@ -94,8 +113,6 @@ public: virtual ~SpectrumVis(); void setGLSpectrum(GLSpectrumInterface* glSpectrum) { m_glSpectrum = glSpectrum; } - void openWSSpectrum(); - void closeWSSpectrum(); void configure( int fftSize, @@ -136,22 +153,6 @@ private: Real m_scalef; }; - class MsgConfigureWSpectrumOpenClose : public Message - { - MESSAGE_CLASS_DECLARATION - - public: - MsgConfigureWSpectrumOpenClose(bool openClose) : - Message(), - m_openClose(openClose) - {} - - Real getOpenClose() const { return m_openClose; } - - private: - bool m_openClose; - }; - class MsgConfigureWSpectrum : public Message { MESSAGE_CLASS_DECLARATION diff --git a/sdrbase/websockets/wsspectrum.cpp b/sdrbase/websockets/wsspectrum.cpp index b1d6e8045..497f09073 100644 --- a/sdrbase/websockets/wsspectrum.cpp +++ b/sdrbase/websockets/wsspectrum.cpp @@ -57,6 +57,7 @@ void WSSpectrum::closeSocket() { if (m_webSocketServer) { + qDebug() << "WSSpectrum::closeSocket: stopping spectrum server listening at " << m_listeningAddress.toString() << " on port " << m_port; delete m_webSocketServer; m_webSocketServer = nullptr; } diff --git a/sdrgui/gui/glspectrumgui.cpp b/sdrgui/gui/glspectrumgui.cpp index 1150464c0..f93876fb6 100644 --- a/sdrgui/gui/glspectrumgui.cpp +++ b/sdrgui/gui/glspectrumgui.cpp @@ -201,16 +201,6 @@ void GLSpectrumGUI::applySettings() { SpectrumVis::MsgConfigureSpectrumVis *msg = SpectrumVis::MsgConfigureSpectrumVis::create(m_settings, false); m_spectrumVis->getInputMessageQueue()->push(msg); - // m_spectrumVis->configure( - // m_settings.m_fftSize, - // m_settings.m_refLevel, - // m_settings.m_powerRange, - // m_settings.m_fftOverlap, - // getAveragingValue(m_settings.m_averagingIndex, m_settings.m_averagingMode), - // (SpectrumVis::AvgMode) m_settings.m_averagingMode, - // (FFTWindow::Function) m_settings.m_fftWindow, - // m_settings.m_linear - // ); } } @@ -257,6 +247,15 @@ void GLSpectrumGUI::on_linscale_toggled(bool checked) applySettings(); } +void GLSpectrumGUI::on_wsSpectrum_toggled(bool checked) +{ + if (m_spectrumVis) + { + SpectrumVis::MsgConfigureWSpectrumOpenClose *msg = SpectrumVis::MsgConfigureWSpectrumOpenClose::create(checked); + m_spectrumVis->getInputMessageQueue()->push(msg); + } +} + void GLSpectrumGUI::on_refLevel_valueChanged(int value) { m_settings.m_refLevel = value; diff --git a/sdrgui/gui/glspectrumgui.h b/sdrgui/gui/glspectrumgui.h index f2f3351c9..88d7dfa7c 100644 --- a/sdrgui/gui/glspectrumgui.h +++ b/sdrgui/gui/glspectrumgui.h @@ -93,6 +93,7 @@ private slots: void on_averagingMode_currentIndexChanged(int index); void on_averaging_currentIndexChanged(int index); void on_linscale_toggled(bool checked); + void on_wsSpectrum_toggled(bool checked); void on_waterfall_toggled(bool checked); void on_histogram_toggled(bool checked);