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;