summaryrefslogtreecommitdiffstats
path: root/src/target/trx_toolkit
diff options
context:
space:
mode:
authorVadim Yanitskiy <axilirator@gmail.com>2019-11-17 20:37:05 +0700
committerlaforge <laforge@osmocom.org>2019-11-20 15:05:57 +0000
commitb1ae186c55109dd324d8186bcb493b2fac657619 (patch)
treeb216c4a7eb3bd7522ca3133ffb11eaa2b6790876 /src/target/trx_toolkit
parent65dbd471fcc46510443494d537f008de909f1a14 (diff)
trx_toolkit/fake_trx.py: refactor L12TRX -> TRX2L1 burst transformation
The burst transformation in BurstForwarder.forward_msg() used to be done only once, so then the resulting message was distributed over the list of connected (and active) transceivers. This approach limits the path loss simulation capabilities, because a reference to the same message is passed to FakeTRX.send_data_msg(). If one transceiver changes (or removes) the burst bits, the other transceivers would not receive the original message. Let's do the transformation individually for each transceiver, so the original message will always remain unchanged. Change-Id: Ia016a3a9bb6e9f17182a7168aa5a501ae9b9978b
Diffstat (limited to 'src/target/trx_toolkit')
-rw-r--r--src/target/trx_toolkit/burst_fwd.py12
-rwxr-xr-xsrc/target/trx_toolkit/fake_trx.py5
2 files changed, 5 insertions, 12 deletions
diff --git a/src/target/trx_toolkit/burst_fwd.py b/src/target/trx_toolkit/burst_fwd.py
index b418aef1..fd6013bd 100644
--- a/src/target/trx_toolkit/burst_fwd.py
+++ b/src/target/trx_toolkit/burst_fwd.py
@@ -65,12 +65,6 @@ class BurstForwarder:
self.trx_list.remove(trx)
def forward_msg(self, src_trx, rx_msg):
- # Transform from L12TRX to TRX2L1
- tx_msg = rx_msg.gen_trx2l1()
- if tx_msg is None:
- log.error("Forwarding failed, could not transform "
- "message (%s) => dropping..." % rx_msg.desc_hdr())
-
# Iterate over all known transceivers
for trx in self.trx_list:
if trx == src_trx:
@@ -81,7 +75,9 @@ class BurstForwarder:
continue
if trx.rx_freq != src_trx.tx_freq:
continue
- if tx_msg.tn not in trx.ts_list:
+ if rx_msg.tn not in trx.ts_list:
continue
- trx.send_data_msg(src_trx, rx_msg, tx_msg)
+ # Transform from L12TRX to TRX2L1 and forward
+ tx_msg = rx_msg.gen_trx2l1(ver = trx.data_if._hdr_ver)
+ trx.handle_data_msg(src_trx, rx_msg, tx_msg)
diff --git a/src/target/trx_toolkit/fake_trx.py b/src/target/trx_toolkit/fake_trx.py
index f226f032..f0dc5a52 100755
--- a/src/target/trx_toolkit/fake_trx.py
+++ b/src/target/trx_toolkit/fake_trx.py
@@ -199,10 +199,7 @@ class FakeTRX(Transceiver):
# Takes (partially initialized) TRX2L1 message,
# simulates RF path parameters (such as RSSI),
# and sends towards the L1
- def send_data_msg(self, src_trx, src_msg, msg):
- # Override header version
- msg.ver = self.data_if._hdr_ver
-
+ def handle_data_msg(self, src_trx, src_msg, msg):
# Complete message header
msg.toa256 = self.toa256
msg.rssi = self.rssi