diff options
-rw-r--r-- | host/include/uhd/device.hpp | 4 | ||||
-rw-r--r-- | host/lib/usrp/b100/b100_impl.hpp | 3 | ||||
-rw-r--r-- | host/lib/usrp/e100/e100_impl.hpp | 3 | ||||
-rw-r--r-- | host/lib/usrp/usrp1/usrp1_impl.hpp | 3 | ||||
-rw-r--r-- | host/lib/usrp/usrp2/usrp2_impl.hpp | 3 | ||||
-rw-r--r-- | host/utils/uhd_usrp_probe.cpp | 2 | ||||
-rw-r--r-- | host/utils/usrp1_init_eeprom.cpp | 2 | ||||
-rw-r--r-- | host/utils/usrp_burn_db_eeprom.cpp | 2 |
8 files changed, 19 insertions, 3 deletions
diff --git a/host/include/uhd/device.hpp b/host/include/uhd/device.hpp index 50237472b..40969c29c 100644 --- a/host/include/uhd/device.hpp +++ b/host/include/uhd/device.hpp @@ -19,6 +19,7 @@ #define INCLUDED_UHD_DEVICE_HPP #include <uhd/config.hpp> +#include <uhd/property_tree.hpp> #include <uhd/types/device_addr.hpp> #include <uhd/types/metadata.hpp> #include <uhd/types/io_type.hpp> @@ -197,6 +198,9 @@ public: async_metadata_t &async_metadata, double timeout = 0.1 ) = 0; + //! Get access to the underlying property structure + virtual property_tree::sptr get_tree(void) const = 0; + }; } //namespace uhd diff --git a/host/lib/usrp/b100/b100_impl.hpp b/host/lib/usrp/b100/b100_impl.hpp index 62a22674e..26f363479 100644 --- a/host/lib/usrp/b100/b100_impl.hpp +++ b/host/lib/usrp/b100/b100_impl.hpp @@ -113,6 +113,9 @@ private: void get(const wax::obj &, wax::obj &val){ val = _tree; //entry point into property tree } + uhd::property_tree::sptr get_tree(void) const{ + return _tree; + } void check_fw_compat(void); void check_fpga_compat(void); diff --git a/host/lib/usrp/e100/e100_impl.hpp b/host/lib/usrp/e100/e100_impl.hpp index e24360223..d60d6a63c 100644 --- a/host/lib/usrp/e100/e100_impl.hpp +++ b/host/lib/usrp/e100/e100_impl.hpp @@ -113,6 +113,9 @@ private: void get(const wax::obj &, wax::obj &val){ val = _tree; //entry point into property tree } + uhd::property_tree::sptr get_tree(void) const{ + return _tree; + } double update_rx_codec_gain(const double); //sets A and B at once void set_mb_eeprom(const uhd::usrp::mboard_eeprom_t &); diff --git a/host/lib/usrp/usrp1/usrp1_impl.hpp b/host/lib/usrp/usrp1/usrp1_impl.hpp index 1fe0c1784..261223883 100644 --- a/host/lib/usrp/usrp1/usrp1_impl.hpp +++ b/host/lib/usrp/usrp1/usrp1_impl.hpp @@ -79,6 +79,9 @@ private: void get(const wax::obj &, wax::obj &val){ val = _tree; //entry point into property tree } + uhd::property_tree::sptr get_tree(void) const{ + return _tree; + } //controllers uhd::usrp::fx2_ctrl::sptr _fx2_ctrl; diff --git a/host/lib/usrp/usrp2/usrp2_impl.hpp b/host/lib/usrp/usrp2/usrp2_impl.hpp index 644eab824..cdbcc895f 100644 --- a/host/lib/usrp/usrp2/usrp2_impl.hpp +++ b/host/lib/usrp/usrp2/usrp2_impl.hpp @@ -117,6 +117,9 @@ private: void get(const wax::obj &, wax::obj &val){ val = _tree; //entry point into property tree } + uhd::property_tree::sptr get_tree(void) const{ + return _tree; + } //io impl methods and members uhd::otw_type_t _rx_otw_type, _tx_otw_type; diff --git a/host/utils/uhd_usrp_probe.cpp b/host/utils/uhd_usrp_probe.cpp index cb6d78255..6c5f451cd 100644 --- a/host/utils/uhd_usrp_probe.cpp +++ b/host/utils/uhd_usrp_probe.cpp @@ -192,7 +192,7 @@ int UHD_SAFE_MAIN(int argc, char *argv[]){ } device::sptr dev = device::make(vm["args"].as<std::string>()); - property_tree::sptr tree = (*dev)[0].as<property_tree::sptr>(); + property_tree::sptr tree = dev->get_tree(); if (vm.count("tree") != 0) print_tree("/", tree); else std::cout << make_border(get_device_pp_string(tree)) << std::endl; diff --git a/host/utils/usrp1_init_eeprom.cpp b/host/utils/usrp1_init_eeprom.cpp index 5bc07daf6..1778d5f9d 100644 --- a/host/utils/usrp1_init_eeprom.cpp +++ b/host/utils/usrp1_init_eeprom.cpp @@ -65,7 +65,7 @@ int UHD_SAFE_MAIN(int argc, char *argv[]){ std::cout << "Writing EEPROM data..." << std::endl; //uhd::device_addrs_t devs = uhd::device::find(found_addrs[i]); uhd::device::sptr dev = uhd::device::make(found_addrs[i]); - uhd::property_tree::sptr tree = (*dev)[0].as<uhd::property_tree::sptr>(); + uhd::property_tree::sptr tree = dev->get_tree(); tree->access<std::string>("/mboards/0/load_eeprom").set(vm["image"].as<std::string>()); } diff --git a/host/utils/usrp_burn_db_eeprom.cpp b/host/utils/usrp_burn_db_eeprom.cpp index 7ebbe7756..9dfce141b 100644 --- a/host/utils/usrp_burn_db_eeprom.cpp +++ b/host/utils/usrp_burn_db_eeprom.cpp @@ -62,7 +62,7 @@ int UHD_SAFE_MAIN(int argc, char *argv[]){ //make the device and extract the dboard w/ property device::sptr dev = device::make(args); - uhd::property_tree::sptr tree = (*dev)[0].as<uhd::property_tree::sptr>(); + uhd::property_tree::sptr tree = dev->get_tree(); const uhd::property_tree::path_type db_root = "/mboards/0/dboards"; std::vector<std::string> dboard_names = tree->list(db_root); if (dboard_names.size() == 1 and slot.empty()) slot = dboard_names.front(); |