@@ -26,7 +26,8 @@ namespace srsue {
2626namespace nr {
2727sync_sa::sync_sa (srslog::basic_logger& logger_, worker_pool& workers_) :
2828 logger (logger_), workers(workers_), slot_synchronizer(logger_), searcher(logger_), ta(logger_), srsran::thread(" SYNC" )
29- {}
29+ {
30+ }
3031
3132sync_sa::~sync_sa ()
3233{
@@ -37,10 +38,12 @@ sync_sa::~sync_sa()
3738
3839bool sync_sa::init (const args_t & args, stack_interface_phy_nr* stack_, srsran::radio_interface_phy* radio_)
3940{
40- stack = stack_;
41- radio = radio_;
42- srate_hz = args.srate_hz ;
43- slot_sz = (uint32_t )(args.srate_hz / 1000 .0f );
41+ stack = stack_;
42+ radio = radio_;
43+ srate_hz = args.srate_hz ;
44+ slot_sz = (uint32_t )(args.srate_hz / 1000 .0f );
45+ dl_freq_override_hz = args.dl_freq_override_hz ;
46+ ul_freq_override_hz = args.ul_freq_override_hz ;
4447
4548 // Initialise cell search internal object
4649 if (not searcher.init (args.get_cell_search ())) {
@@ -149,7 +152,12 @@ cell_search::ret_t sync_sa::cell_search_run(const cell_search::cfg_t& cfg)
149152
150153 // tune radio
151154 logger.info (" Tuning Rx channel %d to %.2f MHz" , 0 , cfg.center_freq_hz / 1e6 );
152- radio->set_rx_freq (0 , cfg.center_freq_hz );
155+ double dl_freq_applied = cfg.center_freq_hz ;
156+ if (dl_freq_override_hz > 0 ) {
157+ dl_freq_applied = dl_freq_override_hz;
158+ logger.info (" Overriding Rx channel %d to %.2f MHz" , 0 , dl_freq_override_hz / 1e6 );
159+ }
160+ radio->set_rx_freq (0 , dl_freq_applied);
153161
154162 if (not searcher.start (cfg)) {
155163 logger.error (" Sync: failed to start cell search" );
@@ -185,9 +193,20 @@ rrc_interface_phy_nr::cell_select_result_t sync_sa::cell_select_run(const phy_in
185193
186194 // tune radio
187195 logger.info (" Tuning Rx channel %d to %.2f MHz" , 0 , req.carrier .dl_center_frequency_hz / 1e6 );
188- radio->set_rx_freq (0 , req.carrier .dl_center_frequency_hz );
196+ double dl_freq_applied = req.carrier .dl_center_frequency_hz ;
197+ if (dl_freq_override_hz > 0 ) {
198+ dl_freq_applied = dl_freq_override_hz;
199+ logger.info (" Overriding Rx channel %d to %.2f MHz" , 0 , dl_freq_override_hz / 1e6 );
200+ }
201+ radio->set_rx_freq (0 , dl_freq_applied);
202+
189203 logger.info (" Tuning Tx channel %d to %.2f MHz" , 0 , req.carrier .ul_center_frequency_hz / 1e6 );
190- radio->set_tx_freq (0 , req.carrier .ul_center_frequency_hz );
204+ double ul_freq_applied = req.carrier .ul_center_frequency_hz ;
205+ if (ul_freq_override_hz > 0 ) {
206+ ul_freq_applied = ul_freq_override_hz;
207+ logger.info (" Overriding Rx channel %d to %.2f MHz" , 0 , ul_freq_override_hz / 1e6 );
208+ }
209+ radio->set_tx_freq (0 , ul_freq_applied);
191210
192211 // Configure cell
193212 srsran_ue_sync_nr_cfg_t cfg = {};
0 commit comments