diff --git a/firmware/application/apps/ui_scanner.cpp b/firmware/application/apps/ui_scanner.cpp index 02b36370b5e272eb02cb226c6842c6d7522cc0c1..4ba63ffd78a8c87b92d2ecd1149d697f712a3ab3 100644 --- a/firmware/application/apps/ui_scanner.cpp +++ b/firmware/application/apps/ui_scanner.cpp @@ -104,6 +104,7 @@ ScannerView::ScannerView( &field_rf_amp, &field_volume, &field_bw, + &field_trigger, &field_squelch, &field_wait, //&record_view, @@ -143,10 +144,17 @@ ScannerView::ScannerView( }; field_wait.set_value(5); + field_trigger.on_change = [this](int32_t v) { + trigger = v; + }; + field_trigger.set_value(30); + + field_squelch.set_value(receiver_model.squelch_level()); field_squelch.on_change = [this](int32_t v) { squelch = v; + receiver_model.set_squelch_level(v); }; - field_squelch.set_value(30); + field_volume.set_value((receiver_model.headphone_volume() - audio::headphone::volume_range().max).decibel() + 99); field_volume.on_change = [this](int32_t v) { @@ -175,7 +183,7 @@ void ScannerView::on_statistics_update(const ChannelStatistics& statistics) { if (timer <= wait) timer++; - if (max_db < -squelch) { + if (max_db < -trigger) { if (timer == wait) { //audio::output::stop(); scan_thread->set_scanning(true); diff --git a/firmware/application/apps/ui_scanner.hpp b/firmware/application/apps/ui_scanner.hpp index 52e48e290c3149bc009cc8bc4ce9528c4382831b..02abe1acef955e91976ecafcecbf8e920773fe2f 100644 --- a/firmware/application/apps/ui_scanner.hpp +++ b/firmware/application/apps/ui_scanner.hpp @@ -66,15 +66,16 @@ private: void handle_retune(uint32_t i); std::vector<rf::Frequency> frequency_list { }; + int32_t trigger { 0 }; int32_t squelch { 0 }; uint32_t timer { 0 }; uint32_t wait { 0 }; freqman_db database { }; Labels labels { - { { 0 * 8, 0 * 16 }, "LNA: VGA: AMP: VOL:", Color::light_grey() }, - { { 0 * 8, 1 * 16 }, "BW: SQUELCH: /99 WAIT:", Color::light_grey() }, - { { 0 * 8, 3 * 16 }, "Work in progress...", Color::light_grey() } + { { 0 * 8, 0 * 16 }, "LNA: TRIGGER: /99 VOL:", Color::light_grey() }, + { { 0 * 8, 1 * 16 }, "VGA: SQUELCH: /99 AMP:", Color::light_grey() }, + { { 0 * 8, 2 * 16 }, " BW: WAIT:", Color::light_grey() }, }; LNAGainField field_lna { @@ -82,15 +83,15 @@ private: }; VGAGainField field_vga { - { 11 * 8, 0 * 16 } + { 4 * 8, 1 * 16 } }; RFAmpField field_rf_amp { - { 18 * 8, 0 * 16 } + { 28 * 8, 1 * 16 } }; NumberField field_volume { - { 24 * 8, 0 * 16 }, + { 28 * 8, 0 * 16 }, 2, { 0, 99 }, 1, @@ -98,7 +99,7 @@ private: }; OptionsField field_bw { - { 3 * 8, 1 * 16 }, + { 4 * 8, 2 * 16 }, 3, { { "8k5", 0 }, @@ -107,8 +108,16 @@ private: } }; + NumberField field_trigger { + { 16 * 8, 0 * 16 }, + 2, + { 0, 99 }, + 1, + ' ', + }; + NumberField field_squelch { - { 15 * 8, 1 * 16 }, + { 16 * 8, 1 * 16 }, 2, { 0, 99 }, 1, @@ -116,7 +125,7 @@ private: }; NumberField field_wait { - { 26 * 8, 1 * 16 }, + { 16 * 8, 2 * 16 }, 2, { 0, 99 }, 1,