<p>pespin has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.osmocom.org/c/osmo-trx/+/14664">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">Transceiver: Support pulling idle frames in pullRadioVector()<br><br>This logic will be used once we support TRXDv1, where idle indications<br>are sent through the socket.<br><br>Related: OS#4006<br>Change-Id: I46404f6e4055b6d3af3afffb0dfe4a19502917aa<br>---<br>M Transceiver52M/Transceiver.cpp<br>M Transceiver52M/Transceiver.h<br>2 files changed, 20 insertions(+), 11 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://gerrit.osmocom.org:29418/osmo-trx refs/changes/64/14664/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/Transceiver52M/Transceiver.cpp b/Transceiver52M/Transceiver.cpp</span><br><span>index 92d4061..4462cdd 100644</span><br><span>--- a/Transceiver52M/Transceiver.cpp</span><br><span>+++ b/Transceiver52M/Transceiver.cpp</span><br><span>@@ -591,8 +591,6 @@</span><br><span> </span><br><span>   /* Set time and determine correlation type */</span><br><span>   burstTime = radio_burst->getTime();</span><br><span style="color: hsl(0, 100%, 40%);">-  bi->fn = burstTime.FN();</span><br><span style="color: hsl(0, 100%, 40%);">-  bi->tn = burstTime.TN();</span><br><span>   CorrType type = expectedCorrType(burstTime, chan);</span><br><span> </span><br><span>   /* Enable 8-PSK burst detection if EDGE is enabled */</span><br><span>@@ -612,6 +610,15 @@</span><br><span>     return false;</span><br><span>   }</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+  /* Initialize struct bi */</span><br><span style="color: hsl(120, 100%, 40%);">+  bi->nbits = 0;</span><br><span style="color: hsl(120, 100%, 40%);">+  bi->fn = burstTime.FN();</span><br><span style="color: hsl(120, 100%, 40%);">+  bi->tn = burstTime.TN();</span><br><span style="color: hsl(120, 100%, 40%);">+  bi->rssi = 0.0;</span><br><span style="color: hsl(120, 100%, 40%);">+  bi->toa = 0.0;</span><br><span style="color: hsl(120, 100%, 40%);">+  bi->noise = 0.0;</span><br><span style="color: hsl(120, 100%, 40%);">+  bi->idle = false;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span>   /* Select the diversity channel with highest energy */</span><br><span>   for (size_t i = 0; i < radio_burst->chans(); i++) {</span><br><span>     float pow = energyDetect(*radio_burst->getVector(i), 20 * mSPSRx);</span><br><span>@@ -624,8 +631,7 @@</span><br><span> </span><br><span>   if (max_i < 0) {</span><br><span>     LOG(ALERT) << "Received empty burst";</span><br><span style="color: hsl(0, 100%, 40%);">-    delete radio_burst;</span><br><span style="color: hsl(0, 100%, 40%);">-    return false;</span><br><span style="color: hsl(120, 100%, 40%);">+    goto ret_idle;</span><br><span>   }</span><br><span> </span><br><span>   /* Average noise on diversity paths and update global levels */</span><br><span>@@ -641,10 +647,8 @@</span><br><span>   bi->rssi = 20.0 * log10(rxFullScale / avg) + rssiOffset;</span><br><span>   bi->noise = 20.0 * log10(rxFullScale / state->mNoiseLev) + rssiOffset;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-  if (type == IDLE) {</span><br><span style="color: hsl(0, 100%, 40%);">-    delete radio_burst;</span><br><span style="color: hsl(0, 100%, 40%);">-    return false;</span><br><span style="color: hsl(0, 100%, 40%);">-  }</span><br><span style="color: hsl(120, 100%, 40%);">+  if (type == IDLE)</span><br><span style="color: hsl(120, 100%, 40%);">+    goto ret_idle;</span><br><span> </span><br><span>   max_toa = (type == RACH || type == EXT_RACH) ?</span><br><span>             mMaxExpectedDelayAB : mMaxExpectedDelayNB;</span><br><span>@@ -656,8 +660,7 @@</span><br><span>       LOG(WARNING) << "Clipping detected on received RACH or Normal Burst";</span><br><span>     else if (rc != SIGERR_NONE)</span><br><span>       LOG(WARNING) << "Unhandled RACH or Normal Burst detection error";</span><br><span style="color: hsl(0, 100%, 40%);">-    delete radio_burst;</span><br><span style="color: hsl(0, 100%, 40%);">-    return false;</span><br><span style="color: hsl(120, 100%, 40%);">+    goto ret_idle;</span><br><span>   }</span><br><span> </span><br><span>   type = (CorrType) rc;</span><br><span>@@ -676,6 +679,11 @@</span><br><span>   delete rxBurst;</span><br><span>   delete radio_burst;</span><br><span>   return true;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ret_idle:</span><br><span style="color: hsl(120, 100%, 40%);">+  bi->idle = true;</span><br><span style="color: hsl(120, 100%, 40%);">+  delete radio_burst;</span><br><span style="color: hsl(120, 100%, 40%);">+  return false;</span><br><span> }</span><br><span> </span><br><span> void Transceiver::reset()</span><br><span>@@ -968,7 +976,7 @@</span><br><span> </span><br><span>   struct trx_ul_burst_ind bi;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-  if (!pullRadioVector(chan, &bi))</span><br><span style="color: hsl(120, 100%, 40%);">+  if (!pullRadioVector(chan, &bi) || bi.idle)</span><br><span>         return;</span><br><span> </span><br><span>   logRxBurst(chan, &bi);</span><br><span>diff --git a/Transceiver52M/Transceiver.h b/Transceiver52M/Transceiver.h</span><br><span>index e4d0440..a66c962 100644</span><br><span>--- a/Transceiver52M/Transceiver.h</span><br><span>+++ b/Transceiver52M/Transceiver.h</span><br><span>@@ -44,6 +44,7 @@</span><br><span>         double rssi; // in dBFS</span><br><span>         double toa;  // in symbols</span><br><span>         double noise; // noise level in dBFS</span><br><span style="color: hsl(120, 100%, 40%);">+        bool idle; // true if no valid burst is included</span><br><span> };</span><br><span> </span><br><span> class Transceiver;</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-trx/+/14664">change 14664</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/c/osmo-trx/+/14664"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: osmo-trx </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-Change-Id: I46404f6e4055b6d3af3afffb0dfe4a19502917aa </div>
<div style="display:none"> Gerrit-Change-Number: 14664 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: pespin <pespin@sysmocom.de> </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>