Review at  https://gerrit.osmocom.org/6765

fake_trx: add options to specify fn, tn and pwr

Change-Id: Ifd4f4864707596a69fece11218a4800b98551c31
---
M src/target/fake_trx/burst_gen.py
1 file changed, 31 insertions(+), 5 deletions(-)


  git pull ssh://gerrit.osmocom.org:29418/osmocom-bb refs/changes/65/6765/1

diff --git a/src/target/fake_trx/burst_gen.py b/src/target/fake_trx/burst_gen.py
index 195158a..fb50ea3 100755
--- a/src/target/fake_trx/burst_gen.py
+++ b/src/target/fake_trx/burst_gen.py
@@ -126,6 +126,9 @@
 
        burst_type = None
        burst_count = 1
+       pwr = None
+       fn = None
+       tn = None
 
        def __init__(self):
                self.print_copyright()
@@ -149,6 +152,12 @@
                # Init random burst generator
                self.gen = RandBurstGen()
 
+               # Generate a random frame number or use provided one
+               if self.fn is None:
+                       fn = random.randint(0, DATAInterface.GSM_HYPERFRAME)
+               else:
+                       fn = self.fn
+
                # Send as much bursts as required
                for i in range(self.burst_count):
                        # Generate a random burst
@@ -165,15 +174,20 @@
                                self.shutdown()
                                sys.exit(2)
 
-                       print("[i] Sending %d/%d %s burst to %s..."
+                       print("[i] Sending %d/%d %s burst (fn=%u) to %s..."
                                % (i + 1, self.burst_count, self.burst_type,
-                                       self.conn_mode))
+                                       fn, self.conn_mode))
 
                        # Send to TRX or L1
                        if self.conn_mode == "TRX":
-                               self.data_if.send_trx_msg(buf)
+                               self.data_if.send_trx_msg(buf,
+                                       self.tn, fn, self.pwr)
                        elif self.conn_mode == "L1":
-                               self.data_if.send_l1_msg(buf)
+                               self.data_if.send_l1_msg(buf,
+                                       self.tn, fn, self.pwr)
+
+                       # Increase frame number (for count > 1)
+                       fn = (fn + 1) % DATAInterface.GSM_HYPERFRAME
 
                self.shutdown()
 
@@ -193,6 +207,9 @@
                s += " Burst generation\n" \
                         "  -b --burst-type     Random burst type (NB, FB, SB, 
AB)\n"    \
                         "  -c --burst-count    How much bursts to send 
(default 1)\n"   \
+                        "  -f --frame-number   Set frame number (default 
random)\n"     \
+                        "  -t --timeslot       Set timeslot index (default 
random)\n"   \
+                        "  -l --power-level    Set transmit level (default 
random)\n"   \
 
                print(s % (self.remote_addr, self.base_port))
 
@@ -202,7 +219,7 @@
        def parse_argv(self):
                try:
                        opts, args = getopt.getopt(sys.argv[1:],
-                               "m:r:p:b:c:h",
+                               "m:r:p:b:c:f:t:l:h",
                                [
                                        "help",
                                        "conn-mode=",
@@ -210,6 +227,9 @@
                                        "base-port=",
                                        "burst-type=",
                                        "burst-count=",
+                                       "frame-number=",
+                                       "timeslot=",
+                                       "power-level=",
                                ])
                except getopt.GetoptError as err:
                        self.print_help("[!] " + str(err))
@@ -231,6 +251,12 @@
                                self.burst_type = v
                        elif o in ("-c", "--burst-count"):
                                self.burst_count = int(v)
+                       elif o in ("-f", "--frame-number"):
+                               self.fn = int(v)
+                       elif o in ("-t", "--timeslot"):
+                               self.tn = int(v)
+                       elif o in ("-l", "--power-level"):
+                               self.pwr = abs(int(v))
 
        def shutdown(self):
                self.data_if.shutdown()

-- 
To view, visit https://gerrit.osmocom.org/6765
To unsubscribe, visit https://gerrit.osmocom.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ifd4f4864707596a69fece11218a4800b98551c31
Gerrit-PatchSet: 1
Gerrit-Project: osmocom-bb
Gerrit-Branch: master
Gerrit-Owner: Harald Welte <lafo...@gnumonks.org>

Reply via email to