Commit b95b4c09 authored by Robert Schmidt's avatar Robert Schmidt

Write DL ToA into circular buffer

In a future commit, we will look up the maximum ToA over the last
transmissions. Introduce a buffer in which we write the last
16 measurements.
parent a72abe3c
...@@ -157,6 +157,8 @@ void init_nr_prs_ue_vars(PHY_VARS_NR_UE *ue) ...@@ -157,6 +157,8 @@ void init_nr_prs_ue_vars(PHY_VARS_NR_UE *ue)
for (int j=0; j<fp->nb_antennas_rx; j++) { for (int j=0; j<fp->nb_antennas_rx; j++) {
prs_vars[idx]->prs_resource[k].prs_meas[j] = malloc16_clear(sizeof(prs_meas_t)); prs_vars[idx]->prs_resource[k].prs_meas[j] = malloc16_clear(sizeof(prs_meas_t));
AssertFatal((prs_vars[idx]->prs_resource[k].prs_meas[j]!=NULL), "%s: PRS measurements malloc failed for gNB_id %d, rx_ant %d\n", __FUNCTION__, idx, j); AssertFatal((prs_vars[idx]->prs_resource[k].prs_meas[j]!=NULL), "%s: PRS measurements malloc failed for gNB_id %d, rx_ant %d\n", __FUNCTION__, idx, j);
prs_meas_t *m = prs_vars[idx]->prs_resource[k].prs_meas[j];
m->next_dl_toa = m->dl_toa;
} }
} }
} }
......
...@@ -73,7 +73,10 @@ void peak_estimator(c16_t *buffer, int32_t buf_len, int32_t *peak_idx, int32_t * ...@@ -73,7 +73,10 @@ void peak_estimator(c16_t *buffer, int32_t buf_len, int32_t *peak_idx, int32_t *
void set_prs_dl_toa(prs_meas_t *prs_meas, float dl_toa) void set_prs_dl_toa(prs_meas_t *prs_meas, float dl_toa)
{ {
prs_meas->dl_toa = dl_toa; *prs_meas->next_dl_toa++ = dl_toa;
if (prs_meas->next_dl_toa >= prs_meas->dl_toa + sizeofArray(prs_meas->dl_toa))
prs_meas->next_dl_toa = prs_meas->dl_toa;
LOG_D(NR_PHY, "next_dl_toa %p\n", prs_meas->next_dl_toa);
} }
int nr_prs_channel_estimation(uint8_t gNB_id, int nr_prs_channel_estimation(uint8_t gNB_id,
......
...@@ -312,7 +312,9 @@ typedef struct { ...@@ -312,7 +312,9 @@ typedef struct {
int32_t sfn; int32_t sfn;
int8_t slot; int8_t slot;
int8_t rxAnt_idx; int8_t rxAnt_idx;
float dl_toa; // circular buffer to be able to read maximum of last estimations
float dl_toa[128]; // set through set_prs_dl_toa()
float *next_dl_toa;
int32_t dl_aoa; int32_t dl_aoa;
float snr; float snr;
float rsrp; float rsrp;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment