Commit fa0b8668 authored by Cedric Roux's avatar Cedric Roux

bugfix: workaround a problem with timestamp and LMSSDR.

We have a strange problem with the timestamp of the very
first packets received from the LimeSDR that leads to
a complete failure of the eNB.

A simple workaround is to discard the first RX packet
just after a "start" of the device.

We also change the value of "tx_sample_advance" to a more
reasonable value. The problem of timestamp was "solved"
differently in the past and at the time we needed to put
a much higher value.

This may have to be refined at some point.
parent a77082c1
......@@ -45,6 +45,14 @@ lms_device_t* lms_device;
lms_stream_t rx_stream;
lms_stream_t tx_stream;
/* We have a strange behavior when we just start reading
* from the device (inconsistent values of the timestamp).
* A quick solution is to discard the very first read packet
* after a "start".
* The following global variable "first_rx" serves that purpose.
*/
static int first_rx = 0;
#define RXDCLENGTH 4096
#define NUMBUFF 32
......@@ -94,6 +102,10 @@ int trx_lms_read(openair0_device *device, openair0_timestamp *ptimestamp, void *
meta.flushPartialPacket = false;
int ret;
if (first_rx == 1) {
first_rx = 0;
ret = LMS_RecvStream(&rx_stream,buff[0],nsamps,&meta,50);
}
ret = LMS_RecvStream(&rx_stream,buff[0],nsamps,&meta,50);
*ptimestamp = meta.timestamp;
return ret;
......@@ -223,6 +235,8 @@ int trx_lms_start(openair0_device *device){
}
first_rx = 1;
rx_stream.channel = 0;
rx_stream.fifoSize = 256*1024;
rx_stream.throughputVsLatency = 0.1;
......@@ -355,7 +369,7 @@ int device_init(openair0_device *device, openair0_config_t *openair0_cfg){
break;
case 15360000:
openair0_cfg[0].samples_per_packet = 2048;
openair0_cfg[0].tx_sample_advance = 450;
openair0_cfg[0].tx_sample_advance = 50; /* TODO: to be refined */
openair0_cfg[0].tx_bw = 15.36e6;
openair0_cfg[0].rx_bw = 15.36e6;
break;
......
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