summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVadim Yanitskiy <vyanitskiy@sysmocom.de>2021-10-03 13:55:12 +0600
committerVadim Yanitskiy <vyanitskiy@sysmocom.de>2021-10-03 14:13:51 +0600
commit00b70983a5cdc380d34530bea864089cf01cd32b (patch)
treea11357d8ee307007209ff324b65d8d5757a12085
parent2308b582503e45e4e9fdd0f82aa37d3dd9b93ff4 (diff)
trx_toolkit: support setting artificial delay for TRXC
-rw-r--r--src/target/trx_toolkit/ctrl_if.py7
-rwxr-xr-xsrc/target/trx_toolkit/fake_trx.py9
2 files changed, 16 insertions, 0 deletions
diff --git a/src/target/trx_toolkit/ctrl_if.py b/src/target/trx_toolkit/ctrl_if.py
index 4f440807..aaf1111f 100644
--- a/src/target/trx_toolkit/ctrl_if.py
+++ b/src/target/trx_toolkit/ctrl_if.py
@@ -23,6 +23,7 @@
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
import logging as log
+import time
from udp_link import UDPLink
@@ -31,6 +32,9 @@ class CTRLInterface(UDPLink):
UDPLink.__init__(self, *udp_link_args)
log.debug("Init TRXC interface (%s)" % self.desc_link())
+ # Do not delay RSP messages by default
+ self.rsp_delay_ms = 0
+
def handle_rx(self):
# Read data from socket
data, remote = self.sock.recvfrom(128)
@@ -86,6 +90,9 @@ class CTRLInterface(UDPLink):
# Add the response signature, and join back to string
response = "RSP " + " ".join(request) + "\0"
+ # If configured, delay sending the RSP message
+ if self.rsp_delay_ms > 0:
+ time.sleep(self.rsp_delay_ms / 1000.0)
# Now we have something like "RSP TXTUNE 0 941600"
self.sendto(response, remote)
diff --git a/src/target/trx_toolkit/fake_trx.py b/src/target/trx_toolkit/fake_trx.py
index d519a9ae..93ae64ec 100755
--- a/src/target/trx_toolkit/fake_trx.py
+++ b/src/target/trx_toolkit/fake_trx.py
@@ -374,6 +374,15 @@ class FakeTRX(Transceiver):
self.burst_drop_period = period
return 0
+ # Artificial delay for the TRXC interface
+ # Syntax: CMD FAKE_TRXC_DELAY <DELAY_MS>
+ elif self.ctrl_if.verify_cmd(request, "FAKE_TRXC_DELAY", 1):
+ log.debug("(%s) Recv FAKE_TRXC_DELAY cmd", self)
+
+ self.ctrl_if.rsp_delay_ms = int(request[1])
+ log.info("(%s) Artificial TRXC delay set to %d",
+ self, self.ctrl_if.rsp_delay_ms)
+
# Unhandled command
return None