<p>Vadim Yanitskiy has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.osmocom.org/12631">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">python/trx: get rid of FakePM class<br><br>Change-Id: Ie96eb9735ecaa3329135c7be976ffd277a2f64f4<br>---<br>M apps/grgsm_trx<br>M python/trx/CMakeLists.txt<br>M python/trx/__init__.py<br>M python/trx/ctrl_if_bb.py<br>D python/trx/fake_pm.py<br>M python/trx/radio_if.py<br>6 files changed, 8 insertions(+), 69 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://gerrit.osmocom.org:29418/gr-gsm refs/changes/31/12631/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/apps/grgsm_trx b/apps/grgsm_trx</span><br><span>index 7eeea50..c3e83d9 100755</span><br><span>--- a/apps/grgsm_trx</span><br><span>+++ b/apps/grgsm_trx</span><br><span>@@ -31,7 +31,6 @@</span><br><span> </span><br><span> from grgsm.trx import CTRLInterfaceBB</span><br><span> from grgsm.trx import RadioInterface</span><br><span style="color: hsl(0, 100%, 40%);">-from grgsm.trx import FakePM</span><br><span> </span><br><span> COPYRIGHT = \</span><br><span>       "Copyright (C) 2016-2018 by Vadim Yanitskiy <axilirator@gmail.com>\n" \</span><br><span>@@ -65,16 +64,11 @@</span><br><span>                        self.phy_freq_offset, self.bind_addr,</span><br><span>                        self.remote_addr, self.base_port)</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-           # Power measurement emulation</span><br><span style="color: hsl(0, 100%, 40%);">-           # Noise: -120 .. -105</span><br><span style="color: hsl(0, 100%, 40%);">-           # BTS: -75 .. -50</span><br><span style="color: hsl(0, 100%, 40%);">-               self.pm = FakePM(-120, -105, -75, -50)</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span>               # Init TRX CTRL interface</span><br><span>            self.server = CTRLInterfaceBB(</span><br><span>                       self.remote_addr, self.base_port + 101,</span><br><span>                      self.bind_addr, self.base_port + 1,</span><br><span style="color: hsl(0, 100%, 40%);">-                     self.radio, self.pm)</span><br><span style="color: hsl(120, 100%, 40%);">+                  self.radio)</span><br><span> </span><br><span>              print("[i] Init complete")</span><br><span> </span><br><span>diff --git a/python/trx/CMakeLists.txt b/python/trx/CMakeLists.txt</span><br><span>index ffe5234..4333407 100644</span><br><span>--- a/python/trx/CMakeLists.txt</span><br><span>+++ b/python/trx/CMakeLists.txt</span><br><span>@@ -23,7 +23,6 @@</span><br><span>     udp_link.py</span><br><span>     ctrl_if.py</span><br><span>     ctrl_if_bb.py</span><br><span style="color: hsl(0, 100%, 40%);">-    fake_pm.py</span><br><span>     radio_if.py</span><br><span>     radio_if_grc.py</span><br><span>     dict_toggle_sign.py</span><br><span>diff --git a/python/trx/__init__.py b/python/trx/__init__.py</span><br><span>index c512262..7b20699 100644</span><br><span>--- a/python/trx/__init__.py</span><br><span>+++ b/python/trx/__init__.py</span><br><span>@@ -23,7 +23,6 @@</span><br><span> from udp_link import UDPLink</span><br><span> from ctrl_if import CTRLInterface</span><br><span> from ctrl_if_bb import CTRLInterfaceBB</span><br><span style="color: hsl(0, 100%, 40%);">-from fake_pm import FakePM</span><br><span> from radio_if_grc import RadioInterfaceGRC</span><br><span> from radio_if import RadioInterface</span><br><span> </span><br><span>diff --git a/python/trx/ctrl_if_bb.py b/python/trx/ctrl_if_bb.py</span><br><span>index 781c35c..f9840d4 100644</span><br><span>--- a/python/trx/ctrl_if_bb.py</span><br><span>+++ b/python/trx/ctrl_if_bb.py</span><br><span>@@ -27,7 +27,7 @@</span><br><span> from ctrl_if import CTRLInterface</span><br><span> </span><br><span> class CTRLInterfaceBB(CTRLInterface):</span><br><span style="color: hsl(0, 100%, 40%);">-        def __init__(self, remote_addr, remote_port, bind_addr, bind_port, tb, pm):</span><br><span style="color: hsl(120, 100%, 40%);">+   def __init__(self, remote_addr, remote_port, bind_addr, bind_port, tb):</span><br><span>              CTRLInterface.__init__(self, remote_addr, remote_port,</span><br><span>                       bind_addr, bind_port)</span><br><span> </span><br><span>@@ -35,8 +35,6 @@</span><br><span> </span><br><span>            # Set link to the follow graph (top block)</span><br><span>           self.tb = tb</span><br><span style="color: hsl(0, 100%, 40%);">-            # Power measurement</span><br><span style="color: hsl(0, 100%, 40%);">-             self.pm = pm</span><br><span> </span><br><span>     def parse_cmd(self, request):</span><br><span>                # Power control</span><br><span>@@ -137,10 +135,7 @@</span><br><span> </span><br><span>                   # TODO: check freq range</span><br><span>                     meas_freq = int(request[1]) * 1000</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-                      # HACK: send fake low power values</span><br><span style="color: hsl(0, 100%, 40%);">-                      # until actual power measurement is implemented</span><br><span style="color: hsl(0, 100%, 40%);">-                 meas_dbm = str(self.pm.measure(meas_freq))</span><br><span style="color: hsl(120, 100%, 40%);">+                    meas_dbm = str(self.tb.measure(meas_freq))</span><br><span> </span><br><span>                       return (0, [meas_dbm])</span><br><span> </span><br><span>diff --git a/python/trx/fake_pm.py b/python/trx/fake_pm.py</span><br><span>deleted file mode 100644</span><br><span>index 1d76916..0000000</span><br><span>--- a/python/trx/fake_pm.py</span><br><span>+++ /dev/null</span><br><span>@@ -1,53 +0,0 @@</span><br><span style="color: hsl(0, 100%, 40%);">-#!/usr/bin/env python2</span><br><span style="color: hsl(0, 100%, 40%);">-# -*- coding: utf-8 -*-</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-# Virtual Um-interface (fake transceiver)</span><br><span style="color: hsl(0, 100%, 40%);">-# Power measurement emulation for BB</span><br><span style="color: hsl(0, 100%, 40%);">-#</span><br><span style="color: hsl(0, 100%, 40%);">-# (C) 2017 by Vadim Yanitskiy <axilirator@gmail.com></span><br><span style="color: hsl(0, 100%, 40%);">-#</span><br><span style="color: hsl(0, 100%, 40%);">-# All Rights Reserved</span><br><span style="color: hsl(0, 100%, 40%);">-#</span><br><span style="color: hsl(0, 100%, 40%);">-# This program is free software; you can redistribute it and/or modify</span><br><span style="color: hsl(0, 100%, 40%);">-# it under the terms of the GNU General Public License as published by</span><br><span style="color: hsl(0, 100%, 40%);">-# the Free Software Foundation; either version 2 of the License, or</span><br><span style="color: hsl(0, 100%, 40%);">-# (at your option) any later version.</span><br><span style="color: hsl(0, 100%, 40%);">-#</span><br><span style="color: hsl(0, 100%, 40%);">-# This program is distributed in the hope that it will be useful,</span><br><span style="color: hsl(0, 100%, 40%);">-# but WITHOUT ANY WARRANTY; without even the implied warranty of</span><br><span style="color: hsl(0, 100%, 40%);">-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the</span><br><span style="color: hsl(0, 100%, 40%);">-# GNU General Public License for more details.</span><br><span style="color: hsl(0, 100%, 40%);">-#</span><br><span style="color: hsl(0, 100%, 40%);">-# You should have received a copy of the GNU General Public License along</span><br><span style="color: hsl(0, 100%, 40%);">-# with this program; if not, write to the Free Software Foundation, Inc.,</span><br><span style="color: hsl(0, 100%, 40%);">-# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-from random import randint</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-class FakePM:</span><br><span style="color: hsl(0, 100%, 40%);">-      # Freq. list for good power level</span><br><span style="color: hsl(0, 100%, 40%);">-       bts_list = []</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-   def __init__(self, noise_min, noise_max, bts_min, bts_max):</span><br><span style="color: hsl(0, 100%, 40%);">-             # Save power level ranges</span><br><span style="color: hsl(0, 100%, 40%);">-               self.noise_min = noise_min</span><br><span style="color: hsl(0, 100%, 40%);">-              self.noise_max = noise_max</span><br><span style="color: hsl(0, 100%, 40%);">-              self.bts_min = bts_min</span><br><span style="color: hsl(0, 100%, 40%);">-          self.bts_max = bts_max</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  def measure(self, bts):</span><br><span style="color: hsl(0, 100%, 40%);">-         if bts in self.bts_list:</span><br><span style="color: hsl(0, 100%, 40%);">-                        return randint(self.bts_min, self.bts_max)</span><br><span style="color: hsl(0, 100%, 40%);">-              else:</span><br><span style="color: hsl(0, 100%, 40%);">-                   return randint(self.noise_min, self.noise_max)</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-  def update_bts_list(self, new_list):</span><br><span style="color: hsl(0, 100%, 40%);">-            self.bts_list = new_list</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-        def add_bts_list(self, add_list):</span><br><span style="color: hsl(0, 100%, 40%);">-               self.bts_list += add_list</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-       def del_bts_list(self, del_list):</span><br><span style="color: hsl(0, 100%, 40%);">-               for item in del_list:</span><br><span style="color: hsl(0, 100%, 40%);">-                   if item in self.bts_list:</span><br><span style="color: hsl(0, 100%, 40%);">-                               self.bts_list.remove(item)</span><br><span>diff --git a/python/trx/radio_if.py b/python/trx/radio_if.py</span><br><span>index 55c8d92..32b767a 100644</span><br><span>--- a/python/trx/radio_if.py</span><br><span>+++ b/python/trx/radio_if.py</span><br><span>@@ -26,6 +26,7 @@</span><br><span> import pmt</span><br><span> import time</span><br><span> import grgsm</span><br><span style="color: hsl(120, 100%, 40%);">+import random</span><br><span> </span><br><span> from math import pi</span><br><span> </span><br><span>@@ -290,3 +291,7 @@</span><br><span>                 print("[i] Setting TA value %d" % ta)</span><br><span>              advance_time_sec = ta * self.GSM_SYM_PERIOD_uS * 1e-6</span><br><span>                self.tx_time_setter.set_timing_advance(advance_time_sec)</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+    def measure(self, freq):</span><br><span style="color: hsl(120, 100%, 40%);">+              # HACK: generate a random low RSSI value</span><br><span style="color: hsl(120, 100%, 40%);">+              return random.randint(-120, -100)</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/12631">change 12631</a>. To unsubscribe, or for help writing mail filters, visit <a href="https://gerrit.osmocom.org/settings">settings</a>.</p><div itemscope itemtype="http://schema.org/EmailMessage"><div itemscope itemprop="action" itemtype="http://schema.org/ViewAction"><link itemprop="url" href="https://gerrit.osmocom.org/12631"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: gr-gsm </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>
<div style="display:none"> Gerrit-Change-Id: Ie96eb9735ecaa3329135c7be976ffd277a2f64f4 </div>
<div style="display:none"> Gerrit-Change-Number: 12631 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: Vadim Yanitskiy <axilirator@gmail.com> </div>