UE PHY SA Slot synchronization integrated

master
Xavier Arteaga 3 years ago committed by Xavier Arteaga
parent d661db032d
commit c26f030edb

@ -103,6 +103,10 @@ void phy_nr_sa::init_background()
} }
workers.init(args, sync, stack); workers.init(args, sync, stack);
// Set fix Tx and Rx sampling rates
radio->set_tx_srate(args.srate_hz);
radio->set_rx_srate(args.srate_hz);
is_configured = true; is_configured = true;
} }
@ -258,4 +262,4 @@ bool phy_nr_sa::set_config(const srsran::phy_cfg_nr_t& cfg)
return true; return true;
} }
} // namespace srsue } // namespace srsue

@ -281,7 +281,9 @@ void sync_sa::run_state_cell_camping()
rf_buffer.set_nof_samples(slot_sz); rf_buffer.set_nof_samples(slot_sz);
rf_buffer.set(0, nr_worker->get_buffer(0, 0)); rf_buffer.set(0, nr_worker->get_buffer(0, 0));
if (not slot_synchronizer.run_camping(rf_buffer, last_rx_time)) { if (not slot_synchronizer.run_camping(rf_buffer, last_rx_time)) {
logger.error("SYNC: detected out-of-sync... unhandled outcome..."); logger.error("SYNC: detected out-of-sync... skipping slot ...");
nr_worker->release();
return;
} }
srsran::phy_common_interface::worker_context_t context; srsran::phy_common_interface::worker_context_t context;

@ -82,6 +82,7 @@ int ue::init(const all_args_t& args_)
phy_args_nr.worker_cpu_mask = args.phy.worker_cpu_mask; phy_args_nr.worker_cpu_mask = args.phy.worker_cpu_mask;
phy_args_nr.log = args.phy.log; phy_args_nr.log = args.phy.log;
phy_args_nr.store_pdsch_ko = args.phy.nr_store_pdsch_ko; phy_args_nr.store_pdsch_ko = args.phy.nr_store_pdsch_ko;
phy_args_nr.srate_hz = args.rf.srate_hz;
// init layers // init layers
if (args.phy.nof_lte_carriers == 0) { if (args.phy.nof_lte_carriers == 0) {
@ -269,6 +270,12 @@ int ue::parse_args(const all_args_t& args_)
// Consider Carrier Aggregation support if more than one // Consider Carrier Aggregation support if more than one
args.stack.rrc.support_ca = (args.phy.nof_lte_carriers > 1); args.stack.rrc.support_ca = (args.phy.nof_lte_carriers > 1);
// Make sure fix sampling rate is set for SA mode
if (args.phy.nof_lte_carriers == 0 and not std::isnormal(args.rf.srate_hz)) {
srsran::console("Error. NR Standalone PHY requires a fix RF sampling rate.\n");
return SRSRAN_ERROR;
}
return SRSRAN_SUCCESS; return SRSRAN_SUCCESS;
} }

Loading…
Cancel
Save