trx_toolkit: support setting artificial delay for TRXC

Change-Id: Idb1ef445bc14a6312f08a83ecacc3a938b0e1d70
Related: OS#5245
This commit is contained in:
Vadim Yanitskiy 2021-10-03 13:55:12 +06:00
parent 2308b58250
commit 00b70983a5
2 changed files with 16 additions and 0 deletions

View File

@ -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)

View File

@ -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