<p>Harald Welte <strong>merged</strong> this change.</p><p><a href="https://gerrit.osmocom.org/9622">View Change</a></p><div style="white-space:pre-wrap">Approvals:
  Jenkins Builder: Verified
  Harald Welte: Looks good to me, approved

</div><pre style="font-family: monospace,monospace; white-space: pre-wrap;">radioDevice: better encapsulation in base class<br><br>It's not good style to have the derived classes initialize members<br>inherited from the base class using "this->foo = bar".  Rather, let's<br>make the base class have a constructor, and call that constructor to<br>initialize the members of the base class.<br><br>While doing this<br>* rename 'offset' to 'lo_offset' to avoid confusion with timestamp offset<br>* move 'InterfaceType' into the base class<br>* move 'chans' into the base class<br>* move 'rx_sps' into the base class<br>* mark base class members as 'protected'<br><br>Change-Id: Ib885675a7612a392aa7f75fca81269ddcff2f6ab<br>---<br>M Transceiver52M/device/lms/LMSDevice.cpp<br>M Transceiver52M/device/lms/LMSDevice.h<br>M Transceiver52M/device/radioDevice.h<br>M Transceiver52M/device/uhd/UHDDevice.cpp<br>M Transceiver52M/device/usrp1/USRPDevice.cpp<br>M Transceiver52M/device/usrp1/USRPDevice.h<br>6 files changed, 38 insertions(+), 34 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/Transceiver52M/device/lms/LMSDevice.cpp b/Transceiver52M/device/lms/LMSDevice.cpp</span><br><span>index 68d4b97..c4d5f96 100644</span><br><span>--- a/Transceiver52M/device/lms/LMSDevice.cpp</span><br><span>+++ b/Transceiver52M/device/lms/LMSDevice.cpp</span><br><span>@@ -40,17 +40,14 @@</span><br><span> #define LMS_MIN_BW_SUPPORTED 2.5e6 /* 2.5mHz, minimum supported by LMS */</span><br><span> #define LMS_CALIBRATE_BW_HZ OSMO_MAX(GSM_CARRIER_BW, LMS_MIN_BW_SUPPORTED)</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-LMSDevice::LMSDevice(size_t tx_sps, size_t chans,</span><br><span style="color: hsl(120, 100%, 40%);">+LMSDevice::LMSDevice(size_t tx_sps, size_t rx_sps, InterfaceType iface, size_t chans, double lo_offset,</span><br><span>                const std::vector<std::string>& tx_paths,</span><br><span>                  const std::vector<std::string>& rx_paths):</span><br><span style="color: hsl(0, 100%, 40%);">-       m_lms_dev(NULL), chans(chans)</span><br><span style="color: hsl(120, 100%, 40%);">+ RadioDevice(tx_sps, rx_sps, iface, chans, lo_offset, tx_paths, rx_paths),</span><br><span style="color: hsl(120, 100%, 40%);">+     m_lms_dev(NULL)</span><br><span> {</span><br><span>         LOG(INFO) << "creating LMS device...";</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-      this->tx_sps = tx_sps;</span><br><span style="color: hsl(0, 100%, 40%);">-       this->tx_paths = tx_paths;</span><br><span style="color: hsl(0, 100%, 40%);">-   this->rx_paths = rx_paths;</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span>        m_lms_stream_rx.resize(chans);</span><br><span>       m_lms_stream_tx.resize(chans);</span><br><span> </span><br><span>@@ -624,9 +621,9 @@</span><br><span> }</span><br><span> </span><br><span> RadioDevice *RadioDevice::make(size_t tx_sps, size_t rx_sps,</span><br><span style="color: hsl(0, 100%, 40%);">-                              InterfaceType iface, size_t chans, double offset,</span><br><span style="color: hsl(120, 100%, 40%);">+                             InterfaceType iface, size_t chans, double lo_offset,</span><br><span>                         const std::vector < std::string > &tx_paths,</span><br><span>                               const std::vector < std::string > &rx_paths)</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">-      return new LMSDevice(tx_sps, chans, tx_paths, rx_paths);</span><br><span style="color: hsl(120, 100%, 40%);">+      return new LMSDevice(tx_sps, rx_sps, iface, chans, lo_offset, tx_paths, rx_paths);</span><br><span> }</span><br><span>diff --git a/Transceiver52M/device/lms/LMSDevice.h b/Transceiver52M/device/lms/LMSDevice.h</span><br><span>index 0fe4c15..349efbb 100644</span><br><span>--- a/Transceiver52M/device/lms/LMSDevice.h</span><br><span>+++ b/Transceiver52M/device/lms/LMSDevice.h</span><br><span>@@ -46,7 +46,6 @@</span><br><span>         std::vector<uint32_t> m_last_tx_underruns;</span><br><span>     std::vector<uint32_t> m_last_tx_overruns;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-     size_t chans;</span><br><span>        double actualSampleRate;        ///< the actual USRP sampling rate</span><br><span> </span><br><span>    unsigned long long samplesRead; ///< number of samples read from LMS</span><br><span>@@ -65,7 +64,7 @@</span><br><span> public:</span><br><span> </span><br><span>   /** Object constructor */</span><br><span style="color: hsl(0, 100%, 40%);">-       LMSDevice(size_t tx_sps, size_t chans,</span><br><span style="color: hsl(120, 100%, 40%);">+        LMSDevice(size_t tx_sps, size_t rx_sps, InterfaceType iface, size_t chans, double lo_offset,</span><br><span>                   const std::vector<std::string>& tx_paths,</span><br><span>                  const std::vector<std::string>& rx_paths);</span><br><span> </span><br><span>diff --git a/Transceiver52M/device/radioDevice.h b/Transceiver52M/device/radioDevice.h</span><br><span>index a9328ec..5d001fb 100644</span><br><span>--- a/Transceiver52M/device/radioDevice.h</span><br><span>+++ b/Transceiver52M/device/radioDevice.h</span><br><span>@@ -164,8 +164,20 @@</span><br><span>   virtual double numberRead()=0;</span><br><span>   virtual double numberWritten()=0;</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+  protected:</span><br><span style="color: hsl(120, 100%, 40%);">+  size_t tx_sps, rx_sps;</span><br><span style="color: hsl(120, 100%, 40%);">+  InterfaceType iface;</span><br><span style="color: hsl(120, 100%, 40%);">+  size_t chans;</span><br><span style="color: hsl(120, 100%, 40%);">+  double lo_offset;</span><br><span>   std::vector<std::string> tx_paths, rx_paths;</span><br><span style="color: hsl(0, 100%, 40%);">-  size_t tx_sps;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+  RadioDevice(size_t tx_sps, size_t rx_sps, InterfaceType type, size_t chans, double offset,</span><br><span style="color: hsl(120, 100%, 40%);">+              const std::vector<std::string>& tx_paths,</span><br><span style="color: hsl(120, 100%, 40%);">+              const std::vector<std::string>& rx_paths):</span><br><span style="color: hsl(120, 100%, 40%);">+                tx_sps(tx_sps), rx_sps(rx_sps), iface(type), chans(chans), lo_offset(offset),</span><br><span style="color: hsl(120, 100%, 40%);">+         tx_paths(tx_paths), rx_paths(rx_paths)</span><br><span style="color: hsl(120, 100%, 40%);">+        { }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span>   bool set_antennas() {</span><br><span>     unsigned int i;</span><br><span> </span><br><span>diff --git a/Transceiver52M/device/uhd/UHDDevice.cpp b/Transceiver52M/device/uhd/UHDDevice.cpp</span><br><span>index ddcad3a..4af8f87 100644</span><br><span>--- a/Transceiver52M/device/uhd/UHDDevice.cpp</span><br><span>+++ b/Transceiver52M/device/uhd/UHDDevice.cpp</span><br><span>@@ -282,12 +282,10 @@</span><br><span>         enum TxWindowType tx_window;</span><br><span>         enum uhd_dev_type dev_type;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- size_t rx_sps, chans;</span><br><span>        double tx_rate, rx_rate;</span><br><span> </span><br><span>         double tx_gain_min, tx_gain_max;</span><br><span>     double rx_gain_min, rx_gain_max;</span><br><span style="color: hsl(0, 100%, 40%);">-        double offset;</span><br><span> </span><br><span>   std::vector<double> tx_gains, rx_gains;</span><br><span>        std::vector<double> tx_freqs, rx_freqs;</span><br><span>@@ -317,7 +315,6 @@</span><br><span>  bool set_freq(double freq, size_t chan, bool tx);</span><br><span> </span><br><span>        Thread *async_event_thrd;</span><br><span style="color: hsl(0, 100%, 40%);">-       InterfaceType iface;</span><br><span>         Mutex tune_lock;</span><br><span> };</span><br><span> </span><br><span>@@ -364,22 +361,16 @@</span><br><span> }</span><br><span> </span><br><span> uhd_device::uhd_device(size_t tx_sps, size_t rx_sps,</span><br><span style="color: hsl(0, 100%, 40%);">-                    InterfaceType iface, size_t chans, double offset,</span><br><span style="color: hsl(120, 100%, 40%);">+                     InterfaceType iface, size_t chans, double lo_offset,</span><br><span>                 const std::vector<std::string>& tx_paths,</span><br><span>                  const std::vector<std::string>& rx_paths)</span><br><span style="color: hsl(0, 100%, 40%);">-      : tx_gain_min(0.0), tx_gain_max(0.0),</span><br><span style="color: hsl(120, 100%, 40%);">+ : RadioDevice(tx_sps, rx_sps, iface, chans, lo_offset, tx_paths, rx_paths),</span><br><span style="color: hsl(120, 100%, 40%);">+     tx_gain_min(0.0), tx_gain_max(0.0),</span><br><span>          rx_gain_min(0.0), rx_gain_max(0.0),</span><br><span>          tx_spp(0), rx_spp(0),</span><br><span>        started(false), aligned(false), rx_pkt_cnt(0), drop_cnt(0),</span><br><span>          prev_ts(0,0), ts_initial(0), ts_offset(0), async_event_thrd(NULL)</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">-        this->tx_sps = tx_sps;</span><br><span style="color: hsl(0, 100%, 40%);">-       this->rx_sps = rx_sps;</span><br><span style="color: hsl(0, 100%, 40%);">-       this->chans = chans;</span><br><span style="color: hsl(0, 100%, 40%);">- this->offset = offset;</span><br><span style="color: hsl(0, 100%, 40%);">-       this->iface = iface;</span><br><span style="color: hsl(0, 100%, 40%);">- this->tx_paths = tx_paths;</span><br><span style="color: hsl(0, 100%, 40%);">-   this->rx_paths = rx_paths;</span><br><span> }</span><br><span> </span><br><span> uhd_device::~uhd_device()</span><br><span>@@ -1057,8 +1048,8 @@</span><br><span>  uhd::tune_request_t treq(freq);</span><br><span> </span><br><span>  if (dev_type == UMTRX) {</span><br><span style="color: hsl(0, 100%, 40%);">-                if (offset != 0.0)</span><br><span style="color: hsl(0, 100%, 40%);">-                      return uhd::tune_request_t(freq, offset);</span><br><span style="color: hsl(120, 100%, 40%);">+             if (lo_offset != 0.0)</span><br><span style="color: hsl(120, 100%, 40%);">+                 return uhd::tune_request_t(freq, lo_offset);</span><br><span> </span><br><span>             // Don't use DSP tuning, because LMS6002D PLL steps are small enough.</span><br><span>            // We end up with DSP tuning just for 2-3Hz, which is meaningless and</span><br><span>@@ -1070,10 +1061,10 @@</span><br><span>              treq.dsp_freq = 0.0;</span><br><span>                 return treq;</span><br><span>         } else if (chans == 1) {</span><br><span style="color: hsl(0, 100%, 40%);">-                if (offset == 0.0)</span><br><span style="color: hsl(120, 100%, 40%);">+            if (lo_offset == 0.0)</span><br><span>                        return treq;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-                return uhd::tune_request_t(freq, offset);</span><br><span style="color: hsl(120, 100%, 40%);">+             return uhd::tune_request_t(freq, lo_offset);</span><br><span>         } else if ((dev_type != B210) || (chans > 2) || (chan > 1)) {</span><br><span>          LOG(ALERT) << chans << " channels unsupported";</span><br><span>                return treq;</span><br><span>@@ -1556,9 +1547,9 @@</span><br><span> }</span><br><span> </span><br><span> RadioDevice *RadioDevice::make(size_t tx_sps, size_t rx_sps,</span><br><span style="color: hsl(0, 100%, 40%);">-                          InterfaceType iface, size_t chans, double offset,</span><br><span style="color: hsl(120, 100%, 40%);">+                             InterfaceType iface, size_t chans, double lo_offset,</span><br><span>                         const std::vector<std::string>& tx_paths,</span><br><span>                          const std::vector<std::string>& rx_paths)</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">- return new uhd_device(tx_sps, rx_sps, iface, chans, offset, tx_paths, rx_paths);</span><br><span style="color: hsl(120, 100%, 40%);">+      return new uhd_device(tx_sps, rx_sps, iface, chans, lo_offset, tx_paths, rx_paths);</span><br><span> }</span><br><span>diff --git a/Transceiver52M/device/usrp1/USRPDevice.cpp b/Transceiver52M/device/usrp1/USRPDevice.cpp</span><br><span>index 07ba1c9..7a31c97 100644</span><br><span>--- a/Transceiver52M/device/usrp1/USRPDevice.cpp</span><br><span>+++ b/Transceiver52M/device/usrp1/USRPDevice.cpp</span><br><span>@@ -58,11 +58,14 @@</span><br><span> </span><br><span> const double USRPDevice::masterClockRate = 52.0e6;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-USRPDevice::USRPDevice(size_t tx_sps)</span><br><span style="color: hsl(120, 100%, 40%);">+USRPDevice::USRPDevice(size_t tx_sps, size_t rx_sps, InterfaceType iface,</span><br><span style="color: hsl(120, 100%, 40%);">+                    size_t chans, double lo_offset,</span><br><span style="color: hsl(120, 100%, 40%);">+                       const std::vector<std::string>& tx_paths,</span><br><span style="color: hsl(120, 100%, 40%);">+                   const std::vector<std::string>& rx_paths):</span><br><span style="color: hsl(120, 100%, 40%);">+           RadioDevice(tx_sps, rx_sps, iface, chans, lo_offset, tx_paths, rx_paths)</span><br><span> {</span><br><span>   LOG(INFO) << "creating USRP device...";</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-  this->tx_sps = tx_sps;</span><br><span>   decimRate = (unsigned int) round(masterClockRate/((GSMRATE) * (double) tx_sps));</span><br><span>   actualSampleRate = masterClockRate/decimRate;</span><br><span>   rxGain = 0;</span><br><span>@@ -648,9 +651,9 @@</span><br><span> #endif</span><br><span> </span><br><span> RadioDevice *RadioDevice::make(size_t tx_sps, size_t rx_sps,</span><br><span style="color: hsl(0, 100%, 40%);">-                        InterfaceType iface, size_t chans, double offset,</span><br><span style="color: hsl(120, 100%, 40%);">+                             InterfaceType iface, size_t chans, double lo_offset,</span><br><span>                         const std::vector<std::string>& tx_paths,</span><br><span>                          const std::vector<std::string>& rx_paths)</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">- return new USRPDevice(tx_sps);</span><br><span style="color: hsl(120, 100%, 40%);">+        return new USRPDevice(tx_sps, rx_sps, iface, chans, lo_offset, tx_paths, rx_paths);</span><br><span> }</span><br><span>diff --git a/Transceiver52M/device/usrp1/USRPDevice.h b/Transceiver52M/device/usrp1/USRPDevice.h</span><br><span>index ff5b273..451b5a9 100644</span><br><span>--- a/Transceiver52M/device/usrp1/USRPDevice.h</span><br><span>+++ b/Transceiver52M/device/usrp1/USRPDevice.h</span><br><span>@@ -95,7 +95,9 @@</span><br><span>  public:</span><br><span> </span><br><span>   /** Object constructor */</span><br><span style="color: hsl(0, 100%, 40%);">-  USRPDevice(size_t tx_sps);</span><br><span style="color: hsl(120, 100%, 40%);">+  USRPDevice(size_t tx_sps, size_t rx_sps, InterfaceType iface, size_t chans, double lo_offset,</span><br><span style="color: hsl(120, 100%, 40%);">+         const std::vector<std::string>& tx_paths,</span><br><span style="color: hsl(120, 100%, 40%);">+           const std::vector<std::string>& rx_paths);</span><br><span> </span><br><span>   /** Instantiate the USRP */</span><br><span>   int open(const std::string &, int, bool);</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/9622">change 9622</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/9622"/><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-MessageType: merged </div>
<div style="display:none"> Gerrit-Change-Id: Ib885675a7612a392aa7f75fca81269ddcff2f6ab </div>
<div style="display:none"> Gerrit-Change-Number: 9622 </div>
<div style="display:none"> Gerrit-PatchSet: 3 </div>
<div style="display:none"> Gerrit-Owner: Harald Welte <laforge@gnumonks.org> </div>
<div style="display:none"> Gerrit-Reviewer: Harald Welte <laforge@gnumonks.org> </div>
<div style="display:none"> Gerrit-Reviewer: Jenkins Builder </div>
<div style="display:none"> Gerrit-CC: Pau Espin Pedrol <pespin@sysmocom.de> </div>