aboutsummaryrefslogtreecommitdiffstats
path: root/Transceiver52M/UHDDevice.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Transceiver52M/UHDDevice.cpp')
-rw-r--r--Transceiver52M/UHDDevice.cpp26
1 files changed, 26 insertions, 0 deletions
diff --git a/Transceiver52M/UHDDevice.cpp b/Transceiver52M/UHDDevice.cpp
index cc90d73..261eabc 100644
--- a/Transceiver52M/UHDDevice.cpp
+++ b/Transceiver52M/UHDDevice.cpp
@@ -24,6 +24,7 @@
#include "Logger.h"
#include <uhd/usrp/single_usrp.hpp>
#include <uhd/utils/thread_priority.hpp>
+#include <uhd/utils/msg.hpp>
#ifdef HAVE_CONFIG_H
#include "config.h"
@@ -240,6 +241,28 @@ void *async_event_loop(uhd_device *dev)
}
}
+/*
+ Catch and drop underrun 'U' and overrun 'O' messages from stdout
+ since we already report using the logging facility. Direct
+ everything else appropriately.
+ */
+void uhd_msg_handler(uhd::msg::type_t type, const std::string &msg)
+{
+ switch (type) {
+ case uhd::msg::status:
+ LOG(INFO) << msg;
+ break;
+ case uhd::msg::warning:
+ LOG(WARN) << msg;
+ break;
+ case uhd::msg::error:
+ LOG(ERROR) << msg;
+ break;
+ case uhd::msg::fastpath:
+ break;
+ }
+}
+
uhd_device::uhd_device(double rate, bool skip_rx)
: desired_smpl_rt(rate), actual_smpl_rt(0),
tx_gain(0.0), tx_gain_min(0.0), tx_gain_max(0.0),
@@ -352,6 +375,9 @@ bool uhd_device::open()
{
LOG(INFO) << "creating USRP device...";
+ // Register msg handler
+ uhd::msg::register_handler(&uhd_msg_handler);
+
// Allow all UHD devices
uhd::device_addr_t dev_addr("");
try {