diff --git a/firmware/application/apps/ais_app.cpp b/firmware/application/apps/ais_app.cpp index 0155f5e7..ee7527c3 100644 --- a/firmware/application/apps/ais_app.cpp +++ b/firmware/application/apps/ais_app.cpp @@ -307,8 +307,13 @@ AISAppView::AISAppView(NavigationView& nav) : nav_ { nav } { recent_entry_detail_view.hidden(true); target_frequency_ = initial_target_frequency; + + receiver_model.set_tuning_frequency(tuning_frequency()); + receiver_model.set_sampling_rate(sampling_rate); + receiver_model.set_baseband_bandwidth(baseband_bandwidth); + receiver_model.enable(); // Before using radio::enable(), but not updating Ant.DC-Bias. - radio::enable({ +/* radio::enable({ // this can be removed, previous version,no DC-bias control. tuning_frequency(), sampling_rate, baseband_bandwidth, @@ -316,8 +321,8 @@ AISAppView::AISAppView(NavigationView& nav) : nav_ { nav } { receiver_model.rf_amp(), static_cast(receiver_model.lna()), static_cast(receiver_model.vga()), - }); - + }); */ + options_channel.on_change = [this](size_t, OptionsField::value_t v) { this->on_frequency_changed(v); }; @@ -337,7 +342,8 @@ AISAppView::AISAppView(NavigationView& nav) : nav_ { nav } { } AISAppView::~AISAppView() { - radio::disable(); +/* radio::disable(); */ + receiver_model.disable(); // to switch off all, including DC bias. baseband::shutdown(); } diff --git a/firmware/application/apps/gps_sim_app.cpp b/firmware/application/apps/gps_sim_app.cpp index fb7babc1..f51011c9 100644 --- a/firmware/application/apps/gps_sim_app.cpp +++ b/firmware/application/apps/gps_sim_app.cpp @@ -140,13 +140,24 @@ void GpsSimAppView::start() { } ); } + field_rfgain.on_change = [this](int32_t v) { + tx_gain = v; + }; + field_rfgain.set_value(tx_gain); + receiver_model.set_tx_gain(tx_gain); + + + field_rfamp.on_change = [this](int32_t v) { + rf_amp = (bool)v; + }; + field_rfamp.set_value(rf_amp ? 14 : 0); radio::enable({ receiver_model.tuning_frequency(), sample_rate , baseband_bandwidth, rf::Direction::Transmit, - receiver_model.rf_amp(), + rf_amp, // previous code line : "receiver_model.rf_amp()," was passing the same rf_amp of all Receiver Apps static_cast(receiver_model.lna()), static_cast(receiver_model.vga()) }); @@ -181,6 +192,9 @@ GpsSimAppView::GpsSimAppView( NavigationView& nav ) : nav_ (nav) { + tx_gain = 35;field_rfgain.set_value(tx_gain); // Initial default value (-12 dB's max 47dBs ). + field_rfamp.set_value(rf_amp ? 14 : 0); // Initial default value True. (TX RF amp on , +14dB's) + baseband::run_image(portapack::spi_flash::image_tag_gps); add_children({ @@ -191,8 +205,8 @@ GpsSimAppView::GpsSimAppView( &text_duration, &progressbar, &field_frequency, - &field_lna, - &field_rf_amp, + &field_rfgain, + &field_rfamp, // let's not use common persistent rf_amp , local rfamp is enough &check_loop, &button_play, &waterfall, diff --git a/firmware/application/apps/gps_sim_app.hpp b/firmware/application/apps/gps_sim_app.hpp index 4f26c11a..34c7bb2d 100644 --- a/firmware/application/apps/gps_sim_app.hpp +++ b/firmware/application/apps/gps_sim_app.hpp @@ -52,6 +52,8 @@ private: static constexpr ui::Dim header_height = 3 * 16; uint32_t sample_rate = 0; + int32_t tx_gain { 47 }; + bool rf_amp { true }; // aux private var to store temporal, same as Replay App rf_amp user selection. static constexpr uint32_t baseband_bandwidth = 3000000; //filter bandwidth const size_t read_size { 16384 }; const size_t buffer_count { 3 }; @@ -76,7 +78,7 @@ private: bool ready_signal { false }; Labels labels { - { { 10 * 8, 2 * 16 }, "LNA: A:", Color::light_grey() } + { { 10 * 8, 2 * 16 }, "GAIN A:", Color::light_grey() } }; Button button_open { @@ -104,11 +106,19 @@ private: FrequencyField field_frequency { { 0 * 8, 2 * 16 }, }; - LNAGainField field_lna { - { 14 * 8, 2 * 16 } + NumberField field_rfgain { + { 14 * 8, 2 * 16 }, + 2, + { 0, 47 }, + 1, + ' ' }; - RFAmpField field_rf_amp { - { 19 * 8, 2 * 16 } + NumberField field_rfamp { // previously we were using "RFAmpField field_rf_amp" but that is general Receiver amp setting. + { 19 * 8, 2 * 16 }, + 2, + { 0, 14 }, // this time we will display GUI , 0 or 14 dBs same as Mic and Replay App + 14, + ' ' }; Checkbox check_loop { { 21 * 8, 2 * 16 }, diff --git a/firmware/application/apps/ui_sonde.cpp b/firmware/application/apps/ui_sonde.cpp index 12da24b2..f38fc3dd 100644 --- a/firmware/application/apps/ui_sonde.cpp +++ b/firmware/application/apps/ui_sonde.cpp @@ -100,7 +100,12 @@ SondeView::SondeView(NavigationView& nav) { use_crc = v; }; - radio::enable({ + receiver_model.set_tuning_frequency(tuning_frequency()); + receiver_model.set_sampling_rate(sampling_rate); + receiver_model.set_baseband_bandwidth(baseband_bandwidth); + receiver_model.enable(); // Before using radio::enable(), but not updating Ant.DC-Bias. + + /* radio::enable({ // this can be removed, previous version, no DC-bias ant. control. tuning_frequency(), sampling_rate, baseband_bandwidth, @@ -108,7 +113,7 @@ SondeView::SondeView(NavigationView& nav) { receiver_model.rf_amp(), static_cast(receiver_model.lna()), static_cast(receiver_model.vga()), - }); + }); */ // QR code with geo URI @@ -153,7 +158,8 @@ SondeView::SondeView(NavigationView& nav) { SondeView::~SondeView() { baseband::set_pitch_rssi(0, false); - radio::disable(); +/* radio::disable(); */ + receiver_model.disable(); // to switch off all, including DC bias. baseband::shutdown(); audio::output::stop(); } diff --git a/hackrf b/hackrf index 22267f3b..e6eb4ba2 160000 --- a/hackrf +++ b/hackrf @@ -1 +1 @@ -Subproject commit 22267f3b8e71bd064337921444b0e40509f47b43 +Subproject commit e6eb4ba29bbe5dc2fcd092e394188bc10a8bad54