Starting freq fixes when no App Settings, and support for App Settings in Scanner App (Mode/BW/Step only) (#1153)

* Fix initial freq when no App Settings tpms
* Default POCSAG freq when no App Settings
* Enable Scanner App Settings for Modulation/BW/Step
* Default SONDE freq when no App Settings
This commit is contained in:
Mark Thompson 2023-06-14 09:54:19 -05:00 committed by GitHub
parent 6298388fe1
commit a5c7eb2fbc
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 22 additions and 13 deletions

View File

@ -69,6 +69,9 @@ POCSAGAppView::POCSAGAppView(NavigationView& nav) {
&sym_ignore,
&console});
if (!settings_.loaded())
receiver_model.set_target_frequency(initial_target_frequency);
receiver_model.set_modulation(ReceiverModel::Mode::NarrowbandFMAudio);
receiver_model.enable();

View File

@ -57,6 +57,7 @@ class POCSAGAppView : public View {
void focus() override;
private:
static constexpr uint32_t initial_target_frequency = 466175000;
bool logging() const { return check_log.value(); };
bool ignore() const { return check_ignore.value(); };

View File

@ -158,7 +158,7 @@ TPMSAppView::TPMSAppView(NavigationView&) {
&recent_entries_view});
if (!settings_.loaded())
receiver_model.set_sampling_rate(initial_target_frequency);
receiver_model.set_target_frequency(initial_target_frequency);
receiver_model.enable();

View File

@ -299,10 +299,10 @@ ScannerView::ScannerView(
freqman_set_modulation_option(field_mode);
freqman_set_step_option(field_step);
// Default starting modulation (these may be overridden in SCANNER.TXT)
change_mode(AM_MODULATION); // Default modulation
field_mode.set_by_value(AM_MODULATION); // Reflect the mode into the manual selector
field_step.set_by_value(9000); // Default step interval (Hz)
// Default starting modulation (from saved App Settings if enabled, and may be overridden in SCANNER.TXT)
field_mode.set_by_value((OptionsField::value_t)receiver_model.modulation()); // Reflect the mode into the manual selector
field_step.set_by_value(receiver_model.frequency_step()); // Default step interval (Hz)
change_mode((freqman_index_t)field_mode.selected_index_value());
// FUTURE: perhaps additional settings should be stored in persistent memory vs using defaults
rf::Frequency stored_freq = receiver_model.target_frequency();
@ -457,7 +457,7 @@ ScannerView::ScannerView(
// Step field was changed (Hz) -- only affects manual Search mode
field_step.on_change = [this](size_t, OptionsField::value_t v) {
(void)v; // prevent compiler Unused warning
receiver_model.set_frequency_step(v);
if (manual_search && scan_thread) {
// Restart scan thread with new step value
@ -758,24 +758,21 @@ void ScannerView::change_mode(freqman_index_t new_mod) { // Before this, do a s
freqman_set_bandwidth_option(new_mod, field_bw);
baseband::run_image(portapack::spi_flash::image_tag_am_audio);
receiver_model.set_modulation(ReceiverModel::Mode::AMAudio);
field_bw.set_by_value(0);
receiver_model.set_am_configuration(field_bw.selected_index_value());
field_bw.set_by_value(receiver_model.am_configuration());
field_bw.on_change = [this](size_t, OptionsField::value_t n) { receiver_model.set_am_configuration(n); };
break;
case NFM_MODULATION: // bw 16k (2) default
case NFM_MODULATION:
freqman_set_bandwidth_option(new_mod, field_bw);
baseband::run_image(portapack::spi_flash::image_tag_nfm_audio);
receiver_model.set_modulation(ReceiverModel::Mode::NarrowbandFMAudio);
field_bw.set_by_value(2);
receiver_model.set_nbfm_configuration(field_bw.selected_index_value());
field_bw.set_by_value(receiver_model.nbfm_configuration());
field_bw.on_change = [this](size_t, OptionsField::value_t n) { receiver_model.set_nbfm_configuration(n); };
break;
case WFM_MODULATION:
freqman_set_bandwidth_option(new_mod, field_bw);
baseband::run_image(portapack::spi_flash::image_tag_wfm_audio);
receiver_model.set_modulation(ReceiverModel::Mode::WidebandFMAudio);
field_bw.set_by_value(0);
receiver_model.set_wfm_configuration(field_bw.selected_index_value());
field_bw.set_by_value(receiver_model.wfm_configuration());
field_bw.on_change = [this](size_t, OptionsField::value_t n) { receiver_model.set_wfm_configuration(n); };
break;
default:

View File

@ -95,6 +95,9 @@ class ScannerView : public View {
// void set_parent_rect(const Rect new_parent_rect) override;
private:
app_settings::SettingsManager settings_{
"scanner", app_settings::Mode::RX};
NavigationView& nav_;
RxRadioState radio_state_{};

View File

@ -65,6 +65,9 @@ SondeView::SondeView(NavigationView& nav) {
&button_see_qr,
&button_see_map});
if (!settings_.loaded())
receiver_model.set_target_frequency(initial_target_frequency);
field_frequency.set_value(receiver_model.target_frequency());
field_frequency.set_step(500); // euquiq: was 10000, but we are using this for fine-tunning
field_frequency.on_change = [this](rf::Frequency f) {

View File

@ -55,6 +55,8 @@ namespace ui {
class SondeView : public View {
public:
static constexpr uint32_t initial_target_frequency = 402700000;
SondeView(NavigationView& nav);
~SondeView();