<p>Vadim Yanitskiy has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.osmocom.org/12341">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">trx_toolkit/data_msg.py: use struct API for fn and toa256 coding<br><br>The built-in struct module is already used for toa256 decoding,<br>so let's use it for toa256 encoding, and TDMA frame number<br>coding too - no need to (re)implement the wheel!<br><br>Change-Id: I10d2e15ac57a0524e9bc1c80ed6a0f6f5a263436<br>---<br>M src/target/trx_toolkit/data_msg.py<br>1 file changed, 4 insertions(+), 16 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://gerrit.osmocom.org:29418/osmocom-bb refs/changes/41/12341/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/src/target/trx_toolkit/data_msg.py b/src/target/trx_toolkit/data_msg.py</span><br><span>index 95ec9dc..bbc9d93 100644</span><br><span>--- a/src/target/trx_toolkit/data_msg.py</span><br><span>+++ b/src/target/trx_toolkit/data_msg.py</span><br><span>@@ -143,24 +143,13 @@</span><br><span> </span><br><span>  # Generates frame number to bytes</span><br><span>    def gen_fn(self, fn):</span><br><span style="color: hsl(0, 100%, 40%);">-           # Allocate an empty byte-array</span><br><span style="color: hsl(0, 100%, 40%);">-          buf = bytearray()</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span>            # Big endian, 4 bytes</span><br><span style="color: hsl(0, 100%, 40%);">-           buf.append((fn >> 24) & 0xff)</span><br><span style="color: hsl(0, 100%, 40%);">-         buf.append((fn >> 16) & 0xff)</span><br><span style="color: hsl(0, 100%, 40%);">-         buf.append((fn >>  8) & 0xff)</span><br><span style="color: hsl(0, 100%, 40%);">-         buf.append((fn >>  0) & 0xff)</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">-         return buf</span><br><span style="color: hsl(120, 100%, 40%);">+            return struct.pack(">L", fn)</span><br><span> </span><br><span>        # Parses frame number from bytes</span><br><span>     def parse_fn(self, buf):</span><br><span>             # Big endian, 4 bytes</span><br><span style="color: hsl(0, 100%, 40%);">-           return (buf[0] << 24) \</span><br><span style="color: hsl(0, 100%, 40%);">-                    | (buf[1] << 16) \</span><br><span style="color: hsl(0, 100%, 40%);">-                        | (buf[2] << 8)  \</span><br><span style="color: hsl(0, 100%, 40%);">-                        | (buf[3] << 0)</span><br><span style="color: hsl(120, 100%, 40%);">+                return struct.unpack(">L", buf)[0]</span><br><span> </span><br><span>  # Generates a TRX DATA message</span><br><span>       def gen_msg(self):</span><br><span>@@ -197,7 +186,7 @@</span><br><span>                     raise ValueError("Message is to short")</span><br><span> </span><br><span>                # Parse both fn and tn</span><br><span style="color: hsl(0, 100%, 40%);">-          self.fn = self.parse_fn(msg[1:])</span><br><span style="color: hsl(120, 100%, 40%);">+              self.fn = self.parse_fn(msg[1:5])</span><br><span>            self.tn = msg[0]</span><br><span> </span><br><span>                 # Specific message part</span><br><span>@@ -381,8 +370,7 @@</span><br><span> </span><br><span>            # Encode ToA (Time of Arrival)</span><br><span>               # Big endian, 2 bytes (int32_t)</span><br><span style="color: hsl(0, 100%, 40%);">-         buf.append((self.toa256 >> 8) & 0xff)</span><br><span style="color: hsl(0, 100%, 40%);">-         buf.append(self.toa256 & 0xff)</span><br><span style="color: hsl(120, 100%, 40%);">+            buf += struct.pack(">h", self.toa256)</span><br><span> </span><br><span>               return buf</span><br><span> </span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/12341">change 12341</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/12341"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: osmocom-bb </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>
<div style="display:none"> Gerrit-Change-Id: I10d2e15ac57a0524e9bc1c80ed6a0f6f5a263436 </div>
<div style="display:none"> Gerrit-Change-Number: 12341 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: Vadim Yanitskiy <axilirator@gmail.com> </div>