From b993e3d73ea6f01c08fc4b5b7185acd440d6f533 Mon Sep 17 00:00:00 2001 From: Jared Boone Date: Tue, 12 Jan 2016 10:32:00 -0800 Subject: [PATCH] Consolidate spectrum collector message handling. --- firmware/baseband/proc_am_audio.cpp | 15 ++----------- firmware/baseband/proc_am_audio.hpp | 2 -- firmware/baseband/proc_nfm_audio.cpp | 15 ++----------- firmware/baseband/proc_nfm_audio.hpp | 2 -- firmware/baseband/proc_wfm_audio.cpp | 15 ++----------- firmware/baseband/proc_wfm_audio.hpp | 2 -- firmware/baseband/proc_wideband_spectrum.cpp | 13 +---------- firmware/baseband/proc_wideband_spectrum.hpp | 1 - firmware/baseband/spectrum_collector.cpp | 23 ++++++++++++++++++++ firmware/baseband/spectrum_collector.hpp | 11 ++++++---- 10 files changed, 37 insertions(+), 62 deletions(-) diff --git a/firmware/baseband/proc_am_audio.cpp b/firmware/baseband/proc_am_audio.cpp index 2e70cf311..06314ee0f 100644 --- a/firmware/baseband/proc_am_audio.cpp +++ b/firmware/baseband/proc_am_audio.cpp @@ -47,17 +47,14 @@ void NarrowbandAMAudio::execute(const buffer_c8_t& buffer) { void NarrowbandAMAudio::on_message(const Message* const message) { switch(message->id) { case Message::ID::UpdateSpectrum: - channel_spectrum.update(); + case Message::ID::SpectrumStreamingConfig: + channel_spectrum.on_message(message); break; case Message::ID::AMConfigure: configure(*reinterpret_cast(message)); break; - case Message::ID::SpectrumStreamingConfig: - streaming_config(*reinterpret_cast(message)); - break; - default: break; } @@ -88,11 +85,3 @@ void NarrowbandAMAudio::configure(const AMConfigureMessage& message) { configured = true; } - -void NarrowbandAMAudio::streaming_config(const SpectrumStreamingConfigMessage& message) { - if( message.mode == SpectrumStreamingConfigMessage::Mode::Running ) { - channel_spectrum.start(); - } else { - channel_spectrum.stop(); - } -} diff --git a/firmware/baseband/proc_am_audio.hpp b/firmware/baseband/proc_am_audio.hpp index 79f7d8187..1471263d5 100644 --- a/firmware/baseband/proc_am_audio.hpp +++ b/firmware/baseband/proc_am_audio.hpp @@ -60,8 +60,6 @@ private: bool configured { false }; void configure(const AMConfigureMessage& message); - - void streaming_config(const SpectrumStreamingConfigMessage& message); }; #endif/*__PROC_AM_AUDIO_H__*/ diff --git a/firmware/baseband/proc_nfm_audio.cpp b/firmware/baseband/proc_nfm_audio.cpp index 573042fb1..906617cd3 100644 --- a/firmware/baseband/proc_nfm_audio.cpp +++ b/firmware/baseband/proc_nfm_audio.cpp @@ -47,17 +47,14 @@ void NarrowbandFMAudio::execute(const buffer_c8_t& buffer) { void NarrowbandFMAudio::on_message(const Message* const message) { switch(message->id) { case Message::ID::UpdateSpectrum: - channel_spectrum.update(); + case Message::ID::SpectrumStreamingConfig: + channel_spectrum.on_message(message); break; case Message::ID::NBFMConfigure: configure(*reinterpret_cast(message)); break; - case Message::ID::SpectrumStreamingConfig: - streaming_config(*reinterpret_cast(message)); - break; - default: break; } @@ -91,11 +88,3 @@ void NarrowbandFMAudio::configure(const NBFMConfigureMessage& message) { configured = true; } - -void NarrowbandFMAudio::streaming_config(const SpectrumStreamingConfigMessage& message) { - if( message.mode == SpectrumStreamingConfigMessage::Mode::Running ) { - channel_spectrum.start(); - } else { - channel_spectrum.stop(); - } -} diff --git a/firmware/baseband/proc_nfm_audio.hpp b/firmware/baseband/proc_nfm_audio.hpp index 3db9e11f0..14c2033c7 100644 --- a/firmware/baseband/proc_nfm_audio.hpp +++ b/firmware/baseband/proc_nfm_audio.hpp @@ -59,8 +59,6 @@ private: bool configured { false }; void configure(const NBFMConfigureMessage& message); - - void streaming_config(const SpectrumStreamingConfigMessage& message); }; #endif/*__PROC_NFM_AUDIO_H__*/ diff --git a/firmware/baseband/proc_wfm_audio.cpp b/firmware/baseband/proc_wfm_audio.cpp index d86197860..33526af8f 100644 --- a/firmware/baseband/proc_wfm_audio.cpp +++ b/firmware/baseband/proc_wfm_audio.cpp @@ -74,17 +74,14 @@ void WidebandFMAudio::execute(const buffer_c8_t& buffer) { void WidebandFMAudio::on_message(const Message* const message) { switch(message->id) { case Message::ID::UpdateSpectrum: - channel_spectrum.update(); + case Message::ID::SpectrumStreamingConfig: + channel_spectrum.on_message(message); break; case Message::ID::WFMConfigure: configure(*reinterpret_cast(message)); break; - case Message::ID::SpectrumStreamingConfig: - streaming_config(*reinterpret_cast(message)); - break; - default: break; } @@ -119,11 +116,3 @@ void WidebandFMAudio::configure(const WFMConfigureMessage& message) { configured = true; } - -void WidebandFMAudio::streaming_config(const SpectrumStreamingConfigMessage& message) { - if( message.mode == SpectrumStreamingConfigMessage::Mode::Running ) { - channel_spectrum.start(); - } else { - channel_spectrum.stop(); - } -} diff --git a/firmware/baseband/proc_wfm_audio.hpp b/firmware/baseband/proc_wfm_audio.hpp index 499932929..22282189b 100644 --- a/firmware/baseband/proc_wfm_audio.hpp +++ b/firmware/baseband/proc_wfm_audio.hpp @@ -62,8 +62,6 @@ private: bool configured { false }; void configure(const WFMConfigureMessage& message); - - void streaming_config(const SpectrumStreamingConfigMessage& message); }; #endif/*__PROC_WFM_AUDIO_H__*/ diff --git a/firmware/baseband/proc_wideband_spectrum.cpp b/firmware/baseband/proc_wideband_spectrum.cpp index a5b6cd8a2..399cf6265 100644 --- a/firmware/baseband/proc_wideband_spectrum.cpp +++ b/firmware/baseband/proc_wideband_spectrum.cpp @@ -64,22 +64,11 @@ void WidebandSpectrum::execute(const buffer_c8_t& buffer) { void WidebandSpectrum::on_message(const Message* const message) { switch(message->id) { case Message::ID::UpdateSpectrum: - channel_spectrum.update(); - break; - case Message::ID::SpectrumStreamingConfig: - streaming_config(*reinterpret_cast(message)); + channel_spectrum.on_message(message); break; default: break; } } - -void WidebandSpectrum::streaming_config(const SpectrumStreamingConfigMessage& message) { - if( message.mode == SpectrumStreamingConfigMessage::Mode::Running ) { - channel_spectrum.start(); - } else { - channel_spectrum.stop(); - } -} diff --git a/firmware/baseband/proc_wideband_spectrum.hpp b/firmware/baseband/proc_wideband_spectrum.hpp index 3aff0d3e5..5a8757352 100644 --- a/firmware/baseband/proc_wideband_spectrum.hpp +++ b/firmware/baseband/proc_wideband_spectrum.hpp @@ -42,7 +42,6 @@ private: std::array spectrum; - void streaming_config(const SpectrumStreamingConfigMessage& message); size_t phase = 0; }; diff --git a/firmware/baseband/spectrum_collector.cpp b/firmware/baseband/spectrum_collector.cpp index fc2241aca..7a262ba66 100644 --- a/firmware/baseband/spectrum_collector.cpp +++ b/firmware/baseband/spectrum_collector.cpp @@ -29,6 +29,29 @@ #include +void SpectrumCollector::on_message(const Message* const message) { + switch(message->id) { + case Message::ID::UpdateSpectrum: + update(); + break; + + case Message::ID::SpectrumStreamingConfig: + set_state(*reinterpret_cast(message)); + break; + + default: + break; + } +} + +void SpectrumCollector::set_state(const SpectrumStreamingConfigMessage& message) { + if( message.mode == SpectrumStreamingConfigMessage::Mode::Running ) { + start(); + } else { + stop(); + } +} + void SpectrumCollector::start() { streaming = true; ChannelSpectrumConfigMessage message { &fifo }; diff --git a/firmware/baseband/spectrum_collector.hpp b/firmware/baseband/spectrum_collector.hpp index 2f5d51806..4c2cd5420 100644 --- a/firmware/baseband/spectrum_collector.hpp +++ b/firmware/baseband/spectrum_collector.hpp @@ -39,8 +39,7 @@ public: { } - void start(); - void stop(); + void on_message(const Message* const message); void set_decimation_factor(const size_t decimation_factor); @@ -50,8 +49,6 @@ public: const uint32_t filter_stop_frequency ); - void update(); - private: BlockDecimator<256> channel_spectrum_decimator; ChannelSpectrumFIFO fifo; @@ -64,6 +61,12 @@ private: uint32_t channel_filter_stop_frequency { 0 }; void post_message(const buffer_c16_t& data); + + void set_state(const SpectrumStreamingConfigMessage& message); + void start(); + void stop(); + + void update(); }; #endif/*__SPECTRUM_COLLECTOR_H__*/