From 06c9f7f20dba4a68ca05b276396359c15ec03a75 Mon Sep 17 00:00:00 2001 From: Edouard Griffiths Date: Mon, 14 May 2018 20:47:23 +0200 Subject: [PATCH] Channel Analyzer NG: implemented PLL with PSK order --- .../channelrx/chanalyzerng/chanalyzerng.cpp | 15 ++++++-- plugins/channelrx/chanalyzerng/chanalyzerng.h | 21 +++++++--- .../chanalyzerng/chanalyzernggui.cpp | 8 +++- .../channelrx/chanalyzerng/chanalyzernggui.h | 1 + .../channelrx/chanalyzerng/chanalyzernggui.ui | 38 +++++++++++++++++++ 5 files changed, 73 insertions(+), 10 deletions(-) diff --git a/plugins/channelrx/chanalyzerng/chanalyzerng.cpp b/plugins/channelrx/chanalyzerng/chanalyzerng.cpp index 67d464ab3..5e6e8a7c8 100644 --- a/plugins/channelrx/chanalyzerng/chanalyzerng.cpp +++ b/plugins/channelrx/chanalyzerng/chanalyzerng.cpp @@ -75,9 +75,10 @@ void ChannelAnalyzerNG::configure(MessageQueue* messageQueue, Real LowCutoff, int spanLog2, bool ssb, - bool pll) + bool pll, + unsigned int pllPskOrder) { - Message* cmd = MsgConfigureChannelAnalyzer::create(channelSampleRate, Bandwidth, LowCutoff, spanLog2, ssb, pll); + Message* cmd = MsgConfigureChannelAnalyzer::create(channelSampleRate, Bandwidth, LowCutoff, spanLog2, ssb, pll, pllPskOrder); messageQueue->push(cmd); } @@ -168,6 +169,7 @@ bool ChannelAnalyzerNG::handleMessage(const Message& cmd) m_config.m_spanLog2 = cfg.getSpanLog2(); m_config.m_ssb = cfg.getSSB(); m_config.m_pll = cfg.getPLL(); + m_config.m_pllPskOrder = cfg.getPLLPSKOrder(); qDebug() << "ChannelAnalyzerNG::handleMessage: MsgConfigureChannelAnalyzer:" << " m_channelSampleRate: " << m_config.m_channelSampleRate @@ -175,7 +177,8 @@ bool ChannelAnalyzerNG::handleMessage(const Message& cmd) << " m_LowCutoff: " << m_config.m_LowCutoff << " m_spanLog2: " << m_config.m_spanLog2 << " m_ssb: " << m_config.m_ssb - << " m_pll: " << m_config.m_pll; + << " m_pll: " << m_config.m_pll + << " m_pllPskOrder: " << m_config.m_pllPskOrder; apply(); return true; @@ -256,6 +259,11 @@ void ChannelAnalyzerNG::apply(bool force) } } + if (m_running.m_pll != m_config.m_pll || force) + { + m_pll.setPskOrder(m_config.m_pllPskOrder); + } + m_running.m_frequency = m_config.m_frequency; m_running.m_channelSampleRate = m_config.m_channelSampleRate; m_running.m_inputSampleRate = m_config.m_inputSampleRate; @@ -266,5 +274,6 @@ void ChannelAnalyzerNG::apply(bool force) m_running.m_spanLog2 = m_config.m_spanLog2; m_running.m_ssb = m_config.m_ssb; m_running.m_pll = m_config.m_pll; + m_running.m_pllPskOrder = m_config.m_pllPskOrder; //m_settingsMutex.unlock(); } diff --git a/plugins/channelrx/chanalyzerng/chanalyzerng.h b/plugins/channelrx/chanalyzerng/chanalyzerng.h index d65786762..222b30628 100644 --- a/plugins/channelrx/chanalyzerng/chanalyzerng.h +++ b/plugins/channelrx/chanalyzerng/chanalyzerng.h @@ -47,6 +47,7 @@ public: int getSpanLog2() const { return m_spanLog2; } bool getSSB() const { return m_ssb; } bool getPLL() const { return m_pll; } + unsigned int getPLLPSKOrder() const { return m_pllPskOrder; } static MsgConfigureChannelAnalyzer* create( int channelSampleRate, @@ -54,7 +55,8 @@ public: Real LowCutoff, int spanLog2, bool ssb, - bool pll) + bool pll, + unsigned int pllPskOrder) { return new MsgConfigureChannelAnalyzer( channelSampleRate, @@ -62,7 +64,8 @@ public: LowCutoff, spanLog2, ssb, - pll); + pll, + pllPskOrder); } private: @@ -72,6 +75,7 @@ public: int m_spanLog2; bool m_ssb; bool m_pll; + unsigned int m_pllPskOrder; MsgConfigureChannelAnalyzer( int channelSampleRate, @@ -79,14 +83,16 @@ public: Real LowCutoff, int spanLog2, bool ssb, - bool pll) : + bool pll, + unsigned int pllPskOrder) : Message(), m_channelSampleRate(channelSampleRate), m_Bandwidth(Bandwidth), m_LowCutoff(LowCutoff), m_spanLog2(spanLog2), m_ssb(ssb), - m_pll(pll) + m_pll(pll), + m_pllPskOrder(pllPskOrder) { } }; @@ -141,7 +147,8 @@ public: Real LowCutoff, int spanLog2, bool ssb, - bool pll); + bool pll, + unsigned int pllPskOrder); DownChannelizer *getChannelizer() { return m_channelizer; } int getInputSampleRate() const { return m_running.m_inputSampleRate; } @@ -179,6 +186,7 @@ private: int m_spanLog2; bool m_ssb; bool m_pll; + unsigned int m_pllPskOrder; Config() : m_frequency(0), @@ -188,7 +196,8 @@ private: m_LowCutoff(300), m_spanLog2(3), m_ssb(false), - m_pll(false) + m_pll(false), + m_pllPskOrder(1) {} }; diff --git a/plugins/channelrx/chanalyzerng/chanalyzernggui.cpp b/plugins/channelrx/chanalyzerng/chanalyzernggui.cpp index 90dbd44e0..a18da957b 100644 --- a/plugins/channelrx/chanalyzerng/chanalyzernggui.cpp +++ b/plugins/channelrx/chanalyzerng/chanalyzernggui.cpp @@ -276,6 +276,11 @@ void ChannelAnalyzerNGGUI::on_pll_toggled(bool checked) applySettings(); } +void ChannelAnalyzerNGGUI::on_pllPskOrder_currentIndexChanged(int index __attribute__((unused))) +{ + applySettings(); +} + void ChannelAnalyzerNGGUI::on_useRationalDownsampler_toggled(bool checked __attribute__((unused))) { setNewFinalRate(m_spanLog2); @@ -605,7 +610,8 @@ void ChannelAnalyzerNGGUI::applySettings() ui->lowCut->value() * 100.0, m_spanLog2, ui->ssb->isChecked(), - ui->pll->isChecked()); + ui->pll->isChecked(), + 1<pllPskOrder->currentIndex()); } } diff --git a/plugins/channelrx/chanalyzerng/chanalyzernggui.h b/plugins/channelrx/chanalyzerng/chanalyzernggui.h index 0bc962e92..499ded960 100644 --- a/plugins/channelrx/chanalyzerng/chanalyzernggui.h +++ b/plugins/channelrx/chanalyzerng/chanalyzernggui.h @@ -94,6 +94,7 @@ private slots: void on_deltaFrequency_changed(qint64 value); void on_channelSampleRate_changed(quint64 value); void on_pll_toggled(bool checked); + void on_pllPskOrder_currentIndexChanged(int index); void on_useRationalDownsampler_toggled(bool checked); void on_BW_valueChanged(int value); void on_lowCut_valueChanged(int value); diff --git a/plugins/channelrx/chanalyzerng/chanalyzernggui.ui b/plugins/channelrx/chanalyzerng/chanalyzernggui.ui index 1c72fa3a1..d9e5beffa 100644 --- a/plugins/channelrx/chanalyzerng/chanalyzernggui.ui +++ b/plugins/channelrx/chanalyzerng/chanalyzernggui.ui @@ -197,6 +197,44 @@ + + + + + 40 + 16777215 + + + + PLL PSK order (1 for CW) + + + + 1 + + + + + 2 + + + + + 4 + + + + + 8 + + + + + 16 + + + +