Compare commits

...

1 Commits

Author SHA1 Message Date
Bartosz Podrygajlo
2714f8e366 Power reference for USRP lib 2025-04-10 10:33:40 +02:00
3 changed files with 22 additions and 5 deletions

View File

@@ -238,11 +238,15 @@ void nr_ue_ssb_rsrp_measurements(PHY_VARS_NR_UE *ue,
openair0_config_t *cfg0 = &openair0_cfg[0];
ue->measurements.ssb_rsrp_dBm[ssb_index] = rsrp_db_per_re + 30 - SQ15_SQUARED_NORM_FACTOR_DB
- ((int)cfg0->rx_gain[0] - (int)cfg0->rx_gain_offset[0])
- dB_fixed(fp->ofdm_symbol_size);
LOG_D(PHY,
if (ue->rfdevice.trx_get_rx_power_reference != NULL) {
double rx_power_reference = ue->rfdevice.trx_get_rx_power_reference(&ue->rfdevice);
ue->measurements.ssb_rsrp_dBm[ssb_index] = rx_power_reference + rsrp_db_per_re - 10 * log10(INT16_MAX * INT16_MAX);
} else {
ue->measurements.ssb_rsrp_dBm[ssb_index] = rsrp_db_per_re + 30 - SQ15_SQUARED_NORM_FACTOR_DB
- ((int)cfg0->rx_gain[0] - (int)cfg0->rx_gain_offset[0])
- dB_fixed(fp->ofdm_symbol_size);
}
LOG_I(PHY,
"[UE %d] ssb %d SS-RSRP: %d dBm/RE (%d dB/RE)\n",
ue->Mod_id,
ssb_index,

View File

@@ -566,6 +566,8 @@ struct openair0_device_t {
*/
int (*trx_set_gains_func)(openair0_device *device, openair0_config_t *openair0_cfg);
double (*trx_get_rx_power_reference)(openair0_device *device);
/*! \brief RRU Configuration callback
* \param idx RU index
* \param arg pointer to capabilities or configuration

View File

@@ -885,6 +885,11 @@ int trx_usrp_set_gains(openair0_device *device,
return(0);
}
double trx_usrp_get_rx_power_reference(openair0_device *device) {
usrp_state_t *s = (usrp_state_t *)device->priv;
return s->usrp->get_rx_power_reference(0);
}
/*! \brief Stop USRP
* \param card refers to the hardware index to use
*/
@@ -1564,6 +1569,12 @@ extern "C" {
exit(-1);
}
}
if (s->usrp->has_rx_power_reference(0)) {
device->trx_get_rx_power_reference = trx_usrp_get_rx_power_reference;
} else {
device->trx_get_rx_power_reference = NULL;
}
return 0;
}
/*@}*/