adding phy_scope to UE
bugfixes
This commit is contained in:
@@ -532,6 +532,7 @@ static void *UE_thread_synch(void *arg) {
|
||||
} else {
|
||||
// initial sync failed
|
||||
// calculate new offset and try again
|
||||
|
||||
if (UE->UE_scan_carrier == 1) {
|
||||
if (freq_offset >= 0)
|
||||
freq_offset += 100;
|
||||
@@ -553,6 +554,7 @@ static void *UE_thread_synch(void *arg) {
|
||||
return &UE_thread_synch_retval; // not reached
|
||||
}
|
||||
}
|
||||
|
||||
#if DISABLE_LOG_X
|
||||
printf("[initial_sync] trying carrier off %d Hz, rxgain %d (DL %u, UL %u)\n",
|
||||
freq_offset,
|
||||
@@ -646,8 +648,8 @@ static void *UE_thread_rxn_txnp4(void *arg) {
|
||||
}
|
||||
|
||||
// initRefTimes(t2);
|
||||
initRefTimes(t3);
|
||||
pickTime(current);
|
||||
// initRefTimes(t3);
|
||||
// pickTime(current);
|
||||
// updateTimes(proc->gotIQs, &t2, 10000, "Delay to wake up UE_Thread_Rx (case 2)");
|
||||
|
||||
// Process Rx data for one sub-frame
|
||||
@@ -876,7 +878,7 @@ void *UE_thread(void *arg) {
|
||||
if (UE->mode != loop_through_memory) {
|
||||
for (int i=0; i<UE->frame_parms.nb_antennas_rx; i++)
|
||||
rxp[i] = (void*)&dummy_rx[i][0];
|
||||
for (int sf=0; sf<LTE_NUMBER_OF_SUBFRAMES_PER_FRAME; sf++)
|
||||
for (int sf=0; sf<NR_NUMBER_OF_SUBFRAMES_PER_FRAME; sf++)
|
||||
// printf("Reading dummy sf %d\n",sf);
|
||||
AssertFatal(UE->frame_parms.samples_per_subframe==
|
||||
UE->rfdevice.trx_read_func(&UE->rfdevice,
|
||||
@@ -1114,6 +1116,7 @@ void init_UE_threads(PHY_VARS_NR_UE *UE) {
|
||||
|
||||
pthread_mutex_init(&UE->proc.mutex_synch,NULL);
|
||||
pthread_cond_init(&UE->proc.cond_synch,NULL);
|
||||
UE->proc.instance_cnt_synch = -1;
|
||||
|
||||
// the threads are not yet active, therefore access is allowed without locking
|
||||
int nb_threads=RX_NB_TH;
|
||||
@@ -1186,6 +1189,7 @@ void fill_ue_band_info(void) {
|
||||
}*/
|
||||
#endif
|
||||
|
||||
/*
|
||||
int setup_ue_buffers(PHY_VARS_NR_UE **phy_vars_ue, openair0_config_t *openair0_cfg) {
|
||||
|
||||
int i, CC_id;
|
||||
@@ -1225,4 +1229,4 @@ int setup_ue_buffers(PHY_VARS_NR_UE **phy_vars_ue, openair0_config_t *openair0_c
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
*/
|
||||
|
||||
@@ -80,7 +80,7 @@ unsigned short config_frames[4] = {2,9,11,13};
|
||||
#include "system.h"
|
||||
#include "stats.h"
|
||||
#ifdef XFORMS
|
||||
#include "PHY/TOOLS/lte_phy_scope.h"
|
||||
#include "PHY/TOOLS/nr_phy_scope.h"
|
||||
//#include "stats.h"
|
||||
// current status is that every UE has a DL scope for a SINGLE eNB (eNB_id=0)
|
||||
// at eNB 0, an UL scope for every UE
|
||||
@@ -111,11 +111,10 @@ volatile int oai_exit = 0;
|
||||
static clock_source_t clock_source = internal;
|
||||
static int wait_for_sync = 0;
|
||||
|
||||
static char UE_flag=0;
|
||||
unsigned int mmapped_dma=0;
|
||||
int single_thread_flag=1;
|
||||
unsigned int mmapped_dma=0;
|
||||
int single_thread_flag=1;
|
||||
|
||||
static char threequarter_fs=0;
|
||||
int threequarter_fs=0;
|
||||
|
||||
uint32_t downlink_frequency[MAX_NUM_CCs][4];
|
||||
int32_t uplink_frequency_offset[MAX_NUM_CCs][4];
|
||||
@@ -149,7 +148,7 @@ double rx_gain_off = 0.0;
|
||||
double sample_rate=30.72e6;
|
||||
double bw = 10.0e6;
|
||||
|
||||
static int tx_max_power[MAX_NUM_CCs]; /* = {0,0}*/;
|
||||
static int tx_max_power[MAX_NUM_CCs] = {0};
|
||||
|
||||
char rf_config_file[1024];
|
||||
|
||||
@@ -175,7 +174,7 @@ int rx_input_level_dBm;
|
||||
|
||||
#ifdef XFORMS
|
||||
extern int otg_enabled;
|
||||
static char do_forms=0;
|
||||
int do_forms=0;
|
||||
#else
|
||||
int otg_enabled;
|
||||
#endif
|
||||
@@ -415,22 +414,19 @@ static void *scope_thread(void *arg) {
|
||||
#endif
|
||||
|
||||
while (!oai_exit) {
|
||||
if (UE_flag==1) {
|
||||
//len = dump_ue_stats (PHY_vars_UE_g[0][0], &PHY_vars_UE_g[0][0]->proc.proc_rxtx[0],stats_buffer, 0, mode,rx_input_level_dBm);
|
||||
//fl_set_object_label(form_stats->stats_text, stats_buffer);
|
||||
fl_clear_browser(form_stats->stats_text);
|
||||
fl_add_browser_line(form_stats->stats_text, stats_buffer);
|
||||
|
||||
/*phy_scope_UE(form_ue[0],
|
||||
PHY_vars_UE_g[0][0],
|
||||
0,
|
||||
0,7);*/
|
||||
|
||||
}
|
||||
|
||||
//printf("doing forms\n");
|
||||
//usleep(100000); // 100 ms
|
||||
sleep(1);
|
||||
//len = dump_ue_stats (PHY_vars_UE_g[0][0], &PHY_vars_UE_g[0][0]->proc.proc_rxtx[0],stats_buffer, 0, mode,rx_input_level_dBm);
|
||||
//fl_set_object_label(form_stats->stats_text, stats_buffer);
|
||||
fl_clear_browser(form_stats->stats_text);
|
||||
fl_add_browser_line(form_stats->stats_text, stats_buffer);
|
||||
|
||||
phy_scope_UE(form_ue[0],
|
||||
PHY_vars_UE_g[0][0],
|
||||
0,0,7);
|
||||
|
||||
|
||||
//printf("doing forms\n");
|
||||
//usleep(100000); // 100 ms
|
||||
sleep(1);
|
||||
}
|
||||
|
||||
// printf("%s",stats_buffer);
|
||||
@@ -615,10 +611,6 @@ static void get_options(void) {
|
||||
uecap_xer_in=1;
|
||||
} /* UE with config file */
|
||||
|
||||
#if defined(OAI_USRP) || defined(CPRIGW) || defined(OAI_ADRV9371_ZC706)
|
||||
int clock_src;
|
||||
#endif
|
||||
|
||||
}
|
||||
|
||||
#if T_TRACER
|
||||
@@ -1002,8 +994,6 @@ int main( int argc, char **argv ) {
|
||||
UE[CC_id]->pdcch_vars[1][0]->crnti = 0x1235;
|
||||
}
|
||||
|
||||
rx_gain[CC_id][0] = 81;
|
||||
tx_max_power[CC_id] = -40;
|
||||
|
||||
UE[CC_id]->rx_total_gain_dB = (int)rx_gain[CC_id][0] + rx_gain_off;
|
||||
UE[CC_id]->tx_power_max_dBm = tx_max_power[CC_id];
|
||||
@@ -1120,11 +1110,14 @@ int main( int argc, char **argv ) {
|
||||
|
||||
#ifdef XFORMS
|
||||
int UE_id;
|
||||
int fl_argc=1;
|
||||
|
||||
if (do_forms==1) {
|
||||
fl_initialize (&argc, argv, NULL, 0, 0);
|
||||
|
||||
form_stats = create_form_stats_form();
|
||||
// fl_initialize messes with argv and argc, so pretend to not pass any options
|
||||
fl_initialize (&fl_argc, argv, NULL, 0, 0);
|
||||
// restore the original command line args
|
||||
// argv = fl_get_cmdline_args( &argc );
|
||||
form_stats = create_form_stats_form();
|
||||
fl_show_form (form_stats->stats_form, FL_PLACE_HOTSPOT, FL_FULLBORDER, "stats");
|
||||
UE_id = 0;
|
||||
form_ue[UE_id] = create_lte_phy_scope_ue();
|
||||
@@ -1155,48 +1148,34 @@ int main( int argc, char **argv ) {
|
||||
|
||||
rt_sleep_ns(10*100000000ULL);
|
||||
|
||||
|
||||
|
||||
// start the main thread
|
||||
//if (UE_flag == 1) {
|
||||
init_UE(1);
|
||||
number_of_cards = 1;
|
||||
|
||||
init_UE(1);
|
||||
number_of_cards = 1;
|
||||
|
||||
for(CC_id=0; CC_id<MAX_NUM_CCs; CC_id++) {
|
||||
PHY_vars_UE_g[0][CC_id]->rf_map.card=0;
|
||||
PHY_vars_UE_g[0][CC_id]->rf_map.chain=CC_id+chain_offset;
|
||||
}
|
||||
//}
|
||||
|
||||
// connect the TX/RX buffers
|
||||
//if (UE_flag==1) {
|
||||
|
||||
for (CC_id=0; CC_id<MAX_NUM_CCs; CC_id++) {
|
||||
|
||||
|
||||
#if defined(OAI_USRP) || defined(OAI_ADRV9371_ZC706)
|
||||
UE[CC_id]->hw_timing_advance = timing_advance;
|
||||
#else
|
||||
UE[CC_id]->hw_timing_advance = 160;
|
||||
#endif
|
||||
}
|
||||
if (setup_ue_buffers(UE,&openair0_cfg[0])!=0) {
|
||||
printf("Error setting up eNB buffer\n");
|
||||
exit(-1);
|
||||
}
|
||||
|
||||
|
||||
if (input_fd) {
|
||||
printf("Reading in from file to antenna buffer %d\n",0);
|
||||
if (fread(UE[0]->common_vars.rxdata[0],
|
||||
sizeof(int32_t),
|
||||
frame_parms[0]->samples_per_subframe*10,
|
||||
input_fd) != frame_parms[0]->samples_per_subframe*10)
|
||||
printf("error reading from file\n");
|
||||
}
|
||||
|
||||
|
||||
if (input_fd) {
|
||||
printf("Reading in from file to antenna buffer %d\n",0);
|
||||
if (fread(UE[0]->common_vars.rxdata[0],
|
||||
sizeof(int32_t),
|
||||
frame_parms[0]->samples_per_subframe*10,
|
||||
input_fd) != frame_parms[0]->samples_per_subframe*10)
|
||||
printf("error reading from file\n");
|
||||
}
|
||||
//p_exmimo_config->framing.tdd_config = TXRXSWITCH_TESTRX;
|
||||
//}
|
||||
sleep(3);
|
||||
|
||||
|
||||
|
||||
@@ -136,7 +136,7 @@
|
||||
{"ue-nb-ant-tx", CONFIG_HLP_UENANTT, 0, u8ptr:&nb_antenna_tx, defuintval:1, TYPE_UINT8, 0}, \
|
||||
{"ue-scan-carrier", CONFIG_HLP_UESCAN, PARAMFLAG_BOOL, iptr:&UE_scan_carrier, defintval:0, TYPE_INT, 0}, \
|
||||
{"ue-max-power", NULL, 0, iptr:&(tx_max_power[0]), defintval:90, TYPE_INT, 0}, \
|
||||
{"r" , CONFIG_HLP_PRB, 0, u8ptr:&(frame_parms[0]->N_RB_DL), defintval:25, TYPE_UINT8, 0}, \
|
||||
{"r" , CONFIG_HLP_PRB, 0, iptr:&(frame_parms[0]->N_RB_DL), defintval:25, TYPE_UINT, 0}, \
|
||||
{"dlsch-demod-shift", CONFIG_HLP_DLSHIFT, 0, iptr:(int32_t *)&dlsch_demod_shift, defintval:0, TYPE_INT, 0}, \
|
||||
{"usrp-args", CONFIG_HLP_USRP_ARGS, 0, strptr:(char **)&usrp_args, defstrval:"type=b200", TYPE_STRING, 0}, \
|
||||
{"usrp-clksrc", CONFIG_HLP_USRP_CLK_SRC,0, strptr:(char **)&usrp_clksrc, defstrval:"internal", TYPE_STRING, 0} \
|
||||
@@ -167,8 +167,8 @@
|
||||
{"A" , CONFIG_HLP_TADV, 0, uptr:&timing_advance, defintval:0, TYPE_UINT, 0}, \
|
||||
{"C" , CONFIG_HLP_DLF, 0, uptr:&(downlink_frequency[0][0]), defuintval:2680000000, TYPE_UINT, 0}, \
|
||||
{"a" , CONFIG_HLP_CHOFF, 0, iptr:&chain_offset, defintval:0, TYPE_INT, 0}, \
|
||||
{"d" , CONFIG_HLP_SOFTS, PARAMFLAG_BOOL, uptr:(uint32_t *)&do_forms, defintval:0, TYPE_INT8, 0}, \
|
||||
{"E" , CONFIG_HLP_TQFS, PARAMFLAG_BOOL, i8ptr:&threequarter_fs, defintval:0, TYPE_INT8, 0}, \
|
||||
{"d" , CONFIG_HLP_SOFTS, PARAMFLAG_BOOL, iptr:&do_forms, defintval:0, TYPE_INT, 0}, \
|
||||
{"E" , CONFIG_HLP_TQFS, PARAMFLAG_BOOL, iptr:&threequarter_fs, defintval:0, TYPE_INT, 0}, \
|
||||
{"K" , CONFIG_HLP_ITTIL, PARAMFLAG_NOFREE, strptr:&itti_dump_file, defstrval:"/tmp/itti.dump", TYPE_STRING, 0}, \
|
||||
{"m" , CONFIG_HLP_DLMCS, 0, uptr:&target_dl_mcs, defintval:0, TYPE_UINT, 0}, \
|
||||
{"t" , CONFIG_HLP_ULMCS, 0, uptr:&target_ul_mcs, defintval:0, TYPE_UINT, 0}, \
|
||||
|
||||
Reference in New Issue
Block a user