USRP Hardware Driver and USRP Manual  Version: 4.8.0.0
UHD and USRP Manual
core_iface.hpp
Go to the documentation of this file.
1 //
2 // Copyright 2020 Ettus Research, a National Instruments Brand
3 //
4 // SPDX-License-Identifier: GPL-3.0-or-later
5 //
6 
7 #pragma once
8 
10 #include <uhd/types/ranges.hpp>
11 #include <stdint.h>
12 #include <memory>
13 #include <string>
14 #include <vector>
15 
16 namespace uhd { namespace rfnoc { namespace rf_control {
17 
26 {
27 public:
28  using sptr = std::shared_ptr<core_iface>;
29 
30  virtual ~core_iface() = default;
31 
36  virtual std::string get_tx_antenna(const size_t chan) const = 0;
37 
42  virtual std::vector<std::string> get_tx_antennas(const size_t chan) const = 0;
43 
48  virtual void set_tx_antenna(const std::string& ant, const size_t chan) = 0;
49 
54  virtual std::string get_rx_antenna(const size_t chan) const = 0;
55 
60  virtual std::vector<std::string> get_rx_antennas(const size_t chan) const = 0;
61 
66  virtual void set_rx_antenna(const std::string& ant, const size_t chan) = 0;
67 
72  virtual double get_tx_frequency(const size_t chan) = 0;
73 
96  virtual double set_tx_frequency(const double freq, size_t chan) = 0;
97 
100  virtual void set_tx_tune_args(const uhd::device_addr_t& args, const size_t chan) = 0;
101 
106  virtual uhd::freq_range_t get_tx_frequency_range(const size_t chan) const = 0;
107 
112  virtual double get_rx_frequency(const size_t chan) = 0;
113 
135  virtual double set_rx_frequency(const double freq, const size_t chan) = 0;
136 
139  virtual void set_rx_tune_args(const uhd::device_addr_t& args, const size_t chan) = 0;
140 
145  virtual uhd::freq_range_t get_rx_frequency_range(const size_t chan) const = 0;
146 
149  virtual std::vector<std::string> get_tx_gain_names(const size_t chan) const = 0;
150 
153  virtual uhd::gain_range_t get_tx_gain_range(const size_t chan) const = 0;
154 
158  const std::string& name, const size_t chan) const = 0;
159 
164  virtual double get_tx_gain(const size_t chan) = 0;
165 
170  virtual double get_tx_gain(const std::string& name, const size_t chan) = 0;
171 
182  virtual double set_tx_gain(const double gain, const size_t chan) = 0;
183 
191  virtual double set_tx_gain(
192  const double gain, const std::string& name, const size_t chan) = 0;
193 
196  virtual std::vector<std::string> get_rx_gain_names(const size_t chan) const = 0;
197 
200  virtual uhd::gain_range_t get_rx_gain_range(const size_t chan) const = 0;
201 
205  const std::string& name, const size_t chan) const = 0;
206 
211  virtual double get_rx_gain(const size_t chan) = 0;
212 
217  virtual double get_rx_gain(const std::string& name, const size_t chan) = 0;
218 
226  virtual double set_rx_gain(const double gain, const size_t chan) = 0;
227 
235  virtual double set_rx_gain(
236  const double gain, const std::string& name, const size_t chan) = 0;
237 
242  virtual void set_rx_agc(const bool enable, const size_t chan) = 0;
243 
246  virtual meta_range_t get_tx_bandwidth_range(size_t chan) const = 0;
247 
252  virtual double get_tx_bandwidth(const size_t chan) = 0;
253 
260  virtual double set_tx_bandwidth(const double bandwidth, const size_t chan) = 0;
261 
264  virtual meta_range_t get_rx_bandwidth_range(size_t chan) const = 0;
265 
270  virtual double get_rx_bandwidth(const size_t chan) = 0;
271 
278  virtual double set_rx_bandwidth(const double bandwidth, const size_t chan) = 0;
279 
280  /**************************************************************************
281  * LO Controls
282  *************************************************************************/
288  virtual std::vector<std::string> get_rx_lo_names(const size_t chan) const = 0;
289 
298  virtual std::vector<std::string> get_rx_lo_sources(
299  const std::string& name, const size_t chan) const = 0;
300 
310  const std::string& name, const size_t chan) const = 0;
311 
321  virtual void set_rx_lo_source(
322  const std::string& src, const std::string& name, const size_t chan) = 0;
323 
332  virtual std::string get_rx_lo_source(const std::string& name, const size_t chan) = 0;
333 
342  virtual void set_rx_lo_export_enabled(
343  bool enabled, const std::string& name, const size_t chan) = 0;
344 
350  virtual bool get_rx_lo_export_enabled(const std::string& name, const size_t chan) = 0;
351 
359  virtual double set_rx_lo_freq(
360  double freq, const std::string& name, const size_t chan) = 0;
361 
370  virtual double get_rx_lo_freq(const std::string& name, const size_t chan) = 0;
371 
377  virtual std::vector<std::string> get_tx_lo_names(const size_t chan) const = 0;
378 
387  virtual std::vector<std::string> get_tx_lo_sources(
388  const std::string& name, const size_t chan) const = 0;
389 
399  const std::string& name, const size_t chan) = 0;
400 
410  virtual void set_tx_lo_source(
411  const std::string& src, const std::string& name, const size_t chan) = 0;
412 
421  virtual std::string get_tx_lo_source(const std::string& name, const size_t chan) = 0;
422 
431  virtual void set_tx_lo_export_enabled(
432  const bool enabled, const std::string& name, const size_t chan) = 0;
433 
439  virtual bool get_tx_lo_export_enabled(const std::string& name, const size_t chan) = 0;
440 
450  virtual double set_tx_lo_freq(
451  const double freq, const std::string& name, const size_t chan) = 0;
452 
464  virtual double get_tx_lo_freq(const std::string& name, const size_t chan) = 0;
465 };
466 
467 }}} // namespace uhd::rfnoc::rf_control
uhd::rfnoc::rf_control::core_iface::get_rx_lo_names
virtual std::vector< std::string > get_rx_lo_names(const size_t chan) const =0
uhd::rfnoc::rf_control::core_iface::set_rx_antenna
virtual void set_rx_antenna(const std::string &ant, const size_t chan)=0
uhd::rfnoc::rf_control::core_iface::set_tx_bandwidth
virtual double set_tx_bandwidth(const double bandwidth, const size_t chan)=0
device_addr.hpp
uhd::rfnoc::rf_control::core_iface::get_rx_frequency_range
virtual uhd::freq_range_t get_rx_frequency_range(const size_t chan) const =0
uhd::rfnoc::rf_control::core_iface::get_rx_antenna
virtual std::string get_rx_antenna(const size_t chan) const =0
uhd::rfnoc::rf_control::core_iface::set_tx_tune_args
virtual void set_tx_tune_args(const uhd::device_addr_t &args, const size_t chan)=0
uhd::rfnoc::rf_control::core_iface::set_rx_frequency
virtual double set_rx_frequency(const double freq, const size_t chan)=0
uhd::rfnoc::rf_control::core_iface::set_tx_lo_export_enabled
virtual void set_tx_lo_export_enabled(const bool enabled, const std::string &name, const size_t chan)=0
uhd::rfnoc::rf_control::core_iface::set_rx_bandwidth
virtual double set_rx_bandwidth(const double bandwidth, const size_t chan)=0
uhd::rfnoc::rf_control::core_iface::get_rx_gain_names
virtual std::vector< std::string > get_rx_gain_names(const size_t chan) const =0
uhd::rfnoc::rf_control::core_iface::set_tx_lo_source
virtual void set_tx_lo_source(const std::string &src, const std::string &name, const size_t chan)=0
uhd::rfnoc::rf_control::core_iface::get_rx_lo_sources
virtual std::vector< std::string > get_rx_lo_sources(const std::string &name, const size_t chan) const =0
uhd::rfnoc::rf_control::core_iface::set_tx_lo_freq
virtual double set_tx_lo_freq(const double freq, const std::string &name, const size_t chan)=0
uhd::rfnoc::rf_control::core_iface::sptr
std::shared_ptr< core_iface > sptr
Definition: core_iface.hpp:28
uhd::rfnoc::rf_control::core_iface::get_tx_lo_freq_range
virtual freq_range_t get_tx_lo_freq_range(const std::string &name, const size_t chan)=0
uhd::rfnoc::rf_control::core_iface::get_rx_gain_range
virtual uhd::gain_range_t get_rx_gain_range(const size_t chan) const =0
uhd::rfnoc::rf_control::core_iface::~core_iface
virtual ~core_iface()=default
uhd::rfnoc::rf_control::core_iface::get_rx_lo_source
virtual std::string get_rx_lo_source(const std::string &name, const size_t chan)=0
uhd::rfnoc::rf_control::core_iface::get_tx_lo_export_enabled
virtual bool get_tx_lo_export_enabled(const std::string &name, const size_t chan)=0
uhd::device_addr_t
Definition: device_addr.hpp:38
uhd::rfnoc::rf_control::core_iface::get_tx_antenna
virtual std::string get_tx_antenna(const size_t chan) const =0
uhd::rfnoc::rf_control::core_iface::get_tx_frequency_range
virtual uhd::freq_range_t get_tx_frequency_range(const size_t chan) const =0
uhd::rfnoc::rf_control::core_iface::get_rx_bandwidth_range
virtual meta_range_t get_rx_bandwidth_range(size_t chan) const =0
uhd::rfnoc::rf_control::core_iface::get_rx_antennas
virtual std::vector< std::string > get_rx_antennas(const size_t chan) const =0
uhd::rfnoc::rf_control::core_iface
Definition: core_iface.hpp:25
uhd::rfnoc::rf_control::core_iface::get_tx_gain_range
virtual uhd::gain_range_t get_tx_gain_range(const size_t chan) const =0
uhd::rfnoc::rf_control::core_iface::get_tx_lo_source
virtual std::string get_tx_lo_source(const std::string &name, const size_t chan)=0
uhd::rfnoc::rf_control::core_iface::get_tx_frequency
virtual double get_tx_frequency(const size_t chan)=0
uhd
Definition: build_info.hpp:12
uhd::rfnoc::rf_control::core_iface::get_tx_bandwidth
virtual double get_tx_bandwidth(const size_t chan)=0
ranges.hpp
uhd::rfnoc::rf_control::core_iface::set_rx_tune_args
virtual void set_rx_tune_args(const uhd::device_addr_t &args, const size_t chan)=0
uhd::rfnoc::rf_control::core_iface::set_rx_agc
virtual void set_rx_agc(const bool enable, const size_t chan)=0
uhd::rfnoc::rf_control::core_iface::get_rx_frequency
virtual double get_rx_frequency(const size_t chan)=0
uhd::rfnoc::rf_control::core_iface::set_rx_lo_export_enabled
virtual void set_rx_lo_export_enabled(bool enabled, const std::string &name, const size_t chan)=0
uhd::rfnoc::rf_control::core_iface::set_rx_lo_freq
virtual double set_rx_lo_freq(double freq, const std::string &name, const size_t chan)=0
uhd::rfnoc::rf_control::core_iface::set_rx_lo_source
virtual void set_rx_lo_source(const std::string &src, const std::string &name, const size_t chan)=0
uhd::rfnoc::rf_control::core_iface::get_rx_gain
virtual double get_rx_gain(const size_t chan)=0
uhd::rfnoc::rf_control::core_iface::get_rx_bandwidth
virtual double get_rx_bandwidth(const size_t chan)=0
uhd::rfnoc::rf_control::core_iface::set_tx_frequency
virtual double set_tx_frequency(const double freq, size_t chan)=0
uhd::rfnoc::rf_control::core_iface::set_tx_gain
virtual double set_tx_gain(const double gain, const size_t chan)=0
uhd::rfnoc::rf_control::core_iface::set_tx_antenna
virtual void set_tx_antenna(const std::string &ant, const size_t chan)=0
uhd::rfnoc::rf_control::core_iface::get_tx_antennas
virtual std::vector< std::string > get_tx_antennas(const size_t chan) const =0
uhd::rfnoc::rf_control::core_iface::get_tx_gain_names
virtual std::vector< std::string > get_tx_gain_names(const size_t chan) const =0
uhd::rfnoc::rf_control::core_iface::get_tx_gain
virtual double get_tx_gain(const size_t chan)=0
uhd::rfnoc::rf_control::core_iface::get_rx_lo_export_enabled
virtual bool get_rx_lo_export_enabled(const std::string &name, const size_t chan)=0
uhd::rfnoc::rf_control::core_iface::get_tx_lo_freq
virtual double get_tx_lo_freq(const std::string &name, const size_t chan)=0
uhd::rfnoc::rf_control::core_iface::get_tx_lo_sources
virtual std::vector< std::string > get_tx_lo_sources(const std::string &name, const size_t chan) const =0
uhd::rfnoc::rf_control::core_iface::set_rx_gain
virtual double set_rx_gain(const double gain, const size_t chan)=0
uhd::rfnoc::rf_control::core_iface::get_tx_lo_names
virtual std::vector< std::string > get_tx_lo_names(const size_t chan) const =0
uhd::rfnoc::rf_control::core_iface::get_rx_lo_freq
virtual double get_rx_lo_freq(const std::string &name, const size_t chan)=0
uhd::rfnoc::rf_control::core_iface::get_tx_bandwidth_range
virtual meta_range_t get_tx_bandwidth_range(size_t chan) const =0
uhd::meta_range_t
Definition: ranges.hpp:65
uhd::rfnoc::rf_control::core_iface::get_rx_lo_freq_range
virtual freq_range_t get_rx_lo_freq_range(const std::string &name, const size_t chan) const =0