8 #ifndef INCLUDED_LIBUHD_RFNOC_RADIO_CTRL_HPP 9 #define INCLUDED_LIBUHD_RFNOC_RADIO_CTRL_HPP 39 static const size_t ALL_CHANS = size_t(~0);
54 virtual double get_rate()
const = 0;
60 virtual double set_rate(
double rate) = 0;
66 virtual std::string get_tx_antenna(
const size_t chan) = 0;
72 virtual void set_tx_antenna(
const std::string &ant,
const size_t chan) = 0;
78 virtual std::string get_rx_antenna(
const size_t chan) = 0;
84 virtual void set_rx_antenna(
const std::string &ant,
const size_t chan) = 0;
93 virtual double get_tx_frequency(
const size_t chan) = 0;
105 virtual double set_tx_frequency(
const double freq,
size_t chan) = 0;
111 virtual double get_rx_frequency(
const size_t chan) = 0;
122 virtual double set_rx_frequency(
const double freq,
const size_t chan) = 0;
128 virtual double get_tx_gain(
const size_t chan) = 0;
137 virtual double set_tx_gain(
const double gain,
const size_t chan) = 0;
143 virtual double get_rx_gain(
const size_t chan) = 0;
152 virtual double set_rx_gain(
const double gain,
const size_t chan) = 0;
158 virtual double get_tx_bandwidth(
const size_t chan) = 0;
166 virtual double set_tx_bandwidth(
167 const double bandwidth,
175 virtual double get_rx_bandwidth(
const size_t chan) = 0;
183 virtual double set_rx_bandwidth(
const double bandwidth,
const size_t chan) = 0;
192 virtual void set_time_now(
const time_spec_t &time_spec) = 0;
205 virtual void set_time_next_pps(
const time_spec_t &time_spec) = 0;
227 virtual std::vector<std::string> get_gpio_banks()
const = 0;
244 virtual void set_gpio_attr(
245 const std::string &bank,
246 const std::string &attr,
247 const uint32_t value,
266 virtual uint32_t get_gpio_attr(
const std::string &bank,
const std::string &attr) = 0;
276 virtual std::vector<std::string> get_rx_lo_names(
const size_t chan) = 0;
286 virtual std::vector<std::string> get_rx_lo_sources(
const std::string &name,
const size_t chan) = 0;
296 virtual freq_range_t get_rx_lo_freq_range(
const std::string &name,
const size_t chan) = 0;
307 virtual void set_rx_lo_source(
const std::string &src,
const std::string &name,
const size_t chan) = 0;
317 virtual const std::string get_rx_lo_source(
const std::string &name,
const size_t chan) = 0;
327 virtual void set_rx_lo_export_enabled(
bool enabled,
const std::string &name,
const size_t chan) = 0;
334 virtual bool get_rx_lo_export_enabled(
const std::string &name,
const size_t chan) = 0;
343 virtual double set_rx_lo_freq(
double freq,
const std::string &name,
const size_t chan) = 0;
353 virtual double get_rx_lo_freq(
const std::string &name,
const size_t chan) = 0;
360 virtual std::vector<std::string> get_tx_lo_names(
const size_t chan) = 0;
370 virtual std::vector<std::string> get_tx_lo_sources(
371 const std::string &name,
384 const std::string &name,
397 virtual void set_tx_lo_source(
398 const std::string &src,
399 const std::string &name,
411 virtual const std::string get_tx_lo_source(
412 const std::string &name,
424 virtual void set_tx_lo_export_enabled(
426 const std::string &name,
435 virtual bool get_tx_lo_export_enabled(
436 const std::string &name,
449 virtual double set_tx_lo_freq(
451 const std::string &name,
466 virtual double get_tx_lo_freq(
467 const std::string &name,
483 virtual void set_time_source(
const std::string &source) = 0;
490 virtual std::string get_time_source() = 0;
497 virtual std::vector<std::string> get_time_sources() = 0;
506 virtual void set_clock_source(
const std::string &source) = 0;
513 virtual std::string get_clock_source() = 0;
520 virtual std::vector<std::string> get_clock_sources() = 0;
528 virtual size_t get_chan_from_dboard_fe(
const std::string &fe,
const uhd::direction_t dir) = 0;
532 virtual std::string get_dboard_fe_from_chan(
const size_t chan,
const uhd::direction_t dir) = 0;
Definition: terminator_node_ctrl.hpp:30
#define UHD_RFNOC_BLOCK_OBJECT(class_name)
This macro must be put in the public section of an RFNoC.
Definition: block_ctrl_base.hpp:61
Definition: sink_block_ctrl_base.hpp:26
Definition: time_spec.hpp:29
Definition: rate_node_ctrl.hpp:28
Block controller for all RFNoC-based radio blocks.
Definition: radio_ctrl.hpp:25
static const std::string ALL_GAINS
A wildcard gain element name.
Definition: radio_ctrl.hpp:42
static const std::string ALL_LOS
A wildcard local oscillator element name.
Definition: radio_ctrl.hpp:45
Definition: build_info.hpp:14
Definition: tick_node_ctrl.hpp:25
#define UHD_RFNOC_API
Definition: config.hpp:93
Definition: source_block_ctrl_base.hpp:25
direction_t
Definition: direction.hpp:13
UHD_INLINE data_t mask(const soft_reg_field_t field)
Definition: soft_register.hpp:87