UE only calls trx_write in UL slots when used with USRP. This improves real-time performance and is necessary for controlling the external switch. However, we still need to take the proper TDD config into account (tbd).
This commit is contained in:
+19
-12
@@ -757,8 +757,8 @@ void *UE_thread(void *arg) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
curMsg->proc.timestamp_tx = timestamp+
|
curMsg->proc.timestamp_tx = timestamp+
|
||||||
UE->frame_parms.get_samples_slot_timestamp(slot_nr,
|
UE->frame_parms.get_samples_slot_timestamp(slot_nr,&UE->frame_parms,DURATION_RX_TO_TX-RX_NB_TH)
|
||||||
&UE->frame_parms,DURATION_RX_TO_TX) - firstSymSamp;
|
- firstSymSamp - openair0_cfg[0].tx_sample_advance - UE->N_TA_offset - UE->timing_advance;
|
||||||
|
|
||||||
notifiedFIFO_elt_t *res;
|
notifiedFIFO_elt_t *res;
|
||||||
|
|
||||||
@@ -780,17 +780,24 @@ void *UE_thread(void *arg) {
|
|||||||
LOG_E(PHY,"Decoded frame index (%d) is not compatible with current context (%d), UE should go back to synch mode\n",
|
LOG_E(PHY,"Decoded frame index (%d) is not compatible with current context (%d), UE should go back to synch mode\n",
|
||||||
decoded_frame_rx, curMsg->proc.frame_rx );
|
decoded_frame_rx, curMsg->proc.frame_rx );
|
||||||
|
|
||||||
AssertFatal( writeBlockSize ==
|
int flags = 0;
|
||||||
UE->rfdevice.trx_write_func(&UE->rfdevice,
|
int slot_tx_usrp = slot_nr + DURATION_RX_TO_TX - RX_NB_TH;
|
||||||
timestamp+
|
if (slot_tx_usrp%10==7)
|
||||||
UE->frame_parms.get_samples_slot_timestamp(slot_nr,
|
flags=2;
|
||||||
&UE->frame_parms,DURATION_RX_TO_TX - RX_NB_TH) - firstSymSamp -
|
else if (slot_tx_usrp%10==8)
|
||||||
openair0_cfg[0].tx_sample_advance - UE->N_TA_offset - UE->timing_advance,
|
flags = 1;
|
||||||
txp,
|
else if (slot_tx_usrp%10==9)
|
||||||
writeBlockSize,
|
flags = 3;
|
||||||
UE->frame_parms.nb_antennas_tx,
|
|
||||||
1),"");
|
|
||||||
|
|
||||||
|
if (flags || IS_SOFTMODEM_RFSIM || IS_SOFTMODEM_NOS1)
|
||||||
|
AssertFatal( writeBlockSize ==
|
||||||
|
UE->rfdevice.trx_write_func(&UE->rfdevice,
|
||||||
|
curMsg->proc.timestamp_tx,
|
||||||
|
txp,
|
||||||
|
writeBlockSize,
|
||||||
|
UE->frame_parms.nb_antennas_tx,
|
||||||
|
flags),"");
|
||||||
|
|
||||||
for (int i=0; i<UE->frame_parms.nb_antennas_tx; i++)
|
for (int i=0; i<UE->frame_parms.nb_antennas_tx; i++)
|
||||||
memset(txp[i], 0, writeBlockSize);
|
memset(txp[i], 0, writeBlockSize);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user