From 03e49fc9ab68e3a07a9fe1fb62fddfb94695c32a Mon Sep 17 00:00:00 2001 From: Martin Braun Date: Wed, 30 Apr 2014 14:19:21 +0200 Subject: multi_usrp: Throws warnings for some tree props Until now, multi would simply access some property and assume it exists. A call for set_tx_dc_offset() on a B210 would thus throw errors. This checks for B-series-only leaf nodes before doing anything and displays a warning instead. --- host/lib/usrp/multi_usrp.cpp | 30 +++++++++++++++++++++++++----- 1 file changed, 25 insertions(+), 5 deletions(-) diff --git a/host/lib/usrp/multi_usrp.cpp b/host/lib/usrp/multi_usrp.cpp index 166b0cb37..71b1f8995 100644 --- a/host/lib/usrp/multi_usrp.cpp +++ b/host/lib/usrp/multi_usrp.cpp @@ -747,7 +747,11 @@ public: void set_rx_dc_offset(const bool enb, size_t chan){ if (chan != ALL_CHANS){ - _tree->access(rx_fe_root(chan) / "dc_offset" / "enable").set(enb); + if (_tree->exists(rx_fe_root(chan) / "dc_offset" / "enable")) { + _tree->access(rx_fe_root(chan) / "dc_offset" / "enable").set(enb); + } else { + UHD_MSG(warning) << "Setting DC offset compensation is not possible on this device." << std::endl; + } return; } for (size_t c = 0; c < get_rx_num_channels(); c++){ @@ -757,7 +761,11 @@ public: void set_rx_dc_offset(const std::complex &offset, size_t chan){ if (chan != ALL_CHANS){ - _tree->access >(rx_fe_root(chan) / "dc_offset" / "value").set(offset); + if (_tree->exists(rx_fe_root(chan) / "dc_offset" / "value")) { + _tree->access >(rx_fe_root(chan) / "dc_offset" / "value").set(offset); + } else { + UHD_MSG(warning) << "Setting DC offset is not possible on this device." << std::endl; + } return; } for (size_t c = 0; c < get_rx_num_channels(); c++){ @@ -767,7 +775,11 @@ public: void set_rx_iq_balance(const std::complex &offset, size_t chan){ if (chan != ALL_CHANS){ - _tree->access >(rx_fe_root(chan) / "iq_balance" / "value").set(offset); + if (_tree->exists(rx_fe_root(chan) / "iq_balance" / "value")) { + _tree->access >(rx_fe_root(chan) / "iq_balance" / "value").set(offset); + } else { + UHD_MSG(warning) << "Setting IQ balance is not possible on this device." << std::endl; + } return; } for (size_t c = 0; c < get_rx_num_channels(); c++){ @@ -933,7 +945,11 @@ public: void set_tx_dc_offset(const std::complex &offset, size_t chan){ if (chan != ALL_CHANS){ - _tree->access >(tx_fe_root(chan) / "dc_offset" / "value").set(offset); + if (_tree->exists(tx_fe_root(chan) / "dc_offset" / "value")) { + _tree->access >(tx_fe_root(chan) / "dc_offset" / "value").set(offset); + } else { + UHD_MSG(warning) << "Setting DC offset is not possible on this device." << std::endl; + } return; } for (size_t c = 0; c < get_tx_num_channels(); c++){ @@ -943,7 +959,11 @@ public: void set_tx_iq_balance(const std::complex &offset, size_t chan){ if (chan != ALL_CHANS){ - _tree->access >(tx_fe_root(chan) / "iq_balance" / "value").set(offset); + if (_tree->exists(tx_fe_root(chan) / "iq_balance" / "value")) { + _tree->access >(tx_fe_root(chan) / "iq_balance" / "value").set(offset); + } else { + UHD_MSG(warning) << "Setting IQ balance is not possible on this device." << std::endl; + } return; } for (size_t c = 0; c < get_tx_num_channels(); c++){ -- cgit v1.2.3 From f8fbc2f2bc03b61cedc7bd20f4b7b59063a74bbf Mon Sep 17 00:00:00 2001 From: Nicholas Corgan Date: Mon, 28 Apr 2014 07:51:44 -0700 Subject: msg_task: return std::vector instead of std::vector --- host/include/uhd/utils/msg_task.hpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/host/include/uhd/utils/msg_task.hpp b/host/include/uhd/utils/msg_task.hpp index 40ee65cb1..21c47a240 100644 --- a/host/include/uhd/utils/msg_task.hpp +++ b/host/include/uhd/utils/msg_task.hpp @@ -1,5 +1,5 @@ // -// Copyright 2011-2013 Ettus Research LLC +// Copyright 2011-2014 Ettus Research LLC // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by @@ -48,7 +48,7 @@ namespace uhd{ memcpy(&v.front(), p, n); return v; } - return std::vector(); + return std::vector(); } /*! -- cgit v1.2.3