From beb713da9291ae1d2a793a4a13dfdd4fc9c8e104 Mon Sep 17 00:00:00 2001 From: Derek Kozel Date: Thu, 3 Nov 2016 15:46:47 -0700 Subject: X300: Check dboard time property before subscribing If a daughterboard does not have a time/cmd property then no subscriber should be added to the motherboard time/cmd property. --- host/lib/usrp/x300/x300_radio_ctrl_impl.cpp | 11 ++++++----- host/lib/usrp/x300/x300_radio_ctrl_impl.hpp | 2 +- 2 files changed, 7 insertions(+), 6 deletions(-) (limited to 'host/lib') diff --git a/host/lib/usrp/x300/x300_radio_ctrl_impl.cpp b/host/lib/usrp/x300/x300_radio_ctrl_impl.cpp index 991b97696..0a57e337e 100644 --- a/host/lib/usrp/x300/x300_radio_ctrl_impl.cpp +++ b/host/lib/usrp/x300/x300_radio_ctrl_impl.cpp @@ -125,9 +125,10 @@ UHD_RFNOC_RADIO_BLOCK_CONSTRUCTOR(x300_radio_ctrl) // Bind the daughterboard command time to the motherboard level property //////////////////////////////////////////////////////////////// - if (_tree->exists(fs_path("time") / "cmd")) { + if (_tree->exists(fs_path("time") / "cmd") and + _tree->exists(fs_path("dboards" / _radio_slot / "rx_frontends" / _rx_fe_map.at(i).db_fe_name / "time" / "cmd"))) { _tree->access(fs_path("time") / "cmd") - .add_coerced_subscriber(boost::bind(&x300_radio_ctrl_impl::set_fe_cmd_time, this, _1, i)); + .add_coerced_subscriber(boost::bind(&x300_radio_ctrl_impl::set_fe_cmd_time, this, _1, i)); } } @@ -172,11 +173,11 @@ double x300_radio_ctrl_impl::set_rate(double /* rate */) return get_rate(); } -time_spec_t x300_radio_ctrl_impl::set_fe_cmd_time(const time_spec_t &time, const size_t chan) +void x300_radio_ctrl_impl::set_fe_cmd_time(const time_spec_t &time, const size_t chan) { - return _tree->access( + _tree->access( fs_path("dboards" / _radio_slot / "rx_frontends" / _rx_fe_map.at(chan).db_fe_name / "time" / "cmd") - ).set(time).get(); + ).set(time); } void x300_radio_ctrl_impl::set_tx_antenna(const std::string &ant, const size_t chan) diff --git a/host/lib/usrp/x300/x300_radio_ctrl_impl.hpp b/host/lib/usrp/x300/x300_radio_ctrl_impl.hpp index 5b9d47841..73640af01 100644 --- a/host/lib/usrp/x300/x300_radio_ctrl_impl.hpp +++ b/host/lib/usrp/x300/x300_radio_ctrl_impl.hpp @@ -161,7 +161,7 @@ private: void set_rx_fe_corrections(const uhd::fs_path &db_path, const uhd::fs_path &rx_fe_corr_path, const double lo_freq); void set_tx_fe_corrections(const uhd::fs_path &db_path, const uhd::fs_path &tx_fe_corr_path, const double lo_freq); - time_spec_t set_fe_cmd_time(const time_spec_t &time, const size_t chan); + void set_fe_cmd_time(const time_spec_t &time, const size_t chan); private: // members enum radio_connection_t { PRIMARY, SECONDARY }; -- cgit v1.2.3