From b9395219d4e53390fb29bb216991ccdc33a1db21 Mon Sep 17 00:00:00 2001 From: f4exb Date: Mon, 9 Nov 2020 17:14:17 +0100 Subject: [PATCH] Added ChirpChat demod (2) --- plugins/channelrx/demodchirpchat/chirpchatplugin.cpp | 2 +- plugins/channelrx/demodchirpchat/readme.md | 2 +- sdrbase/dsp/basebandsamplesink.h | 6 ++++++ sdrbase/dsp/glspectrumsettings.cpp | 8 +++++++- sdrbase/dsp/glspectrumsettings.h | 2 ++ sdrgui/gui/glspectrumgui.cpp | 5 +++++ 6 files changed, 22 insertions(+), 3 deletions(-) diff --git a/plugins/channelrx/demodchirpchat/chirpchatplugin.cpp b/plugins/channelrx/demodchirpchat/chirpchatplugin.cpp index 762e270cc..b58cf7175 100644 --- a/plugins/channelrx/demodchirpchat/chirpchatplugin.cpp +++ b/plugins/channelrx/demodchirpchat/chirpchatplugin.cpp @@ -27,7 +27,7 @@ const PluginDescriptor ChirpChatPlugin::m_pluginDescriptor = { ChirpChatDemod::m_channelId, QString("ChirpChat Demodulator"), - QString("5.13.0"), + QString("6.0.0"), QString("(c) Edouard Griffiths, F4EXB"), QString("https://github.com/f4exb/sdrangel"), true, diff --git a/plugins/channelrx/demodchirpchat/readme.md b/plugins/channelrx/demodchirpchat/readme.md index 3daa646a6..7090f81c1 100644 --- a/plugins/channelrx/demodchirpchat/readme.md +++ b/plugins/channelrx/demodchirpchat/readme.md @@ -15,7 +15,7 @@ Transmissions from the RN2483 module with the Distance Enhancement feature (spre Modulation characteristics from LoRa have been augmented with more bandwidths and FFT bin collations (DE factor). Plain TTY and ASCII have also been added and there are plans to add some more complex typically amateur radio MFSK based modes like JT65. -Note: this plugin is available in version 5 only (since 5.2.0). +Note: this plugin is officially supported since version 6.

Interface

diff --git a/sdrbase/dsp/basebandsamplesink.h b/sdrbase/dsp/basebandsamplesink.h index 0282d6dc0..b539e5d95 100644 --- a/sdrbase/dsp/basebandsamplesink.h +++ b/sdrbase/dsp/basebandsamplesink.h @@ -41,6 +41,12 @@ public: virtual void setMessageQueueToGUI(MessageQueue *queue) { m_guiMessageQueue = queue; } MessageQueue *getMessageQueueToGUI() { return m_guiMessageQueue; } + virtual void feed(const Complex *begin, unsigned int length) //!< Special feed directly with complex array + { + (void) begin; + (void) length; + } + protected: MessageQueue m_inputMessageQueue; //!< Queue for asynchronous inbound communication MessageQueue *m_guiMessageQueue; //!< Input message queue to the GUI diff --git a/sdrbase/dsp/glspectrumsettings.cpp b/sdrbase/dsp/glspectrumsettings.cpp index 310828b60..023e30eaf 100644 --- a/sdrbase/dsp/glspectrumsettings.cpp +++ b/sdrbase/dsp/glspectrumsettings.cpp @@ -50,6 +50,8 @@ void GLSpectrumSettings::resetToDefaults() m_averagingMode = AvgModeNone; m_averagingIndex = 0; m_linear = false; + m_ssb = false; + m_usb = true; } QByteArray GLSpectrumSettings::serialize() const @@ -77,6 +79,8 @@ QByteArray GLSpectrumSettings::serialize() const s.writeS32(19, (int) m_averagingMode); s.writeS32(20, (qint32) getAveragingValue(m_averagingIndex, m_averagingMode)); s.writeBool(21, m_linear); + s.writeBool(24, m_ssb); + s.writeBool(25, m_usb); return s.final(); } @@ -119,6 +123,8 @@ bool GLSpectrumSettings::deserialize(const QByteArray& data) m_averagingIndex = getAveragingIndex(tmp, m_averagingMode); m_averagingNb = getAveragingValue(m_averagingIndex, m_averagingMode); d.readBool(21, &m_linear, false); + d.readBool(24, &m_ssb, false); + d.readBool(25, &m_usb, true); return true; } @@ -189,4 +195,4 @@ int GLSpectrumSettings::getAveragingIndex(int averagingValue, AveragingMode aver } return 3*getAveragingMaxScale(averagingMode) + 3; -} \ No newline at end of file +} diff --git a/sdrbase/dsp/glspectrumsettings.h b/sdrbase/dsp/glspectrumsettings.h index a269ca75e..4d38f8028 100644 --- a/sdrbase/dsp/glspectrumsettings.h +++ b/sdrbase/dsp/glspectrumsettings.h @@ -58,6 +58,8 @@ public: int m_averagingIndex; unsigned int m_averagingNb; bool m_linear; //!< linear else logarithmic scale + bool m_ssb; //!< SSB display with spectrum center at start of array or display - else spectrum center is on center + bool m_usb; //!< USB display with increasing frequencies towads the right - else decreasing frequencies GLSpectrumSettings(); virtual ~GLSpectrumSettings(); diff --git a/sdrgui/gui/glspectrumgui.cpp b/sdrgui/gui/glspectrumgui.cpp index 2894f8adb..1699ca124 100644 --- a/sdrgui/gui/glspectrumgui.cpp +++ b/sdrgui/gui/glspectrumgui.cpp @@ -486,6 +486,11 @@ void GLSpectrumGUI::setAveragingToolitp() } } +void GLSpectrumGUI::setFFTSize(int log2FFTSize) +{ + ui->fftSize->setCurrentIndex(log2FFTSize < 7 ? 0 : log2FFTSize > 12 ? 5 : log2FFTSize - 7); // 128 to 4096 in powers of 2 +} + bool GLSpectrumGUI::handleMessage(const Message& message) { if (GLSpectrum::MsgReportSampleRate::match(message))