8 #ifndef INCLUDED_LIBUHD_RFNOC_RADIO_CTRL_HPP 9 #define INCLUDED_LIBUHD_RFNOC_RADIO_CTRL_HPP 20 namespace uhd {
namespace rfnoc {
37 static const size_t ALL_CHANS = size_t(~0);
52 virtual double get_rate()
const = 0;
58 virtual double set_rate(
double rate) = 0;
64 virtual std::string get_tx_antenna(
const size_t chan) = 0;
70 virtual void set_tx_antenna(
const std::string& ant,
const size_t chan) = 0;
76 virtual std::string get_rx_antenna(
const size_t chan) = 0;
82 virtual void set_rx_antenna(
const std::string& ant,
const size_t chan) = 0;
91 virtual double get_tx_frequency(
const size_t chan) = 0;
103 virtual double set_tx_frequency(
const double freq,
size_t chan) = 0;
109 virtual double get_rx_frequency(
const size_t chan) = 0;
120 virtual double set_rx_frequency(
const double freq,
const size_t chan) = 0;
126 virtual double get_tx_gain(
const size_t chan) = 0;
135 virtual double set_tx_gain(
const double gain,
const size_t chan) = 0;
141 virtual double get_rx_gain(
const size_t chan) = 0;
150 virtual double set_rx_gain(
const double gain,
const size_t chan) = 0;
156 virtual double get_tx_bandwidth(
const size_t chan) = 0;
164 virtual double set_tx_bandwidth(
const double bandwidth,
const size_t chan) = 0;
170 virtual double get_rx_bandwidth(
const size_t chan) = 0;
178 virtual double set_rx_bandwidth(
const double bandwidth,
const size_t chan) = 0;
187 virtual void set_time_now(
const time_spec_t& time_spec) = 0;
200 virtual void set_time_next_pps(
const time_spec_t& time_spec) = 0;
222 virtual std::vector<std::string> get_gpio_banks()
const = 0;
239 virtual void set_gpio_attr(
const std::string& bank,
240 const std::string& attr,
241 const uint32_t value,
242 const uint32_t
mask) = 0;
259 virtual uint32_t get_gpio_attr(
const std::string& bank,
const std::string& attr) = 0;
269 virtual std::vector<std::string> get_rx_lo_names(
const size_t chan) = 0;
279 virtual std::vector<std::string> get_rx_lo_sources(
280 const std::string& name,
const size_t chan) = 0;
291 const std::string& name,
const size_t chan) = 0;
302 virtual void set_rx_lo_source(
303 const std::string& src,
const std::string& name,
const size_t chan) = 0;
313 virtual const std::string get_rx_lo_source(
314 const std::string& name,
const size_t chan) = 0;
324 virtual void set_rx_lo_export_enabled(
325 bool enabled,
const std::string& name,
const size_t chan) = 0;
332 virtual bool get_rx_lo_export_enabled(
const std::string& name,
const size_t chan) = 0;
341 virtual double set_rx_lo_freq(
342 double freq,
const std::string& name,
const size_t chan) = 0;
352 virtual double get_rx_lo_freq(
const std::string& name,
const size_t chan) = 0;
359 virtual std::vector<std::string> get_tx_lo_names(
const size_t chan) = 0;
369 virtual std::vector<std::string> get_tx_lo_sources(
370 const std::string& name,
const size_t chan) = 0;
381 const std::string& name,
const size_t chan) = 0;
392 virtual void set_tx_lo_source(
393 const std::string& src,
const std::string& name,
const size_t chan) = 0;
403 virtual const std::string get_tx_lo_source(
404 const std::string& name,
const size_t chan) = 0;
414 virtual void set_tx_lo_export_enabled(
415 const bool enabled,
const std::string& name,
const size_t chan) = 0;
422 virtual bool get_tx_lo_export_enabled(
const std::string& name,
const size_t chan) = 0;
433 virtual double set_tx_lo_freq(
434 const double freq,
const std::string& name,
const size_t chan) = 0;
447 virtual double get_tx_lo_freq(
const std::string& name,
const size_t chan) = 0;
461 virtual void set_time_source(
const std::string& source) = 0;
468 virtual std::string get_time_source() = 0;
475 virtual std::vector<std::string> get_time_sources() = 0;
484 virtual void set_clock_source(
const std::string& source) = 0;
491 virtual std::string get_clock_source() = 0;
498 virtual std::vector<std::string> get_clock_sources() = 0;
506 virtual size_t get_chan_from_dboard_fe(
511 virtual std::string get_dboard_fe_from_chan(
516 virtual void enable_rx_timestamps(
const bool enable,
const size_t chan) = 0;
Definition: terminator_node_ctrl.hpp:29
#define UHD_RFNOC_BLOCK_OBJECT(class_name)
This macro must be put in the public section of an RFNoC.
Definition: block_ctrl_base.hpp:59
Definition: sink_block_ctrl_base.hpp:25
Definition: time_spec.hpp:29
Definition: rate_node_ctrl.hpp:27
Block controller for all RFNoC-based radio blocks.
Definition: radio_ctrl.hpp:24
static const std::string ALL_GAINS
A wildcard gain element name.
Definition: radio_ctrl.hpp:40
static const std::string ALL_LOS
A wildcard local oscillator element name.
Definition: radio_ctrl.hpp:43
Definition: build_info.hpp:13
Definition: tick_node_ctrl.hpp:24
#define UHD_RFNOC_API
Definition: config.hpp:117
Definition: source_block_ctrl_base.hpp:24
direction_t
Definition: direction.hpp:13
UHD_INLINE data_t mask(const soft_reg_field_t field)
Definition: soft_register.hpp:88