From 12673d9290319d2453fedd806ddf248d3d5586e3 Mon Sep 17 00:00:00 2001 From: Lane Kolbly Date: Thu, 18 Jun 2020 17:46:06 -0500 Subject: uhd: Split radio_control into rf_control interfaces These rf_control interfaces allow easier implementation of radio controls as well as allowing easier sharing of code for implementing e.g. gain_profile. --- .../uhdlib/rfnoc/rf_control/dboard_iface.hpp | 41 ++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 host/lib/include/uhdlib/rfnoc/rf_control/dboard_iface.hpp (limited to 'host/lib/include/uhdlib/rfnoc/rf_control/dboard_iface.hpp') diff --git a/host/lib/include/uhdlib/rfnoc/rf_control/dboard_iface.hpp b/host/lib/include/uhdlib/rfnoc/rf_control/dboard_iface.hpp new file mode 100644 index 000000000..1651a1580 --- /dev/null +++ b/host/lib/include/uhdlib/rfnoc/rf_control/dboard_iface.hpp @@ -0,0 +1,41 @@ +// +// Copyright 2020 Ettus Research, a National Instruments Brand +// +// SPDX-License-Identifier: GPL-3.0-or-later +// + +#pragma once + +#include +#include +#include +#include + +namespace uhd { namespace rfnoc { namespace rf_control { + +/*! Interface that daughterboards expose to the motherboard radio_control + * + * This interface contains everything required for a daughterboard to implement + * all the methods required for radio_control. For the most part, this class + * just includes accessors to objects which implement the required functionality. + * This class also directly implements core_iface for the remainder. + */ +class dboard_iface : public core_iface +{ +public: + using sptr = std::shared_ptr; + + virtual ~dboard_iface() = default; + + virtual gain_profile_iface::sptr get_tx_gain_profile_api() = 0; + virtual gain_profile_iface::sptr get_rx_gain_profile_api() = 0; + + virtual size_t get_chan_from_dboard_fe( + const std::string&, uhd::direction_t) const = 0; + virtual std::string get_dboard_fe_from_chan(size_t chan, uhd::direction_t) const = 0; + + virtual std::vector& get_pwr_mgr( + uhd::direction_t trx) = 0; +}; + +}}} // namespace uhd::rfnoc::rf_control -- cgit v1.2.3