changes in targets/RT/USER/lte-softmodem.c and targets/RT/USER/lte-ue.c for UE band scanning
git-svn-id: http://svn.eurecom.fr/openair4G/trunk@7298 818b1a75-f10b-46b9-bf7c-635c3b92a50f
This commit is contained in:
@@ -2002,6 +2002,7 @@ static void get_options (int argc, char **argv)
|
||||
break;
|
||||
|
||||
case 'r':
|
||||
UE_scan = 0;
|
||||
for (CC_id=0; CC_id<MAX_NUM_CCs; CC_id++) {
|
||||
switch(atoi(optarg)) {
|
||||
case 6:
|
||||
@@ -2251,11 +2252,11 @@ int main( int argc, char **argv )
|
||||
for (CC_id=0; CC_id<MAX_NUM_CCs; CC_id++) {
|
||||
frame_parms[CC_id] = (LTE_DL_FRAME_PARMS*) malloc(sizeof(LTE_DL_FRAME_PARMS));
|
||||
/* Set some default values that may be overwritten while reading options */
|
||||
frame_parms[CC_id]->frame_type = TDD; /* TDD */
|
||||
frame_parms[CC_id]->frame_type = FDD; /* TDD */
|
||||
frame_parms[CC_id]->tdd_config = 3;
|
||||
frame_parms[CC_id]->tdd_config_S = 0;
|
||||
frame_parms[CC_id]->N_RB_DL = 25;
|
||||
frame_parms[CC_id]->N_RB_UL = 25;
|
||||
frame_parms[CC_id]->N_RB_DL = 100;
|
||||
frame_parms[CC_id]->N_RB_UL = 100;
|
||||
frame_parms[CC_id]->Ncp = NORMAL;
|
||||
frame_parms[CC_id]->Ncp_UL = NORMAL;
|
||||
frame_parms[CC_id]->Nid_cell = Nid_cell;
|
||||
@@ -2272,6 +2273,14 @@ int main( int argc, char **argv )
|
||||
set_taus_seed (0);
|
||||
|
||||
|
||||
for (CC_id=0; CC_id<MAX_NUM_CCs; CC_id++) {
|
||||
downlink_frequency[CC_id][0] = 2680000000; // Use float to avoid issue with frequency over 2^31.
|
||||
downlink_frequency[CC_id][1] = downlink_frequency[CC_id][0];
|
||||
downlink_frequency[CC_id][2] = downlink_frequency[CC_id][0];
|
||||
downlink_frequency[CC_id][3] = downlink_frequency[CC_id][0];
|
||||
printf("Downlink for CC_id %d frequency set to %u\n", CC_id, downlink_frequency[CC_id][0]);
|
||||
}
|
||||
|
||||
get_options (argc, argv); //Command-line options
|
||||
set_glog(glog_level, glog_verbosity);
|
||||
|
||||
@@ -2736,10 +2745,6 @@ int main( int argc, char **argv )
|
||||
0,// cba_group_active
|
||||
0); // HO flag
|
||||
|
||||
if (UE_flag == 1)
|
||||
mac_xface->dl_phy_sync_success (0, 0, 0, 1);
|
||||
else
|
||||
mac_xface->mrbch_phy_sync_failure (0, 0, 0);
|
||||
|
||||
#endif
|
||||
|
||||
@@ -2756,11 +2761,15 @@ int main( int argc, char **argv )
|
||||
#endif
|
||||
|
||||
#ifdef OPENAIR2
|
||||
|
||||
printf("Filling UE band info\n");
|
||||
|
||||
if (UE_flag==1)
|
||||
if (UE_flag==1) {
|
||||
fill_ue_band_info();
|
||||
|
||||
mac_xface->dl_phy_sync_success (0, 0, 0, 1);
|
||||
}
|
||||
else
|
||||
mac_xface->mrbch_phy_sync_failure (0, 0, 0);
|
||||
#endif
|
||||
|
||||
/* #ifdef OPENAIR2
|
||||
|
||||
+30
-25
@@ -233,29 +233,32 @@ static void *UE_thread_synch(void *arg)
|
||||
found = 0;
|
||||
current_band = eutra_bands[ind].band;
|
||||
|
||||
do {
|
||||
printf("Scanning band %d, dl_min %u\n",current_band,eutra_bands[ind].dl_min);
|
||||
|
||||
if ((eutra_bands[ind].dl_min <= downlink_frequency[0][0]) && (eutra_bands[ind].dl_max>= downlink_frequency[0][0])) {
|
||||
for (card=0; card<MAX_NUM_CCs; card++)
|
||||
for (i=0; i<4; i++)
|
||||
uplink_frequency_offset[card][i] = eutra_bands[ind].ul_min - eutra_bands[ind].dl_min;
|
||||
if (UE->UE_scan == 0) {
|
||||
do {
|
||||
printf("Scanning band %d, dl_min %u\n",current_band,eutra_bands[ind].dl_min);
|
||||
|
||||
found = 1;
|
||||
break;
|
||||
if ((eutra_bands[ind].dl_min <= downlink_frequency[0][0]) && (eutra_bands[ind].dl_max>= downlink_frequency[0][0])) {
|
||||
for (card=0; card<MAX_NUM_CCs; card++)
|
||||
for (i=0; i<4; i++)
|
||||
uplink_frequency_offset[card][i] = eutra_bands[ind].ul_min - eutra_bands[ind].dl_min;
|
||||
|
||||
found = 1;
|
||||
break;
|
||||
}
|
||||
|
||||
ind++;
|
||||
current_band = eutra_bands[ind].band;
|
||||
} while (current_band < 44);
|
||||
|
||||
if (found == 0) {
|
||||
exit_fun("Can't find EUTRA band for frequency");
|
||||
oai_exit=1;
|
||||
}
|
||||
|
||||
ind++;
|
||||
current_band = eutra_bands[ind].band;
|
||||
} while (current_band < 44);
|
||||
|
||||
if (found == 0) {
|
||||
exit_fun("Can't find EUTRA band for frequency");
|
||||
oai_exit=1;
|
||||
}
|
||||
|
||||
|
||||
if (UE->UE_scan == 1) {
|
||||
else if (UE->UE_scan == 1) {
|
||||
current_band=0;
|
||||
for (card=0; card<MAX_CARDS; card++) {
|
||||
for (i=0; i<openair0_cfg[card].rx_num_channels; i++) {
|
||||
downlink_frequency[card][i] = bands_to_scan.band_info[0].dl_min;
|
||||
@@ -299,7 +302,7 @@ static void *UE_thread_synch(void *arg)
|
||||
openair0_set_gains(&openair0,&openair0_cfg[0]);
|
||||
#endif
|
||||
#endif
|
||||
LOG_D(PHY,"[SCHED][UE] Scanning band %d, freq %u\n",bands_to_scan.band_info[0].band, bands_to_scan.band_info[0].dl_min);
|
||||
|
||||
} else {
|
||||
LOG_D(PHY,"[SCHED][UE] Check absolute frequency %u (oai_exit %d)\n",downlink_frequency[0][0],oai_exit);
|
||||
|
||||
@@ -329,6 +332,8 @@ static void *UE_thread_synch(void *arg)
|
||||
switch (sync_mode) {
|
||||
case pss:
|
||||
|
||||
LOG_I(PHY,"[SCHED][UE] Scanning band %d (%d), freq %u\n",bands_to_scan.band_info[current_band].band, current_band,bands_to_scan.band_info[current_band].dl_min+current_offset);
|
||||
lte_sync_timefreq(UE,current_band,bands_to_scan.band_info[current_band].dl_min+current_offset);
|
||||
|
||||
|
||||
current_offset += 20000000; // increase by 20 MHz
|
||||
@@ -375,7 +380,7 @@ static void *UE_thread_synch(void *arg)
|
||||
printf("UE synch: setting RX gain (%d,%d) to %f\n",card,i,openair0_cfg[card].rx_gain[i]);
|
||||
#endif
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef EXMIMO
|
||||
//openair0_config(&openair0_cfg[card],1);
|
||||
@@ -388,6 +393,7 @@ static void *UE_thread_synch(void *arg)
|
||||
// openair0_set_gains(&openair0,&openair0_cfg[0]);
|
||||
#endif
|
||||
#endif
|
||||
|
||||
break;
|
||||
|
||||
case pbch:
|
||||
@@ -499,7 +505,6 @@ static void *UE_thread_synch(void *arg)
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_UE_SYNCH,0);
|
||||
|
||||
if (pthread_mutex_lock(&UE->mutex_synch) != 0) {
|
||||
@@ -1012,7 +1017,7 @@ void *UE_thread(void *arg)
|
||||
UE->PHY_measurements.rx_power_avg_dB[0] - rx_input_level_dBm,
|
||||
UE->rx_total_gain_dB,
|
||||
openair0_cfg[0].rx_gain[0]
|
||||
);
|
||||
);
|
||||
exit_fun("[HW][UE] UE in RX calibration mode, exiting");
|
||||
}
|
||||
}
|
||||
@@ -1378,7 +1383,7 @@ void *UE_thread(void *arg)
|
||||
UE->PHY_measurements.rx_power_avg_dB[0] - rx_input_level_dBm,
|
||||
UE->rx_total_gain_dB,
|
||||
openair0_cfg[0].rx_gain[0]
|
||||
);
|
||||
);
|
||||
exit_fun("[HW][UE] UE in RX calibration mode, exiting");
|
||||
}
|
||||
}
|
||||
@@ -1414,8 +1419,8 @@ void *UE_thread(void *arg)
|
||||
}
|
||||
|
||||
/*
|
||||
if ((slot%2000)<10)
|
||||
LOG_D(HW,"fun0: doing very hard work\n");
|
||||
if ((slot%2000)<10)
|
||||
LOG_D(HW,"fun0: doing very hard work\n");
|
||||
*/
|
||||
// now increment slot and frame counters
|
||||
slot++;
|
||||
|
||||
Reference in New Issue
Block a user