USRP Hardware Driver and USRP Manual Version: 3.15.0.0-MacPorts-Release
UHD and USRP Manual
null_block_ctrl.hpp
Go to the documentation of this file.
1//
2// Copyright 2014-2018 Ettus Research, a National Instruments Company
3//
4// SPDX-License-Identifier: GPL-3.0-or-later
5//
6
7#ifndef INCLUDED_LIBUHD_RFNOC_NULL_BLOCK_CTRL_HPP
8#define INCLUDED_LIBUHD_RFNOC_NULL_BLOCK_CTRL_HPP
9
12
13namespace uhd { namespace rfnoc {
14
34{
35public:
36 // This macro must always be at the top of the public section in an RFNoC block class
38
39
40 static const uint32_t SR_LINES_PER_PACKET = 129;
42 static const uint32_t SR_LINE_RATE = 130;
44 static const uint32_t SR_ENABLE_STREAM = 131;
45
46 static const size_t DEFAULT_LINES_PER_PACKET = 32;
47 static const size_t BYTES_PER_LINE = 8;
48
50 // Note: This is 'cycles per line', so the bit rate is actually
51 // 64 times this value (byte/s is 8*rate etc.)
52 //
53 // Equivalent to writing to line_rate/value in the property tree.
54 //
55 // \param The rate you want to set this to
56 // \param The clock rate of this block's clock domain
57 // \returns the actual line rate (will find closest possible).
58 virtual double set_line_rate(double rate, double clock_rate = 166.6e6) = 0;
59
61 // from the property tree.
62 virtual double get_line_rate(double clock_rate = 166.6e6) const = 0;
63
64}; /* class null_block_ctrl*/
65
66}} /* namespace uhd::rfnoc */
67
68#endif /* INCLUDED_LIBUHD_RFNOC_NULL_BLOCK_CTRL_HPP */
#define UHD_RFNOC_BLOCK_OBJECT(class_name)
This macro must be put in the public section of an RFNoC.
Definition: block_ctrl_base.hpp:59
Provide access to a 'null block'.
Definition: null_block_ctrl.hpp:34
static const uint32_t SR_ENABLE_STREAM
Set this register to non-zero to start producing data.
Definition: null_block_ctrl.hpp:44
static const uint32_t SR_LINES_PER_PACKET
Set this register to number of lines per packet.
Definition: null_block_ctrl.hpp:40
static const size_t DEFAULT_LINES_PER_PACKET
Definition: null_block_ctrl.hpp:46
static const uint32_t SR_LINE_RATE
Set this register to number of cycles between producing a line.
Definition: null_block_ctrl.hpp:42
virtual double get_line_rate(double clock_rate=166.6e6) const =0
Return the current line rate. Equivalent to reading line_rate/value.
static const size_t BYTES_PER_LINE
Definition: null_block_ctrl.hpp:47
virtual double set_line_rate(double rate, double clock_rate=166.6e6)=0
Custom function to set the rate at which data is produced.
Definition: sink_block_ctrl_base.hpp:26
Definition: source_block_ctrl_base.hpp:26
Definition: build_info.hpp:13