<p>Harald Welte has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.osmocom.org/10496">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">logging: Introduce new "DDEV" category for device-specific code<br><br>The DMAIN category got too overloaded.  Let's have the code in<br>Transceive52M/device/* use the new DDEV category.<br><br>Also, in some cases the log levels have been adjusted to ensure<br>that enabling INFO level should not result in a complete overflow<br>of messages during normal operation.<br><br>Change-Id: I844fe4a75bf277cd3cc5bd8fa06e06ad97b2ea95<br>---<br>M CommonLibs/debug.c<br>M CommonLibs/debug.h<br>M Transceiver52M/device/lms/LMSDevice.cpp<br>M Transceiver52M/device/uhd/UHDDevice.cpp<br>M Transceiver52M/device/usrp1/USRPDevice.cpp<br>5 files changed, 179 insertions(+), 172 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/96/10496/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/CommonLibs/debug.c b/CommonLibs/debug.c</span><br><span>index 01854c0..c6de21a 100644</span><br><span>--- a/CommonLibs/debug.c</span><br><span>+++ b/CommonLibs/debug.c</span><br><span>@@ -10,9 +10,15 @@</span><br><span>               .color = NULL,</span><br><span>               .enabled = 1, .loglevel = LOGL_NOTICE,</span><br><span>       },</span><br><span style="color: hsl(120, 100%, 40%);">+    [DDEV] = {</span><br><span style="color: hsl(120, 100%, 40%);">+            .name = "DDEV",</span><br><span style="color: hsl(120, 100%, 40%);">+             .description = "Device/Driver specific code",</span><br><span style="color: hsl(120, 100%, 40%);">+               .color = NULL,</span><br><span style="color: hsl(120, 100%, 40%);">+                .enabled = 1, .loglevel = LOGL_INFO,</span><br><span style="color: hsl(120, 100%, 40%);">+  },</span><br><span>   [DLMS] = {</span><br><span>           .name = "DLMS",</span><br><span style="color: hsl(0, 100%, 40%);">-               .description = "LimeSuite category",</span><br><span style="color: hsl(120, 100%, 40%);">+                .description = "Logging from within LimeSuite itself",</span><br><span>             .color = NULL,</span><br><span>               .enabled = 1, .loglevel = LOGL_NOTICE,</span><br><span>       },</span><br><span>diff --git a/CommonLibs/debug.h b/CommonLibs/debug.h</span><br><span>index 06ad74e..f8f6239 100644</span><br><span>--- a/CommonLibs/debug.h</span><br><span>+++ b/CommonLibs/debug.h</span><br><span>@@ -5,5 +5,6 @@</span><br><span> /* Debug Areas of the code */</span><br><span> enum {</span><br><span>         DMAIN,</span><br><span style="color: hsl(120, 100%, 40%);">+        DDEV,</span><br><span>        DLMS,</span><br><span> };</span><br><span>diff --git a/Transceiver52M/device/lms/LMSDevice.cpp b/Transceiver52M/device/lms/LMSDevice.cpp</span><br><span>index ffea505..881cfb7 100644</span><br><span>--- a/Transceiver52M/device/lms/LMSDevice.cpp</span><br><span>+++ b/Transceiver52M/device/lms/LMSDevice.cpp</span><br><span>@@ -46,7 +46,7 @@</span><br><span>     RadioDevice(tx_sps, rx_sps, iface, chans, lo_offset, tx_paths, rx_paths),</span><br><span>    m_lms_dev(NULL)</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">-    LOG(INFO) << "creating LMS device...";</span><br><span style="color: hsl(120, 100%, 40%);">+        LOGC(DDEV, INFO) << "creating LMS device...";</span><br><span> </span><br><span>    m_lms_stream_rx.resize(chans);</span><br><span>       m_lms_stream_tx.resize(chans);</span><br><span>@@ -82,7 +82,7 @@</span><br><span> </span><br><span> static void print_range(const char* name, lms_range_t *range)</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">-    LOG(DEBUG) << name << ": Min=" << range->min << " Max=" << range->max</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGC(DDEV, INFO) << name << ": Min=" << range->min << " Max=" << range->max</span><br><span>             << " Step=" << range->step;</span><br><span> }</span><br><span> </span><br><span>@@ -96,36 +96,36 @@</span><br><span>       unsigned int i, n;</span><br><span>   int rc;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-     LOG(INFO) << "Opening LMS device..";</span><br><span style="color: hsl(120, 100%, 40%);">+  LOGC(DDEV, INFO) << "Opening LMS device..";</span><br><span> </span><br><span>      LMS_RegisterLogHandler(&lms_log_callback);</span><br><span> </span><br><span>   if ((n = LMS_GetDeviceList(NULL)) < 0)</span><br><span style="color: hsl(0, 100%, 40%);">-               LOG(ERROR) << "LMS_GetDeviceList(NULL) failed";</span><br><span style="color: hsl(0, 100%, 40%);">- LOG(DEBUG) << "Devices found: " << n;</span><br><span style="color: hsl(120, 100%, 40%);">+           LOGC(DDEV, ERROR) << "LMS_GetDeviceList(NULL) failed";</span><br><span style="color: hsl(120, 100%, 40%);">+        LOGC(DDEV, INFO) << "Devices found: " << n;</span><br><span>    if (n < 1)</span><br><span>            return -1;</span><br><span> </span><br><span>   info_list = new lms_info_str_t[n];</span><br><span> </span><br><span>       if (LMS_GetDeviceList(info_list) < 0)</span><br><span style="color: hsl(0, 100%, 40%);">-                LOG(ERROR) << "LMS_GetDeviceList(info_list) failed";</span><br><span style="color: hsl(120, 100%, 40%);">+          LOGC(DDEV, ERROR) << "LMS_GetDeviceList(info_list) failed";</span><br><span> </span><br><span>      for (i = 0; i < n; i++)</span><br><span style="color: hsl(0, 100%, 40%);">-              LOG(DEBUG) << "Device [" << i << "]: " << info_list[i];</span><br><span style="color: hsl(120, 100%, 40%);">+           LOGC(DDEV, INFO) << "Device [" << i << "]: " << info_list[i];</span><br><span> </span><br><span>        rc = LMS_Open(&m_lms_dev, info_list[0], NULL);</span><br><span>   if (rc != 0) {</span><br><span style="color: hsl(0, 100%, 40%);">-          LOG(ERROR) << "LMS_GetDeviceList() failed)";</span><br><span style="color: hsl(120, 100%, 40%);">+          LOGC(DDEV, ERROR) << "LMS_GetDeviceList() failed)";</span><br><span>          delete [] info_list;</span><br><span>                 return -1;</span><br><span>   }</span><br><span> </span><br><span>        delete [] info_list;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-        LOG(INFO) << "Init LMS device";</span><br><span style="color: hsl(120, 100%, 40%);">+       LOGC(DDEV, INFO) << "Init LMS device";</span><br><span>       if (LMS_Init(m_lms_dev) != 0) {</span><br><span style="color: hsl(0, 100%, 40%);">-         LOG(ERROR) << "LMS_Init() failed";</span><br><span style="color: hsl(120, 100%, 40%);">+            LOGC(DDEV, ERROR) << "LMS_Init() failed";</span><br><span>            return -1;</span><br><span>   }</span><br><span> </span><br><span>@@ -133,35 +133,35 @@</span><br><span>                goto out_close;</span><br><span>      print_range("Sample Rate", &range_sr);</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-        LOG(DEBUG) << "Setting sample rate to " << GSMRATE*tx_sps << " " << tx_sps;</span><br><span style="color: hsl(120, 100%, 40%);">+       LOGC(DDEV, INFO) << "Setting sample rate to " << GSMRATE*tx_sps << " " << tx_sps;</span><br><span>        if (LMS_SetSampleRate(m_lms_dev, GSMRATE*tx_sps, 32) < 0)</span><br><span>                 goto out_close;</span><br><span> </span><br><span>  if (LMS_GetSampleRate(m_lms_dev, LMS_CH_RX, 0, &sr_host, &sr_rf))</span><br><span>            goto out_close;</span><br><span style="color: hsl(0, 100%, 40%);">- LOG(DEBUG) << "Sample Rate: Host=" << sr_host << " RF=" << sr_rf;</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGC(DDEV, INFO) << "Sample Rate: Host=" << sr_host << " RF=" << sr_rf;</span><br><span> </span><br><span>      /* FIXME: make this device/model dependent, like UHDDevice:dev_param_map! */</span><br><span>         ts_offset = static_cast<TIMESTAMP>(8.9e-5 * GSMRATE * tx_sps); /* time * sample_rate */</span><br><span> </span><br><span>    switch (ref) {</span><br><span>       case REF_INTERNAL:</span><br><span style="color: hsl(0, 100%, 40%);">-              LOG(DEBUG) << "Setting Internal clock reference";</span><br><span style="color: hsl(120, 100%, 40%);">+             LOGC(DDEV, INFO) << "Setting Internal clock reference";</span><br><span>              /* Ugly API: Selecting clock source implicit by writing to VCTCXO DAC ?!? */</span><br><span>                 if (LMS_VCTCXORead(m_lms_dev, &dac_val) < 0)</span><br><span>                  goto out_close;</span><br><span style="color: hsl(0, 100%, 40%);">-         LOG(DEBUG) << "Setting VCTCXO to " << dac_val;</span><br><span style="color: hsl(120, 100%, 40%);">+          LOGC(DDEV, INFO) << "Setting VCTCXO to " << dac_val;</span><br><span>           if (LMS_VCTCXOWrite(m_lms_dev, dac_val) < 0)</span><br><span>                      goto out_close;</span><br><span>              break;</span><br><span>       case REF_EXTERNAL:</span><br><span style="color: hsl(0, 100%, 40%);">-              LOG(DEBUG) << "Setting External clock reference to " << 10000000.0;</span><br><span style="color: hsl(120, 100%, 40%);">+             LOGC(DDEV, INFO) << "Setting External clock reference to " << 10000000.0;</span><br><span>              /* Assume an external 10 MHz reference clock */</span><br><span>              if (LMS_SetClockFreq(m_lms_dev, LMS_CLOCK_EXTREF, 10000000.0) < 0)</span><br><span>                        goto out_close;</span><br><span>              break;</span><br><span>       default:</span><br><span style="color: hsl(0, 100%, 40%);">-                LOG(ALERT) << "Invalid reference type";</span><br><span style="color: hsl(120, 100%, 40%);">+               LOGC(DDEV, ALERT) << "Invalid reference type";</span><br><span>               goto out_close;</span><br><span>      }</span><br><span> </span><br><span>@@ -174,21 +174,21 @@</span><br><span>        lpfbw_rx = OSMO_MIN(OSMO_MAX(1.4001e6, range_lpfbw_rx.min), range_lpfbw_rx.max);</span><br><span>     lpfbw_tx = OSMO_MIN(OSMO_MAX(5.2e6, range_lpfbw_tx.min), range_lpfbw_tx.max);</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-       LOG(DEBUG) << "LPFBW: Rx=" << lpfbw_rx << " Tx=" << lpfbw_tx;</span><br><span style="color: hsl(120, 100%, 40%);">+     LOGC(DDEV, INFO) << "LPFBW: Rx=" << lpfbw_rx << " Tx=" << lpfbw_tx;</span><br><span> </span><br><span>  if (!set_antennas()) {</span><br><span style="color: hsl(0, 100%, 40%);">-          LOG(ALERT) << "LMS antenna setting failed";</span><br><span style="color: hsl(120, 100%, 40%);">+           LOGC(DDEV, ALERT) << "LMS antenna setting failed";</span><br><span>           return -1;</span><br><span>   }</span><br><span> </span><br><span>        /* Perform Rx and Tx calibration */</span><br><span>  for (i=0; i<chans; i++) {</span><br><span style="color: hsl(0, 100%, 40%);">-            LOG(INFO) << "Setting LPFBW chan " << i;</span><br><span style="color: hsl(120, 100%, 40%);">+                LOGC(DDEV, INFO) << "Setting LPFBW chan " << i;</span><br><span>                if (LMS_SetLPFBW(m_lms_dev, LMS_CH_RX, i, lpfbw_rx) < 0)</span><br><span>                  goto out_close;</span><br><span>              if (LMS_SetLPFBW(m_lms_dev, LMS_CH_TX, i, lpfbw_tx) < 0)</span><br><span>                  goto out_close;</span><br><span style="color: hsl(0, 100%, 40%);">-         LOG(INFO) << "Calibrating chan " << i;</span><br><span style="color: hsl(120, 100%, 40%);">+          LOGC(DDEV, INFO) << "Calibrating chan " << i;</span><br><span>          if (LMS_Calibrate(m_lms_dev, LMS_CH_RX, i, LMS_CALIBRATE_BW_HZ, 0) < 0)</span><br><span>                   goto out_close;</span><br><span>              if (LMS_Calibrate(m_lms_dev, LMS_CH_TX, i, LMS_CALIBRATE_BW_HZ, 0) < 0)</span><br><span>@@ -202,14 +202,14 @@</span><br><span>   return NORMAL;</span><br><span> </span><br><span> out_close:</span><br><span style="color: hsl(0, 100%, 40%);">-        LOG(ALERT) << "Error in LMS open, closing: " << LMS_GetLastErrorMessage();</span><br><span style="color: hsl(120, 100%, 40%);">+      LOGC(DDEV, ALERT) << "Error in LMS open, closing: " << LMS_GetLastErrorMessage();</span><br><span>      LMS_Close(m_lms_dev);</span><br><span>        return -1;</span><br><span> }</span><br><span> </span><br><span> bool LMSDevice::start()</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">-     LOG(INFO) << "starting LMS...";</span><br><span style="color: hsl(120, 100%, 40%);">+       LOGC(DDEV, INFO) << "starting LMS...";</span><br><span> </span><br><span>   unsigned int i;</span><br><span> </span><br><span>@@ -303,7 +303,7 @@</span><br><span> double LMSDevice::setTxGain(double dB, size_t chan)</span><br><span> {</span><br><span>        if (chan) {</span><br><span style="color: hsl(0, 100%, 40%);">-             LOG(ALERT) << "Invalid channel " << chan;</span><br><span style="color: hsl(120, 100%, 40%);">+               LOGC(DDEV, ALERT) << "Invalid channel " << chan;</span><br><span>               return 0.0;</span><br><span>  }</span><br><span> </span><br><span>@@ -312,10 +312,10 @@</span><br><span>        if (dB < minTxGain())</span><br><span>             dB = minTxGain();</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-   LOG(NOTICE) << "Setting TX gain to " << dB << " dB.";</span><br><span style="color: hsl(120, 100%, 40%);">+   LOGC(DDEV, NOTICE) << "Setting TX gain to " << dB << " dB.";</span><br><span> </span><br><span>       if (LMS_SetGaindB(m_lms_dev, LMS_CH_TX, chan, dB) < 0)</span><br><span style="color: hsl(0, 100%, 40%);">-               LOG(ERR) << "Error setting TX gain";</span><br><span style="color: hsl(120, 100%, 40%);">+          LOGC(DDEV, ERR) << "Error setting TX gain";</span><br><span> </span><br><span>      return dB;</span><br><span> }</span><br><span>@@ -323,7 +323,7 @@</span><br><span> double LMSDevice::setRxGain(double dB, size_t chan)</span><br><span> {</span><br><span>    if (chan) {</span><br><span style="color: hsl(0, 100%, 40%);">-             LOG(ALERT) << "Invalid channel " << chan;</span><br><span style="color: hsl(120, 100%, 40%);">+               LOGC(DDEV, ALERT) << "Invalid channel " << chan;</span><br><span>               return 0.0;</span><br><span>  }</span><br><span> </span><br><span>@@ -332,10 +332,10 @@</span><br><span>        if (dB < minRxGain())</span><br><span>             dB = minRxGain();</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-   LOG(NOTICE) << "Setting RX gain to " << dB << " dB.";</span><br><span style="color: hsl(120, 100%, 40%);">+   LOGC(DDEV, NOTICE) << "Setting RX gain to " << dB << " dB.";</span><br><span> </span><br><span>       if (LMS_SetGaindB(m_lms_dev, LMS_CH_RX, chan, dB) < 0)</span><br><span style="color: hsl(0, 100%, 40%);">-               LOG(ERR) << "Error setting RX gain";</span><br><span style="color: hsl(120, 100%, 40%);">+          LOGC(DDEV, ERR) << "Error setting RX gain";</span><br><span> </span><br><span>      return dB;</span><br><span> }</span><br><span>@@ -369,9 +369,9 @@</span><br><span> </span><br><span>    while (!ts_initial || (num_pkts-- > 0)) {</span><br><span>                 rc = LMS_RecvStream(&m_lms_stream_rx[0], &buffer[0], len, &rx_metadata, 100);</span><br><span style="color: hsl(0, 100%, 40%);">-               LOG(DEBUG) << "Flush: Recv buffer of len " << rc << " at " << std::hex << rx_metadata.timestamp;</span><br><span style="color: hsl(120, 100%, 40%);">+            LOGC(DDEV, DEBUG) << "Flush: Recv buffer of len " << rc << " at " << std::hex << rx_metadata.timestamp;</span><br><span>            if (rc != len) {</span><br><span style="color: hsl(0, 100%, 40%);">-                        LOG(ALERT) << "LMS: Device receive timed out";</span><br><span style="color: hsl(120, 100%, 40%);">+                        LOGC(DDEV, ALERT) << "LMS: Device receive timed out";</span><br><span>                        delete[] buffer;</span><br><span>                     return false;</span><br><span>                }</span><br><span>@@ -379,7 +379,7 @@</span><br><span>              ts_initial = rx_metadata.timestamp + len;</span><br><span>    }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-   LOG(INFO) << "Initial timestamp " << ts_initial << std::endl;</span><br><span style="color: hsl(120, 100%, 40%);">+     LOGC(DDEV, INFO) << "Initial timestamp " << ts_initial << std::endl;</span><br><span>     delete[] buffer;</span><br><span>     return true;</span><br><span> }</span><br><span>@@ -389,18 +389,18 @@</span><br><span>    int idx;</span><br><span> </span><br><span>         if (chan >= rx_paths.size()) {</span><br><span style="color: hsl(0, 100%, 40%);">-               LOG(ALERT) << "Requested non-existent channel " << chan;</span><br><span style="color: hsl(120, 100%, 40%);">+                LOGC(DDEV, ALERT) << "Requested non-existent channel " << chan;</span><br><span>                return false;</span><br><span>        }</span><br><span> </span><br><span>        idx = get_ant_idx(ant, LMS_CH_RX, chan);</span><br><span>     if (idx < 0) {</span><br><span style="color: hsl(0, 100%, 40%);">-               LOG(ALERT) << "Invalid Rx Antenna";</span><br><span style="color: hsl(120, 100%, 40%);">+           LOGC(DDEV, ALERT) << "Invalid Rx Antenna";</span><br><span>           return false;</span><br><span>        }</span><br><span> </span><br><span>        if (LMS_SetAntenna(m_lms_dev, LMS_CH_RX, chan, idx) < 0) {</span><br><span style="color: hsl(0, 100%, 40%);">-           LOG(ALERT) << "Unable to set Rx Antenna";</span><br><span style="color: hsl(120, 100%, 40%);">+             LOGC(DDEV, ALERT) << "Unable to set Rx Antenna";</span><br><span>     }</span><br><span> </span><br><span>        return true;</span><br><span>@@ -412,18 +412,18 @@</span><br><span>         int idx;</span><br><span> </span><br><span>         if (chan >= rx_paths.size()) {</span><br><span style="color: hsl(0, 100%, 40%);">-               LOG(ALERT) << "Requested non-existent channel " << chan;</span><br><span style="color: hsl(120, 100%, 40%);">+                LOGC(DDEV, ALERT) << "Requested non-existent channel " << chan;</span><br><span>                return "";</span><br><span>         }</span><br><span> </span><br><span>        idx = LMS_GetAntenna(m_lms_dev, LMS_CH_RX, chan);</span><br><span>    if (idx < 0) {</span><br><span style="color: hsl(0, 100%, 40%);">-               LOG(ALERT) << "Error getting Rx Antenna";</span><br><span style="color: hsl(120, 100%, 40%);">+             LOGC(DDEV, ALERT) << "Error getting Rx Antenna";</span><br><span>             return "";</span><br><span>         }</span><br><span> </span><br><span>        if (LMS_GetAntennaList(m_lms_dev, LMS_CH_RX, chan, name_list) < idx) {</span><br><span style="color: hsl(0, 100%, 40%);">-               LOG(ALERT) << "Error getting Rx Antenna List";</span><br><span style="color: hsl(120, 100%, 40%);">+                LOGC(DDEV, ALERT) << "Error getting Rx Antenna List";</span><br><span>                return "";</span><br><span>         }</span><br><span> </span><br><span>@@ -435,18 +435,18 @@</span><br><span>        int idx;</span><br><span> </span><br><span>         if (chan >= tx_paths.size()) {</span><br><span style="color: hsl(0, 100%, 40%);">-               LOG(ALERT) << "Requested non-existent channel " << chan;</span><br><span style="color: hsl(120, 100%, 40%);">+                LOGC(DDEV, ALERT) << "Requested non-existent channel " << chan;</span><br><span>                return false;</span><br><span>        }</span><br><span> </span><br><span>        idx = get_ant_idx(ant, LMS_CH_TX, chan);</span><br><span>     if (idx < 0) {</span><br><span style="color: hsl(0, 100%, 40%);">-               LOG(ALERT) << "Invalid Rx Antenna";</span><br><span style="color: hsl(120, 100%, 40%);">+           LOGC(DDEV, ALERT) << "Invalid Rx Antenna";</span><br><span>           return false;</span><br><span>        }</span><br><span> </span><br><span>        if (LMS_SetAntenna(m_lms_dev, LMS_CH_TX, chan, idx) < 0) {</span><br><span style="color: hsl(0, 100%, 40%);">-           LOG(ALERT) << "Unable to set Rx Antenna";</span><br><span style="color: hsl(120, 100%, 40%);">+             LOGC(DDEV, ALERT) << "Unable to set Rx Antenna";</span><br><span>     }</span><br><span> </span><br><span>        return true;</span><br><span>@@ -458,18 +458,18 @@</span><br><span>         int idx;</span><br><span> </span><br><span>         if (chan >= tx_paths.size()) {</span><br><span style="color: hsl(0, 100%, 40%);">-               LOG(ALERT) << "Requested non-existent channel " << chan;</span><br><span style="color: hsl(120, 100%, 40%);">+                LOGC(DDEV, ALERT) << "Requested non-existent channel " << chan;</span><br><span>                return "";</span><br><span>         }</span><br><span> </span><br><span>        idx = LMS_GetAntenna(m_lms_dev, LMS_CH_TX, chan);</span><br><span>    if (idx < 0) {</span><br><span style="color: hsl(0, 100%, 40%);">-               LOG(ALERT) << "Error getting Tx Antenna";</span><br><span style="color: hsl(120, 100%, 40%);">+             LOGC(DDEV, ALERT) << "Error getting Tx Antenna";</span><br><span>             return "";</span><br><span>         }</span><br><span> </span><br><span>        if (LMS_GetAntennaList(m_lms_dev, LMS_CH_TX, chan, name_list) < idx) {</span><br><span style="color: hsl(0, 100%, 40%);">-               LOG(ALERT) << "Error getting Tx Antenna List";</span><br><span style="color: hsl(120, 100%, 40%);">+                LOGC(DDEV, ALERT) << "Error getting Tx Antenna List";</span><br><span>                return "";</span><br><span>         }</span><br><span> </span><br><span>@@ -502,7 +502,7 @@</span><br><span>  rx_metadata.timestamp = 0;</span><br><span> </span><br><span>       if (bufs.size() != chans) {</span><br><span style="color: hsl(0, 100%, 40%);">-             LOG(ALERT) << "Invalid channel combination " << bufs.size();</span><br><span style="color: hsl(120, 100%, 40%);">+            LOGC(DDEV, ALERT) << "Invalid channel combination " << bufs.size();</span><br><span>            return -1;</span><br><span>   }</span><br><span> </span><br><span>@@ -512,9 +512,9 @@</span><br><span>          thread_enable_cancel(false);</span><br><span>                 rc = LMS_RecvStream(&m_lms_stream_rx[i], bufs[i], len, &rx_metadata, 100);</span><br><span>           if (timestamp != (TIMESTAMP)rx_metadata.timestamp)</span><br><span style="color: hsl(0, 100%, 40%);">-                      LOG(ALERT) << "chan "<< i << " recv buffer of len " << rc << " expect " << std::hex << timestamp << " got " << std::hex << (TIMESTAMP)rx_metadata.timestamp << " (" << std::hex << rx_metadata.timestamp <<") diff=" << rx_metadata.timestamp - timestamp;</span><br><span style="color: hsl(120, 100%, 40%);">+                      LOGC(DDEV, ALERT) << "chan "<< i << " recv buffer of len " << rc << " expect " << std::hex << timestamp << " got " << std::hex << (TIMESTAMP)rx_metadata.timestamp << " (" << std::hex << rx_metadata.timestamp <<") diff=" << rx_metadata.timestamp - timestamp;</span><br><span>              if (rc != len) {</span><br><span style="color: hsl(0, 100%, 40%);">-                        LOG(ALERT) << "LMS: Device receive timed out";</span><br><span style="color: hsl(120, 100%, 40%);">+                        LOGC(DDEV, ALERT) << "LMS: Device receive timed out";</span><br><span>                }</span><br><span> </span><br><span>                if (LMS_GetStreamStatus(&m_lms_stream_rx[i], &status) == 0) {</span><br><span>@@ -550,23 +550,23 @@</span><br><span>        tx_metadata.timestamp = timestamp - ts_offset;  /* Shift Tx time by offset */</span><br><span> </span><br><span>    if (isControl) {</span><br><span style="color: hsl(0, 100%, 40%);">-                LOG(ERR) << "Control packets not supported";</span><br><span style="color: hsl(120, 100%, 40%);">+          LOGC(DDEV, ERR) << "Control packets not supported";</span><br><span>          return 0;</span><br><span>    }</span><br><span> </span><br><span>        if (bufs.size() != chans) {</span><br><span style="color: hsl(0, 100%, 40%);">-             LOG(ALERT) << "Invalid channel combination " << bufs.size();</span><br><span style="color: hsl(120, 100%, 40%);">+            LOGC(DDEV, ALERT) << "Invalid channel combination " << bufs.size();</span><br><span>            return -1;</span><br><span>   }</span><br><span> </span><br><span>        *underrun = false;</span><br><span> </span><br><span>       for (i = 0; i<chans; i++) {</span><br><span style="color: hsl(0, 100%, 40%);">-          LOG(DEBUG) << "chan "<< i << " send buffer of len " << len << " timestamp " << std::hex << tx_metadata.timestamp;</span><br><span style="color: hsl(120, 100%, 40%);">+             LOGC(DDEV, DEBUG) << "chan "<< i << " send buffer of len " << len << " timestamp " << std::hex << tx_metadata.timestamp;</span><br><span>             thread_enable_cancel(false);</span><br><span>                 rc = LMS_SendStream(&m_lms_stream_tx[i], bufs[i], len, &tx_metadata, 100);</span><br><span>           if (rc != len) {</span><br><span style="color: hsl(0, 100%, 40%);">-                        LOG(ALERT) << "LMS: Device send timed out";</span><br><span style="color: hsl(120, 100%, 40%);">+                   LOGC(DDEV, ALERT) << "LMS: Device send timed out";</span><br><span>           }</span><br><span> </span><br><span>                if (LMS_GetStreamStatus(&m_lms_stream_tx[i], &status) == 0) {</span><br><span>@@ -591,12 +591,12 @@</span><br><span> {</span><br><span> </span><br><span>       if (chan) {</span><br><span style="color: hsl(0, 100%, 40%);">-             LOG(ALERT) << "Invalid channel " << chan;</span><br><span style="color: hsl(120, 100%, 40%);">+               LOGC(DDEV, ALERT) << "Invalid channel " << chan;</span><br><span>               return false;</span><br><span>        }</span><br><span> </span><br><span>        if (LMS_SetLOFrequency(m_lms_dev, LMS_CH_TX, chan, wFreq) < 0) {</span><br><span style="color: hsl(0, 100%, 40%);">-             LOG(ALERT) << "set Tx: " << wFreq << " failed!";</span><br><span style="color: hsl(120, 100%, 40%);">+                LOGC(DDEV, ALERT) << "set Tx: " << wFreq << " failed!";</span><br><span>                return false;</span><br><span>        }</span><br><span> </span><br><span>@@ -606,12 +606,12 @@</span><br><span> bool LMSDevice::setRxFreq(double wFreq, size_t chan)</span><br><span> {</span><br><span>   if (chan) {</span><br><span style="color: hsl(0, 100%, 40%);">-             LOG(ALERT) << "Invalid channel " << chan;</span><br><span style="color: hsl(120, 100%, 40%);">+               LOGC(DDEV, ALERT) << "Invalid channel " << chan;</span><br><span>               return false;</span><br><span>        }</span><br><span> </span><br><span>        if (LMS_SetLOFrequency(m_lms_dev, LMS_CH_RX, chan, wFreq) < 0) {</span><br><span style="color: hsl(0, 100%, 40%);">-             LOG(ALERT) << "set Rx: " << wFreq << " failed!";</span><br><span style="color: hsl(120, 100%, 40%);">+                LOGC(DDEV, ALERT) << "set Rx: " << wFreq << " failed!";</span><br><span>                return false;</span><br><span>        }</span><br><span> </span><br><span>@@ -624,11 +624,11 @@</span><br><span>                               const std::vector < std::string > &rx_paths)</span><br><span> {</span><br><span>   if (tx_sps != rx_sps) {</span><br><span style="color: hsl(0, 100%, 40%);">-         LOG(ERROR) << "LMS Requires tx_sps == rx_sps";</span><br><span style="color: hsl(120, 100%, 40%);">+                LOGC(DDEV, ERROR) << "LMS Requires tx_sps == rx_sps";</span><br><span>                return NULL;</span><br><span>         }</span><br><span>    if (lo_offset != 0.0) {</span><br><span style="color: hsl(0, 100%, 40%);">-         LOG(ERROR) << "LMS doesn't support lo_offset";</span><br><span style="color: hsl(120, 100%, 40%);">+            LOGC(DDEV, ERROR) << "LMS doesn't support lo_offset";</span><br><span>            return NULL;</span><br><span>         }</span><br><span>    return new LMSDevice(tx_sps, rx_sps, iface, chans, lo_offset, tx_paths, rx_paths);</span><br><span>diff --git a/Transceiver52M/device/uhd/UHDDevice.cpp b/Transceiver52M/device/uhd/UHDDevice.cpp</span><br><span>index 4af8f87..63d3dec 100644</span><br><span>--- a/Transceiver52M/device/uhd/UHDDevice.cpp</span><br><span>+++ b/Transceiver52M/device/uhd/UHDDevice.cpp</span><br><span>@@ -340,13 +340,13 @@</span><br><span> {</span><br><span>     switch (type) {</span><br><span>      case uhd::msg::status:</span><br><span style="color: hsl(0, 100%, 40%);">-          LOG(INFO) << msg;</span><br><span style="color: hsl(120, 100%, 40%);">+               LOGC(DDEV, INFO) << msg;</span><br><span>               break;</span><br><span>       case uhd::msg::warning:</span><br><span style="color: hsl(0, 100%, 40%);">-         LOG(WARNING) << msg;</span><br><span style="color: hsl(120, 100%, 40%);">+            LOGC(DDEV, WARNING) << msg;</span><br><span>            break;</span><br><span>       case uhd::msg::error:</span><br><span style="color: hsl(0, 100%, 40%);">-           LOG(ERR) << msg;</span><br><span style="color: hsl(120, 100%, 40%);">+                LOGC(DDEV, ERR) << msg;</span><br><span>                break;</span><br><span>       case uhd::msg::fastpath:</span><br><span>             break;</span><br><span>@@ -388,7 +388,7 @@</span><br><span>         if (dev_type == UMTRX) {</span><br><span>             std::vector<std::string> gain_stages = usrp_dev->get_tx_gain_names(0);</span><br><span>              if (gain_stages[0] == "VGA") {</span><br><span style="color: hsl(0, 100%, 40%);">-                        LOG(WARNING) << "Update your UHD version for a proper Tx gain support";</span><br><span style="color: hsl(120, 100%, 40%);">+                       LOGC(DDEV, WARNING) << "Update your UHD version for a proper Tx gain support";</span><br><span>               }</span><br><span>            if (gain_stages[0] == "VGA" || gain_stages[0] == "PA") {</span><br><span>                         range = usrp_dev->get_tx_gain_range();</span><br><span>@@ -404,23 +404,23 @@</span><br><span>            tx_gain_min = range.start();</span><br><span>                 tx_gain_max = range.stop();</span><br><span>  }</span><br><span style="color: hsl(0, 100%, 40%);">-       LOG(INFO) << "Supported Tx gain range [" << tx_gain_min << "; " << tx_gain_max << "]";</span><br><span style="color: hsl(120, 100%, 40%);">+    LOGC(DDEV, INFO) << "Supported Tx gain range [" << tx_gain_min << "; " << tx_gain_max << "]";</span><br><span> </span><br><span>        range = usrp_dev->get_rx_gain_range();</span><br><span>    rx_gain_min = range.start();</span><br><span>         rx_gain_max = range.stop();</span><br><span style="color: hsl(0, 100%, 40%);">-     LOG(INFO) << "Supported Rx gain range [" << rx_gain_min << "; " << rx_gain_max << "]";</span><br><span style="color: hsl(120, 100%, 40%);">+    LOGC(DDEV, INFO) << "Supported Rx gain range [" << rx_gain_min << "; " << rx_gain_max << "]";</span><br><span> </span><br><span>        for (size_t i = 0; i < tx_gains.size(); i++) {</span><br><span>            double gain = (tx_gain_min + tx_gain_max) / 2;</span><br><span style="color: hsl(0, 100%, 40%);">-          LOG(INFO) << "Default setting Tx gain for channel " << i << " to " << gain;</span><br><span style="color: hsl(120, 100%, 40%);">+               LOGC(DDEV, INFO) << "Default setting Tx gain for channel " << i << " to " << gain;</span><br><span>               usrp_dev->set_tx_gain(gain, i);</span><br><span>           tx_gains[i] = usrp_dev->get_tx_gain(i);</span><br><span>   }</span><br><span> </span><br><span>        for (size_t i = 0; i < rx_gains.size(); i++) {</span><br><span>            double gain = (rx_gain_min + rx_gain_max) / 2;</span><br><span style="color: hsl(0, 100%, 40%);">-          LOG(INFO) << "Default setting Rx gain for channel " << i << " to " << gain;</span><br><span style="color: hsl(120, 100%, 40%);">+               LOGC(DDEV, INFO) << "Default setting Rx gain for channel " << i << " to " << gain;</span><br><span>               usrp_dev->set_rx_gain(gain, i);</span><br><span>           rx_gains[i] = usrp_dev->get_rx_gain(i);</span><br><span>   }</span><br><span>@@ -444,7 +444,7 @@</span><br><span>      rx_rate = usrp_dev->get_rx_rate();</span><br><span> </span><br><span>    ts_offset = static_cast<TIMESTAMP>(desc.offset * rx_rate);</span><br><span style="color: hsl(0, 100%, 40%);">-        LOG(INFO) << "Rates configured for " << desc.str;</span><br><span style="color: hsl(120, 100%, 40%);">+       LOGC(DDEV, INFO) << "Rates configured for " << desc.str;</span><br><span> }</span><br><span> </span><br><span> double uhd_device::setTxGain(double db, size_t chan)</span><br><span>@@ -453,7 +453,7 @@</span><br><span>                chan = 0;</span><br><span> </span><br><span>        if (chan >= tx_gains.size()) {</span><br><span style="color: hsl(0, 100%, 40%);">-               LOG(ALERT) << "Requested non-existent channel" << chan;</span><br><span style="color: hsl(120, 100%, 40%);">+         LOGC(DDEV, ALERT) << "Requested non-existent channel" << chan;</span><br><span>                 return 0.0f;</span><br><span>         }</span><br><span> </span><br><span>@@ -476,7 +476,7 @@</span><br><span> </span><br><span>      tx_gains[chan] = usrp_dev->get_tx_gain(chan);</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-    LOG(INFO) << "Set TX gain to " << tx_gains[chan] << "dB (asked for " << db << "dB)";</span><br><span style="color: hsl(120, 100%, 40%);">+      LOGC(DDEV, INFO) << "Set TX gain to " << tx_gains[chan] << "dB (asked for " << db << "dB)";</span><br><span> </span><br><span>  return tx_gains[chan];</span><br><span> }</span><br><span>@@ -484,14 +484,14 @@</span><br><span> double uhd_device::setRxGain(double db, size_t chan)</span><br><span> {</span><br><span>     if (chan >= rx_gains.size()) {</span><br><span style="color: hsl(0, 100%, 40%);">-               LOG(ALERT) << "Requested non-existent channel " << chan;</span><br><span style="color: hsl(120, 100%, 40%);">+                LOGC(DDEV, ALERT) << "Requested non-existent channel " << chan;</span><br><span>                return 0.0f;</span><br><span>         }</span><br><span> </span><br><span>        usrp_dev->set_rx_gain(db, chan);</span><br><span>  rx_gains[chan] = usrp_dev->get_rx_gain(chan);</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-    LOG(INFO) << "Set RX gain to " << rx_gains[chan] << "dB (asked for " << db << "dB)";</span><br><span style="color: hsl(120, 100%, 40%);">+      LOGC(DDEV, INFO) << "Set RX gain to " << rx_gains[chan] << "dB (asked for " << db << "dB)";</span><br><span> </span><br><span>  return rx_gains[chan];</span><br><span> }</span><br><span>@@ -502,7 +502,7 @@</span><br><span>            chan = 0;</span><br><span> </span><br><span>        if (chan >= rx_gains.size()) {</span><br><span style="color: hsl(0, 100%, 40%);">-               LOG(ALERT) << "Requested non-existent channel " << chan;</span><br><span style="color: hsl(120, 100%, 40%);">+                LOGC(DDEV, ALERT) << "Requested non-existent channel " << chan;</span><br><span>                return 0.0f;</span><br><span>         }</span><br><span> </span><br><span>@@ -550,7 +550,7 @@</span><br><span>          mapIter++;</span><br><span>   }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-   LOG(ALERT) << "Unsupported device " << devString;</span><br><span style="color: hsl(120, 100%, 40%);">+       LOGC(DDEV, ALERT) << "Unsupported device " << devString;</span><br><span>       return false;</span><br><span> }</span><br><span> </span><br><span>@@ -621,16 +621,16 @@</span><br><span>       uhd::device_addr_t addr(args);</span><br><span>       uhd::device_addrs_t dev_addrs = uhd::device::find(addr);</span><br><span>     if (dev_addrs.size() == 0) {</span><br><span style="color: hsl(0, 100%, 40%);">-            LOG(ALERT) << "No UHD devices found with address '" << args << "'";</span><br><span style="color: hsl(120, 100%, 40%);">+             LOGC(DDEV, ALERT) << "No UHD devices found with address '" << args << "'";</span><br><span>             return -1;</span><br><span>   }</span><br><span> </span><br><span>        // Use the first found device</span><br><span style="color: hsl(0, 100%, 40%);">-   LOG(INFO) << "Using discovered UHD device " << dev_addrs[0].to_string();</span><br><span style="color: hsl(120, 100%, 40%);">+        LOGC(DDEV, INFO) << "Using discovered UHD device " << dev_addrs[0].to_string();</span><br><span>        try {</span><br><span>                usrp_dev = uhd::usrp::multi_usrp::make(addr);</span><br><span>        } catch(...) {</span><br><span style="color: hsl(0, 100%, 40%);">-          LOG(ALERT) << "UHD make failed, device " << args;</span><br><span style="color: hsl(120, 100%, 40%);">+               LOGC(DDEV, ALERT) << "UHD make failed, device " << args;</span><br><span>               return -1;</span><br><span>   }</span><br><span> </span><br><span>@@ -639,19 +639,19 @@</span><br><span>                return -1;</span><br><span> </span><br><span>       if ((dev_type == E3XX) && !uhd_e3xx_version_chk()) {</span><br><span style="color: hsl(0, 100%, 40%);">-            LOG(ALERT) << "E3XX requires UHD 003.009.000 or greater";</span><br><span style="color: hsl(120, 100%, 40%);">+             LOGC(DDEV, ALERT) << "E3XX requires UHD 003.009.000 or greater";</span><br><span>             return -1;</span><br><span>   }</span><br><span> </span><br><span>        try {</span><br><span>                set_channels(swap_channels);</span><br><span>         } catch (const std::exception &e) {</span><br><span style="color: hsl(0, 100%, 40%);">-         LOG(ALERT) << "Channel setting failed - " << e.what();</span><br><span style="color: hsl(120, 100%, 40%);">+          LOGC(DDEV, ALERT) << "Channel setting failed - " << e.what();</span><br><span>          return -1;</span><br><span>   }</span><br><span> </span><br><span>        if (!set_antennas()) {</span><br><span style="color: hsl(0, 100%, 40%);">-          LOG(ALERT) << "UHD antenna setting failed";</span><br><span style="color: hsl(120, 100%, 40%);">+           LOGC(DDEV, ALERT) << "UHD antenna setting failed";</span><br><span>           return -1;</span><br><span>   }</span><br><span> </span><br><span>@@ -672,7 +672,7 @@</span><br><span>          refstr = "gpsdo";</span><br><span>          break;</span><br><span>       default:</span><br><span style="color: hsl(0, 100%, 40%);">-                LOG(ALERT) << "Invalid reference type";</span><br><span style="color: hsl(120, 100%, 40%);">+               LOGC(DDEV, ALERT) << "Invalid reference type";</span><br><span>               return -1;</span><br><span>   }</span><br><span> </span><br><span>@@ -681,7 +681,7 @@</span><br><span>  try {</span><br><span>                set_rates();</span><br><span>         } catch (const std::exception &e) {</span><br><span style="color: hsl(0, 100%, 40%);">-         LOG(ALERT) << "UHD rate setting failed - " << e.what();</span><br><span style="color: hsl(120, 100%, 40%);">+         LOGC(DDEV, ALERT) << "UHD rate setting failed - " << e.what();</span><br><span>                 return -1;</span><br><span>   }</span><br><span> </span><br><span>@@ -720,7 +720,7 @@</span><br><span>  init_gains();</span><br><span> </span><br><span>    // Print configuration</span><br><span style="color: hsl(0, 100%, 40%);">-  LOG(INFO) << "\n" << usrp_dev->get_pp_string();</span><br><span style="color: hsl(120, 100%, 40%);">+      LOGC(DDEV, INFO) << "\n" << usrp_dev->get_pp_string();</span><br><span> </span><br><span>  if (iface == MULTI_ARFCN)</span><br><span>            return MULTI_ARFCN;</span><br><span>@@ -763,7 +763,7 @@</span><br><span>            if (!num_smpls) {</span><br><span>                    switch (md.error_code) {</span><br><span>                     case uhd::rx_metadata_t::ERROR_CODE_TIMEOUT:</span><br><span style="color: hsl(0, 100%, 40%);">-                            LOG(ALERT) << "Device timed out";</span><br><span style="color: hsl(120, 100%, 40%);">+                             LOGC(DDEV, ALERT) << "Device timed out";</span><br><span>                             return false;</span><br><span>                        default:</span><br><span>                             continue;</span><br><span>@@ -773,7 +773,7 @@</span><br><span>              ts_initial = md.time_spec.to_ticks(rx_rate);</span><br><span>         }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-   LOG(INFO) << "Initial timestamp " << ts_initial << std::endl;</span><br><span style="color: hsl(120, 100%, 40%);">+     LOGC(DDEV, INFO) << "Initial timestamp " << ts_initial << std::endl;</span><br><span> </span><br><span>         return true;</span><br><span> }</span><br><span>@@ -798,10 +798,10 @@</span><br><span> </span><br><span> bool uhd_device::start()</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">-  LOG(INFO) << "Starting USRP...";</span><br><span style="color: hsl(120, 100%, 40%);">+      LOGC(DDEV, INFO) << "Starting USRP...";</span><br><span> </span><br><span>  if (started) {</span><br><span style="color: hsl(0, 100%, 40%);">-          LOG(ERR) << "Device already started";</span><br><span style="color: hsl(120, 100%, 40%);">+         LOGC(DDEV, ERR) << "Device already started";</span><br><span>                 return false;</span><br><span>        }</span><br><span> </span><br><span>@@ -819,7 +819,7 @@</span><br><span> </span><br><span>      // Display usrp time</span><br><span>         double time_now = usrp_dev->get_time_now().get_real_secs();</span><br><span style="color: hsl(0, 100%, 40%);">-  LOG(INFO) << "The current time is " << time_now << " seconds";</span><br><span style="color: hsl(120, 100%, 40%);">+  LOGC(DDEV, INFO) << "The current time is " << time_now << " seconds";</span><br><span> </span><br><span>      started = true;</span><br><span>      return true;</span><br><span>@@ -852,11 +852,11 @@</span><br><span> int uhd_device::check_rx_md_err(uhd::rx_metadata_t &md, ssize_t num_smpls)</span><br><span> {</span><br><span>  if (!num_smpls) {</span><br><span style="color: hsl(0, 100%, 40%);">-               LOG(ERR) << str_code(md);</span><br><span style="color: hsl(120, 100%, 40%);">+               LOGC(DDEV, ERR) << str_code(md);</span><br><span> </span><br><span>           switch (md.error_code) {</span><br><span>             case uhd::rx_metadata_t::ERROR_CODE_TIMEOUT:</span><br><span style="color: hsl(0, 100%, 40%);">-                    LOG(ALERT) << "UHD: Receive timed out";</span><br><span style="color: hsl(120, 100%, 40%);">+                       LOGC(DDEV, ALERT) << "UHD: Receive timed out";</span><br><span>                       return ERROR_TIMEOUT;</span><br><span>                case uhd::rx_metadata_t::ERROR_CODE_OVERFLOW:</span><br><span>                case uhd::rx_metadata_t::ERROR_CODE_LATE_COMMAND:</span><br><span>@@ -869,14 +869,14 @@</span><br><span> </span><br><span>        // Missing timestamp</span><br><span>         if (!md.has_time_spec) {</span><br><span style="color: hsl(0, 100%, 40%);">-                LOG(ALERT) << "UHD: Received packet missing timestamp";</span><br><span style="color: hsl(120, 100%, 40%);">+               LOGC(DDEV, ALERT) << "UHD: Received packet missing timestamp";</span><br><span>               return ERROR_UNRECOVERABLE;</span><br><span>  }</span><br><span> </span><br><span>        // Monotonicity check</span><br><span>        if (md.time_spec < prev_ts) {</span><br><span style="color: hsl(0, 100%, 40%);">-                LOG(ALERT) << "UHD: Loss of monotonic time";</span><br><span style="color: hsl(0, 100%, 40%);">-            LOG(ALERT) << "Current time: " << md.time_spec.get_real_secs() << ", "</span><br><span style="color: hsl(120, 100%, 40%);">+          LOGC(DDEV, ALERT) << "UHD: Loss of monotonic time";</span><br><span style="color: hsl(120, 100%, 40%);">+           LOGC(DDEV, ALERT) << "Current time: " << md.time_spec.get_real_secs() << ", "</span><br><span>                     << "Previous time: " << prev_ts.get_real_secs();</span><br><span>            return ERROR_TIMING;</span><br><span>         }</span><br><span>@@ -899,7 +899,7 @@</span><br><span>      uhd::rx_metadata_t metadata;</span><br><span> </span><br><span>     if (bufs.size() != chans) {</span><br><span style="color: hsl(0, 100%, 40%);">-             LOG(ALERT) << "Invalid channel combination " << bufs.size();</span><br><span style="color: hsl(120, 100%, 40%);">+            LOGC(DDEV, ALERT) << "Invalid channel combination " << bufs.size();</span><br><span>            return -1;</span><br><span>   }</span><br><span> </span><br><span>@@ -910,13 +910,13 @@</span><br><span>        timestamp += ts_offset;</span><br><span> </span><br><span>  ts = uhd::time_spec_t::from_ticks(timestamp, rx_rate);</span><br><span style="color: hsl(0, 100%, 40%);">-  LOG(DEBUG) << "Requested timestamp = " << ts.get_real_secs();</span><br><span style="color: hsl(120, 100%, 40%);">+   LOGC(DDEV, DEBUG) << "Requested timestamp = " << ts.get_real_secs();</span><br><span> </span><br><span>       // Check that timestamp is valid</span><br><span>     rc = rx_buffers[0]->avail_smpls(timestamp);</span><br><span>       if (rc < 0) {</span><br><span style="color: hsl(0, 100%, 40%);">-                LOG(ERR) << rx_buffers[0]->str_code(rc);</span><br><span style="color: hsl(0, 100%, 40%);">-               LOG(ERR) << rx_buffers[0]->str_status(timestamp);</span><br><span style="color: hsl(120, 100%, 40%);">+            LOGC(DDEV, ERR) << rx_buffers[0]->str_code(rc);</span><br><span style="color: hsl(120, 100%, 40%);">+              LOGC(DDEV, ERR) << rx_buffers[0]->str_status(timestamp);</span><br><span>            return 0;</span><br><span>    }</span><br><span> </span><br><span>@@ -941,8 +941,8 @@</span><br><span>          rc = check_rx_md_err(metadata, num_smpls);</span><br><span>           switch (rc) {</span><br><span>                case ERROR_UNRECOVERABLE:</span><br><span style="color: hsl(0, 100%, 40%);">-                       LOG(ALERT) << "UHD: Version " << uhd::get_version_string();</span><br><span style="color: hsl(0, 100%, 40%);">-                       LOG(ALERT) << "UHD: Unrecoverable error, exiting...";</span><br><span style="color: hsl(120, 100%, 40%);">+                 LOGC(DDEV, ALERT) << "UHD: Version " << uhd::get_version_string();</span><br><span style="color: hsl(120, 100%, 40%);">+                      LOGC(DDEV, ALERT) << "UHD: Unrecoverable error, exiting...";</span><br><span>                         exit(-1);</span><br><span>            case ERROR_TIMEOUT:</span><br><span>                  // Assume stopping condition</span><br><span>@@ -954,7 +954,7 @@</span><br><span>           }</span><br><span> </span><br><span>                ts = metadata.time_spec;</span><br><span style="color: hsl(0, 100%, 40%);">-                LOG(DEBUG) << "Received timestamp = " << ts.get_real_secs();</span><br><span style="color: hsl(120, 100%, 40%);">+            LOGC(DDEV, DEBUG) << "Received timestamp = " << ts.get_real_secs();</span><br><span> </span><br><span>                for (size_t i = 0; i < rx_buffers.size(); i++) {</span><br><span>                  rc = rx_buffers[i]->write((short *) &pkt_bufs[i].front(),</span><br><span>@@ -963,8 +963,8 @@</span><br><span> </span><br><span>                   // Continue on local overrun, exit on other errors</span><br><span>                   if ((rc < 0)) {</span><br><span style="color: hsl(0, 100%, 40%);">-                              LOG(ERR) << rx_buffers[i]->str_code(rc);</span><br><span style="color: hsl(0, 100%, 40%);">-                               LOG(ERR) << rx_buffers[i]->str_status(timestamp);</span><br><span style="color: hsl(120, 100%, 40%);">+                            LOGC(DDEV, ERR) << rx_buffers[i]->str_code(rc);</span><br><span style="color: hsl(120, 100%, 40%);">+                              LOGC(DDEV, ERR) << rx_buffers[i]->str_status(timestamp);</span><br><span>                            if (rc != smpl_buf::ERROR_OVERFLOW)</span><br><span>                                  return 0;</span><br><span>                    }</span><br><span>@@ -975,8 +975,8 @@</span><br><span>      for (size_t i = 0; i < rx_buffers.size(); i++) {</span><br><span>          rc = rx_buffers[i]->read(bufs[i], len, timestamp);</span><br><span>                if ((rc < 0) || (rc != len)) {</span><br><span style="color: hsl(0, 100%, 40%);">-                       LOG(ERR) << rx_buffers[i]->str_code(rc);</span><br><span style="color: hsl(0, 100%, 40%);">-                       LOG(ERR) << rx_buffers[i]->str_status(timestamp);</span><br><span style="color: hsl(120, 100%, 40%);">+                    LOGC(DDEV, ERR) << rx_buffers[i]->str_code(rc);</span><br><span style="color: hsl(120, 100%, 40%);">+                      LOGC(DDEV, ERR) << rx_buffers[i]->str_status(timestamp);</span><br><span>                    return 0;</span><br><span>            }</span><br><span>    }</span><br><span>@@ -997,12 +997,12 @@</span><br><span> </span><br><span>        // No control packets</span><br><span>        if (isControl) {</span><br><span style="color: hsl(0, 100%, 40%);">-                LOG(ERR) << "Control packets not supported";</span><br><span style="color: hsl(120, 100%, 40%);">+          LOGC(DDEV, ERR) << "Control packets not supported";</span><br><span>          return 0;</span><br><span>    }</span><br><span> </span><br><span>        if (bufs.size() != chans) {</span><br><span style="color: hsl(0, 100%, 40%);">-             LOG(ALERT) << "Invalid channel combination " << bufs.size();</span><br><span style="color: hsl(120, 100%, 40%);">+            LOGC(DDEV, ALERT) << "Invalid channel combination " << bufs.size();</span><br><span>            return -1;</span><br><span>   }</span><br><span> </span><br><span>@@ -1011,14 +1011,14 @@</span><br><span>              drop_cnt++;</span><br><span> </span><br><span>              if (drop_cnt == 1) {</span><br><span style="color: hsl(0, 100%, 40%);">-                    LOG(DEBUG) << "Aligning transmitter: stop burst";</span><br><span style="color: hsl(120, 100%, 40%);">+                     LOGC(DDEV, DEBUG) << "Aligning transmitter: stop burst";</span><br><span>                     *underrun = true;</span><br><span>                    metadata.end_of_burst = true;</span><br><span>                } else if (drop_cnt < 30) {</span><br><span style="color: hsl(0, 100%, 40%);">-                  LOG(DEBUG) << "Aligning transmitter: packet advance";</span><br><span style="color: hsl(120, 100%, 40%);">+                 LOGC(DDEV, DEBUG) << "Aligning transmitter: packet advance";</span><br><span>                         return len;</span><br><span>          } else {</span><br><span style="color: hsl(0, 100%, 40%);">-                        LOG(DEBUG) << "Aligning transmitter: start burst";</span><br><span style="color: hsl(120, 100%, 40%);">+                    LOGC(DDEV, DEBUG) << "Aligning transmitter: start burst";</span><br><span>                    metadata.start_of_burst = true;</span><br><span>                      aligned = true;</span><br><span>                      drop_cnt = 0;</span><br><span>@@ -1030,7 +1030,7 @@</span><br><span>        thread_enable_cancel(true);</span><br><span> </span><br><span>      if (num_smpls != (unsigned) len) {</span><br><span style="color: hsl(0, 100%, 40%);">-              LOG(ALERT) << "UHD: Device send timed out";</span><br><span style="color: hsl(120, 100%, 40%);">+           LOGC(DDEV, ALERT) << "UHD: Device send timed out";</span><br><span>   }</span><br><span> </span><br><span>        return num_smpls;</span><br><span>@@ -1066,7 +1066,7 @@</span><br><span> </span><br><span>                return uhd::tune_request_t(freq, lo_offset);</span><br><span>         } else if ((dev_type != B210) || (chans > 2) || (chan > 1)) {</span><br><span style="color: hsl(0, 100%, 40%);">-             LOG(ALERT) << chans << " channels unsupported";</span><br><span style="color: hsl(120, 100%, 40%);">+         LOGC(DDEV, ALERT) << chans << " channels unsupported";</span><br><span>                 return treq;</span><br><span>         }</span><br><span> </span><br><span>@@ -1082,7 +1082,7 @@</span><br><span>        /* Find center frequency between channels */</span><br><span>         rf_spread = fabs(freqs[!chan] - freq);</span><br><span>       if (rf_spread > dev_param_map.at(dev_key(B210, tx_sps, rx_sps)).mcr) {</span><br><span style="color: hsl(0, 100%, 40%);">-               LOG(ALERT) << rf_spread << "Hz tuning spread not supported\n";</span><br><span style="color: hsl(120, 100%, 40%);">+          LOGC(DDEV, ALERT) << rf_spread << "Hz tuning spread not supported\n";</span><br><span>          return treq;</span><br><span>         }</span><br><span> </span><br><span>@@ -1108,7 +1108,7 @@</span><br><span>                tres = usrp_dev->set_rx_freq(treq, chan);</span><br><span>                 rx_freqs[chan] = usrp_dev->get_rx_freq(chan);</span><br><span>     }</span><br><span style="color: hsl(0, 100%, 40%);">-       LOG(INFO) << "\n" << tres.to_pp_string() << std::endl;</span><br><span style="color: hsl(120, 100%, 40%);">+    LOGC(DDEV, INFO) << "\n" << tres.to_pp_string() << std::endl;</span><br><span> </span><br><span>        if ((chans == 1) || ((chans == 2) && dev_type == UMTRX))</span><br><span>             return true;</span><br><span>@@ -1128,7 +1128,7 @@</span><br><span>                         rx_freqs[!chan] = usrp_dev->get_rx_freq(!chan);</span><br><span> </span><br><span>               }</span><br><span style="color: hsl(0, 100%, 40%);">-               LOG(INFO) << "\n" << tres.to_pp_string() << std::endl;</span><br><span style="color: hsl(120, 100%, 40%);">+            LOGC(DDEV, INFO) << "\n" << tres.to_pp_string() << std::endl;</span><br><span>    }</span><br><span> </span><br><span>        return true;</span><br><span>@@ -1137,7 +1137,7 @@</span><br><span> bool uhd_device::setTxFreq(double wFreq, size_t chan)</span><br><span> {</span><br><span>   if (chan >= tx_freqs.size()) {</span><br><span style="color: hsl(0, 100%, 40%);">-               LOG(ALERT) << "Requested non-existent channel " << chan;</span><br><span style="color: hsl(120, 100%, 40%);">+                LOGC(DDEV, ALERT) << "Requested non-existent channel " << chan;</span><br><span>                return false;</span><br><span>        }</span><br><span>    ScopedLock lock(tune_lock);</span><br><span>@@ -1148,7 +1148,7 @@</span><br><span> bool uhd_device::setRxFreq(double wFreq, size_t chan)</span><br><span> {</span><br><span>    if (chan >= rx_freqs.size()) {</span><br><span style="color: hsl(0, 100%, 40%);">-               LOG(ALERT) << "Requested non-existent channel " << chan;</span><br><span style="color: hsl(120, 100%, 40%);">+                LOGC(DDEV, ALERT) << "Requested non-existent channel " << chan;</span><br><span>                return false;</span><br><span>        }</span><br><span>    ScopedLock lock(tune_lock);</span><br><span>@@ -1159,7 +1159,7 @@</span><br><span> double uhd_device::getTxFreq(size_t chan)</span><br><span> {</span><br><span>        if (chan >= tx_freqs.size()) {</span><br><span style="color: hsl(0, 100%, 40%);">-               LOG(ALERT) << "Requested non-existent channel " << chan;</span><br><span style="color: hsl(120, 100%, 40%);">+                LOGC(DDEV, ALERT) << "Requested non-existent channel " << chan;</span><br><span>                return 0.0;</span><br><span>  }</span><br><span> </span><br><span>@@ -1169,7 +1169,7 @@</span><br><span> double uhd_device::getRxFreq(size_t chan)</span><br><span> {</span><br><span>      if (chan >= rx_freqs.size()) {</span><br><span style="color: hsl(0, 100%, 40%);">-               LOG(ALERT) << "Requested non-existent channel " << chan;</span><br><span style="color: hsl(120, 100%, 40%);">+                LOGC(DDEV, ALERT) << "Requested non-existent channel " << chan;</span><br><span>                return 0.0;</span><br><span>  }</span><br><span> </span><br><span>@@ -1180,23 +1180,23 @@</span><br><span> {</span><br><span>         std::vector<std::string> avail;</span><br><span>        if (chan >= rx_paths.size()) {</span><br><span style="color: hsl(0, 100%, 40%);">-               LOG(ALERT) << "Requested non-existent channel " << chan;</span><br><span style="color: hsl(120, 100%, 40%);">+                LOGC(DDEV, ALERT) << "Requested non-existent channel " << chan;</span><br><span>                return false;</span><br><span>        }</span><br><span> </span><br><span>        avail = usrp_dev->get_rx_antennas(chan);</span><br><span>  if (std::find(avail.begin(), avail.end(), ant) == avail.end()) {</span><br><span style="color: hsl(0, 100%, 40%);">-                LOG(ALERT) << "Requested non-existent Rx antenna " << ant << " on channel " << chan;</span><br><span style="color: hsl(0, 100%, 40%);">-                LOG(INFO) << "Available Rx antennas: ";</span><br><span style="color: hsl(120, 100%, 40%);">+               LOGC(DDEV, ALERT) << "Requested non-existent Rx antenna " << ant << " on channel " << chan;</span><br><span style="color: hsl(120, 100%, 40%);">+               LOGC(DDEV, INFO) << "Available Rx antennas: ";</span><br><span>               for (std::vector<std::string>::const_iterator i = avail.begin(); i != avail.end(); ++i)</span><br><span style="color: hsl(0, 100%, 40%);">-                   LOG(INFO) << "- '" << *i << "'";</span><br><span style="color: hsl(120, 100%, 40%);">+                        LOGC(DDEV, INFO) << "- '" << *i << "'";</span><br><span>                return false;</span><br><span>        }</span><br><span>    usrp_dev->set_rx_antenna(ant, chan);</span><br><span>      rx_paths[chan] = usrp_dev->get_rx_antenna(chan);</span><br><span> </span><br><span>      if (ant != rx_paths[chan]) {</span><br><span style="color: hsl(0, 100%, 40%);">-            LOG(ALERT) << "Failed setting antenna " << ant << " on channel " << chan << ", got instead " << rx_paths[chan];</span><br><span style="color: hsl(120, 100%, 40%);">+             LOGC(DDEV, ALERT) << "Failed setting antenna " << ant << " on channel " << chan << ", got instead " << rx_paths[chan];</span><br><span>             return false;</span><br><span>        }</span><br><span> </span><br><span>@@ -1206,7 +1206,7 @@</span><br><span> std::string uhd_device::getRxAntenna(size_t chan)</span><br><span> {</span><br><span>      if (chan >= rx_paths.size()) {</span><br><span style="color: hsl(0, 100%, 40%);">-               LOG(ALERT) << "Requested non-existent channel " << chan;</span><br><span style="color: hsl(120, 100%, 40%);">+                LOGC(DDEV, ALERT) << "Requested non-existent channel " << chan;</span><br><span>                return "";</span><br><span>         }</span><br><span>    return usrp_dev->get_rx_antenna(chan);</span><br><span>@@ -1216,23 +1216,23 @@</span><br><span> {</span><br><span>     std::vector<std::string> avail;</span><br><span>        if (chan >= tx_paths.size()) {</span><br><span style="color: hsl(0, 100%, 40%);">-               LOG(ALERT) << "Requested non-existent channel " << chan;</span><br><span style="color: hsl(120, 100%, 40%);">+                LOGC(DDEV, ALERT) << "Requested non-existent channel " << chan;</span><br><span>                return false;</span><br><span>        }</span><br><span> </span><br><span>        avail = usrp_dev->get_tx_antennas(chan);</span><br><span>  if (std::find(avail.begin(), avail.end(), ant) == avail.end()) {</span><br><span style="color: hsl(0, 100%, 40%);">-                LOG(ALERT) << "Requested non-existent Tx antenna " << ant << " on channel " << chan;</span><br><span style="color: hsl(0, 100%, 40%);">-                LOG(INFO) << "Available Tx antennas: ";</span><br><span style="color: hsl(120, 100%, 40%);">+               LOGC(DDEV, ALERT) << "Requested non-existent Tx antenna " << ant << " on channel " << chan;</span><br><span style="color: hsl(120, 100%, 40%);">+               LOGC(DDEV, INFO) << "Available Tx antennas: ";</span><br><span>               for (std::vector<std::string>::const_iterator i = avail.begin(); i != avail.end(); ++i)</span><br><span style="color: hsl(0, 100%, 40%);">-                   LOG(INFO) << "- '" << *i << "'";</span><br><span style="color: hsl(120, 100%, 40%);">+                        LOGC(DDEV, INFO) << "- '" << *i << "'";</span><br><span>                return false;</span><br><span>        }</span><br><span>    usrp_dev->set_tx_antenna(ant, chan);</span><br><span>      tx_paths[chan] = usrp_dev->get_tx_antenna(chan);</span><br><span> </span><br><span>      if (ant != tx_paths[chan]) {</span><br><span style="color: hsl(0, 100%, 40%);">-            LOG(ALERT) << "Failed setting antenna " << ant << " on channel " << chan << ", got instead " << tx_paths[chan];</span><br><span style="color: hsl(120, 100%, 40%);">+             LOGC(DDEV, ALERT) << "Failed setting antenna " << ant << " on channel " << chan << ", got instead " << tx_paths[chan];</span><br><span>             return false;</span><br><span>        }</span><br><span> </span><br><span>@@ -1242,7 +1242,7 @@</span><br><span> std::string uhd_device::getTxAntenna(size_t chan)</span><br><span> {</span><br><span>      if (chan >= tx_paths.size()) {</span><br><span style="color: hsl(0, 100%, 40%);">-               LOG(ALERT) << "Requested non-existent channel " << chan;</span><br><span style="color: hsl(120, 100%, 40%);">+                LOGC(DDEV, ALERT) << "Requested non-existent channel " << chan;</span><br><span>                return "";</span><br><span>         }</span><br><span>    return usrp_dev->get_tx_antenna(chan);</span><br><span>@@ -1310,7 +1310,7 @@</span><br><span> </span><br><span>                if ((md.event_code != uhd::async_metadata_t::EVENT_CODE_UNDERFLOW) &&</span><br><span>                    (md.event_code != uhd::async_metadata_t::EVENT_CODE_TIME_ERROR)) {</span><br><span style="color: hsl(0, 100%, 40%);">-                  LOG(ERR) << str_code(md);</span><br><span style="color: hsl(120, 100%, 40%);">+                       LOGC(DDEV, ERR) << str_code(md);</span><br><span>               }</span><br><span>    }</span><br><span> </span><br><span>@@ -1470,15 +1470,15 @@</span><br><span>              return ERROR_TIMESTAMP;</span><br><span> </span><br><span>  if (timestamp < time_end) {</span><br><span style="color: hsl(0, 100%, 40%);">-          LOG(ERR) << "Overwriting old buffer data: timestamp="<<timestamp<<" time_end="<<time_end;</span><br><span style="color: hsl(120, 100%, 40%);">+         LOGC(DDEV, ERR) << "Overwriting old buffer data: timestamp="<<timestamp<<" time_end="<<time_end;</span><br><span>                 uhd::time_spec_t ts = uhd::time_spec_t::from_ticks(timestamp, clk_rt);</span><br><span style="color: hsl(0, 100%, 40%);">-          LOG(DEBUG) << "Requested timestamp = " << timestamp << " (real_sec=" << std::fixed << ts.get_real_secs() << " = " << ts.to_ticks(clk_rt) << ") rate=" << clk_rt;</span><br><span style="color: hsl(120, 100%, 40%);">+                LOGC(DDEV, DEBUG) << "Requested timestamp = " << timestamp << " (real_sec=" << std::fixed << ts.get_real_secs() << " = " << ts.to_ticks(clk_rt) << ") rate=" << clk_rt;</span><br><span>                // Do not return error here, because it's a rounding error and is not fatal</span><br><span>      }</span><br><span>    if (timestamp > time_end && time_end != 0) {</span><br><span style="color: hsl(0, 100%, 40%);">-         LOG(ERR) << "Skipping buffer data: timestamp="<<timestamp<<" time_end="<<time_end;</span><br><span style="color: hsl(120, 100%, 40%);">+                LOGC(DDEV, ERR) << "Skipping buffer data: timestamp="<<timestamp<<" time_end="<<time_end;</span><br><span>                uhd::time_spec_t ts = uhd::time_spec_t::from_ticks(timestamp, clk_rt);</span><br><span style="color: hsl(0, 100%, 40%);">-          LOG(DEBUG) << "Requested timestamp = " << timestamp << " (real_sec=" << std::fixed << ts.get_real_secs() << " = " << ts.to_ticks(clk_rt) << ") rate=" << clk_rt;</span><br><span style="color: hsl(120, 100%, 40%);">+                LOGC(DDEV, DEBUG) << "Requested timestamp = " << timestamp << " (real_sec=" << std::fixed << ts.get_real_secs() << " = " << ts.to_ticks(clk_rt) << ") rate=" << clk_rt;</span><br><span>                // Do not return error here, because it's a rounding error and is not fatal</span><br><span>      }</span><br><span> </span><br><span>diff --git a/Transceiver52M/device/usrp1/USRPDevice.cpp b/Transceiver52M/device/usrp1/USRPDevice.cpp</span><br><span>index 5705e22..758ee55 100644</span><br><span>--- a/Transceiver52M/device/usrp1/USRPDevice.cpp</span><br><span>+++ b/Transceiver52M/device/usrp1/USRPDevice.cpp</span><br><span>@@ -64,7 +64,7 @@</span><br><span>                      const std::vector<std::string>& rx_paths):</span><br><span>          RadioDevice(tx_sps, rx_sps, iface, chans, lo_offset, tx_paths, rx_paths)</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">-  LOG(INFO) << "creating USRP device...";</span><br><span style="color: hsl(120, 100%, 40%);">+  LOGC(DDEV, INFO) << "creating USRP device...";</span><br><span> </span><br><span>   decimRate = (unsigned int) round(masterClockRate/((GSMRATE) * (double) tx_sps));</span><br><span>   actualSampleRate = masterClockRate/decimRate;</span><br><span>@@ -95,7 +95,7 @@</span><br><span> {</span><br><span>   writeLock.unlock();</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-  LOG(INFO) << "opening USRP device..";</span><br><span style="color: hsl(120, 100%, 40%);">+  LOGC(DDEV, INFO) << "opening USRP device..";</span><br><span> #ifndef SWLOOPBACK</span><br><span>   string rbf = "std_inband.rbf";</span><br><span>   //string rbf = "inband_1rxhb_1tx.rbf";</span><br><span>@@ -110,14 +110,14 @@</span><br><span>   }</span><br><span> </span><br><span>   catch(...) {</span><br><span style="color: hsl(0, 100%, 40%);">-    LOG(ALERT) << "make failed on Rx";</span><br><span style="color: hsl(120, 100%, 40%);">+    LOGC(DDEV, ALERT) << "make failed on Rx";</span><br><span>     m_uRx.reset();</span><br><span>     return -1;</span><br><span>   }</span><br><span> </span><br><span>   if (m_uRx->fpga_master_clock_freq() != masterClockRate)</span><br><span>   {</span><br><span style="color: hsl(0, 100%, 40%);">-    LOG(ALERT) << "WRONG FPGA clock freq = " << m_uRx->fpga_master_clock_freq()</span><br><span style="color: hsl(120, 100%, 40%);">+    LOGC(DDEV, ALERT) << "WRONG FPGA clock freq = " << m_uRx->fpga_master_clock_freq()</span><br><span>                << ", desired clock freq = " << masterClockRate;</span><br><span>     m_uRx.reset();</span><br><span>     return -1;</span><br><span>@@ -132,14 +132,14 @@</span><br><span>   }</span><br><span> </span><br><span>   catch(...) {</span><br><span style="color: hsl(0, 100%, 40%);">-    LOG(ALERT) << "make failed on Tx";</span><br><span style="color: hsl(120, 100%, 40%);">+    LOGC(DDEV, ALERT) << "make failed on Tx";</span><br><span>     m_uTx.reset();</span><br><span>     return -1;</span><br><span>   }</span><br><span> </span><br><span>   if (m_uTx->fpga_master_clock_freq() != masterClockRate)</span><br><span>   {</span><br><span style="color: hsl(0, 100%, 40%);">-    LOG(ALERT) << "WRONG FPGA clock freq = " << m_uTx->fpga_master_clock_freq()</span><br><span style="color: hsl(120, 100%, 40%);">+    LOGC(DDEV, ALERT) << "WRONG FPGA clock freq = " << m_uTx->fpga_master_clock_freq()</span><br><span>                << ", desired clock freq = " << masterClockRate;</span><br><span>     m_uTx.reset();</span><br><span>     return -1;</span><br><span>@@ -186,7 +186,7 @@</span><br><span> </span><br><span> bool USRPDevice::start()</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">-  LOG(INFO) << "starting USRP...";</span><br><span style="color: hsl(120, 100%, 40%);">+  LOGC(DDEV, INFO) << "starting USRP...";</span><br><span> #ifndef SWLOOPBACK</span><br><span>   if (!m_uRx && !skipRx) return false;</span><br><span>   if (!m_uTx) return false;</span><br><span>@@ -270,7 +270,7 @@</span><br><span> double USRPDevice::setTxGain(double dB, size_t chan)</span><br><span> {</span><br><span>   if (chan) {</span><br><span style="color: hsl(0, 100%, 40%);">-    LOG(ALERT) << "Invalid channel " << chan;</span><br><span style="color: hsl(120, 100%, 40%);">+    LOGC(DDEV, ALERT) << "Invalid channel " << chan;</span><br><span>     return 0.0;</span><br><span>   }</span><br><span> </span><br><span>@@ -280,10 +280,10 @@</span><br><span>   if (dB < minTxGain())</span><br><span>     dB = minTxGain();</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-  LOG(NOTICE) << "Setting TX gain to " << dB << " dB.";</span><br><span style="color: hsl(120, 100%, 40%);">+  LOGC(DDEV, NOTICE) << "Setting TX gain to " << dB << " dB.";</span><br><span> </span><br><span>   if (!m_dbTx->set_gain(dB))</span><br><span style="color: hsl(0, 100%, 40%);">-    LOG(ERR) << "Error setting TX gain";</span><br><span style="color: hsl(120, 100%, 40%);">+    LOGC(DDEV, ERR) << "Error setting TX gain";</span><br><span> </span><br><span>   writeLock.unlock();</span><br><span> </span><br><span>@@ -294,7 +294,7 @@</span><br><span> double USRPDevice::setRxGain(double dB, size_t chan)</span><br><span> {</span><br><span>   if (chan) {</span><br><span style="color: hsl(0, 100%, 40%);">-    LOG(ALERT) << "Invalid channel " << chan;</span><br><span style="color: hsl(120, 100%, 40%);">+    LOGC(DDEV, ALERT) << "Invalid channel " << chan;</span><br><span>     return 0.0;</span><br><span>   }</span><br><span> </span><br><span>@@ -306,10 +306,10 @@</span><br><span>   if (dB < minRxGain())</span><br><span>     dB = minRxGain();</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-  LOG(NOTICE) << "Setting RX gain to " << dB << " dB.";</span><br><span style="color: hsl(120, 100%, 40%);">+  LOGC(DDEV, NOTICE) << "Setting RX gain to " << dB << " dB.";</span><br><span> </span><br><span>   if (!m_dbRx->set_gain(dB))</span><br><span style="color: hsl(0, 100%, 40%);">-    LOG(ERR) << "Error setting RX gain";</span><br><span style="color: hsl(120, 100%, 40%);">+    LOGC(DDEV, ERR) << "Error setting RX gain";</span><br><span> </span><br><span>   writeLock.unlock();</span><br><span> </span><br><span>@@ -319,40 +319,40 @@</span><br><span> bool USRPDevice::setRxAntenna(const std::string &ant, size_t chan)</span><br><span> {</span><br><span>       if (chan >= rx_paths.size()) {</span><br><span style="color: hsl(0, 100%, 40%);">-               LOG(ALERT) << "Requested non-existent channel " << chan;</span><br><span style="color: hsl(120, 100%, 40%);">+                LOGC(DDEV, ALERT) << "Requested non-existent channel " << chan;</span><br><span>                return false;</span><br><span>        }</span><br><span style="color: hsl(0, 100%, 40%);">-       LOG(ALERT) << "Not implemented";</span><br><span style="color: hsl(120, 100%, 40%);">+      LOGC(DDEV, ALERT) << "Not implemented";</span><br><span>      return true;</span><br><span> }</span><br><span> </span><br><span> std::string USRPDevice::getRxAntenna(size_t chan)</span><br><span> {</span><br><span>      if (chan >= rx_paths.size()) {</span><br><span style="color: hsl(0, 100%, 40%);">-               LOG(ALERT) << "Requested non-existent channel " << chan;</span><br><span style="color: hsl(120, 100%, 40%);">+                LOGC(DDEV, ALERT) << "Requested non-existent channel " << chan;</span><br><span>                return "";</span><br><span>         }</span><br><span style="color: hsl(0, 100%, 40%);">-       LOG(ALERT) << "Not implemented";</span><br><span style="color: hsl(120, 100%, 40%);">+      LOGC(DDEV, ALERT) << "Not implemented";</span><br><span>      return "";</span><br><span> }</span><br><span> </span><br><span> bool USRPDevice::setTxAntenna(const std::string &ant, size_t chan)</span><br><span> {</span><br><span>         if (chan >= tx_paths.size()) {</span><br><span style="color: hsl(0, 100%, 40%);">-               LOG(ALERT) << "Requested non-existent channel " << chan;</span><br><span style="color: hsl(120, 100%, 40%);">+                LOGC(DDEV, ALERT) << "Requested non-existent channel " << chan;</span><br><span>                return false;</span><br><span>        }</span><br><span style="color: hsl(0, 100%, 40%);">-       LOG(ALERT) << "Not implemented";</span><br><span style="color: hsl(120, 100%, 40%);">+      LOGC(DDEV, ALERT) << "Not implemented";</span><br><span>      return true;</span><br><span> }</span><br><span> </span><br><span> std::string USRPDevice::getTxAntenna(size_t chan)</span><br><span> {</span><br><span>      if (chan >= tx_paths.size()) {</span><br><span style="color: hsl(0, 100%, 40%);">-               LOG(ALERT) << "Requested non-existent channel " << chan;</span><br><span style="color: hsl(120, 100%, 40%);">+                LOGC(DDEV, ALERT) << "Requested non-existent channel " << chan;</span><br><span>                return "";</span><br><span>         }</span><br><span style="color: hsl(0, 100%, 40%);">-       LOG(ALERT) << "Not implemented";</span><br><span style="color: hsl(120, 100%, 40%);">+      LOGC(DDEV, ALERT) << "Not implemented";</span><br><span>      return "";</span><br><span> }</span><br><span> </span><br><span>@@ -405,11 +405,11 @@</span><br><span>       uint32_t word0 = usrp_to_host_u32(tmpBuf[0]);</span><br><span>       uint32_t chan = (word0 >> 16) & 0x1f;</span><br><span>       unsigned payloadSz = word0 & 0x1ff;</span><br><span style="color: hsl(0, 100%, 40%);">-      LOG(DEBUG) << "first two bytes: " << hex << word0 << " " << dec << pktTimestamp;</span><br><span style="color: hsl(120, 100%, 40%);">+      LOGC(DDEV, DEBUG) << "first two bytes: " << hex << word0 << " " << dec << pktTimestamp;</span><br><span> </span><br><span>       bool incrementHi32 = ((lastPktTimestamp & 0x0ffffffffll) > pktTimestamp);</span><br><span>       if (incrementHi32 && (timeStart!=0)) {</span><br><span style="color: hsl(0, 100%, 40%);">-           LOG(DEBUG) << "high 32 increment!!!";</span><br><span style="color: hsl(120, 100%, 40%);">+           LOGC(DDEV, DEBUG) << "high 32 increment!!!";</span><br><span>            hi32Timestamp++;</span><br><span>       }</span><br><span>       pktTimestamp = (((TIMESTAMP) hi32Timestamp) << 32) | pktTimestamp;</span><br><span>@@ -421,19 +421,19 @@</span><br><span>       if ((word2 >> 16) == ((0x01 << 8) | 0x02)) {</span><br><span>           timestamp -= timestampOffset;</span><br><span>    timestampOffset = pktTimestamp - pingTimestamp + pingOffset;</span><br><span style="color: hsl(0, 100%, 40%);">-    LOG(DEBUG) << "updating timestamp offset to: " << timestampOffset;</span><br><span style="color: hsl(120, 100%, 40%);">+      LOGC(DDEV, DEBUG) << "updating timestamp offset to: " << timestampOffset;</span><br><span>           timestamp += timestampOffset;</span><br><span>           isAligned = true;</span><br><span>  }</span><br><span>    continue;</span><br><span>       }</span><br><span>       if (chan != 0) {</span><br><span style="color: hsl(0, 100%, 40%);">-  LOG(DEBUG) << "chan: " << chan << ", timestamp: " << pktTimestamp << ", sz:" << payloadSz;</span><br><span style="color: hsl(120, 100%, 40%);">+  LOGC(DDEV, DEBUG) << "chan: " << chan << ", timestamp: " << pktTimestamp << ", sz:" << payloadSz;</span><br><span>  continue;</span><br><span>       }</span><br><span>       if ((word0 >> 28) & 0x04) {</span><br><span>  if (underrun) *underrun = true;</span><br><span style="color: hsl(0, 100%, 40%);">- LOG(DEBUG) << "UNDERRUN in TRX->USRP interface";</span><br><span style="color: hsl(120, 100%, 40%);">+   LOGC(DDEV, DEBUG) << "UNDERRUN in TRX->USRP interface";</span><br><span>       }</span><br><span>       if (RSSI) *RSSI = (word0 >> 21) & 0x3f;</span><br><span> </span><br><span>@@ -454,7 +454,7 @@</span><br><span>       if (pktTimestamp + payloadSz/2/sizeof(short) > timeEnd)</span><br><span>       timeEnd = pktTimestamp+payloadSz/2/sizeof(short);</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">-      LOG(DEBUG) << "timeStart: " << timeStart << ", timeEnd: " << timeEnd << ", pktTimestamp: " << pktTimestamp;</span><br><span style="color: hsl(120, 100%, 40%);">+      LOGC(DDEV, DEBUG) << "timeStart: " << timeStart << ", timeEnd: " << timeEnd << ", pktTimestamp: " << pktTimestamp;</span><br><span> </span><br><span>     }</span><br><span>   }</span><br><span>@@ -462,14 +462,14 @@</span><br><span>   // copy desired data to buf</span><br><span>   unsigned bufStart = dataStart+(timestamp-timeStart);</span><br><span>   if (bufStart + len < currDataSize/2) {</span><br><span style="color: hsl(0, 100%, 40%);">-    LOG(DEBUG) << "bufStart: " << bufStart;</span><br><span style="color: hsl(120, 100%, 40%);">+    LOGC(DDEV, DEBUG) << "bufStart: " << bufStart;</span><br><span>     memcpy(buf,data+bufStart*2,len*2*sizeof(short));</span><br><span>     memset(data+bufStart*2,0,len*2*sizeof(short));</span><br><span>   }</span><br><span>   else {</span><br><span style="color: hsl(0, 100%, 40%);">-    LOG(DEBUG) << "len: " << len << ", currDataSize/2: " << currDataSize/2 << ", bufStart: " << bufStart;</span><br><span style="color: hsl(120, 100%, 40%);">+    LOGC(DDEV, DEBUG) << "len: " << len << ", currDataSize/2: " << currDataSize/2 << ", bufStart: " << bufStart;</span><br><span>     unsigned firstLength = (currDataSize/2-bufStart);</span><br><span style="color: hsl(0, 100%, 40%);">-    LOG(DEBUG) << "firstLength: " << firstLength;</span><br><span style="color: hsl(120, 100%, 40%);">+    LOGC(DDEV, DEBUG) << "firstLength: " << firstLength;</span><br><span>     memcpy(buf,data+bufStart*2,firstLength*2*sizeof(short));</span><br><span>     memset(data+bufStart*2,0,firstLength*2*sizeof(short));</span><br><span>     memcpy(buf+firstLength*2,data,(len-firstLength)*2*sizeof(short));</span><br><span>@@ -599,19 +599,19 @@</span><br><span>   usrp_tune_result result;</span><br><span> </span><br><span>   if (chan) {</span><br><span style="color: hsl(0, 100%, 40%);">-    LOG(ALERT) << "Invalid channel " << chan;</span><br><span style="color: hsl(120, 100%, 40%);">+    LOGC(DDEV, ALERT) << "Invalid channel " << chan;</span><br><span>     return false;</span><br><span>   }</span><br><span> </span><br><span>   if (m_uTx->tune(txSubdevSpec.side, m_dbTx, wFreq, &result)) {</span><br><span style="color: hsl(0, 100%, 40%);">-    LOG(INFO) << "set TX: " << wFreq << std::endl</span><br><span style="color: hsl(120, 100%, 40%);">+    LOGC(DDEV, INFO) << "set TX: " << wFreq << std::endl</span><br><span>               << "    baseband freq: " << result.baseband_freq << std::endl</span><br><span>               << "    DDC freq:      " << result.dxc_freq << std::endl</span><br><span>               << "    residual freq: " << result.residual_freq;</span><br><span>     return true;</span><br><span>   }</span><br><span>   else {</span><br><span style="color: hsl(0, 100%, 40%);">-    LOG(ALERT) << "set TX: " << wFreq << "failed" << std::endl</span><br><span style="color: hsl(120, 100%, 40%);">+    LOGC(DDEV, ALERT) << "set TX: " << wFreq << "failed" << std::endl</span><br><span>                << "    baseband freq: " << result.baseband_freq << std::endl</span><br><span>                << "    DDC freq:      " << result.dxc_freq << std::endl</span><br><span>                << "    residual freq: " << result.residual_freq;</span><br><span>@@ -624,19 +624,19 @@</span><br><span>   usrp_tune_result result;</span><br><span> </span><br><span>   if (chan) {</span><br><span style="color: hsl(0, 100%, 40%);">-    LOG(ALERT) << "Invalid channel " << chan;</span><br><span style="color: hsl(120, 100%, 40%);">+    LOGC(DDEV, ALERT) << "Invalid channel " << chan;</span><br><span>     return false;</span><br><span>   }</span><br><span> </span><br><span>   if (m_uRx->tune(0, m_dbRx, wFreq, &result)) {</span><br><span style="color: hsl(0, 100%, 40%);">-    LOG(INFO) << "set RX: " << wFreq << std::endl</span><br><span style="color: hsl(120, 100%, 40%);">+    LOGC(DDEV, INFO) << "set RX: " << wFreq << std::endl</span><br><span>               << "    baseband freq: " << result.baseband_freq << std::endl</span><br><span>               << "    DDC freq:      " << result.dxc_freq << std::endl</span><br><span>               << "    residual freq: " << result.residual_freq;</span><br><span>     return true;</span><br><span>   }</span><br><span>   else {</span><br><span style="color: hsl(0, 100%, 40%);">-    LOG(ALERT) << "set RX: " << wFreq << "failed" << std::endl</span><br><span style="color: hsl(120, 100%, 40%);">+    LOGC(DDEV, ALERT) << "set RX: " << wFreq << "failed" << std::endl</span><br><span>                << "    baseband freq: " << result.baseband_freq << std::endl</span><br><span>                << "    DDC freq:      " << result.dxc_freq << std::endl</span><br><span>                << "    residual freq: " << result.residual_freq;</span><br><span>@@ -656,15 +656,15 @@</span><br><span>                            const std::vector<std::string>& rx_paths)</span><br><span> {</span><br><span>      if (tx_sps != rx_sps) {</span><br><span style="color: hsl(0, 100%, 40%);">-         LOG(ERROR) << "USRP1 requires tx_sps == rx_sps";</span><br><span style="color: hsl(120, 100%, 40%);">+              LOGC(DDEV, ERROR) << "USRP1 requires tx_sps == rx_sps";</span><br><span>              return NULL;</span><br><span>         }</span><br><span>    if (chans != 1) {</span><br><span style="color: hsl(0, 100%, 40%);">-               LOG(ERROR) << "USRP1 supports only 1 channel";</span><br><span style="color: hsl(120, 100%, 40%);">+                LOGC(DDEV, ERROR) << "USRP1 supports only 1 channel";</span><br><span>                return NULL;</span><br><span>         }</span><br><span>    if (lo_offset != 0.0) {</span><br><span style="color: hsl(0, 100%, 40%);">-         LOG(ERROR) << "USRP1 doesn't support lo_offset";</span><br><span style="color: hsl(120, 100%, 40%);">+          LOGC(DDEV, ERROR) << "USRP1 doesn't support lo_offset";</span><br><span>          return NULL;</span><br><span>         }</span><br><span>    return new USRPDevice(tx_sps, rx_sps, iface, chans, lo_offset, tx_paths, rx_paths);</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/10496">change 10496</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/10496"/><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: newchange </div>
<div style="display:none"> Gerrit-Change-Id: I844fe4a75bf277cd3cc5bd8fa06e06ad97b2ea95 </div>
<div style="display:none"> Gerrit-Change-Number: 10496 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: Harald Welte <laforge@gnumonks.org> </div>