Add_Gain_TX_to_GPS_sim_App_issue_480

Add Gain control to the GPS Sim App .
(we are clonning the two previous PR's n #395 and #446 of the Replay App, correcting TX Gain control to this GPS Sim App )
This commit is contained in:
Brumi-2021 2022-01-29 23:29:17 +01:00
parent 799a701fc3
commit a11b9c492f
2 changed files with 32 additions and 8 deletions

View File

@ -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({ radio::enable({
receiver_model.tuning_frequency(), receiver_model.tuning_frequency(),
sample_rate , sample_rate ,
baseband_bandwidth, baseband_bandwidth,
rf::Direction::Transmit, 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<int8_t>(receiver_model.lna()), static_cast<int8_t>(receiver_model.lna()),
static_cast<int8_t>(receiver_model.vga()) static_cast<int8_t>(receiver_model.vga())
}); });
@ -181,6 +192,9 @@ GpsSimAppView::GpsSimAppView(
NavigationView& nav NavigationView& nav
) : nav_ (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); baseband::run_image(portapack::spi_flash::image_tag_gps);
add_children({ add_children({
@ -191,8 +205,8 @@ GpsSimAppView::GpsSimAppView(
&text_duration, &text_duration,
&progressbar, &progressbar,
&field_frequency, &field_frequency,
&field_lna, &field_rfgain,
&field_rf_amp, &field_rfamp, // let's not use common persistent rf_amp , local rfamp is enough
&check_loop, &check_loop,
&button_play, &button_play,
&waterfall, &waterfall,

View File

@ -52,6 +52,8 @@ private:
static constexpr ui::Dim header_height = 3 * 16; static constexpr ui::Dim header_height = 3 * 16;
uint32_t sample_rate = 0; 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 static constexpr uint32_t baseband_bandwidth = 3000000; //filter bandwidth
const size_t read_size { 16384 }; const size_t read_size { 16384 };
const size_t buffer_count { 3 }; const size_t buffer_count { 3 };
@ -76,7 +78,7 @@ private:
bool ready_signal { false }; bool ready_signal { false };
Labels labels { Labels labels {
{ { 10 * 8, 2 * 16 }, "LNA: A:", Color::light_grey() } { { 10 * 8, 2 * 16 }, "GAIN A:", Color::light_grey() }
}; };
Button button_open { Button button_open {
@ -104,11 +106,19 @@ private:
FrequencyField field_frequency { FrequencyField field_frequency {
{ 0 * 8, 2 * 16 }, { 0 * 8, 2 * 16 },
}; };
LNAGainField field_lna { NumberField field_rfgain {
{ 14 * 8, 2 * 16 } { 14 * 8, 2 * 16 },
2,
{ 0, 47 },
1,
' '
}; };
RFAmpField field_rf_amp { NumberField field_rfamp { // previously we were using "RFAmpField field_rf_amp" but that is general Receiver amp setting.
{ 19 * 8, 2 * 16 } { 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 { Checkbox check_loop {
{ 21 * 8, 2 * 16 }, { 21 * 8, 2 * 16 },