aboutsummaryrefslogtreecommitdiffstats
path: root/python
diff options
context:
space:
mode:
authorVadim Yanitskiy <axilirator@gmail.com>2017-12-05 01:01:43 +0700
committerVadim Yanitskiy <axilirator@gmail.com>2017-12-09 02:40:32 +0700
commit34266e785dc7c203c978dc5c6910dd2db4e6b3b8 (patch)
tree6d47572a7c530bd43fa3dd9ebe8b95f535f87f88 /python
parent9dded9b9f6e3a8a0412c2ab8f5b3e49b376d1b04 (diff)
trx/radio_if.py: handle Timing Advance from CTRL
Diffstat (limited to 'python')
-rw-r--r--python/trx/ctrl_if_bb.py14
-rw-r--r--python/trx/radio_if.py5
2 files changed, 19 insertions, 0 deletions
diff --git a/python/trx/ctrl_if_bb.py b/python/trx/ctrl_if_bb.py
index 26ae49a..5874e59 100644
--- a/python/trx/ctrl_if_bb.py
+++ b/python/trx/ctrl_if_bb.py
@@ -62,6 +62,7 @@ class ctrl_if_bb(ctrl_if):
if self.tb.trx_started:
print("[i] Stopping transceiver...")
self.tb.trx_started = False
+ self.tb.set_ta(0)
self.tb.stop()
self.tb.wait()
@@ -144,6 +145,19 @@ class ctrl_if_bb(ctrl_if):
return (0, [meas_dbm])
+ # Timing Advance control
+ elif self.verify_cmd(request, "SETTA", 1):
+ print("[i] Recv SETTA cmd")
+
+ # Check TA range
+ ta = int(request[1])
+ if ta < 0 or ta > 63:
+ print("[!] TA value must be in range: 0..63")
+ return -1
+
+ self.tb.set_ta(ta)
+ return 0
+
# Misc
elif self.verify_cmd(request, "ECHO", 0):
print("[i] Recv ECHO cmd")
diff --git a/python/trx/radio_if.py b/python/trx/radio_if.py
index e0678ab..82491a8 100644
--- a/python/trx/radio_if.py
+++ b/python/trx/radio_if.py
@@ -281,3 +281,8 @@ class radio_if(gr.top_block):
def set_tx_gain(self, gain):
self.phy_sink.set_gain(gain, 0)
self.tx_gain = gain
+
+ def set_ta(self, ta):
+ print("[i] Setting TA value %d" % ta)
+ advance_time_sec = ta * self.GSM_SYM_PERIOD_uS * 1e-6
+ self.tx_time_setter.set_timing_advance(advance_time_sec)