Commit d1b3f983 authored by Florian Kaltenberger's avatar Florian Kaltenberger

removed FRAME_LENGTH_COMPLEX_SAMPLES from pcie_interface.h and adapted...

removed FRAME_LENGTH_COMPLEX_SAMPLES from pcie_interface.h and adapted functions that were still using it
added gain control (only used by emos-raw at the moment)
emos-raw now supports multiple cards and has a scope


git-svn-id: http://svn.eurecom.fr/openair4G/trunk@5122 818b1a75-f10b-46b9-bf7c-635c3b92a50f
parent 30b4c553
...@@ -37,9 +37,9 @@ ...@@ -37,9 +37,9 @@
#define MAX_FIRMWARE_BLOCK_SIZE_B 262144 #define MAX_FIRMWARE_BLOCK_SIZE_B 262144
#define MAX_PRINTK_BUFFER_B 1024 #define MAX_PRINTK_BUFFER_B 1024
#define FRAME_LENGTH_COMPLEX_SAMPLES 76800 // #define FRAME_LENGTH_COMPLEX_SAMPLES 76800
// Buffer size per channel: FRAME_LENGTH_COMPLEX_SAMPLES+2048 smp/frame: LTE frame+tail, *4 (7.68*4 MsmpPS), *4 Bytes/smp // Buffer size per channel: FRAME_LENGTH_COMPLEX_SAMPLES+2048 smp/frame: LTE frame+tail, *4 (7.68*4 MsmpPS), *4 Bytes/smp
#define ADAC_BUFFERSZ_PERCHAN_B ((FRAME_LENGTH_COMPLEX_SAMPLES+2048)*4*4) #define ADAC_BUFFERSZ_PERCHAN_B ((76800+2048)*4*4)
#define BIGSHM_SIZE_PAGES ((( MAX_FIRMWARE_BLOCK_SIZE_B + \ #define BIGSHM_SIZE_PAGES ((( MAX_FIRMWARE_BLOCK_SIZE_B + \
MAX_PRINTK_BUFFER_B + \ MAX_PRINTK_BUFFER_B + \
...@@ -305,6 +305,12 @@ typedef struct ...@@ -305,6 +305,12 @@ typedef struct
#define TEST_ADACLOOP_MASK (1<<4) #define TEST_ADACLOOP_MASK (1<<4)
#define TEST_ADACLOOP_EN (1<<4) #define TEST_ADACLOOP_EN (1<<4)
typedef enum {
BW5,
BW10,
BW20
} exmimo_bw_t;
typedef struct typedef struct
{ {
uint32_t multicard_syncmode; uint32_t multicard_syncmode;
......
#include "openair0_lib.h"
#include "gain_control.h"
//#define DEBUG_PHY
#define min(a,b) (((a)<(b))?(a):(b))
#define max(a,b) (((a)>(b))?(a):(b))
void gain_control_all (unsigned int rx_power_fil_dB, unsigned int card) {
unsigned int ant;
for (ant=0;ant<4;ant++)
gain_control (rx_power_fil_dB,ant,card);
}
void gain_control (unsigned int rx_power_fil_dB, unsigned int ant, unsigned int card) {
exmimo_config_t *p_exmimo_config = openair0_exmimo_pci[card].exmimo_config_ptr;
unsigned int rf_mode, rx_gain, LNA;
rx_gain = p_exmimo_config->rf.rx_gain[ant][0];
rf_mode = p_exmimo_config->rf.rf_mode[ant];
LNA = rf_mode & LNAGAINMASK;
// Gain control with hysterisis
if (rx_power_fil_dB < TARGET_RX_POWER_MIN) { //increase gain
switch (LNA) {
case LNAByp:
p_exmimo_config->rf.rf_mode[ant] = (rf_mode & (~LNAGAINMASK)) | LNAMed;
break;
case LNAMed:
p_exmimo_config->rf.rf_mode[ant] = (rf_mode & (~LNAGAINMASK)) | LNAMax;
break;
case LNAMax:
p_exmimo_config->rf.rx_gain[ant][0] = min(30,rx_gain+5);
break;
default:
break;
}
}
else if (rx_power_fil_dB > TARGET_RX_POWER_MAX) { //decrease gain
if (rx_gain==0) {
switch (LNA) {
case LNAMax:
p_exmimo_config->rf.rf_mode[ant] = (rf_mode & (~LNAGAINMASK)) | LNAMed;
break;
case LNAMed:
p_exmimo_config->rf.rf_mode[ant] = (rf_mode & (~LNAGAINMASK)) | LNAByp;
break;
case LNAByp:
break;
default:
break;
}
}
else {
p_exmimo_config->rf.rx_gain[ant][0] = max(0,(int)rx_gain-5);
}
}
#ifdef DEBUG_PHY
LOG_D(PHY,"AGC for chain %d: rx_power_fil_dB=%d, rx_gain=%d, LNA=%d (1=Byp,2=Med,3=Max)\n",ant,rx_power_fil_dB,p_exmimo_config->rf.rx_gain[ant][0],(p_exmimo_config->rf.rf_mode&LNAGAINMASK)>>14);
#endif //DEBUG_PHY
}
#define TARGET_RX_POWER 55 // Target digital power for the AGC
#define TARGET_RX_POWER_MAX 55 // Maximum digital power for AGC
#define TARGET_RX_POWER_MIN 50 // Minimum digital power for AGC
void gain_control_all (unsigned int rx_power_fil_dB, unsigned int card);
void gain_control (unsigned int rx_power_fil_dB, unsigned int ant, unsigned int card);
...@@ -19,6 +19,8 @@ extern "C" { ...@@ -19,6 +19,8 @@ extern "C" {
#define TRACE 1 #define TRACE 1
#define FRAME_LENGTH_COMPLEX_SAMPLES 76800
static bool any_bad_argument(const octave_value_list &args) static bool any_bad_argument(const octave_value_list &args)
{ {
octave_value v; octave_value v;
......
...@@ -24,7 +24,7 @@ static bool any_bad_argument(const octave_value_list &args) ...@@ -24,7 +24,7 @@ static bool any_bad_argument(const octave_value_list &args)
if (args.length()!=3) if (args.length()!=3)
{ {
error(FCNNAME); error(FCNNAME);
error("syntax: oarf_send_frame(card,sig,nbits)\n card (starting from 0), sig is a 2D or 4D vector (depending on no. of antennas), nbits is number of bits to quantize the signal to."); error("syntax: oarf_send_frame(card,sig,nbits)\n card (starting from 0), sig is a 2D array (size depends on no. of antennas and resampling factor), nbits is number of bits to quantize the signal to.");
return true; return true;
} }
...@@ -38,15 +38,16 @@ static bool any_bad_argument(const octave_value_list &args) ...@@ -38,15 +38,16 @@ static bool any_bad_argument(const octave_value_list &args)
v=args(1); v=args(1);
printf("signal: R %d, C %d\n",v.rows(),v.columns()); printf("signal: R %d, C %d\n",v.rows(),v.columns());
return false;
v=args(2); v=args(2);
if ((!v.is_real_scalar()) || (v.scalar_value()!=8) || (v.scalar_value()!=16)) if ((!v.is_real_scalar()) && (v.scalar_value()!=8) && (v.scalar_value()!=16))
{ {
error(FCNNAME); error(FCNNAME);
error("nbits must be either 8 (CBMIMO) or 16 (ExpressMIMO)bits."); error("nbits must be either 8 (CBMIMO) or 16 (ExpressMIMO)bits.");
return true; return true;
} }
return false;
} }
...@@ -60,9 +61,8 @@ DEFUN_DLD (oarf_send_frame, args, nargout,"Send frame") ...@@ -60,9 +61,8 @@ DEFUN_DLD (oarf_send_frame, args, nargout,"Send frame")
octave_value returnvalue; octave_value returnvalue;
int i, ret; int i, ret;
unsigned int length,aa,nbits, numcols; unsigned int length,aa,nbits,numcols;
unsigned int resampling_factor[4]; unsigned int resampling_factor[4];
int dummy=0;
ret = openair0_open(); ret = openair0_open();
if ( ret != 0 ) if ( ret != 0 )
...@@ -84,17 +84,19 @@ DEFUN_DLD (oarf_send_frame, args, nargout,"Send frame") ...@@ -84,17 +84,19 @@ DEFUN_DLD (oarf_send_frame, args, nargout,"Send frame")
numcols = args(1).columns(); numcols = args(1).columns();
printf("colums = %d, rows = %d\n\n\n", numcols, args(1).rows()); //printf("colums = %d, rows = %d\n\n\n", numcols, args(1).rows());
if ( numcols<1 || (numcols > openair0_num_antennas[card])) if ( numcols<1 || (numcols > openair0_num_antennas[card]))
{ {
error(FCNNAME); error(FCNNAME);
error("input array must be of column size 1..%d.", openair0_num_antennas[card]); error("input array must be of column size %d.", openair0_num_antennas[card]);
return octave_value_list(); return octave_value_list();
} }
for (i=0;i<4;i++) for (i=0;i<4;i++) {
resampling_factor[i] = (openair0_exmimo_pci[card].exmimo_config_ptr)->framing.resampling_factor[i]; resampling_factor[i] = (openair0_exmimo_pci[card].exmimo_config_ptr)->framing.resampling_factor[i];
printf("card %d, ant %d, resampling %d\n",card,i,resampling_factor[i]);
}
for (i=0;i<numcols;i++){ for (i=0;i<numcols;i++){
if (args(1).rows()<(76800*(1 << (2-resampling_factor[i])))) if (args(1).rows()<(76800*(1 << (2-resampling_factor[i]))))
...@@ -117,8 +119,7 @@ DEFUN_DLD (oarf_send_frame, args, nargout,"Send frame") ...@@ -117,8 +119,7 @@ DEFUN_DLD (oarf_send_frame, args, nargout,"Send frame")
{ {
for (i=0;i<(76800*(1 << (2-resampling_factor[aa])));i++) for (i=0;i<(76800*(1 << (2-resampling_factor[aa])));i++)
{ {
if (i<64) //if (i<64) printf("%d: %d,%d\n",i,(short)real(dx(i,aa)),(short)imag(dx(i,aa)));
printf("%d: %d,%d\n",i,(short)real(dx(i,aa)),(short)imag(dx(i,aa)));
((short*) openair0_exmimo_pci[card].dac_head[aa])[2*i] = (short)(real(dx(i,aa))); ((short*) openair0_exmimo_pci[card].dac_head[aa])[2*i] = (short)(real(dx(i,aa)));
((short*) openair0_exmimo_pci[card].dac_head[aa])[1+(2*i)] = (short)(imag(dx(i,aa))); ((short*) openair0_exmimo_pci[card].dac_head[aa])[1+(2*i)] = (short)(imag(dx(i,aa)));
} }
...@@ -127,8 +128,7 @@ DEFUN_DLD (oarf_send_frame, args, nargout,"Send frame") ...@@ -127,8 +128,7 @@ DEFUN_DLD (oarf_send_frame, args, nargout,"Send frame")
{ {
for (i=0;i<(76800*(1 << (2-resampling_factor[aa])));i++) for (i=0;i<(76800*(1 << (2-resampling_factor[aa])));i++)
{ {
if (i<64) //if (i<64) printf("%d: %d,%d\n",i,char(real(dx(i,aa))),char(imag(dx(i,aa))));
printf("%d: %d,%d\n",i,char(real(dx(i,aa))),char(imag(dx(i,aa))));
((char*) openair0_exmimo_pci[card].dac_head[aa])[2*i] = char(real(dx(i,aa))); ((char*) openair0_exmimo_pci[card].dac_head[aa])[2*i] = char(real(dx(i,aa)));
((char*) openair0_exmimo_pci[card].dac_head[aa])[1+(2*i)] = char(imag(dx(i,aa))); ((char*) openair0_exmimo_pci[card].dac_head[aa])[1+(2*i)] = char(imag(dx(i,aa)));
} }
......
synctest:lxrt+sem+mbx+msg+fifos:!./synctest ;sleep 1;popall:control_c sleeptest:lxrt+sem+mbx+msg+fifos:!./sleeptest;sleep 1;popall:control_c
synctest:lxrt+sem+mbx+msg+fifos:!./synctest -V;sleep 1;popall:control_c
condtest:lxrt+sem+mbx+msg+fifos:!sudo ./condtest;sleep 1;popall:control_c condtest:lxrt+sem+mbx+msg+fifos:!sudo ./condtest;sleep 1;popall:control_c
msg_test:lxrt+sem+mbx+msg+fifos:!sudo ./msg_test;sleep 1;popall:control_c msg_test:lxrt+sem+mbx+msg+fifos:!sudo ./msg_test;sleep 1;popall:control_c
msg_many:lxrt+sem+mbx+msg+fifos:!sudo ./msg_test;sleep 1;popall:control_c msg_many:lxrt+sem+mbx+msg+fifos:!sudo ./msg_test;sleep 1;popall:control_c
...@@ -11,6 +12,9 @@ UE:lxrt+sem+mbx+msg+fifos:!sudo ./synctest -U -d -T 108;sleep 1;popall:control_c ...@@ -11,6 +12,9 @@ UE:lxrt+sem+mbx+msg+fifos:!sudo ./synctest -U -d -T 108;sleep 1;popall:control_c
UE0:lxrt+sem+mbx+msg+fifos:!sudo ./lte-softmodem -U -d -C 1907600480 -V -K /tmp/itti_UE0.log;sleep 1;popall:control_c UE0:lxrt+sem+mbx+msg+fifos:!sudo ./lte-softmodem -U -d -C 1907600480 -V -K /tmp/itti_UE0.log;sleep 1;popall:control_c
#EXMIMO2 card 5 #EXMIMO2 card 5
#UE0:lxrt+sem+mbx+msg+fifos:!sudo ./lte-softmodem -U -d -C 1907597240 -V;sleep 1;popall:control_c #UE0:lxrt+sem+mbx+msg+fifos:!sudo ./lte-softmodem -U -d -C 1907597240 -V;sleep 1;popall:control_c
#EXMIMO2 card 24
#UE0_smbv:lxrt+sem+mbx+msg+fifos:!sudo ./lte-softmodem -U -d -C 1907595776 -V;sleep 1;popall:control_c
#EXMIMO2 card 5?
UE0_smbv:lxrt+sem+mbx+msg+fifos:!sudo ./lte-softmodem -U -d -C 1907598252 -V;sleep 1;popall:control_c UE0_smbv:lxrt+sem+mbx+msg+fifos:!sudo ./lte-softmodem -U -d -C 1907598252 -V;sleep 1;popall:control_c
UE850:lxrt+sem+mbx+msg+fifos:!sudo ./lte-softmodem -U -d -C 859498000 -F ex2_850;sleep 1;popall:control_c UE850:lxrt+sem+mbx+msg+fifos:!sudo ./lte-softmodem -U -d -C 859498000 -F ex2_850;sleep 1;popall:control_c
eNB850:lxrt+sem+mbx+msg+fifos:!sudo ./lte-softmodem -d -C 859500000 -F ex2_850;sleep 1;popall:control_c eNB850:lxrt+sem+mbx+msg+fifos:!sudo ./lte-softmodem -d -C 859500000 -F ex2_850;sleep 1;popall:control_c
...@@ -27,10 +31,11 @@ UE2prach:lxrt+sem+mbx+msg+fifos:!sudo ./lte-softmodem -U -d -C 1907600000 -F ue2 ...@@ -27,10 +31,11 @@ UE2prach:lxrt+sem+mbx+msg+fifos:!sudo ./lte-softmodem -U -d -C 1907600000 -F ue2
UE2noL2:lxrt+sem+mbx+msg+fifos:!sudo ./lte-softmodem -U -d -C 1907600000 -F ue2 --no-L2-connect;sleep 1;popall:control_c UE2noL2:lxrt+sem+mbx+msg+fifos:!sudo ./lte-softmodem -U -d -C 1907600000 -F ue2 --no-L2-connect;sleep 1;popall:control_c
#eNB0:lxrt+sem+mbx+msg+fifos:!sudo ./lte-softmodem -C 1907600000 -d -V;sleep 1;popall:control_c #eNB0:lxrt+sem+mbx+msg+fifos:!sudo ./lte-softmodem -C 1907600000 -d -V;sleep 1;popall:control_c
#eNB0:lxrt+sem+mbx+msg+fifos:!sudo ./lte-softmodem -C 1907598252 -d -V;sleep 1;popall:control_c #eNB0:lxrt+sem+mbx+msg+fifos:!sudo ./lte-softmodem -C 1907598252 -d -V;sleep 1;popall:control_c
eNB0:lxrt+sem+mbx+msg+fifos:!sudo ./lte-softmodem -d -O../../PROJECTS/GENERIC-LTE-EPC/CONF/enb.pft.sud.conf -V -K /tmp/itti_eNB0.log;sleep 1;popall:control_ceNB1:lxrt+sem+mbx+msg+fifos:!sudo ./lte-softmodem -C 1907600000 -F ex2_2 -d;sleep 1;popall:control_c eNB0:lxrt+sem+mbx+msg+fifos:!sudo ./lte-softmodem -d -O../../PROJECTS/GENERIC-LTE-EPC/CONF/enb.sfr.sud.conf -V -K /tmp/itti_eNB0.log;sleep 1;popall:control_c
eNB1:lxrt+sem+mbx+msg+fifos:!sudo ./lte-softmodem -C 1907600000 -F ex2_2 -d;sleep 1;popall:control_c
eNB2:lxrt+sem+mbx+msg+fifos:!sudo ./lte-softmodem -C 1907600000 -F ue2 -d;sleep 1;popall:control_c eNB2:lxrt+sem+mbx+msg+fifos:!sudo ./lte-softmodem -C 1907600000 -F ue2 -d;sleep 1;popall:control_c
dot11:lxrt+sem+mbx+msg+fifos:!sudo ./dot11 -C 1907600000 -d;sleep 1;popall:control_c dot11:lxrt+sem+mbx+msg+fifos:!sudo ./dot11 -C 1907600000 -d;sleep 1;popall:control_c
dot11_tx_test: lxrt+sem+mbx+msg+fifos:!sudo ./dot11 -C 1907600000 -d -t;sleep 1;popall:control_c dot11_tx_test: lxrt+sem+mbx+msg+fifos:!sudo ./dot11 -C 1907600000 -d -t;sleep 1;popall:control_c
eNB2_750:lxrt+sem+mbx+msg+fifos:!sudo ./synctest_eNB -C 746000000 -F enb1tx_750 -d;sleep 1;popall:control_c eNB2_750:lxrt+sem+mbx+msg+fifos:!sudo ./synctest_eNB -C 746000000 -F enb1tx_750 -d;sleep 1;popall:control_c
eNB2_1900:lxrt+sem+mbx+msg+fifos:!sudo ./synctest_eNB -C 19076000000 -F enb1tx_1900 -d;sleep 1;popall:control_c eNB2_1900:lxrt+sem+mbx+msg+fifos:!sudo ./synctest_eNB -C 19076000000 -F enb1tx_1900 -d;sleep 1;popall:control_c
emos-raw:lxrt+sem+mbx+msg+fifos:!sudo ./emos-raw -C 1907600000;sleep 1;popall:control_c emos-raw:lxrt+sem+mbx+msg+fifos:!sudo ./emos-raw -d -V;sleep 1;popall:control_c
...@@ -42,23 +42,13 @@ CFLAGS += -DCONFIG_RTAI_LXRT_INLINE #remend the RTAI warning ...@@ -42,23 +42,13 @@ CFLAGS += -DCONFIG_RTAI_LXRT_INLINE #remend the RTAI warning
RTAI_OBJ = sched_dlsch.o sched_ulsch.o sched_rx_pdsch.o rt_wrapper.o RTAI_OBJ = sched_dlsch.o sched_ulsch.o sched_rx_pdsch.o rt_wrapper.o
ifeq ($(USRP),1) ifeq ($(USRP),1)
RTAI_OBJ += lte-softmodem-usrp.o RTAI_OBJ += lte-softmodem-usrp.o
else
# RTAI_OBJ += lte-softmodem.o
# RTAI_OBJ += lte-enb.o
# RTAI_OBJ += lte-softmodem-enb.o
# RTAI_OBJ += lte-softmodem-ue.o
endif endif
else else #RTAI
CFLAGS += -DENABLE_USE_CPU_EXECUTION_TIME
OBJ += sched_dlsch.o sched_ulsch.o sched_rx_pdsch.o rt_wrapper.o OBJ += sched_dlsch.o sched_ulsch.o sched_rx_pdsch.o rt_wrapper.o
ifeq ($(USRP),1) ifeq ($(USRP),1)
OBJ += lte-softmodem-usrp.o OBJ += lte-softmodem-usrp.o
else
# OBJ += lte-softmodem.o
# OBJ += lte-enb.o
# OBJ += lte-softmodem-enb.o
# OBJ += lte-softmodem-ue.o
endif endif
CFLAGS += -DENABLE_USE_CPU_EXECUTION_TIME
endif endif
OBJ += $(OPENAIR1_DIR)/SIMULATION/TOOLS/taus.o $(OPENAIR_TARGETS)/SIMU/USER/init_lte.o #$(OPENAIR_TARGETS)/ARCH/EXMIMO/USERSPACE/LIB/openair0_lib.o OBJ += $(OPENAIR1_DIR)/SIMULATION/TOOLS/taus.o $(OPENAIR_TARGETS)/SIMU/USER/init_lte.o #$(OPENAIR_TARGETS)/ARCH/EXMIMO/USERSPACE/LIB/openair0_lib.o
...@@ -67,7 +57,7 @@ ifeq ($(USRP),1) ...@@ -67,7 +57,7 @@ ifeq ($(USRP),1)
include $(OPENAIR_TARGETS)/ARCH/USRP/USERSPACE/LIB/Makefile.inc include $(OPENAIR_TARGETS)/ARCH/USRP/USERSPACE/LIB/Makefile.inc
endif endif
OBJ += $(OPENAIR_TARGETS)/ARCH/EXMIMO/USERSPACE/LIB/openair0_lib.o OBJ += $(OPENAIR_TARGETS)/ARCH/EXMIMO/USERSPACE/LIB/openair0_lib.o $(OPENAIR_TARGETS)/ARCH/EXMIMO/USERSPACE/LIB/gain_control.o
CFLAGS += -DDRIVER2013 -I$(OPENAIR_TARGETS)/ARCH/EXMIMO/USERSPACE/LIB/ -I$(OPENAIR_TARGETS)/ARCH/EXMIMO/DEFS -DENABLE_VCD_FIFO CFLAGS += -DDRIVER2013 -I$(OPENAIR_TARGETS)/ARCH/EXMIMO/USERSPACE/LIB/ -I$(OPENAIR_TARGETS)/ARCH/EXMIMO/DEFS -DENABLE_VCD_FIFO
TOP_DIR = $(OPENAIR1_DIR) TOP_DIR = $(OPENAIR1_DIR)
...@@ -156,7 +146,7 @@ CFLAGS += -DHARD_RT ...@@ -156,7 +146,7 @@ CFLAGS += -DHARD_RT
endif endif
ifeq ($(EMOS),1) ifeq ($(EMOS),1)
CFLAGS += -DEMOS #-DEMOS_CHANNEL CFLAGS += -D_FILE_OFFSET_BITS=64 -DEMOS #-DEMOS_CHANNEL
LDFLAGS += -lgps LDFLAGS += -lgps
endif endif
...@@ -165,9 +155,9 @@ CFLAGS += -DNAS_NETLINK -DLINUX ...@@ -165,9 +155,9 @@ CFLAGS += -DNAS_NETLINK -DLINUX
OBJ += $(NAS_OBJS) OBJ += $(NAS_OBJS)
endif endif
RTAI_CFLAGS += $(shell rtai-config --lxrt-cflags) -DRTAI
LDFLAGS += -lpthread -lm -lforms -lconfig LDFLAGS += -lpthread -lm -lforms -lconfig
ifeq ($(RTAI),1) ifeq ($(RTAI),1)
RTAI_CFLAGS += $(shell rtai-config --lxrt-cflags) -DRTAI
LDFLAGS += $(shell rtai-config --lxrt-ldflags) LDFLAGS += $(shell rtai-config --lxrt-ldflags)
ifdef ENABLE_ITTI ifdef ENABLE_ITTI
LDFLAGS += -lrt LDFLAGS += -lrt
...@@ -221,6 +211,7 @@ $(OBJ) $(ASN1_MSG_OBJS1): %.o : %.c ...@@ -221,6 +211,7 @@ $(OBJ) $(ASN1_MSG_OBJS1): %.o : %.c
else else
$(OBJ) $(ASN1_MSG_OBJS1) lte-enb.o lte-softmodem.o: %.o : %.c $(OBJ) $(ASN1_MSG_OBJS1) lte-enb.o lte-softmodem.o: %.o : %.c
endif endif
@echo Compiling $< ... @echo Compiling $< ...
@$(CC) -c $(CFLAGS) $(EXTRA_CFLAGS) -o $@ $< @$(CC) -c $(CFLAGS) $(EXTRA_CFLAGS) -o $@ $<
@$(CC) -MM $(CFLAGS) $(EXTRA_CFLAGS) $< > $*.d @$(CC) -MM $(CFLAGS) $(EXTRA_CFLAGS) $< > $*.d
...@@ -230,6 +221,11 @@ endif ...@@ -230,6 +221,11 @@ endif
sed -e 's/^ *//' -e 's/$$/:/' >> $*.d sed -e 's/^ *//' -e 's/$$/:/' >> $*.d
@rm -f $*.d.tmp @rm -f $*.d.tmp
OBJ_EMOS = $(OPENAIR_TARGETS)/ARCH/EXMIMO/USERSPACE/LIB/openair0_lib.o $(OPENAIR_TARGETS)/ARCH/EXMIMO/USERSPACE/LIB/gain_control.o rt_wrapper.o $(OPENAIR2_DIR)/UTIL/LOG/log.o $(OPENAIR2_DIR)/UTIL/LOG/vcd_signal_dumper.o $(OPENAIR1_DIR)/PHY/TOOLS/signal_energy.o $(OPENAIR1_DIR)/PHY/TOOLS/dB_routines.o
ifeq ($(XFORMS),1)
OBJ_EMOS+=lte_scope.o
endif
$(USRP_OBJ):$(USRP_FILE_OBJ) $(USRP_OBJ):$(USRP_FILE_OBJ)
@echo Compiling openair_usrp.cpp @echo Compiling openair_usrp.cpp
@$(CXX) -c $(USRP_CFLAGS) $(USRP_FILE_OBJ) -o $(USRP_OBJ) @$(CXX) -c $(USRP_CFLAGS) $(USRP_FILE_OBJ) -o $(USRP_OBJ)
...@@ -238,7 +234,10 @@ condtest: condtest.c ...@@ -238,7 +234,10 @@ condtest: condtest.c
$(CC) $(CFLAGS) $(LDFLAGS) condtest.c -o condtest $(CC) $(CFLAGS) $(LDFLAGS) condtest.c -o condtest
synctest: $(OBJ_SYNC) $(SHARED_DEPENDENCIES) synctest.c synctest: $(OBJ_SYNC) $(SHARED_DEPENDENCIES) synctest.c
$(CC) $(CFLAGS) $(EXTRA_CFLAGS) $(RTAI_CFLAGS) $(OBJ_EMOS) -o synctest synctest.c $(LDFLAGS) $(LIBS) $(CC) $(CFLAGS) $(EXTRA_CFLAGS) $(RTAI_CFLAGS) $(OBJ_SYNC) -o synctest synctest.c $(LDFLAGS) $(LIBS)
sleeptest: rt_wrapper.o sleeptest.c
$(CC) $(CFLAGS) $(EXTRA_CFLAGS) $(RTAI_CFLAGS) rt_wrapper.o -o sleeptest sleeptest.c $(LDFLAGS)
lte-softmodem: $(OBJ) $(ASN1_MSG_OBJS1) $(RTAI_OBJ) lte-softmodem.o $(SHARED_DEPENDENCIES) lte-softmodem: $(OBJ) $(ASN1_MSG_OBJS1) $(RTAI_OBJ) lte-softmodem.o $(SHARED_DEPENDENCIES)
@echo Linking $@ @echo Linking $@
...@@ -252,7 +251,6 @@ lte-softmodem-usrp: $(OBJ) $(ASN1_MSG_OBJS1) $(RTAI_OBJ) $(USRP_OBJ) $(SHARED_DE ...@@ -252,7 +251,6 @@ lte-softmodem-usrp: $(OBJ) $(ASN1_MSG_OBJS1) $(RTAI_OBJ) $(USRP_OBJ) $(SHARED_DE
@echo Linking $@ @echo Linking $@
@$(CC) $(USRP_OBJ) $(CFLAGS) $(OBJ) $(RTAI_OBJ) $(ASN1_MSG_OBJS1) -o lte-softmodem-usrp $(LDFLAGS) $(LIBS) @$(CC) $(USRP_OBJ) $(CFLAGS) $(OBJ) $(RTAI_OBJ) $(ASN1_MSG_OBJS1) -o lte-softmodem-usrp $(LDFLAGS) $(LIBS)
OBJ_EMOS = $(OPENAIR_TARGETS)/ARCH/EXMIMO/USERSPACE/LIB/openair0_lib.o rt_wrapper.o $(OPENAIR2_DIR)/UTIL/LOG/log.o $(OPENAIR2_DIR)/UTIL/LOG/vcd_signal_dumper.o
emos-raw: $(SHARED_DEPENDENCIES) $(OBJ_EMOS) emos-raw.c emos-raw: $(SHARED_DEPENDENCIES) $(OBJ_EMOS) emos-raw.c
@$(CC) $(CFLAGS) $(EXTRA_CFLAGS) $(RTAI_CFLAGS) $(OBJ_EMOS) -o emos-raw emos-raw.c $(LDFLAGS) $(LIBS) @$(CC) $(CFLAGS) $(EXTRA_CFLAGS) $(RTAI_CFLAGS) $(OBJ_EMOS) -o emos-raw emos-raw.c $(LDFLAGS) $(LIBS)
...@@ -336,10 +334,11 @@ run_eNB2: ...@@ -336,10 +334,11 @@ run_eNB2:
rtai-load eNB2 --verbose rtai-load eNB2 --verbose
clean: common-clean clean: common-clean
@$(RM_F_V) $(OBJ) $(RTAI_OBJ) @$(RM_F_V) $(OBJ) $(RTAI_OBJ) $(OBJ_EMOS) $(OBJ_SYNC)
@$(RM_F_V) $(OBJ:.o=.d) $(RTAI_OBJ:.o=.d) @$(RM_F_V) $(OBJ:.o=.d) $(RTAI_OBJ:.o=.d) $(OBJ_EMOS:.o=.d) $(OBJ_SYNC:.o=.d)
@$(RM_F_V) $(OPENAIR2_DIR)/RRC/LITE/MESSAGES/asn1_msg.o $(OPENAIR2_DIR)/RRC/LITE/MESSAGES/asn1_msg.d @$(RM_F_V) $(OPENAIR2_DIR)/RRC/LITE/MESSAGES/asn1_msg.o $(OPENAIR2_DIR)/RRC/LITE/MESSAGES/asn1_msg.d
@$(RM_F_V) lte-enb.o lte-enb.d lte-softmodem.o lte-softmodem.d @$(RM_F_V) lte-enb.o lte-enb.d lte-softmodem.o lte-softmodem.d
@$(RM_F_V) lte-enb.o lte-softmodem.o
cleanasn1: cleanasn1:
rm -f $(ASN1_MSG_OBJS1) rm -f $(ASN1_MSG_OBJS1)
......
This diff is collapsed.
...@@ -21,27 +21,38 @@ create_form_lte_scope( void ) ...@@ -21,27 +21,38 @@ create_form_lte_scope( void )
obj = fl_add_box( FL_ROUNDED_BOX, 0, 0, 780, 723, "" ); obj = fl_add_box( FL_ROUNDED_BOX, 0, 0, 780, 723, "" );
fl_set_object_color( obj, FL_BLACK, FL_BLUE ); fl_set_object_color( obj, FL_BLACK, FL_BLUE );
fdui->channel_t_re = obj = fl_add_xyplot( FL_NORMAL_XYPLOT, 20, 20, 280, 100, "Received Signal (Time-Domain, dB)" ); fdui->channel_t_re[0] = obj = fl_add_xyplot( FL_NORMAL_XYPLOT, 20, 20, 280, 100, "Real(RX0)" );
fl_set_object_boxtype( obj, FL_EMBOSSED_BOX ); fl_set_object_boxtype( obj, FL_EMBOSSED_BOX );
fl_set_object_color( obj, FL_BLACK, FL_BLUE ); fl_set_object_color( obj, FL_BLACK, FL_BLUE );
fl_set_object_lcolor( obj, FL_WHITE ); fl_set_object_lcolor( obj, FL_WHITE );
fdui->scatter_plot = obj = fl_add_xyplot( FL_POINTS_XYPLOT, 600, 230, 160, 190, "PBCH Scatter Plot" ); fdui->channel_t_im[0] = obj = fl_add_xyplot( FL_NORMAL_XYPLOT, 310, 20, 280, 100, "Imag(RX0)" );
fl_set_object_boxtype( obj, FL_EMBOSSED_BOX ); fl_set_object_boxtype( obj, FL_EMBOSSED_BOX );
fl_set_object_color( obj, FL_BLACK, FL_GREEN ); fl_set_object_color( obj, FL_BLACK, FL_BLUE );
fl_set_object_lcolor( obj, FL_WHITE ); fl_set_object_lcolor( obj, FL_WHITE );
fdui->channel_f = obj = fl_add_xyplot( FL_IMPULSE_XYPLOT, 20, 140, 570, 90, "Frequency Domain Channel Estimate" ); fdui->channel_t_re[1] = obj = fl_add_xyplot( FL_NORMAL_XYPLOT, 20, 140, 280, 100, "Real(RX1)" );
fl_set_object_boxtype( obj, FL_EMBOSSED_BOX ); fl_set_object_boxtype( obj, FL_EMBOSSED_BOX );
fl_set_object_color( obj, FL_BLACK, FL_RED ); fl_set_object_color( obj, FL_BLACK, FL_RED );
fl_set_object_lcolor( obj, FL_WHITE ); fl_set_object_lcolor( obj, FL_WHITE );
fdui->channel_t_im = obj = fl_add_xyplot( FL_NORMAL_XYPLOT, 310, 20, 280, 100, "Time-Domain Channel Estimate" ); fdui->channel_t_im[1] = obj = fl_add_xyplot( FL_NORMAL_XYPLOT, 310, 140, 280, 100, "Imag(RX1)" );
fl_set_object_boxtype( obj, FL_EMBOSSED_BOX ); fl_set_object_boxtype( obj, FL_EMBOSSED_BOX );
fl_set_object_color( obj, FL_BLACK, FL_BLUE ); fl_set_object_color( obj, FL_BLACK, FL_RED );
fl_set_object_lcolor( obj, FL_WHITE );
fdui->channel_t_re[2] = obj = fl_add_xyplot( FL_NORMAL_XYPLOT, 20, 260, 280, 100, "Real(RX2)" );
fl_set_object_boxtype( obj, FL_EMBOSSED_BOX );
fl_set_object_color( obj, FL_BLACK, FL_GREEN );
fl_set_object_lcolor( obj, FL_WHITE ); fl_set_object_lcolor( obj, FL_WHITE );
fdui->decoder_input = obj = fl_add_xyplot( FL_POINTS_XYPLOT, 20, 250, 570, 130, "PBCH Decoder Input" ); fdui->channel_t_im[2] = obj = fl_add_xyplot( FL_NORMAL_XYPLOT, 310, 260, 280, 100, "Imag(RX2)" );
fl_set_object_boxtype( obj, FL_EMBOSSED_BOX );
fl_set_object_color( obj, FL_BLACK, FL_GREEN );
fl_set_object_lcolor( obj, FL_WHITE );
/*
fdui->scatter_plot = obj = fl_add_xyplot( FL_POINTS_XYPLOT, 600, 230, 160, 190, "PBCH Scatter Plot" );
fl_set_object_boxtype( obj, FL_EMBOSSED_BOX ); fl_set_object_boxtype( obj, FL_EMBOSSED_BOX );
fl_set_object_color( obj, FL_BLACK, FL_GREEN ); fl_set_object_color( obj, FL_BLACK, FL_GREEN );
fl_set_object_lcolor( obj, FL_WHITE ); fl_set_object_lcolor( obj, FL_WHITE );
...@@ -61,15 +72,11 @@ create_form_lte_scope( void ) ...@@ -61,15 +72,11 @@ create_form_lte_scope( void )
fl_set_object_color( obj, FL_RED, FL_RED); fl_set_object_color( obj, FL_RED, FL_RED);
fl_set_object_callback( obj, ia_receiver_on_off, 0 ); fl_set_object_callback( obj, ia_receiver_on_off, 0 );
fdui->demod_out = obj = fl_add_xyplot( FL_POINTS_XYPLOT, 20, 400, 570, 140, "PDSCH/PUSCH Decoder Input" );
fl_set_object_boxtype( obj, FL_EMBOSSED_BOX );
fl_set_object_color( obj, FL_BLACK, FL_YELLOW );
fl_set_object_lcolor( obj, FL_WHITE );
fdui->tput = obj = fl_add_xyplot( FL_NORMAL_XYPLOT, 20, 560, 570, 140, "Throughput [kbits/s]" ); fdui->tput = obj = fl_add_xyplot( FL_NORMAL_XYPLOT, 20, 560, 570, 140, "Throughput [kbits/s]" );
fl_set_object_boxtype( obj, FL_EMBOSSED_BOX ); fl_set_object_boxtype( obj, FL_EMBOSSED_BOX );
fl_set_object_color( obj, FL_BLACK, FL_WHITE ); fl_set_object_color( obj, FL_BLACK, FL_WHITE );
fl_set_object_lcolor( obj, FL_WHITE ); fl_set_object_lcolor( obj, FL_WHITE );
*/
fl_end_form( ); fl_end_form( );
......
...@@ -17,16 +17,18 @@ typedef struct { ...@@ -17,16 +17,18 @@ typedef struct {
void * vdata; void * vdata;
char * cdata; char * cdata;
long ldata; long ldata;
FL_OBJECT * channel_t_re; FL_OBJECT * channel_t_re[4];
FL_OBJECT * channel_t_im[4];
/*
FL_OBJECT * scatter_plot; FL_OBJECT * scatter_plot;
FL_OBJECT * channel_f; FL_OBJECT * channel_f;
FL_OBJECT * channel_t_im;
FL_OBJECT * decoder_input; FL_OBJECT * decoder_input;
FL_OBJECT * scatter_plot2; FL_OBJECT * scatter_plot2;
FL_OBJECT * scatter_plot1; FL_OBJECT * scatter_plot1;
FL_OBJECT * ia_receiver_button; FL_OBJECT * ia_receiver_button;
FL_OBJECT * demod_out; FL_OBJECT * demod_out;
FL_OBJECT * tput; FL_OBJECT * tput;
*/
} FD_lte_scope; } FD_lte_scope;
extern FD_lte_scope * create_form_lte_scope( void ); extern FD_lte_scope * create_form_lte_scope( void );
......
...@@ -42,6 +42,7 @@ ...@@ -42,6 +42,7 @@
#include <time.h> #include <time.h>
#include <errno.h> #include <errno.h>
#include <stdio.h> #include <stdio.h>
#include <pthread.h>
#define RTIME long long int #define RTIME long long int
......
...@@ -262,7 +262,7 @@ void *scope_thread(void *arg) { ...@@ -262,7 +262,7 @@ void *scope_thread(void *arg) {
} }
//printf("doing forms\n"); //printf("doing forms\n");
sleep(0.1); usleep(100000);
} }
//fclose (UE_stats); //fclose (UE_stats);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment