Added bugfixes for PDCCH (not all). New --ue-dump--frame and --loop-memory option for lte-softmodem. Updates in PMCH/MCH transmission which were forgotten in recent DLSCH/PDSCH changes. mbmssim works again.

git-svn-id: http://svn.eurecom.fr/openair4G/trunk@7702 818b1a75-f10b-46b9-bf7c-635c3b92a50f
This commit is contained in:
knopp
2015-07-13 15:43:48 +00:00
parent a373ab3a15
commit e09d843d14
19 changed files with 283 additions and 169 deletions
@@ -230,6 +230,11 @@ void trx_eth_end(openair0_device *device)
}
int openair0_stop(int dummy) {
return 0;
}
int num_devices = 0;
+45 -13
View File
@@ -250,6 +250,8 @@ int UE_scan = 1;
int UE_scan_carrier = 0;
runmode_t mode = normal_txrx;
FILE *input_fd=NULL;
#ifdef EXMIMO
#if MAX_NUM_CCs == 1
@@ -430,9 +432,10 @@ void help (void) {
printf(" --debug-ue-prach run normal prach power ramping, but don't continue random-access\n");
printf(" --calib-prach-tx run normal prach with maximum power, but don't continue random-access\n");
printf(" --no-L2-connect bypass L2 and upper layers\n");
printf(" --ue_rxgain set UE RX gain\n");
printf(" --ue_txgain set UE tx gain\n");
printf(" --ue_scan_carrier set UE to scan around carrier\n");
printf(" --ue-rxgain set UE RX gain\n");
printf(" --ue-txgain set UE TX gain\n");
printf(" --ue-scan_carrier set UE to scan around carrier\n");
printf(" --loop-memory get softmodem (UE) to loop through memory instead of acquiring from HW\n");
printf(" -C Set the downlink frequecny for all Component carrier\n");
printf(" -d Enable soft scope and L1 and L2 stats (Xforms)\n");
printf(" -F Calibrate the EXMIMO borad, available files: exmimo2_2arxg.lime exmimo2_2brxg.lime \n");
@@ -2015,7 +2018,9 @@ static void get_options (int argc, char **argv)
LONG_OPTION_RXGAIN,
LONG_OPTION_TXGAIN,
LONG_OPTION_SCANCARRIER,
LONG_OPTION_MAXPOWER
LONG_OPTION_MAXPOWER,
LONG_OPTION_DUMP_FRAME,
LONG_OPTION_LOOPMEMORY
};
static const struct option long_options[] = {
@@ -2030,6 +2035,8 @@ static void get_options (int argc, char **argv)
{"ue-txgain", required_argument, NULL, LONG_OPTION_TXGAIN},
{"ue-scan-carrier", no_argument, NULL, LONG_OPTION_SCANCARRIER},
{"ue-max-power", required_argument, NULL, LONG_OPTION_MAXPOWER},
{"ue-dump-frame", no_argument, NULL, LONG_OPTION_DUMP_FRAME},
{"loop-memory", required_argument, NULL, LONG_OPTION_LOOPMEMORY},
{NULL, 0, NULL, 0}
};
@@ -2092,6 +2099,16 @@ static void get_options (int argc, char **argv)
break;
case LONG_OPTION_LOOPMEMORY:
mode=loop_through_memory;
input_fd = fopen(optarg,"r");
AssertFatal(input_fd != NULL,"Please provide an input file\n");
break;
case LONG_OPTION_DUMP_FRAME:
mode = rx_dump_frame;
break;
case 'M':
#ifdef ETHERNET
strcpy(rrh_eNB_ip,optarg);
@@ -2400,12 +2417,14 @@ static void get_options (int argc, char **argv)
enb_properties->properties[i]->uplink_frequency_offset[CC_id]);
} // CC_id
}// i
} else if ((UE_flag == 1) && (conf_config_file_name != NULL)) {
// Here the configuration file is the XER encoded UE capabilities
// Read it in and store in asn1c data structures
strcpy(uecap_xer,conf_config_file_name);
uecap_xer_in=1;
} else if (UE_flag == 1) {
if (conf_config_file_name != NULL) {
// Here the configuration file is the XER encoded UE capabilities
// Read it in and store in asn1c data structures
strcpy(uecap_xer,conf_config_file_name);
uecap_xer_in=1;
}
}
}
@@ -2869,7 +2888,7 @@ int main( int argc, char **argv )
#ifdef ETHERNET
if (frame_parms[0]->N_RB_DL == 6) openair0_cfg[0].samples_per_packet = 256;
else openair0_cfg[0].samples_per_packet = 1536;
else openair0_cfg[0].samples_per_packet = 1024;
printf("HW: samples_per_packet %d\n",openair0_cfg[0].samples_per_packet);
#endif
@@ -2946,10 +2965,15 @@ int main( int argc, char **argv )
printf("Initializing openair0 ...");
openair0_cfg[0].log_level = glog_level;
if (openair0_device_init(&openair0, &openair0_cfg[0]) <0) {
if ((mode!=loop_through_memory) &&
(openair0_device_init(&openair0, &openair0_cfg[0]) <0)) {
printf("Exiting, cannot initialize device\n");
exit(-1);
}
else if (mode==loop_through_memory) {
}
printf("Done\n");
@@ -3039,6 +3063,13 @@ int main( int argc, char **argv )
UE[CC_id]->lte_ue_common_vars.txdata[aa][i] = 0x00010001;
}
if (input_fd) {
printf("Reading in from file to antenna buffer %d\n",0);
fread(UE[0]->lte_ue_common_vars.rxdata[0],
sizeof(int32_t),
frame_parms[0]->samples_per_tti*10,
input_fd);
}
//p_exmimo_config->framing.tdd_config = TXRXSWITCH_TESTRX;
} else {
openair_daq_vars.timing_advance = 0;
@@ -3260,7 +3291,8 @@ int main( int argc, char **argv )
#ifndef EXMIMO
#ifndef USRP_DEBUG
openair0.trx_start_func(&openair0);
if (mode!=loop_through_memory)
openair0.trx_start_func(&openair0);
// printf("returning from usrp start streaming: %llu\n",get_usrp_time(&openair0));
#endif
#endif