diff --git a/lib/include/srslte/interfaces/ue_interfaces.h b/lib/include/srslte/interfaces/ue_interfaces.h index afc583efc..0038075bc 100644 --- a/lib/include/srslte/interfaces/ue_interfaces.h +++ b/lib/include/srslte/interfaces/ue_interfaces.h @@ -737,6 +737,7 @@ typedef struct { int cqi_fixed; float snr_ema_coeff; std::string snr_estim_alg; + bool agc_enable; bool cfo_is_doppler; bool cfo_integer_enabled; float cfo_correct_tol_hz; diff --git a/srsue/src/phy/sync.cc b/srsue/src/phy/sync.cc index a1f78d6e0..3aa80841e 100644 --- a/srsue/src/phy/sync.cc +++ b/srsue/src/phy/sync.cc @@ -113,6 +113,10 @@ void sync::init(radio_interface_phy* _radio, reset(); running = true; + + // Enable AGC + set_agc_enable(worker_com->args->agc_enable); + // Start main thread if (sync_cpu_affinity < 0) { start(prio); diff --git a/srsue/src/ue.cc b/srsue/src/ue.cc index bc0d8762e..eddd385c4 100644 --- a/srsue/src/ue.cc +++ b/srsue/src/ue.cc @@ -152,6 +152,7 @@ int ue::parse_args(const all_args_t& args_) // replicate some RF parameter to make them available to PHY args.phy.nof_rx_ant = args.rf.nof_rx_ant; args.phy.ue_category = args.stack.rrc.ue_category; + args.phy.agc_enable = args.rf.rx_gain < 0.0f; // Calculate number of carriers available in all radios args.phy.nof_radios = args.rf.nof_radios;