From 2962340a8bbb7d49ec2e45c7a9bc87d70a63933a Mon Sep 17 00:00:00 2001 From: Laurent THOMAS Date: Mon, 4 Mar 2024 10:48:13 +0100 Subject: [PATCH] Add variable pointer to catch the rx gain between redundant strct members rfdevice and ifdevice --- openair1/PHY/NR_ESTIMATION/nr_measurements_gNB.c | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/openair1/PHY/NR_ESTIMATION/nr_measurements_gNB.c b/openair1/PHY/NR_ESTIMATION/nr_measurements_gNB.c index a30d88255f..0f68620048 100644 --- a/openair1/PHY/NR_ESTIMATION/nr_measurements_gNB.c +++ b/openair1/PHY/NR_ESTIMATION/nr_measurements_gNB.c @@ -206,9 +206,19 @@ void nr_gnb_measurements(PHY_VARS_gNB *gNB, int rx_power_tot = 0; unsigned short rx_power_avg_dB; unsigned short rx_power_tot_dB; - - double rx_gain = gNB->RU_list[0]->rfdevice.openair0_cfg->rx_gain[0]; - double rx_gain_offset = gNB->RU_list[0]->rfdevice.openair0_cfg->rx_gain_offset[0]; + RU_t *ru = gNB->RU_list[0]; + double rx_gain, rx_gain_offset; + if (ru && ru->rfdevice.openair0_cfg) { + rx_gain = ru->rfdevice.openair0_cfg->rx_gain[0]; + rx_gain_offset = ru->rfdevice.openair0_cfg->rx_gain_offset[0]; + } else if (ru && ru->ifdevice.openair0_cfg) { + rx_gain = ru->ifdevice.openair0_cfg->rx_gain[0]; + rx_gain_offset = ru->ifdevice.openair0_cfg->rx_gain_offset[0]; + } else { + LOG_W(NR_PHY, "no device for rx gain, take arbitrary gain = 1)\n"); + rx_gain = 1; + rx_gain_offset = 0; + } PHY_MEASUREMENTS_gNB *meas = &gNB->measurements; NR_DL_FRAME_PARMS *fp = &gNB->frame_parms; int ch_offset = fp->ofdm_symbol_size * symbol;