USRP Hardware Driver and USRP Manual  Version: 3.12.0.0-0-unknown
UHD and USRP Manual
source_block_ctrl_base.hpp
Go to the documentation of this file.
1 //
2 // Copyright 2014 Ettus Research LLC
3 // Copyright 2018 Ettus Research, a National Instruments Company
4 //
5 // SPDX-License-Identifier: GPL-3.0-or-later
6 //
7 
8 #ifndef INCLUDED_LIBUHD_RX_BLOCK_CTRL_BASE_HPP
9 #define INCLUDED_LIBUHD_RX_BLOCK_CTRL_BASE_HPP
10 
13 
14 namespace uhd {
15  namespace rfnoc {
16 
25 class source_block_ctrl_base : virtual public block_ctrl_base, virtual public source_node_ctrl
26 {
27 public:
28  typedef boost::shared_ptr<source_block_ctrl_base> sptr;
29 
30  /***********************************************************************
31  * Streaming operations
32  **********************************************************************/
55  virtual void issue_stream_cmd(const uhd::stream_cmd_t &stream_cmd, const size_t chan=0);
56 
57  /***********************************************************************
58  * Stream signatures
59  **********************************************************************/
70  stream_sig_t get_output_signature(size_t block_port=0) const;
71 
74  std::vector<size_t> get_output_ports() const;
75 
76  /***********************************************************************
77  * FPGA Configuration
78  **********************************************************************/
88  virtual void set_destination(
89  uint32_t next_address,
90  size_t output_block_port = 0
91  );
92 
107  virtual void configure_flow_control_out(
108  size_t buf_size_pkts,
109  size_t block_port=0,
110  const uhd::sid_t &sid=uhd::sid_t()
111  );
112 
113 
114 protected:
115  /***********************************************************************
116  * Hooks
117  **********************************************************************/
121  virtual size_t _request_output_port(
122  const size_t suggested_port,
123  const uhd::device_addr_t &args
124  ) const;
125 
126 }; /* class source_block_ctrl_base */
127 
128 }} /* namespace uhd::rfnoc */
129 
130 #endif /* INCLUDED_LIBUHD_RX_BLOCK_CTRL_BASE_HPP */
131 // vim: sw=4 et:
Definition: stream_cmd.hpp:36
virtual void configure_flow_control_out(size_t buf_size_pkts, size_t block_port=0, const uhd::sid_t &sid=uhd::sid_t())
stream_sig_t get_output_signature(size_t block_port=0) const
Definition: source_node_ctrl.hpp:24
Definition: block_ctrl_base.hpp:93
virtual void set_destination(uint32_t next_address, size_t output_block_port=0)
Definition: build_info.hpp:14
#define UHD_RFNOC_API
Definition: config.hpp:93
Definition: source_block_ctrl_base.hpp:25
Represents a stream ID (SID).
Definition: sid.hpp:74
virtual size_t _request_output_port(const size_t suggested_port, const uhd::device_addr_t &args) const
virtual void issue_stream_cmd(const uhd::stream_cmd_t &stream_cmd, const size_t chan=0)
std::vector< size_t > get_output_ports() const
boost::shared_ptr< source_block_ctrl_base > sptr
Definition: source_block_ctrl_base.hpp:28
Definition: stream_sig.hpp:23
Definition: device_addr.hpp:38