Commit 23c63fda authored by Florian Kaltenberger's avatar Florian Kaltenberger

moving old simulators

git-svn-id: http://svn.eurecom.fr/openair4G/trunk@7230 818b1a75-f10b-46b9-bf7c-635c3b92a50f
parent afa3a973
This diff is collapsed.
# Doxyfile 1.3.8
#---------------------------------------------------------------------------
# Project related configuration options
#---------------------------------------------------------------------------
PROJECT_NAME = FEMTOSIM
PROJECT_NUMBER =
OUTPUT_DIRECTORY =
CREATE_SUBDIRS = NO
OUTPUT_LANGUAGE = English
BRIEF_MEMBER_DESC = YES
REPEAT_BRIEF = YES
ABBREVIATE_BRIEF =
ALWAYS_DETAILED_SEC = NO
INLINE_INHERITED_MEMB = NO
FULL_PATH_NAMES = YES
STRIP_FROM_PATH =
STRIP_FROM_INC_PATH =
SHORT_NAMES = NO
JAVADOC_AUTOBRIEF = YES
MULTILINE_CPP_IS_BRIEF = NO
INHERIT_DOCS = NO
DISTRIBUTE_GROUP_DOC = NO
TAB_SIZE = 8
ALIASES =
OPTIMIZE_OUTPUT_FOR_C = YES
OPTIMIZE_OUTPUT_JAVA = NO
SUBGROUPING = YES
#---------------------------------------------------------------------------
# Build related configuration options
#---------------------------------------------------------------------------
EXTRACT_ALL = YES
EXTRACT_PRIVATE = NO
EXTRACT_STATIC = NO
EXTRACT_LOCAL_CLASSES = YES
EXTRACT_LOCAL_METHODS = YES
HIDE_UNDOC_MEMBERS = YES
HIDE_UNDOC_CLASSES = YES
HIDE_FRIEND_COMPOUNDS = NO
HIDE_IN_BODY_DOCS = NO
INTERNAL_DOCS = NO
CASE_SENSE_NAMES = YES
HIDE_SCOPE_NAMES = NO
SHOW_INCLUDE_FILES = NO
INLINE_INFO = YES
SORT_MEMBER_DOCS = NO
SORT_BRIEF_DOCS = NO
SORT_BY_SCOPE_NAME = NO
GENERATE_TODOLIST = YES
GENERATE_TESTLIST = NO
GENERATE_BUGLIST = YES
GENERATE_DEPRECATEDLIST= NO
ENABLED_SECTIONS =
MAX_INITIALIZER_LINES = 30
SHOW_USED_FILES = NO
#---------------------------------------------------------------------------
# configuration options related to warning and progress messages
#---------------------------------------------------------------------------
QUIET = NO
WARNINGS = YES
WARN_IF_UNDOCUMENTED = YES
WARN_IF_DOC_ERROR = YES
WARN_FORMAT = "$file:$line: $text"
WARN_LOGFILE =
#---------------------------------------------------------------------------
# configuration options related to the input files
#---------------------------------------------------------------------------
INPUT = $(OPENAIR1_DIR)/SIMULATION/LTE_FEMTO/
FILE_PATTERNS = *.h
RECURSIVE = NO
EXCLUDE =
EXCLUDE_SYMLINKS = NO
EXCLUDE_PATTERNS =
EXAMPLE_PATH =
EXAMPLE_PATTERNS =
EXAMPLE_RECURSIVE = NO
IMAGE_PATH = images
INPUT_FILTER =
FILTER_PATTERNS =
FILTER_SOURCE_FILES = NO
#---------------------------------------------------------------------------
# configuration options related to source browsing
#---------------------------------------------------------------------------
SOURCE_BROWSER = NO
INLINE_SOURCES = NO
STRIP_CODE_COMMENTS = YES
REFERENCED_BY_RELATION = NO
REFERENCES_RELATION = NO
VERBATIM_HEADERS = YES
#---------------------------------------------------------------------------
# configuration options related to the alphabetical class index
#---------------------------------------------------------------------------
ALPHABETICAL_INDEX = NO
COLS_IN_ALPHA_INDEX = 5
IGNORE_PREFIX =
#---------------------------------------------------------------------------
COLS_IN_ALPHA_INDEX = 5
IGNORE_PREFIX =
#---------------------------------------------------------------------------
# configuration options related to the alphabetical class index
#---------------------------------------------------------------------------
ALPHABETICAL_INDEX = NO
COLS_IN_ALPHA_INDEX = 5
IGNORE_PREFIX =
#---------------------------------------------------------------------------
# configuration options related to the HTML output
#---------------------------------------------------------------------------
GENERATE_HTML = YES
HTML_OUTPUT = html
HTML_FILE_EXTENSION = .html
HTML_HEADER =
HTML_FOOTER =
HTML_STYLESHEET =
HTML_ALIGN_MEMBERS = YES
GENERATE_HTMLHELP = YES
CHM_FILE = irs_openair.chm
HHC_LOCATION =
GENERATE_CHI = NO
BINARY_TOC = NO
TOC_EXPAND = NO
DISABLE_INDEX = NO
ENUM_VALUES_PER_LINE = 4
GENERATE_TREEVIEW = YES
TREEVIEW_WIDTH = 250
#---------------------------------------------------------------------------
# configuration options related to the LaTeX output
#---------------------------------------------------------------------------
GENERATE_LATEX = NO
LATEX_OUTPUT = latex
LATEX_CMD_NAME = latex
MAKEINDEX_CMD_NAME = makeindex
COMPACT_LATEX = NO
PAPER_TYPE = a4wide
EXTRA_PACKAGES = amsmath amssymb
LATEX_HEADER = header.tex
PDF_HYPERLINKS = YES
USE_PDFLATEX = YES
LATEX_BATCHMODE = NO
LATEX_HIDE_INDICES = NO
#---------------------------------------------------------------------------
# configuration options related to the RTF output
#---------------------------------------------------------------------------
GENERATE_RTF = NO
RTF_OUTPUT = rtf
COMPACT_RTF = YES
RTF_HYPERLINKS = YES
RTF_STYLESHEET_FILE =
RTF_EXTENSIONS_FILE =
#---------------------------------------------------------------------------
# configuration options related to the man page output
#---------------------------------------------------------------------------
GENERATE_MAN = NO
MAN_OUTPUT = man
MAN_EXTENSION = .3
MAN_LINKS = NO
#---------------------------------------------------------------------------
# configuration options related to the XML output
#---------------------------------------------------------------------------
GENERATE_XML = NO
XML_OUTPUT = xml
XML_SCHEMA =
XML_DTD =
XML_PROGRAMLISTING = YES
#---------------------------------------------------------------------------
# configuration options for the AutoGen Definitions output
#---------------------------------------------------------------------------
GENERATE_AUTOGEN_DEF = NO
#---------------------------------------------------------------------------
# configuration options related to the Perl module output
#---------------------------------------------------------------------------
GENERATE_PERLMOD = NO
PERLMOD_LATEX = NO
PERLMOD_PRETTY = YES
PERLMOD_MAKEVAR_PREFIX =
#---------------------------------------------------------------------------
# Configuration options related to the preprocessor
#---------------------------------------------------------------------------
ENABLE_PREPROCESSING = YES
MACRO_EXPANSION = YES
EXPAND_ONLY_PREDEF = YES
SEARCH_INCLUDES = YES
INCLUDE_PATH =
INCLUDE_FILE_PATTERNS =
PREDEFINED = OPENAIR_LTE=1 RLC_MODULE=1 RLC_C=1 RLC_MAC_C=1 RLC_RRC_C=1 RLC_AM_C=1 RLC_AM_MODULE=1 RLC_AM_REASSEMBLY_C=1 RLC_AM_IN_SDU_C=1 RLC_AM_RETRANSMIT_C=1 RLC_AM_RX_LIST_C=1 RLC_AM_SEGMENT_C=1 RLC_AM_SEGMENT_HOLES_C=1 RLC_AM_STATUS_REPORT_C=1 RLC_AM_TIMER_POLL_RETRANSMIT_C=1 RLC_AM_TIMER_POLL_REORDERING_C=1 RLC_AM_TIMER_STATUS_PROHIBIT_C=1 RLC_AM_WINDOWS_C=1 RLC_UM_MODULE=1 RLC_UM_C=1 RLC_TM_MODULE=1 RLC_UM_C=1 public_rlc(x)=x protected_rlc private_rlc(x)=x public_rlc_mac(x)=x protected_rlc_mac(x)=x private_rlc_mac(x)=x public_rlc_rrc(x)=x protected_rlc_rrc(x)=x private_rlc_rrc(x)=x public_rlc_am(x)=x protected_rlc_am(x)=x private_rlc_am(x)=x public_rlc_am_reassembly(x)=x protected_rlc_am_reassembly(x)=x private_rlc_am_reassembly(x)=x public_rlc_am_in_sdu(x)=x protected_rlc_am_in_sdu(x)=x private_rlc_am_in_sdu(x)=x private_rlc_am_receiver(x)=x protected_rlc_am_receiver(x)=x public_rlc_am_receiver(x)=x private_rlc_am_retransmit(x)=x protected_rlc_am_retransmit(x)=x public_rlc_am_retransmit(x)=x private_rlc_am_rx_list(x)=x protected_rlc_am_rx_list(x)=x public_rlc_am_rx_list(x)=x private_rlc_am_segment(x)=x protected_rlc_am_segment(x)=x public_rlc_am_segment(x)=x private_rlc_am_segments_holes(x)=x protected_rlc_am_segments_holes(x)=x public_rlc_am_segments_holes(x)=x private_rlc_am_status_report(x)=x protected_rlc_am_status_report(x)=x public_rlc_am_status_report(x)=x private_rlc_am_timer_poll_retransmit(x)=x protected_rlc_am_timer_poll_retransmit(x)=x public_rlc_am_timer_poll_retransmit(x)=x private_rlc_am_timer_reordering(x)=x protected_rlc_am_timer_reordering(x)=x public_rlc_am_timer_reordering(x)=x private_rlc_am_timer_status_prohibit(x)=x protected_rlc_am_timer_status_prohibit(x)=x public_rlc_am_timer_status_prohibit(x)=x private_rlc_am_windows(x)=x protected_rlc_am_windows(x)=x public_rlc_am_windows(x)=x public_rlc_um(x)=x protected_rlc_um(x)=x private_rlc_um(x)=x
EXPAND_AS_DEFINED = public_rlc(x)=x protected_rlc(x)=x private_rlc(x)=x public_rlc_mac(x)=x protected_rlc_mac(x)=x private_rlc_mac(x)=x public_rlc_rrc(x)=x protected_rlc_rrc(x)=x private_rlc_rrc(x)=x public_rlc_am(x)=x protected_rlc_am(x)=x private_rlc_am(x)=x public_rlc_am_reassembly(x)=x protected_rlc_am_reassembly(x)=x private_rlc_am_reassembly(x)=x public_rlc_am_in_sdu(x)=x protected_rlc_am_in_sdu(x)=x private_rlc_am_in_sdu(x)=x private_rlc_am_receiver(x)=x protected_rlc_am_receiver(x)=x public_rlc_am_receiver(x)=x private_rlc_am_retransmit(x)=x protected_rlc_am_retransmit(x)=x public_rlc_am_retransmit(x)=x private_rlc_am_rx_list(x)=x protected_rlc_am_rx_list(x)=x public_rlc_am_rx_list(x)=x private_rlc_am_segment(x)=x protected_rlc_am_segment(x)=x public_rlc_am_segment(x)=x private_rlc_am_segments_holes(x)=x protected_rlc_am_segments_holes(x)=x public_rlc_am_segments_holes(x)=x private_rlc_am_status_report(x)=x protected_rlc_am_status_report(x)=x public_rlc_am_status_report(x)=x private_rlc_am_timer_poll_retransmit(x)=x protected_rlc_am_timer_poll_retransmit(x)=x public_rlc_am_timer_poll_retransmit(x)=x private_rlc_am_timer_reordering(x)=x protected_rlc_am_timer_reordering(x)=x public_rlc_am_timer_reordering(x)=x private_rlc_am_timer_status_prohibit(x)=x protected_rlc_am_timer_status_prohibit(x)=x public_rlc_am_timer_status_prohibit(x)=x private_rlc_am_windows(x)=x protected_rlc_am_windows(x)=x public_rlc_am_windows(x)=x public_rlc_um(x)=x protected_rlc_um(x)=x private_rlc_um(x)=x
SKIP_FUNCTION_MACROS = YES
#---------------------------------------------------------------------------
# Configuration::additions related to external references
#---------------------------------------------------------------------------
TAGFILES =
GENERATE_TAGFILE =
ALLEXTERNALS = NO
EXTERNAL_GROUPS = YES
PERL_PATH = /usr/bin/perl
#---------------------------------------------------------------------------
# Configuration options related to the dot tool
#---------------------------------------------------------------------------
CLASS_DIAGRAMS = NO
HIDE_UNDOC_RELATIONS = NO
HAVE_DOT = NO
CLASS_GRAPH = NO
COLLABORATION_GRAPH = NO
UML_LOOK = NO
TEMPLATE_RELATIONS = NO
INCLUDE_GRAPH = NO
INCLUDED_BY_GRAPH = NO
CALL_GRAPH = NO
GRAPHICAL_HIERARCHY = NO
DOT_IMAGE_FORMAT = jpg
DOT_PATH = "/usr/bin"
DOTFILE_DIRS = ../docs/dotfiles
include $(OPENAIR_HOME)/common/utils/Makefile.inc
TOP_DIR = $(OPENAIR1_DIR)
OPENAIR1_TOP = $(OPENAIR1_DIR)
OPENAIR2_TOP = $(OPENAIR2_DIR)
OPENAIR3 = $(OPENAIR3_DIR)
CFLAGS += -m32 -DPHYSIM -DNODE_RG -DUSER_MODE -DPC_TARGET -DPC_DSP -DNB_ANTENNAS_RX=2 -DNB_ANTENNAS_TXRX=2 -DNB_ANTENNAS_TX=2 -DPHY_CONTEXT=1 -DMALLOC_CHECK_=1 # -Wno-packed-bitfield-compat -O2
CFLAGS += -DNEW_FFT
LFLAGS = -lm -lblas -lxml2 -lrt
ifdef GPIB
LFLAGS += -lgpib
endif
CFLAGS += -DOPENAIR_LTE #-DOFDMA_ULSCH #-DIFFT_FPGA -DIFFT_FPGA_UE
#CFLAGS += -DTBS_FIX
CFLAGS += -DCELLULAR
ASN1_MSG_INC = $(OPENAIR2_DIR)/RRC/LITE/MESSAGES
ifdef EMOS
CFLAGS += -DEMOS
endif
ifdef DEBUG_PHY
CFLAGS += -DDEBUG_PHY
endif
ifdef MeNBMUE
CFLAGS += -DMeNBMUE
endif
ifdef MU_RECEIVER
CFLAGS += -DMU_RECEIVER
endif
ifdef ZBF_ENABLED
CFLAGS += -DNULL_SHAPE_BF_ENABLED
endif
ifdef RANDOM_BF
CFLAGS += -DRANDOM_BF
endif
ifdef PBS_SIM
CFLAGS += -DPBS_SIM
endif
ifdef XFORMS
CFLAGS += -DXFORMS
LFLAGS += -lforms
endif
ifdef PERFECT_CE
CFLAGS += -DPERFECT_CE
endif
ifdef BIT8_TX
CFLAGS += -DBIT8_TX
endif
CFLAGS += -DNO_RRM -DOPENAIR1 #-DOPENAIR2 #-DPHY_ABSTRACTION
CFLAGS += -I/usr/include/X11 -I/usr/X11R6/include
ifdef ENABLE_FXP
CFLAGS += -DENABLE_FXP # Fxp only
else
ifdef ENABLE_FLP
CFLAGS += -DENABLE_FLP # dual_stream_correlation(), channel_compensation_prec() and qam16_qam16_mu_mimo() are flp (independently)
else
ifdef ENABLE_FULL_FLP
CFLAGS += -DENABLE_FULL_FLP # Flp inside of rx_pdsch() (dlsch_detection_mrc(), dual_stream_correlation(), channel_compensation_prec(), qam16_qam16_mu_mimo() and dlsch_16qam_16qam_llr)
else
CFLAGS += -DENABLE_FXP # Fxp only by default
endif
endif
endif
ifdef COMPARE_FLP_AND_FXP
CFLAGS += -DCOMPARE_FLP_AND_FXP
endif
ifdef RTAI
CFLAGS += -DRTAI_ENABLED -D__IN_RTAI__ $(shell rtai-config --lxrt-cflags)
LFLAGS += $(shell rtai-config --lxrt-ldflags) -llxrt
endif
include $(TOP_DIR)/PHY/Makefile.inc
SCHED_OBJS = $(TOP_DIR)/SCHED/phy_procedures_lte_common.o #$(TOP_DIR)/SCHED/phy_procedures_lte_eNb.o $(TOP_DIR)/SCHED/phy_procedures_lte_ue.o
#include $(TOP_DIR)/SCHED/Makefile.inc
include $(TOP_DIR)/SIMULATION/Makefile.inc
include $(OPENAIR2_DIR)/LAYER2/Makefile.inc
include $(OPENAIR2_DIR)/UTIL/Makefile.inc
include $(OPENAIR2_DIR)/RRC/LITE/MESSAGES/Makefile.inc
CFLAGS += $(L2_incl) -I$(ASN1_MSG_INC) -I$(TOP_DIR) -I$(OPENAIR3) $(UTIL_incl)
# EXTRA_CFLAGS =
#STATS_OBJS += $(TOP_DIR)/ARCH/CBMIMO1/DEVICE_DRIVER/cbmimo1_proc.o
OBJ = $(PHY_OBJS) $(SIMULATION_OBJS) $(TOOLS_OBJS) $(SCHED_OBJS) $(LAYER2_OBJ) $(LOG_OBJS)
ifdef GPIB
OBJ += LTE_Configuration.o
endif
#OBJ2 = $(PHY_OBJS) $(SIMULATION_OBJS) $(TOOLS_OBJS)
ifdef XFORMS
OBJ += ../../USERSPACE_TOOLS/SCOPE/lte_scope.o
endif
OBJ += $(LOG_DIR)/vcd_signal_dumper.o
all: femtosim
#$(OBJ)
femtosim : femtoUtils.o femtosim.c
@echo "Compiling femtosim.c"
@$(CC) -o femtosim femtosim.c femtoUtils.o $(CFLAGS) $(OBJ) $(LFLAGS) #-static -L/usr/lib/libblas #-lm -lblas
femtoUtils.o: $(OBJ) femtoUtils.h femtoUtils.c
@echo "Compiling femtoUtils.c"
@$(CC) -c femtoUtils.c $(CFLAGS) $(OBJ) $(LFLAGS) -L/usr/lib/libblas #-lm -lblas -DPERFECT_CE
Tester: Tester.c
@$(CC) Tester.c -o Tester $(CFLAGS)
ComparaFile: ComparaFile.c
@$(CC) ComparaFile.c -o ComparaFile
clean :
rm -f $(OBJ)
rm -f *.o
cleanall : clean
rm -f femtosim
rm -f *.exe*
#showflags :
#@echo $(CFLAGS)
#@echo $(LFLAGS)
/*******************************************************************************
OpenAirInterface
Copyright(c) 1999 - 2014 Eurecom
OpenAirInterface is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
OpenAirInterface is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with OpenAirInterface.The full GNU General Public License is
included in this distribution in the file called "COPYING". If not,
see <http://www.gnu.org/licenses/>.
Contact Information
OpenAirInterface Admin: openair_admin@eurecom.fr
OpenAirInterface Tech : openair_tech@eurecom.fr
OpenAirInterface Dev : openair4g-devel@eurecom.fr
Address : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE
*******************************************************************************/
#include <stdlib.h>
#include <time.h>
#include <stdio.h>
void main( int argc, char **argv)
{
clock_t t_ini, t_fin;
time_t tiempo = time(0);
struct tm *tlocal ;
char output[128];
int i,j,h,x,z;
int interferencias[11];
interferencias[0]=-15;
interferencias[1]=-5;
interferencias[2]=-3;
interferencias[3]=-2;
interferencias[4]=-1;
interferencias[5]=0;
interferencias[6]=1;
interferencias[7]=2;
interferencias[8]=3;
interferencias[9]=5;
interferencias[10]=15;
FILE *output_fd ;
output_fd= fopen("TesterControl.txt","w");
double secs;
char **pruebas;
int n=(4*8*4*11)+1;
pruebas= (char **) malloc(n*sizeof(char *));
for(i=0; i<n; i++) {
pruebas[i]=(char*)malloc(200*sizeof(char));
}
pruebas[0]= "./femtosim -n1000 -s0 -S25 -b0";
i=1;
x=1;
for(j=0; j<8; j++) {
for(h=0; h<4; h++) {
for( z=0; z<11; z++) {
//printf(" %d %d %d %d %d %d\n",interferencias[z],x,j,h,i,n);
sprintf(pruebas[i],"./femtosim -n1000 -s0 -S25 -a -I1 -w%d -b100%d -p%d,%d",interferencias[z],x,j,h);
i++;
sprintf(pruebas[i],"./femtosim -n1000 -s0 -S25 -a -I1 -w%d -b200%d -p%d,%d -A1 -D",interferencias[z],x,j,h);
i++;
sprintf(pruebas[i],"./femtosim -n1000 -s0 -S25 -I1 -w%d -b300%d -p%d,%d",interferencias[z],x,j,h);
i++;
sprintf(pruebas[i],"./femtosim -n1000 -s0 -S25 -I1 -w%d -b400%d -p%d,%d -A1 -D",interferencias[z],x,j,h);
i++;
x++;
}
}
}
for(i=0; i<n; i++) {
printf("\n%s",pruebas[i]);
t_ini = clock();
fprintf(output_fd,"\n%s",pruebas[i]);
tiempo = time(0);
tlocal = localtime(&tiempo);
strftime(output,128,"%d/%m/%y %H:%M:%S",tlocal);
fprintf(output_fd,"\n\tInicio: \t%s",output);
system(pruebas[i]);
tiempo = time(0);
tlocal = localtime(&tiempo);
strftime(output,128,"%d/%m/%y %H:%M:%S",tlocal);
fprintf(output_fd,"\n\tFin: \t%s",output);
}
fclose(output_fd);
}
/*******************************************************************************
OpenAirInterface
Copyright(c) 1999 - 2014 Eurecom
OpenAirInterface is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
OpenAirInterface is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with OpenAirInterface.The full GNU General Public License is
included in this distribution in the file called "COPYING". If not,
see <http://www.gnu.org/licenses/>.
Contact Information
OpenAirInterface Admin: openair_admin@eurecom.fr
OpenAirInterface Tech : openair_tech@eurecom.fr
OpenAirInterface Dev : openair4g-devel@eurecom.fr
Address : Eurecom, Campus SophiaTech, 450 Route des Chappes, CS 50193 - 06904 Biot Sophia Antipolis cedex, FRANCE
*******************************************************************************/
#include <stdio.h>
#include <stdlib.h>
#include <getopt.h>
#include <string.h>
#include <math.h>
#include <sys/stat.h>
#include "femtoUtils.h"
#ifndef _FEMTO_UTILS
#include "PHY/types.h"
#include "SIMULATION/TOOLS/defs.h"
#include "UTIL/LOG/vcd_signal_dumper.h" //TVT:Navid
#endif
void _parseOptions(options_t *opts, int argc, char ** argv)
{
char c;
char aux[100];
//int prob_flag=0;
static struct option long_options[] = {
{"h", no_argument, 0, 'h'},
{"s", required_argument, 0, 's'},
{"S", required_argument, 0, 'S'},
{"T", required_argument, 0, 'T'},
{"n", required_argument, 0, 'n'},
{"x", no_argument, 0, 'x'},
{"d", no_argument, 0, 'd'},
{"t", required_argument, 0, 't'},
{"y", required_argument, 0, 'y'},
{"z", required_argument, 0, 'z'},
{"I", required_argument, 0, 'I'},
{"j", required_argument, 0, 'j'},
{"N", required_argument, 0, 'N'},
{"o", required_argument, 0, 'o'},
{"g", required_argument, 0, 'g'},
{"f", no_argument, 0, 'f'},
{"a", no_argument, 0, 'a'},
{"i", no_argument, 0, 'i'},
{"b", required_argument, 0, 'b'},
{"w", required_argument, 0, 'w'},
{"k", required_argument, 0, 'k'},
{"c", required_argument, 0, 'c'},
{"e", no_argument, 0, 'e'},
{"m", required_argument, 0, 'm'},
{"A", required_argument, 0, 'A'},
{"D", no_argument, 0, 'D'},
{"p", no_argument, 0, 'p'},
{"r", required_argument, 0, 'r'},
{"p", required_argument, 0, 'p'},
{"Q", required_argument, 0, 'Q'},
{"O", required_argument, 0, 'O'},
{0, 0, 0, 0}
};
int option_index = 0;
while ((c = getopt_long (argc, argv, "hs:S:T:n:xdt:y:z:I:j:N:o:g:faib:r:R:w:c:em:A:Dp:B:k:Q:O:",long_options, &option_index)) != -1) {
//printf("%c %s\n",c,optarg);
switch (c) {
case 'a':
opts->awgn_flag=1;
opts->channel_model=AWGN;
sprintf(opts->parameters,"%s -a",opts->parameters);
break;
case 'i':
opts->awgn_flagi=1;
opts->channel_modeli=AWGN;
sprintf(opts->parameters,"%s -i",opts->parameters);
break;
case 'B':
opts->N_RB_DL=atoi(optarg);
break;
case 'f':
opts->fixed_channel_flag=1;
sprintf(opts->parameters,"%s -f",opts->parameters);
break;
case 'D':
if(opts->n_adj_cells==0 ) {
msg("First specify the number of adjuncts cells to estimate channel using -A #!\n");
exit(-1);
}
opts->dual_stream_UE=1;
sprintf(opts->parameters,"%s -D",opts->parameters);
break;
case 'e':
opts->dci_flag=1;
sprintf(opts->parameters,"%s -d",opts->parameters);
break;