From 43f3678b402366e3c4e0b41f2d1356e03cc33c6c Mon Sep 17 00:00:00 2001 From: Zydrunas Tamosevicius Date: Tue, 12 Jun 2018 00:27:09 +0200 Subject: [PATCH] lms: Use same timestamp offset like when using LimeSDR via UHD The tx timestamp offset was not set. We set it to the same value as it was in UHD interface for LimeSDR Change-Id: I78bc40cd575097f71a5f82b63467fa81c3f8d837 --- Transceiver52M/device/lms/LMSDevice.cpp | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/Transceiver52M/device/lms/LMSDevice.cpp b/Transceiver52M/device/lms/LMSDevice.cpp index d9b5ba60..3e3c5f66 100644 --- a/Transceiver52M/device/lms/LMSDevice.cpp +++ b/Transceiver52M/device/lms/LMSDevice.cpp @@ -139,8 +139,7 @@ int LMSDevice::open(const std::string &args, int ref, bool swap_channels) LOG(DEBUG) << "Sample Rate: Host=" << sr_host << " RF=" << sr_rf; /* FIXME: make this device/model dependent, like UHDDevice:dev_param_map! */ - //ts_offset = static_cast(8.9e-5 * GSMRATE); - ts_offset = 0; + ts_offset = static_cast(8.9e-5 * GSMRATE * sps); /* time * sample_rate */ switch (ref) { case REF_INTERNAL: @@ -489,8 +488,6 @@ int LMSDevice::readSamples(std::vector < short *>&bufs, int len, bool * overrun, lms_stream_meta_t rx_metadata = {}; rx_metadata.flushPartialPacket = false; rx_metadata.waitForTimestamp = false; - /* Shift read time with respect to transmit clock */ - timestamp += ts_offset; rx_metadata.timestamp = 0; if (bufs.size() != chans) { @@ -539,7 +536,7 @@ int LMSDevice::writeSamples(std::vector < short *>&bufs, int len, lms_stream_meta_t tx_metadata = {}; tx_metadata.flushPartialPacket = false; tx_metadata.waitForTimestamp = true; - tx_metadata.timestamp = timestamp; + tx_metadata.timestamp = timestamp - ts_offset; /* Shift Tx time by offset */ if (isControl) { LOG(ERR) << "Control packets not supported";