diff options
author | Vadim Yanitskiy <vyanitskiy@sysmocom.de> | 2021-10-03 13:55:12 +0600 |
---|---|---|
committer | Vadim Yanitskiy <vyanitskiy@sysmocom.de> | 2021-10-03 14:13:51 +0600 |
commit | 00b70983a5cdc380d34530bea864089cf01cd32b (patch) | |
tree | a11357d8ee307007209ff324b65d8d5757a12085 | |
parent | 2308b582503e45e4e9fdd0f82aa37d3dd9b93ff4 (diff) |
trx_toolkit: support setting artificial delay for TRXC
Change-Id: Idb1ef445bc14a6312f08a83ecacc3a938b0e1d70
Related: OS#5245
-rw-r--r-- | src/target/trx_toolkit/ctrl_if.py | 7 | ||||
-rwxr-xr-x | src/target/trx_toolkit/fake_trx.py | 9 |
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 |