From 38e14b1e30161de9a8531dbc2a7e37f9dfc36e4b Mon Sep 17 00:00:00 2001 From: furrtek Date: Thu, 18 May 2017 11:06:11 +0100 Subject: [PATCH] Scanner: Added last locked frequencies list Added back squelch to NFM receiver Scanner: cleanup Widgets: VU-meter cleanup --- firmware/application/CMakeLists.txt | 2 +- firmware/application/analog_audio_app.cpp | 12 +- firmware/application/analog_audio_app.hpp | 16 +- firmware/application/main.cpp | 35 +- firmware/application/ui_closecall.cpp | 371 ------------------- firmware/application/ui_closecall.hpp | 192 ---------- firmware/application/ui_mictx.hpp | 3 +- firmware/application/ui_navigation.cpp | 6 +- firmware/application/ui_scanner.cpp | 417 ++++++++++++++++++++++ firmware/application/ui_scanner.hpp | 249 +++++++++++++ firmware/baseband/audio_output.cpp | 6 +- firmware/baseband/audio_output.hpp | 3 + firmware/baseband/proc_nfm_audio.cpp | 13 +- firmware/baseband/proc_nfm_audio.hpp | 3 + firmware/common/message.hpp | 2 + firmware/common/ui_widget.cpp | 79 ++-- firmware/common/ui_widget.hpp | 10 +- firmware/portapack-h1-havoc.bin | Bin 864256 -> 866976 bytes 18 files changed, 788 insertions(+), 631 deletions(-) delete mode 100644 firmware/application/ui_closecall.cpp delete mode 100644 firmware/application/ui_closecall.hpp create mode 100644 firmware/application/ui_scanner.cpp create mode 100644 firmware/application/ui_scanner.hpp diff --git a/firmware/application/CMakeLists.txt b/firmware/application/CMakeLists.txt index 9afbbd462..c620adc08 100644 --- a/firmware/application/CMakeLists.txt +++ b/firmware/application/CMakeLists.txt @@ -162,7 +162,7 @@ set(CPPSRC ui_baseband_stats_view.cpp ui_bht_tx.cpp ui_channel.cpp - ui_closecall.cpp + ui_scanner.cpp ui_coasterp.cpp ui_cw.cpp ui_debug.cpp diff --git a/firmware/application/analog_audio_app.cpp b/firmware/application/analog_audio_app.cpp index 0863c21a1..57e7183b9 100644 --- a/firmware/application/analog_audio_app.cpp +++ b/firmware/application/analog_audio_app.cpp @@ -77,8 +77,10 @@ NBFMOptionsView::NBFMOptionsView( /* AnalogAudioView *******************************************************/ AnalogAudioView::AnalogAudioView( - NavigationView& nav -) { + NavigationView& nav, + bool eos +) : nav_ (nav) +{ add_children({ &rssi, &channel, @@ -91,6 +93,8 @@ AnalogAudioView::AnalogAudioView( &record_view, &waterfall, }); + + exit_on_squelch = eos; field_frequency.set_value(receiver_model.tuning_frequency()); field_frequency.set_step(receiver_model.frequency_step()); @@ -311,4 +315,8 @@ void AnalogAudioView::update_modulation(const ReceiverModel::Mode modulation) { } } +void AnalogAudioView::squelched() { + if (exit_on_squelch) nav_.pop(); +} + } /* namespace ui */ diff --git a/firmware/application/analog_audio_app.hpp b/firmware/application/analog_audio_app.hpp index 566b63d94..a82925163 100644 --- a/firmware/application/analog_audio_app.hpp +++ b/firmware/application/analog_audio_app.hpp @@ -82,7 +82,7 @@ private: class AnalogAudioView : public View { public: - AnalogAudioView(NavigationView& nav); + AnalogAudioView(NavigationView& nav, bool eos); ~AnalogAudioView(); void on_hide() override; @@ -96,6 +96,9 @@ private: const Rect options_view_rect { 0 * 8, 1 * 16, 30 * 8, 1 * 16 }; + NavigationView& nav_; + bool exit_on_squelch { false }; + RSSI rssi { { 21 * 8, 0, 6 * 8, 4 }, }; @@ -163,6 +166,17 @@ private: void set_options_widget(std::unique_ptr new_widget); void update_modulation(const ReceiverModel::Mode modulation); + + void squelched(); + + MessageHandlerRegistration message_handler_squelch_signal { + Message::ID::RequestSignal, + [this](const Message* const p) { + (void)p; + this->squelched(); + } + }; + }; } /* namespace ui */ diff --git a/firmware/application/main.cpp b/firmware/application/main.cpp index 3ef5d8ed1..cab3857bd 100755 --- a/firmware/application/main.cpp +++ b/firmware/application/main.cpp @@ -23,14 +23,15 @@ // Color bitmaps generated with: // Gimp image > indexed colors (16), then "xxd -i *.bmp" -//TODO: Waveform widget as FFT view in scanner +//TODO: Scanner multiple slices (buggy) +//TODO: Use to_string_short_freq +//TODO: Add auto-rounding to 12.5kHz channel option in scanner +//TODO: Waveform widget as FFT view in scanner ? //BUG: Replay freezes when SD card not present //BUG: RDS doesn't stop baseband when stopping tx ? -//BUG: Check AFSK transmit end, skips last bits ? - +//TEST: Check AFSK transmit end, skips last bits ? //TEST: Imperial in whipcalc -//TODO: IQ replay //TODO: Optimize (and group ?) CTCSS tone gen code //TODO: Morse use prosigns //TODO: Morse live keying mode ? @@ -41,39 +42,35 @@ Continuous (Fox-oring) 60s transmit, 360s space (Classic 1/7 min) */ //TODO: Use transmittermodel bw setting -//TODO: Use Labels widget wherever possible -//TODO: Use TransmitterView in TEDI/LCR, Numbers, whistle, ... +//TODO: Use TransmitterView in TEDI/LCR, Numbers, ... //TODO: FreqMan: Add and rename categories //TODO: FreqMan: Sort by category in edit screen //TODO: FreqMan: Cap entry count per category (only done for total entries right now) -//TODO: Script engine ? -//TODO: Close Call multiple slices (buggy) //TODO: Wav visualizer - //TODO: File browser view ? //TODO: Mousejack ? //TODO: Move frequencykeypad from ui_receiver to ui_widget (used everywhere) //TODO: ADS-B draw trajectory + GPS coordinates + scale, and playback -//TODO: Analog TV tx with camcorder font character generator -//TODO: Make Whistle use proc_tones //TODO: RDS multiple groups (sequence) //TODO: Use ModalMessageView confirmation for TX ? -//TODO: Show address/data bit fields in OOK TX -//TODO: Scan for OOK TX -//TODO: Check more OOK encoders //TODO: Use msgpack for settings, lists... on sd card -//Multimon-style stuff: -//TODO: AFSK receiver +// Multimon-style stuff: //TODO: CTCSS detector //TODO: DMR detector //TODO: GSM channel detector //TODO: SIGFOX RX/TX -//TODO: Bodet :) -//TODO: LCR full message former (see norm) -//TODO: AFSK NRZI //TODO: Playdead amnesia and login //TODO: Setup: Play dead by default ? Enable/disable ? + +// Old or low-priority stuff: +//TODO: Bodet :) +//TODO: Analog TV tx with camcorder font character generator +//TODO: Show address/data bit fields in OOK TX +//TODO: Scan for OOK TX +//TODO: Script engine ? +//TODO: AFSK receiver +//TODO: Check more OOK encoders //BUG (fixed ?): No audio in about when shown second time //TODO: Show MD5 mismatches for modules not found, etc... //TODO: Module name/filename in modules.hpp to indicate requirement in case it's not found ui_loadmodule diff --git a/firmware/application/ui_closecall.cpp b/firmware/application/ui_closecall.cpp deleted file mode 100644 index c664ea47a..000000000 --- a/firmware/application/ui_closecall.cpp +++ /dev/null @@ -1,371 +0,0 @@ -/* - * Copyright (C) 2015 Jared Boone, ShareBrained Technology, Inc. - * Copyright (C) 2016 Furrtek - * - * This file is part of PortaPack. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2, or (at your option) - * any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; see the file COPYING. If not, write to - * the Free Software Foundation, Inc., 51 Franklin Street, - * Boston, MA 02110-1301, USA. - */ - -#include "ui_closecall.hpp" - -#include "rtc_time.hpp" -#include "event_m0.hpp" -#include "portapack.hpp" -#include "baseband_api.hpp" -#include "string_format.hpp" - -#include -#include -#include - -using namespace portapack; - -namespace ui { - -void CloseCallView::focus() { - field_frequency_min.focus(); -} - -CloseCallView::~CloseCallView() { - rtc_time::signal_tick_second -= signal_token_tick_second; - receiver_model.disable(); - baseband::shutdown(); -} - -void CloseCallView::do_detection() { - uint8_t xmax = 0; - int16_t imax = 0; - uint16_t iraw = 0, c; - uint8_t power; - rf::Frequency freq_low, freq_high; - - mean /= (CC_BIN_NB_NO_DC * slices_max); - - // Find max value over threshold for all slices - for (c = 0; c < slices_max; c++) { - power = slicemax_pow[c]; - if (power >= min_threshold) { - if ((power - min_threshold >= mean) && (power > xmax)) { - xmax = power; - imax = slicemax_idx[c] + (c * CC_BIN_NB); - iraw = slicemax_idx[c]; - } - } - } - - // Lock / release - if ((imax >= last_channel - 2) && (imax <= last_channel + 2) && (imax)) { - // Staying around the same frequency - if (detect_counter >= (5 / slices_max)) { // Todo: ugly, change. Should depend on refresh rate. - if ((imax != locked_imax) || (!locked)) { - std::string finalstr; - - if (locked) { - // Already locked, adjust - if (weight < 16) { - frequency_acc += (slice_frequency + (CC_BIN_WIDTH * (imax - 120))); // Average - weight++; - } - } else { - // Lost, locking - frequency_acc = slice_frequency + (CC_BIN_WIDTH * (imax - 120)); // Init - if ((frequency_acc >= f_min) && (frequency_acc <= f_max)) { - - text_infos.set("Locked !"); - big_display.set_style(&style_locked); - - // Approximation/error display - freq_low = (frequency_acc - 4883) / 1000; - freq_high = (frequency_acc + 4883) / 1000; - finalstr = "~9.8kHz: " + to_string_dec_uint(freq_low / 1000) + "." + to_string_dec_uint(freq_low % 1000); - finalstr += "/" + to_string_dec_uint(freq_high / 1000) + "." + to_string_dec_uint(freq_high % 1000); - text_precision.set(finalstr); - - locked = true; - weight = 1; - locked_imax = imax; - } - } - - resolved_frequency = frequency_acc / weight; - big_display.set(resolved_frequency); - } - release_counter = 0; - } else { - detect_counter++; - } - } else { - detect_counter = 0; - if (locked) { - if (release_counter == 6) { - locked = false; - text_infos.set("Lost"); - big_display.set_style(&style_grey); - //big_display.set(resolved_frequency); - } else { - release_counter++; - } - } - } - - last_channel = imax; - scan_counter++; - - portapack::display.fill_rectangle({last_pos, 90, 1, 6}, Color::black()); - if (iraw < 120) - iraw += 2; - else - iraw -= 0; - last_pos = (ui::Coord)iraw; - portapack::display.fill_rectangle({last_pos, 90, 1, 6}, Color::red()); -} - -void CloseCallView::on_channel_spectrum(const ChannelSpectrum& spectrum) { - uint8_t xmax = 0; - int16_t imax = 0; - uint8_t power; - size_t i, m; - std::array pixel_row; - - baseband::spectrum_streaming_stop(); - - // Draw spectrum line (for debug) - for (i = 0; i < 120; i++) { - const auto pixel_color = spectrum_rgb3_lut[spectrum.db[134 + i]]; // 134~253 in 0~119 - pixel_row[i] = pixel_color; - } - for (i = 120; i < 240; i++) { - const auto pixel_color = spectrum_rgb3_lut[spectrum.db[i - 118]]; // 2~121 in 120~239 - pixel_row[i] = pixel_color; - } - display.draw_pixels( - { { 0, 96 + slices_counter * 4 }, { pixel_row.size(), 1 } }, - pixel_row - ); - - // Find max for this slice: - - // Check if left of slice needs to be trimmed (masked) - //if (slices_counter == 0) - // i = slice_trim; - //else - i = 0; - for ( ; i < 120; i++) { - power = spectrum.db[134 + i]; - mean += power; - if (power > xmax) { - xmax = power; - imax = i - 2; - } - } - // Check if right of slice needs to be trimmed (masked) - //if (slices_counter == (slices_max - 1)) - // m = 240 - slice_trim; - //else - m = 240; - for (i = 120; i < m; i++) { - power = spectrum.db[i - 118]; - mean += power; - if (power > xmax) { - xmax = power; - imax = i + 2; - } - } - - slicemax_pow[slices_counter] = xmax; - slicemax_idx[slices_counter] = imax; - - // Slice update - if (slicing) { - if (slices_counter >= (slices_max - 1)) { - do_detection(); - mean = 0; - slices_counter = 0; - } else { - slices_counter++; - } - slice_frequency = slice_start + (slices_counter * CC_SLICE_WIDTH); - receiver_model.set_tuning_frequency(slice_frequency); - } else { - do_detection(); - } - - baseband::spectrum_streaming_start(); -} - -void CloseCallView::on_show() { - baseband::spectrum_streaming_start(); -} - -void CloseCallView::on_hide() { - baseband::spectrum_streaming_stop(); -} - -void CloseCallView::on_range_changed() { - rf::Frequency slices_span; - rf::Frequency slice_width; - int64_t offset; - - f_max = field_frequency_max.value(); - f_min = field_frequency_min.value(); - scan_span = abs(f_max - f_min); - - if (scan_span > CC_SLICE_WIDTH) { - // ex: 100~115 (15): 102.5(97.5~107.5) -> 112.5(107.5~117.5) = 2.5 lost left and right - slices_max = (scan_span + CC_SLICE_WIDTH - 1) / CC_SLICE_WIDTH; - slices_span = slices_max * CC_SLICE_WIDTH; - offset = ((scan_span - slices_span) / 2) + (CC_SLICE_WIDTH / 2); - slice_start = std::min(f_min, f_max) + offset; - slice_trim = 0; - slicing = true; - - // Todo: trims - } else { - slice_frequency = (f_max + f_min) / 2; - receiver_model.set_tuning_frequency(slice_frequency); - - slice_width = abs(f_max - f_min); - slice_trim = (240 - (slice_width * 240 / CC_SLICE_WIDTH)) / 2; - - portapack::display.fill_rectangle({0, 97, 240, 4}, Color::black()); - portapack::display.fill_rectangle({0, 97, slice_trim, 4}, Color::orange()); - portapack::display.fill_rectangle({240 - slice_trim, 97, slice_trim, 4}, Color::orange()); - - slices_max = 1; - slices_counter = 0; - slicing = false; - } - - /* - f_min = field_frequency_min.value(); - scan_span = 3000000; - slice_frequency = (f_min + 1500000); - slice_start = slice_frequency; - receiver_model.set_tuning_frequency(slice_frequency); - slice_trim = 0; - slices_max = 1; - slices_counter = 0; - slicing = false; - field_frequency_max.set_value(f_min + 3000000); -*/ - - text_slices.set(to_string_dec_int(slices_max)); - slices_counter = 0; -} - -void CloseCallView::on_lna_changed(int32_t v_db) { - receiver_model.set_lna(v_db); -} - -void CloseCallView::on_vga_changed(int32_t v_db) { - receiver_model.set_vga(v_db); -} - -void CloseCallView::on_tick_second() { - // Update scan rate indication - text_rate.set(to_string_dec_uint(scan_counter, 3)); - scan_counter = 0; -} - -CloseCallView::CloseCallView( - NavigationView& nav -) -{ - baseband::run_image(portapack::spi_flash::image_tag_wideband_spectrum); - - add_children({ - &labels, - &field_frequency_min, - &field_frequency_max, - &field_lna, - &field_vga, - &field_threshold, - &text_slices, - &text_rate, - &text_mhz, - &text_infos, - &text_precision, - &text_debug, - &big_display, - &button_exit - }); - - text_slices.set_style(&style_grey); - text_rate.set_style(&style_grey); - text_mhz.set_style(&style_grey); - big_display.set_style(&style_grey); - - baseband::set_spectrum(CC_SLICE_WIDTH, 32); - - field_threshold.set_value(80); - field_threshold.on_change = [this](int32_t v) { - min_threshold = v; - }; - - field_frequency_min.set_value(receiver_model.tuning_frequency()); - field_frequency_min.set_step(100000); - field_frequency_min.on_change = [this](rf::Frequency) { - this->on_range_changed(); - }; - field_frequency_min.on_edit = [this, &nav]() { - auto new_view = nav.push(receiver_model.tuning_frequency()); - new_view->on_changed = [this](rf::Frequency f) { - //this->on_range_changed(); - this->field_frequency_min.set_value(f); - }; - }; - - field_frequency_max.set_value(receiver_model.tuning_frequency() + 2000000); - field_frequency_max.set_step(100000); - field_frequency_max.on_change = [this](rf::Frequency) { - this->on_range_changed(); - }; - field_frequency_max.on_edit = [this, &nav]() { - auto new_view = nav.push(receiver_model.tuning_frequency()); - new_view->on_changed = [this](rf::Frequency f) { - //this->on_range_changed(); - this->field_frequency_max.set_value(f); - }; - }; - - field_lna.set_value(receiver_model.lna()); - field_lna.on_change = [this](int32_t v) { - this->on_lna_changed(v); - }; - - field_vga.set_value(receiver_model.vga()); - field_vga.on_change = [this](int32_t v_db) { - this->on_vga_changed(v_db); - }; - - on_range_changed(); - - button_exit.on_select = [&nav](Button&){ - nav.pop(); - }; - - signal_token_tick_second = rtc_time::signal_tick_second += [this]() { - this->on_tick_second(); - }; - - receiver_model.set_modulation(ReceiverModel::Mode::SpectrumAnalysis); - receiver_model.set_sampling_rate(CC_SLICE_WIDTH); - receiver_model.set_baseband_bandwidth(2500000); - receiver_model.enable(); -} - -} /* namespace ui */ diff --git a/firmware/application/ui_closecall.hpp b/firmware/application/ui_closecall.hpp deleted file mode 100644 index 836c20117..000000000 --- a/firmware/application/ui_closecall.hpp +++ /dev/null @@ -1,192 +0,0 @@ -/* - * Copyright (C) 2015 Jared Boone, ShareBrained Technology, Inc. - * Copyright (C) 2016 Furrtek - * - * This file is part of PortaPack. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2, or (at your option) - * any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; see the file COPYING. If not, write to - * the Free Software Foundation, Inc., 51 Franklin Street, - * Boston, MA 02110-1301, USA. - */ - -#include "receiver_model.hpp" - -#include "spectrum_color_lut.hpp" - -#include "ui_receiver.hpp" -#include "ui_font_fixed_8x16.hpp" - -namespace ui { - -#define CC_SLICE_WIDTH 2500000 // Radio bandwidth -#define CC_BIN_NB 256 // Total power bins (skip 4 at center, 2*6 on sides) -#define CC_BIN_NB_NO_DC (CC_BIN_NB - 16) -#define CC_BIN_WIDTH (CC_SLICE_WIDTH / CC_BIN_NB) - -class CloseCallView : public View { -public: - CloseCallView(NavigationView& nav); - ~CloseCallView(); - - CloseCallView(const CloseCallView&) = delete; - CloseCallView(CloseCallView&&) = delete; - CloseCallView& operator=(const CloseCallView&) = delete; - CloseCallView& operator=(CloseCallView&&) = delete; - - void on_show() override; - void on_hide() override; - void focus() override; - - std::string title() const override { return "Close Call"; }; - -private: - const Style style_grey { // For labels and lost signal - .font = font::fixed_8x16, - .background = Color::black(), - .foreground = Color::grey(), - }; - - const Style style_locked { - .font = font::fixed_8x16, - .background = Color::black(), - .foreground = Color::green(), - }; - - rf::Frequency f_min { 0 }, f_max { 0 }; - Coord last_pos { 0 }; - ChannelSpectrumFIFO* fifo { nullptr }; - uint8_t detect_counter { 0 }, release_counter { 0 }; - uint8_t slice_trim { 0 }; - uint32_t mean { 0 }; - uint32_t min_threshold { 80 }; // Todo: Put this in persistent / settings - rf::Frequency slice_start { 0 }; - rf::Frequency slice_frequency { 0 }; - uint8_t slices_max { 0 }; - uint8_t slices_counter { 0 }; - int16_t last_channel { 0 }; - uint32_t weight { 0 }; - int64_t frequency_acc { 0 }; - rf::Frequency scan_span { 0 }, resolved_frequency { 0 }; - uint16_t locked_imax { 0 }; - uint8_t slicemax_pow[32]; // Todo: Cap max slices ! - int16_t slicemax_idx[32]; - uint8_t scan_counter { 0 }; - SignalToken signal_token_tick_second { }; - bool ignore { true }; - bool slicing { false }; - bool locked { false }; - - void on_channel_spectrum(const ChannelSpectrum& spectrum); - void on_range_changed(); - void do_detection(); - void on_lna_changed(int32_t v_db); - void on_vga_changed(int32_t v_db); - void on_tick_second(); - - /* |012345678901234567890123456789| - * | Min: Max: LNA VGA | - * | 0000.0000 0000.0000 00 00 | - * | Threshold: 000 | - * | Slices: 00 Rate: 00Hz | - * | - * */ - - Labels labels { - { { 1 * 8, 0 }, "Min: Max: LNA VGA", Color::light_grey() }, - { { 1 * 8, 4 * 8 }, "Threshold:", Color::light_grey() }, - { { 1 * 8, 6 * 8 }, "Slices: Rate: Hz", Color::light_grey() } - }; - - NumberField field_threshold { - { 12 * 8, 2 * 16 }, - 3, - { 5, 250 }, - 5, - ' ' - }; - - FrequencyField field_frequency_min { - { 1 * 8, 1 * 16 }, - }; - FrequencyField field_frequency_max { - { 11 * 8, 1 * 16 }, - }; - - LNAGainField field_lna { - { 22 * 8, 1 * 16 } - }; - VGAGainField field_vga { - { 26 * 8, 1 * 16 } - }; - - Text text_slices { - { 9 * 8, 3 * 16, 2 * 8, 16 }, - "--" - }; - Text text_rate { - { 24 * 8, 3 * 16, 2 * 8, 16 }, - "--" - }; - - Text text_infos { - { 1 * 8, 6 * 16, 28 * 8, 16 }, - "..." - }; - - BigFrequency big_display { - { 4, 8 * 16, 28 * 8, 32 }, - 0 - }; - - Text text_mhz { - { 26 * 8, 12 * 16 - 4, 3 * 8, 16 }, - "MHz" - }; - - Text text_precision { - { 1 * 8, 13 * 16, 28 * 8, 16 }, - "..." - }; - - Text text_debug { - { 1 * 8, 14 * 16, 28 * 8, 16 }, - "DEBUG: -" - }; - - Button button_exit { - { 92, 264, 56, 32 }, - "Exit" - }; - - MessageHandlerRegistration message_handler_spectrum_config { - Message::ID::ChannelSpectrumConfig, - [this](const Message* const p) { - const auto message = *reinterpret_cast(p); - this->fifo = message.fifo; - } - }; - MessageHandlerRegistration message_handler_frame_sync { - Message::ID::DisplayFrameSync, - [this](const Message* const) { - if( this->fifo ) { - ChannelSpectrum channel_spectrum; - while( fifo->out(channel_spectrum) ) { - this->on_channel_spectrum(channel_spectrum); - } - } - } - }; -}; - -} /* namespace ui */ diff --git a/firmware/application/ui_mictx.hpp b/firmware/application/ui_mictx.hpp index 1aeb1b38e..63df9cbb8 100644 --- a/firmware/application/ui_mictx.hpp +++ b/firmware/application/ui_mictx.hpp @@ -90,7 +90,8 @@ private: VuMeter vumeter { { 1 * 8, 2 * 8, 5 * 8, 26 * 8 }, - 16 + 16, + false }; OptionsField options_gain { diff --git a/firmware/application/ui_navigation.cpp b/firmware/application/ui_navigation.cpp index b1beee4d6..88df8a528 100644 --- a/firmware/application/ui_navigation.cpp +++ b/firmware/application/ui_navigation.cpp @@ -32,7 +32,6 @@ #include "ui_about.hpp" #include "ui_adsbtx.hpp" #include "ui_bht_tx.hpp" -#include "ui_closecall.hpp" #include "ui_coasterp.hpp" #include "ui_cw.hpp" #include "ui_debug.hpp" @@ -48,6 +47,7 @@ #include "ui_pocsag_tx.hpp" #include "ui_rds.hpp" #include "ui_sd_wipe.hpp" +#include "ui_scanner.hpp" #include "ui_setup.hpp" #include "ui_soundboard.hpp" #include "ui_sstvtx.hpp" @@ -293,7 +293,7 @@ TranspondersMenuView::TranspondersMenuView(NavigationView& nav) { ReceiverMenuView::ReceiverMenuView(NavigationView& nav) { add_items<6>({ { // { "AFSK", ui::Color::grey(), nullptr, [&nav](){ nav.push(); } }, // AFSKRXView - { "Audio", ui::Color::green(), nullptr, [&nav](){ nav.push(); } }, + { "Audio", ui::Color::green(), nullptr, [&nav](){ nav.push(false); } }, { "CCIR", ui::Color::grey(), nullptr, [&nav](){ nav.push(); } }, { "Nordic/BTLE", ui::Color::grey(), &bitmap_icon_nordic, [&nav](){ nav.push(); } }, { "POCSAG", ui::Color::cyan(), &bitmap_icon_pocsag, [&nav](){ nav.push(); } }, @@ -365,7 +365,7 @@ SystemMenuView::SystemMenuView(NavigationView& nav) { { "Audio transmitters", ui::Color::green(), &bitmap_icon_audiotx, [&nav](){ nav.push(); } }, { "Code transmitters", ui::Color::green(), &bitmap_icon_codetx, [&nav](){ nav.push(); } }, { "SSTV transmitter", ui::Color::dark_green(), &bitmap_icon_sstv, [&nav](){ nav.push(); } }, - { "Close Call", ui::Color::cyan(), &bitmap_icon_closecall, [&nav](){ nav.push(); } }, + { "Scanner/search", ui::Color::cyan(), &bitmap_icon_closecall, [&nav](){ nav.push(); } }, { "Jammer", ui::Color::orange(),&bitmap_icon_jammer, [&nav](){ nav.push(); } }, { "Utilities", ui::Color::purple(),&bitmap_icon_utilities, [&nav](){ nav.push(); } }, { "Setup", ui::Color::white(), &bitmap_icon_setup, [&nav](){ nav.push(); } }, diff --git a/firmware/application/ui_scanner.cpp b/firmware/application/ui_scanner.cpp new file mode 100644 index 000000000..ccb0fb5e4 --- /dev/null +++ b/firmware/application/ui_scanner.cpp @@ -0,0 +1,417 @@ +/* + * Copyright (C) 2015 Jared Boone, ShareBrained Technology, Inc. + * Copyright (C) 2016 Furrtek + * + * This file is part of PortaPack. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2, or (at your option) + * any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; see the file COPYING. If not, write to + * the Free Software Foundation, Inc., 51 Franklin Street, + * Boston, MA 02110-1301, USA. + */ + +#include "ui_scanner.hpp" + +#include "baseband_api.hpp" +#include "string_format.hpp" + +using namespace portapack; + +namespace ui { + +template<> +void RecentEntriesTable::draw( + const Entry& entry, + const Rect& target_rect, + Painter& painter, + const Style& style +) { + std::string str_duration = ""; + + if (entry.duration < 600) + str_duration = to_string_dec_uint(entry.duration / 10) + "." + to_string_dec_uint(entry.duration % 10) + "s"; + else + str_duration = to_string_dec_uint(entry.duration / 600) + "m" + to_string_dec_uint((entry.duration / 10) % 60) + "s"; + + str_duration.resize(target_rect.width() / 8, ' '); + + painter.draw_string(target_rect.location(), style, to_string_short_freq(entry.frequency) + " " + entry.time + " " + str_duration); +} + +void ScannerView::focus() { + field_frequency_min.focus(); +} + +ScannerView::~ScannerView() { + receiver_model.disable(); + baseband::shutdown(); +} + +void ScannerView::do_detection() { + uint8_t power_max = 0; + int32_t bin_max = -1; + uint32_t bin_max_pixel = 0; + uint8_t power; + rtc::RTC datetime; + std::string str_approx, str_timestamp; + + mean_power = mean_acc / (SCAN_BIN_NB_NO_DC * slices_nb); + mean_acc = 0; + + overall_power_max = 0; + + // Find max power over threshold for all slices + for (size_t slice = 0; slice < slices_nb; slice++) { + power = slices[slice].max_power; + if (power > overall_power_max) + overall_power_max = power; + + if ((power >= mean_power + power_threshold) && (power > power_max)) { + power_max = power; + bin_max_pixel = slices[slice].max_index; + bin_max = bin_max_pixel + (slice * SCAN_BIN_NB); + } + } + + // Lock / release + if ((bin_max >= last_bin - 2) && (bin_max <= last_bin + 2) && (bin_max > -1)) { + + // Staying around the same bin + if (detect_timer >= DETECT_DELAY) { + if ((bin_max != locked_bin) || (!locked)) { + + if (!locked) { + resolved_frequency = slices[slice_counter].center_frequency + (SCAN_BIN_WIDTH * (bin_max - 120)); // Init + + // Check range + if ((resolved_frequency >= f_min) && (resolved_frequency <= f_max)) { + + duration = 0; + + auto& entry = ::on_packet(recent, resolved_frequency); + + rtcGetTime(&RTCD1, &datetime); + str_timestamp = to_string_dec_uint(datetime.hour(), 2, '0') + ":" + + to_string_dec_uint(datetime.minute(), 2, '0') + ":" + + to_string_dec_uint(datetime.second(), 2, '0'); + entry.set_time(str_timestamp); + recent_entries_view.set_dirty(); + + text_infos.set("Locked ! "); + big_display.set_style(&style_locked); + + // Approximation/error display + str_approx = "." + to_string_dec_uint(((resolved_frequency - 4883) / 1000) % 10000); + str_approx += "~." + to_string_dec_uint(((resolved_frequency + 4883) / 1000) % 10000); + text_approx.set(str_approx); + + locked = true; + locked_bin = bin_max; + + // TODO + /*nav_.pop(); + receiver_model.disable(); + baseband::shutdown(); + nav_.pop();*/ + + /*if (options_goto.selected_index() == 1) + nav_.push(false); + else if (options_goto.selected_index() == 2) + nav_.push(); + */ + } + } + + big_display.set(resolved_frequency); + } + } + release_timer = 0; + } else { + detect_timer = 0; + if (locked) { + if (release_timer >= RELEASE_DELAY) { + locked = false; + + auto& entry = ::on_packet(recent, resolved_frequency); + entry.set_duration(duration); + recent_entries_view.set_dirty(); + + text_infos.set("Listening"); + big_display.set_style(&style_grey); + } + } + } + + last_bin = bin_max; + scan_counter++; + + // Refresh red tick + portapack::display.fill_rectangle({last_pos, 90, 1, 6}, Color::black()); + if (bin_max > -1) { + if (bin_max_pixel < 120) + bin_max_pixel += 2; + //else + // bin_max_pixel -= 0; + last_pos = (ui::Coord)bin_max_pixel; + portapack::display.fill_rectangle({last_pos, 90, 1, 6}, Color::red()); + } +} + +void ScannerView::on_channel_spectrum(const ChannelSpectrum& spectrum) { + uint8_t power_max = 0; + int16_t bin_max = 0; + uint8_t power; + size_t bin; + std::array pixel_row; + + baseband::spectrum_streaming_stop(); + + // Draw spectrum line + for (bin = 0; bin < 120; bin++) { + const auto pixel_color = spectrum_rgb3_lut[spectrum.db[134 + bin]]; // 134~253 in 0~119 + pixel_row[bin] = pixel_color; + } + for (bin = 120; bin < 240; bin++) { + const auto pixel_color = spectrum_rgb3_lut[spectrum.db[bin - 118]]; // 2~121 in 120~239 + pixel_row[bin] = pixel_color; + } + display.draw_pixels( + { { 0, 88 + slice_counter * 2 }, { pixel_row.size(), 1 } }, + pixel_row + ); + + // Find max power for this slice + for (bin = 0 ; bin < 120; bin++) { + power = spectrum.db[134 + bin]; + mean_acc += power; + if (power > power_max) { + power_max = power; + bin_max = bin - 2; + } + } + for (bin = 120; bin < 240; bin++) { + power = spectrum.db[bin - 118]; + mean_acc += power; + if (power > power_max) { + power_max = power; + bin_max = bin + 2; + } + } + + slices[slice_counter].max_power = power_max; + slices[slice_counter].max_index = bin_max; + + // Slice update + if (slices_nb > 1) { + slice_counter++; + if (slice_counter >= slices_nb) { + do_detection(); + slice_counter = 0; + } + receiver_model.set_tuning_frequency(slices[slice_counter].center_frequency); + } else { + do_detection(); + } + + baseband::spectrum_streaming_start(); +} + +void ScannerView::on_show() { + baseband::spectrum_streaming_start(); +} + +void ScannerView::on_hide() { + baseband::spectrum_streaming_stop(); +} + +void ScannerView::on_range_changed() { + rf::Frequency slices_span, center_frequency; + int64_t offset; + size_t slice; + + f_min = field_frequency_min.value(); + f_max = field_frequency_max.value(); + scan_span = abs(f_max - f_min); + + if (scan_span > SCAN_SLICE_WIDTH) { + // ex: 100M~115M (15M span): + // slices_nb = (115M-100M)/2.5M = 6 + slices_nb = (scan_span + SCAN_SLICE_WIDTH - 1) / SCAN_SLICE_WIDTH; + if (slices_nb > 32) { + text_slices.set("!!"); + slices_nb = 32; + } else { + text_slices.set(to_string_dec_uint(slices_nb)); + } + // slices_span = 6 * 2.5M = 15M + slices_span = slices_nb * SCAN_SLICE_WIDTH; + // offset = 0 + 2.5/2 = 1.25M + offset = ((scan_span - slices_span) / 2) + (SCAN_SLICE_WIDTH / 2); + // slice_start = 100M + 1.25M = 101.25M + center_frequency = std::min(f_min, f_max) + offset; + + for (slice = 0; slice < slices_nb; slice++) { + slices[slice].center_frequency = center_frequency; + center_frequency += SCAN_SLICE_WIDTH; + } + } else { + slices[0].center_frequency = (f_max + f_min) / 2; + receiver_model.set_tuning_frequency(slices[0].center_frequency); + + slices_nb = 1; + text_slices.set("1"); + } + + slice_counter = 0; +} + +void ScannerView::on_lna_changed(int32_t v_db) { + receiver_model.set_lna(v_db); +} + +void ScannerView::on_vga_changed(int32_t v_db) { + receiver_model.set_vga(v_db); +} + +void ScannerView::do_timers() { + + if (timing_div >= 60) { + // ~1Hz + + timing_div = 0; + + // Update scan rate + text_rate.set(to_string_dec_uint(scan_counter, 3)); + scan_counter = 0; + } + + if (timing_div % 12 == 0) { + // ~5Hz + + // Update power levels + text_mean.set(to_string_dec_uint(mean_power, 3)); + + vu_max.set_value(overall_power_max); + vu_max.set_mark(mean_power + power_threshold); + } + + if (timing_div % 6 == 0) { + // ~10Hz + + // Update timing indicator + if (locked) { + progress_timers.set_max(RELEASE_DELAY); + progress_timers.set_value(RELEASE_DELAY - release_timer); + } else { + progress_timers.set_max(DETECT_DELAY); + progress_timers.set_value(detect_timer); + } + + // Increment timers + if (detect_timer < DETECT_DELAY) detect_timer++; + if (release_timer < RELEASE_DELAY) release_timer++; + + if (locked) duration++; + } + + timing_div++; +} + +ScannerView::ScannerView( + NavigationView& nav +) : nav_ (nav) +{ + baseband::run_image(portapack::spi_flash::image_tag_wideband_spectrum); + + add_children({ + &labels, + &field_frequency_min, + &field_frequency_max, + &field_lna, + &field_vga, + &field_threshold, + &text_mean, + &text_slices, + &text_rate, + &text_infos, + &vu_max, + &progress_timers, + //&check_goto, + //&options_goto, + &big_display, + &recent_entries_view, + &text_approx + }); + + recent_entries_view.set_parent_rect({ 0, 28 * 8, 240, 12 * 8 }); + + text_mean.set_style(&style_grey); + text_slices.set_style(&style_grey); + text_rate.set_style(&style_grey); + progress_timers.set_style(&style_grey); + big_display.set_style(&style_grey); + + baseband::set_spectrum(SCAN_SLICE_WIDTH, 32); + + //options_goto.set_selected_index(0); // Nothing + + field_threshold.set_value(80); + field_threshold.on_change = [this](int32_t value) { + power_threshold = value; + }; + + field_frequency_min.set_value(receiver_model.tuning_frequency() - 1000000); + field_frequency_min.set_step(100000); + field_frequency_min.on_change = [this](rf::Frequency) { + this->on_range_changed(); + }; + field_frequency_min.on_edit = [this, &nav]() { + auto new_view = nav.push(receiver_model.tuning_frequency()); + new_view->on_changed = [this](rf::Frequency f) { + this->field_frequency_min.set_value(f); + }; + }; + + field_frequency_max.set_value(receiver_model.tuning_frequency() + 1000000); + field_frequency_max.set_step(100000); + field_frequency_max.on_change = [this](rf::Frequency) { + this->on_range_changed(); + }; + field_frequency_max.on_edit = [this, &nav]() { + auto new_view = nav.push(receiver_model.tuning_frequency()); + new_view->on_changed = [this](rf::Frequency f) { + this->field_frequency_max.set_value(f); + }; + }; + + field_lna.set_value(receiver_model.lna()); + field_lna.on_change = [this](int32_t v) { + this->on_lna_changed(v); + }; + + field_vga.set_value(receiver_model.vga()); + field_vga.on_change = [this](int32_t v_db) { + this->on_vga_changed(v_db); + }; + + progress_timers.set_max(DETECT_DELAY); + + on_range_changed(); + + receiver_model.set_modulation(ReceiverModel::Mode::SpectrumAnalysis); + receiver_model.set_sampling_rate(SCAN_SLICE_WIDTH); + receiver_model.set_baseband_bandwidth(2500000); + receiver_model.enable(); +} + +} /* namespace ui */ diff --git a/firmware/application/ui_scanner.hpp b/firmware/application/ui_scanner.hpp new file mode 100644 index 000000000..7f2b67b77 --- /dev/null +++ b/firmware/application/ui_scanner.hpp @@ -0,0 +1,249 @@ +/* + * Copyright (C) 2015 Jared Boone, ShareBrained Technology, Inc. + * Copyright (C) 2016 Furrtek + * + * This file is part of PortaPack. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2, or (at your option) + * any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; see the file COPYING. If not, write to + * the Free Software Foundation, Inc., 51 Franklin Street, + * Boston, MA 02110-1301, USA. + */ + +#include "receiver_model.hpp" + +#include "spectrum_color_lut.hpp" + +#include "ui_receiver.hpp" +#include "ui_font_fixed_8x16.hpp" +#include "recent_entries.hpp" + +namespace ui { + +#define SCAN_SLICE_WIDTH 2500000 // Scan slice bandwidth +#define SCAN_BIN_NB 256 // FFT power bins (skip 4 at center, 2*6 on sides) +#define SCAN_BIN_NB_NO_DC (SCAN_BIN_NB - 16) // Bins after trimming +#define SCAN_BIN_WIDTH (SCAN_SLICE_WIDTH / SCAN_BIN_NB) + +#define DETECT_DELAY 5 // In 100ms units +#define RELEASE_DELAY 6 + +struct ScannerRecentEntry { + using Key = rf::Frequency; + + static constexpr Key invalid_key = 0xffffffff; + + rf::Frequency frequency; + uint32_t duration { 0 }; // In 100ms units + std::string time { "" }; + + ScannerRecentEntry( + ) : ScannerRecentEntry { 0 } + { + } + + ScannerRecentEntry( + const rf::Frequency frequency + ) : frequency { frequency } + { + } + + Key key() const { + return frequency; + } + + void set_time(std::string& new_time) { + time = new_time; + } + + void set_duration(uint32_t new_duration) { + duration = new_duration; + } +}; + +using ScannerRecentEntries = RecentEntries; + +class ScannerView : public View { +public: + ScannerView(NavigationView& nav); + ~ScannerView(); + + ScannerView(const ScannerView&) = delete; + ScannerView(ScannerView&&) = delete; + ScannerView& operator=(const ScannerView&) = delete; + ScannerView& operator=(ScannerView&&) = delete; + + void on_show() override; + void on_hide() override; + void focus() override; + + std::string title() const override { return "Close Call"; }; + +private: + NavigationView& nav_; + + const Style style_grey { // For informations and lost signal + .font = font::fixed_8x16, + .background = Color::black(), + .foreground = Color::grey(), + }; + + const Style style_locked { + .font = font::fixed_8x16, + .background = Color::black(), + .foreground = Color::green(), + }; + + struct slice_t { + rf::Frequency center_frequency; + uint8_t max_power; + int16_t max_index; + uint8_t power; + int16_t index; + } slices[32]; + + ChannelSpectrumFIFO* fifo { nullptr }; + rf::Frequency f_min { 0 }, f_max { 0 }; + uint8_t detect_timer { 0 }, release_timer { 0 }, timing_div { 0 }; + uint8_t overall_power_max { 0 }; + uint32_t mean_power { 0 }, mean_acc { 0 }; + uint32_t duration { 0 }; + uint32_t power_threshold { 80 }; // Todo: Put this in persistent / settings + rf::Frequency slice_start { 0 }; + uint8_t slices_nb { 0 }; + uint8_t slice_counter { 0 }; + int16_t last_bin { 0 }; + Coord last_pos { 0 }; + rf::Frequency scan_span { 0 }, resolved_frequency { 0 }; + uint16_t locked_bin { 0 }; + uint8_t scan_counter { 0 }; + bool locked { false }; + + void on_channel_spectrum(const ChannelSpectrum& spectrum); + void on_range_changed(); + void do_detection(); + void on_lna_changed(int32_t v_db); + void on_vga_changed(int32_t v_db); + void do_timers(); + + const RecentEntriesColumns columns { { + { "Frequency", 9 }, + { "Time", 8 }, + { "Duration", 11 } + } }; + ScannerRecentEntries recent { }; + RecentEntriesView> recent_entries_view { columns, recent }; + + Labels labels { + { { 1 * 8, 0 }, "Min: Max: LNA VGA", Color::light_grey() }, + { { 1 * 8, 4 * 8 }, "Trig: /255 Mean: /255", Color::light_grey() }, + { { 1 * 8, 6 * 8 }, "Slices: /32 Rate: Hz", Color::light_grey() }, + { { 6 * 8, 10 * 8 }, "Timer Status", Color::light_grey() }, + { { 1 * 8, 25 * 8 }, "+/-4.9kHz:", Color::light_grey() }, + { { 26 * 8, 25 * 8 }, "MHz", Color::light_grey() } + }; + + NumberField field_threshold { + { 6 * 8, 2 * 16 }, + 3, + { 5, 255 }, + 5, + ' ' + }; + + FrequencyField field_frequency_min { + { 1 * 8, 1 * 16 }, + }; + FrequencyField field_frequency_max { + { 11 * 8, 1 * 16 }, + }; + LNAGainField field_lna { + { 22 * 8, 1 * 16 } + }; + VGAGainField field_vga { + { 26 * 8, 1 * 16 } + }; + + Text text_mean { + { 22 * 8, 2 * 16, 3 * 8, 16 }, + "---" + }; + Text text_slices { + { 8 * 8, 3 * 16, 2 * 8, 16 }, + "--" + }; + Text text_rate { + { 24 * 8, 3 * 16, 3 * 8, 16 }, + "---" + }; + + VuMeter vu_max { + { 1 * 8, 11 * 8 - 4, 3 * 8, 48 }, + 16, + false + }; + ProgressBar progress_timers { + { 6 * 8, 12 * 8, 5 * 8, 16 } + }; + Text text_infos { + { 13 * 8, 12 * 8, 15 * 8, 16 }, + "Listening" + }; + Checkbox check_goto { + { 6 * 8, 15 * 8 }, + 8, + "On lock:", + true + }; + OptionsField options_goto { + { 17 * 8, 15 * 8 }, + 7, + { + { "Nothing", 0 }, + { "NFM RX ", 1 }, + { "POCSAG ", 2 } + } + }; + + BigFrequency big_display { + { 4, 9 * 16, 28 * 8, 52 }, + 0 + }; + + Text text_approx { + { 11 * 8, 25 * 8, 11 * 8, 16 }, + "..." + }; + + MessageHandlerRegistration message_handler_spectrum_config { + Message::ID::ChannelSpectrumConfig, + [this](const Message* const p) { + const auto message = *reinterpret_cast(p); + this->fifo = message.fifo; + } + }; + MessageHandlerRegistration message_handler_frame_sync { + Message::ID::DisplayFrameSync, + [this](const Message* const) { + if( this->fifo ) { + ChannelSpectrum channel_spectrum; + while( fifo->out(channel_spectrum) ) { + this->on_channel_spectrum(channel_spectrum); + } + } + this->do_timers(); + } + }; +}; + +} /* namespace ui */ diff --git a/firmware/baseband/audio_output.cpp b/firmware/baseband/audio_output.cpp index b52dc312b..e2bc851e5 100644 --- a/firmware/baseband/audio_output.cpp +++ b/firmware/baseband/audio_output.cpp @@ -76,8 +76,6 @@ void AudioOutput::write( void AudioOutput::on_block( const buffer_f32_t& audio ) { - bool audio_present; - if (do_processing) { const auto audio_present_now = squelch.execute(audio); @@ -98,6 +96,10 @@ void AudioOutput::on_block( fill_audio_buffer(audio, audio_present); } +bool AudioOutput::is_squelched() { + return ~audio_present; +} + void AudioOutput::fill_audio_buffer(const buffer_f32_t& audio, const bool send_to_fifo) { std::array audio_int; diff --git a/firmware/baseband/audio_output.hpp b/firmware/baseband/audio_output.hpp index 0eb1d961f..517f63409 100644 --- a/firmware/baseband/audio_output.hpp +++ b/firmware/baseband/audio_output.hpp @@ -51,6 +51,8 @@ public: void set_stream(std::unique_ptr new_stream) { stream = std::move(new_stream); } + + bool is_squelched(); private: static constexpr float k = 32768.0f; @@ -68,6 +70,7 @@ private: uint64_t audio_present_history = 0; + bool audio_present = false; bool do_processing = true; void on_block(const buffer_f32_t& audio); diff --git a/firmware/baseband/proc_nfm_audio.cpp b/firmware/baseband/proc_nfm_audio.cpp index fc0073c14..b25b13a8d 100644 --- a/firmware/baseband/proc_nfm_audio.cpp +++ b/firmware/baseband/proc_nfm_audio.cpp @@ -21,6 +21,7 @@ */ #include "proc_nfm_audio.hpp" +#include "portapack_shared_memory.hpp" #include "event_m4.hpp" @@ -28,6 +29,8 @@ #include void NarrowbandFMAudio::execute(const buffer_c8_t& buffer) { + bool new_state; + if( !configured ) { return; } @@ -56,6 +59,13 @@ void NarrowbandFMAudio::execute(const buffer_c8_t& buffer) { } audio_output.write(pwmrssi_audio_buffer); + + new_state = audio_output.is_squelched(); + + if (new_state && !old_state) + shared_memory.application_queue.push(sig_message); + + old_state = new_state; } } @@ -102,7 +112,8 @@ void NarrowbandFMAudio::configure(const NBFMConfigureMessage& message) { channel_filter_pass_f = message.channel_filter.pass_frequency_normalized * channel_filter_input_fs; channel_filter_stop_f = message.channel_filter.stop_frequency_normalized * channel_filter_input_fs; channel_spectrum.set_decimation_factor(std::floor(channel_filter_output_fs / (channel_filter_pass_f + channel_filter_stop_f))); - audio_output.configure(message.audio_hpf_config, message.audio_deemph_config); // , 0.8f + // TODO: Configurable squelch threshold + audio_output.configure(message.audio_hpf_config, message.audio_deemph_config, 0.8f); synth_acc = 0; diff --git a/firmware/baseband/proc_nfm_audio.hpp b/firmware/baseband/proc_nfm_audio.hpp index 1f2a891a0..92d9d4f72 100644 --- a/firmware/baseband/proc_nfm_audio.hpp +++ b/firmware/baseband/proc_nfm_audio.hpp @@ -73,6 +73,7 @@ private: dsp::demodulate::FM demod { }; AudioOutput audio_output { }; + bool old_state { }; SpectrumCollector channel_spectrum { }; @@ -85,6 +86,8 @@ private: void pwmrssi_config(const PWMRSSIConfigureMessage& message); void configure(const NBFMConfigureMessage& message); void capture_config(const CaptureConfigMessage& message); + + RequestSignalMessage sig_message { RequestSignalMessage::Signal::Squelched }; }; #endif/*__PROC_NFM_AUDIO_H__*/ diff --git a/firmware/common/message.hpp b/firmware/common/message.hpp index a04ed06fe..c1988d5ac 100644 --- a/firmware/common/message.hpp +++ b/firmware/common/message.hpp @@ -821,11 +821,13 @@ public: }; // TODO: use streaming buffer instead +// TODO: rename (not only used for requests) class RequestSignalMessage : public Message { public: enum class Signal : char { FillRequest = 1, BeepRequest = 2, + Squelched = 3 }; constexpr RequestSignalMessage( diff --git a/firmware/common/ui_widget.cpp b/firmware/common/ui_widget.cpp index 3bffd12f3..1fe80a50f 100644 --- a/firmware/common/ui_widget.cpp +++ b/firmware/common/ui_widget.cpp @@ -457,12 +457,16 @@ ProgressBar::ProgressBar( } void ProgressBar::set_max(const uint32_t max) { + if (max == _max) return; + _value = 0; _max = max; set_dirty(); } void ProgressBar::set_value(const uint32_t value) { + if (value == _value) return; + if (value > _max) _value = _max; else @@ -1450,37 +1454,45 @@ void Waveform::paint(Painter& painter) { VuMeter::VuMeter( Rect parent_rect, - uint32_t LEDs + uint32_t LEDs, + bool show_max ) : Widget { parent_rect }, LEDs_ { LEDs }, - height { parent_rect.size().height() } + show_max_ { show_max } { //set_focusable(false); - LED_height = height / LEDs; + LED_height = parent_rect.size().height() / LEDs; split = 256 / LEDs; } -void VuMeter::set_value(const uint8_t new_value) { - value_ = new_value; - set_dirty(); +void VuMeter::set_value(const uint32_t new_value) { + if ((new_value != value_) && (new_value < 256)) { + value_ = new_value; + set_dirty(); + } } -void VuMeter::set_mark(const uint8_t new_mark) { - if (new_mark != mark) { +void VuMeter::set_mark(const uint32_t new_mark) { + if ((new_mark != mark) && (new_mark < 256)) { mark = new_mark; set_dirty(); } } void VuMeter::paint(Painter& painter) { + uint32_t bar; + Color color; + bool lit = false; + uint32_t bar_level; Point pos = screen_rect().location(); - Dim width = screen_rect().size().width() - 4; + Dim width = screen_rect().size().width() - 4; + Dim height = screen_rect().size().height(); + Dim bottom = pos.y() + height; + Coord marks_x = pos.x() + width; if (value_ != prev_value) { - uint32_t bar; - Color color; - bool lit = false; - uint32_t bar_level = LEDs_ - ((value_ + 1) / split); + bar_level = LEDs_ - ((value_ + 1) / split); + // Draw LEDs for (bar = 0; bar < LEDs_; bar++) { if (bar >= bar_level) @@ -1501,33 +1513,34 @@ void VuMeter::paint(Painter& painter) { } // Update max level - if (value_ > max) { - max = value_; - hold_timer = 30; // 0.5s @ 60Hz - } else { - if (hold_timer) { - hold_timer--; + if (show_max_) { + if (value_ > max) { + max = value_; + hold_timer = 30; // 0.5s @ 60Hz } else { - if (max) max--; // Let it drop + if (hold_timer) { + hold_timer--; + } else { + if (max) max--; // Let it drop + } + } + + // Draw max level + if (max != prev_max) { + painter.draw_hline({ marks_x, bottom - (height * prev_max) / 256 }, 8, Color::black()); + painter.draw_hline({ marks_x, bottom - (height * max) / 256 }, 8, Color::white()); + if (prev_max == mark) + prev_mark = 0; // Force mark refresh + prev_max = max; } - } - - // Draw max level - if (max != prev_max) { - painter.draw_hline({ pos.x() + width, pos.y() + height - (height * prev_max) / 256 }, 8, Color::black()); - painter.draw_hline({ pos.x() + width, pos.y() + height - (height * max) / 256 }, 8, Color::white()); - if (prev_max == mark) - prev_mark = 0; // Force mark refresh } // Draw mark if ((mark != prev_mark) && (mark)) { - painter.draw_hline({ pos.x() + width, pos.y() + height - (height * prev_mark) / 256 }, 8, Color::black()); - painter.draw_hline({ pos.x() + width, pos.y() + height - (height * mark) / 256 }, 8, Color::grey()); + painter.draw_hline({ marks_x, bottom - (height * prev_mark) / 256 }, 8, Color::black()); + painter.draw_hline({ marks_x, bottom - (height * mark) / 256 }, 8, Color::grey()); + prev_mark = mark; } - - prev_max = max; - prev_mark = mark; } } /* namespace ui */ diff --git a/firmware/common/ui_widget.hpp b/firmware/common/ui_widget.hpp index 1ff58c275..7f60f2387 100644 --- a/firmware/common/ui_widget.hpp +++ b/firmware/common/ui_widget.hpp @@ -575,19 +575,19 @@ private: class VuMeter : public Widget { public: - VuMeter(Rect parent_rect, uint32_t LEDs); + VuMeter(Rect parent_rect, uint32_t LEDs, bool show_max); - void set_value(const uint8_t new_value); - void set_mark(const uint8_t new_mark); + void set_value(const uint32_t new_value); + void set_mark(const uint32_t new_mark); void paint(Painter& painter) override; private: uint32_t LEDs_, LED_height { 0 }; - uint32_t value_ { 0 }, prev_value { 0 }; + uint32_t value_ { 0 }, prev_value { 255 }; // Forces painting on first display uint32_t split { 0 }; uint16_t max { 0 }, prev_max { 0 }, hold_timer { 0 }, mark { 0 }, prev_mark { 0 }; - int height; + bool show_max_; }; } /* namespace ui */ diff --git a/firmware/portapack-h1-havoc.bin b/firmware/portapack-h1-havoc.bin index 62261212cd4dc8901cde2dc61b1aafec01c52a15..735e8f7ff34488d85409baa2e040d1e6b2d57af8 100644 GIT binary patch delta 121834 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 delta 118949 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%0A|Lb;* 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