USRP Hardware Driver and USRP Manual  Version: 4.1.0.4-3
UHD and USRP Manual
ddc_block_control.hpp
Go to the documentation of this file.
1 //
2 // Copyright 2019 Ettus Research, a National Instruments Brand
3 //
4 // SPDX-License-Identifier: GPL-3.0-or-later
5 //
6 
7 #pragma once
8 
9 #include <uhd/config.hpp>
11 #include <uhd/types/ranges.hpp>
12 #include <boost/optional.hpp>
13 
14 namespace uhd { namespace rfnoc {
15 
30 {
31 public:
33 
34  static const uint16_t MAJOR_COMPAT;
35  static const uint16_t MINOR_COMPAT;
36  // Readback addresses
37  static const uint32_t RB_COMPAT_NUM;
38  static const uint32_t RB_NUM_HB;
39  static const uint32_t RB_CIC_MAX_DECIM;
40  // Write addresses
41  static const uint32_t SR_N_ADDR;
42  static const uint32_t SR_M_ADDR;
43  static const uint32_t SR_CONFIG_ADDR;
44  static const uint32_t SR_FREQ_ADDR;
45  static const uint32_t SR_SCALE_IQ_ADDR;
46  static const uint32_t SR_DECIM_ADDR;
47  static const uint32_t SR_MUX_ADDR;
48  static const uint32_t SR_COEFFS_ADDR;
49  static const uint32_t SR_TIME_INCR_ADDR;
50 
70  virtual double set_freq(const double freq,
71  const size_t chan,
72  const boost::optional<uhd::time_spec_t> time = boost::none) = 0;
73 
78  virtual double get_freq(const size_t chan) const = 0;
79 
84  virtual uhd::freq_range_t get_frequency_range(const size_t chan) const = 0;
85 
91  virtual double get_input_rate(const size_t chan) const = 0;
92 
98  virtual void set_input_rate(const double rate, const size_t chan) = 0;
99 
107  virtual double get_output_rate(const size_t chan) const = 0;
108 
114  virtual uhd::meta_range_t get_output_rates(const size_t chan) const = 0;
115 
126  virtual double set_output_rate(const double rate, const size_t chan) = 0;
127 
128  /**************************************************************************
129  * Streaming-Related API Calls
130  *************************************************************************/
136  virtual void issue_stream_cmd(
137  const uhd::stream_cmd_t& stream_cmd, const size_t port) = 0;
138 };
139 
140 }} // namespace uhd::rfnoc
Definition: ddc_block_control.hpp:30
Definition: noc_block_base.hpp:42
Definition: time_spec.hpp:31
#define UHD_API
Definition: config.h:70
Definition: build_info.hpp:12
#define RFNOC_DECLARE_BLOCK(CLASS_NAME)
Definition: noc_block_base.hpp:21
Definition: ranges.hpp:66
Definition: stream_cmd.hpp:40