USRP Hardware Driver and USRP Manual Version: 4.8.0.0-0-unknown
UHD and USRP Manual
Loading...
Searching...
No Matches
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
14namespace uhd { namespace rfnoc {
15
32{
33public:
35
36 static const uint16_t MAJOR_COMPAT;
37 static const uint16_t MINOR_COMPAT;
38 // Readback addresses
39 static const uint32_t RB_COMPAT_NUM;
40 static const uint32_t RB_NUM_HB;
41 static const uint32_t RB_CIC_MAX_DECIM;
42 // Write addresses
43 static const uint32_t SR_N_ADDR;
44 static const uint32_t SR_M_ADDR;
45 static const uint32_t SR_CONFIG_ADDR;
46 static const uint32_t SR_FREQ_ADDR;
47 static const uint32_t SR_SCALE_IQ_ADDR;
48 static const uint32_t SR_DECIM_ADDR;
49 static const uint32_t SR_MUX_ADDR;
50 static const uint32_t SR_COEFFS_ADDR;
51 static const uint32_t SR_TIME_INCR_ADDR;
52
72 virtual double set_freq(const double freq,
73 const size_t chan,
74 const boost::optional<uhd::time_spec_t> time = boost::none) = 0;
75
80 virtual double get_freq(const size_t chan) const = 0;
81
93 virtual uhd::freq_range_t get_frequency_range(const size_t chan) const = 0;
94
100 virtual double get_input_rate(const size_t chan) const = 0;
101
107 virtual void set_input_rate(const double rate, const size_t chan) = 0;
108
116 virtual double get_output_rate(const size_t chan) const = 0;
117
123 virtual uhd::meta_range_t get_output_rates(const size_t chan) const = 0;
124
135 virtual double set_output_rate(const double rate, const size_t chan) = 0;
136
137 /**************************************************************************
138 * Streaming-Related API Calls
139 *************************************************************************/
145 virtual void issue_stream_cmd(
146 const uhd::stream_cmd_t& stream_cmd, const size_t port) = 0;
147};
148
149}} // namespace uhd::rfnoc
Definition ddc_block_control.hpp:32
virtual double set_output_rate(const double rate, const size_t chan)=0
static const uint32_t SR_MUX_ADDR
Definition ddc_block_control.hpp:49
static const uint16_t MAJOR_COMPAT
Definition ddc_block_control.hpp:36
static const uint32_t RB_COMPAT_NUM
Definition ddc_block_control.hpp:39
static const uint32_t SR_CONFIG_ADDR
Definition ddc_block_control.hpp:45
virtual void issue_stream_cmd(const uhd::stream_cmd_t &stream_cmd, const size_t port)=0
static const uint32_t SR_TIME_INCR_ADDR
Definition ddc_block_control.hpp:51
virtual uhd::freq_range_t get_frequency_range(const size_t chan) const =0
static const uint32_t SR_FREQ_ADDR
Definition ddc_block_control.hpp:46
virtual void set_input_rate(const double rate, const size_t chan)=0
static const uint32_t SR_DECIM_ADDR
Definition ddc_block_control.hpp:48
virtual uhd::meta_range_t get_output_rates(const size_t chan) const =0
virtual double get_freq(const size_t chan) const =0
static const uint16_t MINOR_COMPAT
Definition ddc_block_control.hpp:37
static const uint32_t RB_NUM_HB
Definition ddc_block_control.hpp:40
static const uint32_t RB_CIC_MAX_DECIM
Definition ddc_block_control.hpp:41
static const uint32_t SR_M_ADDR
Definition ddc_block_control.hpp:44
static const uint32_t SR_SCALE_IQ_ADDR
Definition ddc_block_control.hpp:47
virtual double get_input_rate(const size_t chan) const =0
virtual double get_output_rate(const size_t chan) const =0
static const uint32_t SR_N_ADDR
Definition ddc_block_control.hpp:43
static const uint32_t SR_COEFFS_ADDR
Definition ddc_block_control.hpp:50
virtual double set_freq(const double freq, const size_t chan, const boost::optional< uhd::time_spec_t > time=boost::none)=0
noc_block_base(make_args_ptr make_args)
Definition time_spec.hpp:31
#define UHD_API
Definition config.h:87
Definition actions.hpp:24
Definition build_info.hpp:12
meta_range_t freq_range_t
Definition ranges.hpp:131
#define RFNOC_DECLARE_BLOCK(CLASS_NAME)
Definition noc_block_base.hpp:22
Definition ranges.hpp:66
Definition stream_cmd.hpp:40