aboutsummaryrefslogtreecommitdiffstats
path: root/host/include
diff options
context:
space:
mode:
authorCristina Fuentes <cristina.fuentes-curiel@ni.com>2020-09-21 15:17:39 -0700
committerAaron Rossetto <aaron.rossetto@ni.com>2020-09-24 15:16:45 -0500
commit2e64cb1b2891cbecab832aec00b8269e0798ff0d (patch)
tree2ba16206f87a760efe7835121b52dc727b1ddd84 /host/include
parentbc20747808138462968b1b743abecbb83389e1c4 (diff)
downloaduhd-2e64cb1b2891cbecab832aec00b8269e0798ff0d.tar.gz
uhd-2e64cb1b2891cbecab832aec00b8269e0798ff0d.tar.bz2
uhd-2e64cb1b2891cbecab832aec00b8269e0798ff0d.zip
multi_usrp: Add get_mb_controller() API call
Diffstat (limited to 'host/include')
-rw-r--r--host/include/uhd/usrp/multi_usrp.hpp20
1 files changed, 20 insertions, 0 deletions
diff --git a/host/include/uhd/usrp/multi_usrp.hpp b/host/include/uhd/usrp/multi_usrp.hpp
index 2f441bd5a..e00fe7553 100644
--- a/host/include/uhd/usrp/multi_usrp.hpp
+++ b/host/include/uhd/usrp/multi_usrp.hpp
@@ -36,6 +36,7 @@
#include <uhd/usrp/dboard_iface.hpp>
#include <uhd/usrp/subdev_spec.hpp>
#include <uhd/utils/noncopyable.hpp>
+#include <uhd/rfnoc/mb_controller.hpp>
#include <uhd/rfnoc/radio_control.hpp>
#include <complex>
#include <memory>
@@ -1783,6 +1784,25 @@ public:
virtual void set_tx_filter(const std::string& name,
uhd::filter_info_base::sptr filter,
const size_t chan) = 0;
+
+ /*! Get direct access to the underlying mb_controller object.
+ *
+ * Note: This is an advanced API, created for corner cases where the
+ * application is using multi_usrp, but some special features from
+ * mb_controller need to be used that are not exposed by multi_usrp.
+ * Note that it is possible to put the mb_controller and multi_usrp into a
+ * broken state by directly accessing the mb_controller. For typical
+ * mb_controller operations it is therefore highly recommended
+ * to not use this API call, but use the native multi_usrp API calls.
+ *
+ * The lifetime of the mb_controller is linked to the lifetime of the
+ * device object, so storing a reference from this function is not allowed.
+ *
+ * \param mboard The motherboard index
+ * \returns A reference to the mb_controller for the corresponding mboard
+ * \throws uhd::not_implemented_error if not on an RFNoC device.
+ */
+ virtual uhd::rfnoc::mb_controller& get_mb_controller(const size_t mboard = 0) = 0;
};
} // namespace usrp