|
virtual void | issue_stream_cmd (const uhd::stream_cmd_t &stream_cmd, const size_t chan=0) |
|
stream_sig_t | get_output_signature (size_t block_port=0) const |
|
std::vector< size_t > | get_output_ports () const |
|
virtual void | set_destination (boost::uint32_t next_address, size_t output_block_port=0) |
|
virtual void | configure_flow_control_out (size_t buf_size_pkts, size_t block_port=0, const uhd::sid_t &sid=uhd::sid_t()) |
|
boost::uint32_t | get_address (size_t block_port=0) |
|
block_id_t | get_block_id () const |
|
std::string | unique_id () const |
|
std::vector< size_t > | get_ctrl_ports () const |
|
void | sr_write (const boost::uint32_t reg, const boost::uint32_t data, const size_t port=0) |
|
void | sr_write (const std::string ®, const boost::uint32_t data, const size_t port=0) |
|
boost::uint64_t | sr_read64 (const settingsbus_reg_t reg, const size_t port=0) |
|
boost::uint32_t | sr_read32 (const settingsbus_reg_t reg, const size_t port=0) |
|
boost::uint64_t | user_reg_read64 (const boost::uint32_t addr, const size_t port=0) |
|
boost::uint64_t | user_reg_read64 (const std::string ®, const size_t port=0) |
|
boost::uint32_t | user_reg_read32 (const boost::uint32_t addr, const size_t port=0) |
|
boost::uint32_t | user_reg_read32 (const std::string ®, const size_t port=0) |
|
void | set_command_time (const time_spec_t &time_spec, const size_t port=ANY_PORT) |
|
time_spec_t | get_command_time (const size_t port=0) |
|
void | set_command_tick_rate (const double tick_rate, const size_t port=ANY_PORT) |
|
void | clear_command_time (const size_t port) |
|
void | clear (const size_t port=0) |
|
void | set_args (const uhd::device_addr_t &args, const size_t port=0) |
|
void | set_arg (const std::string &key, const std::string &val, const size_t port=0) |
| Set a specific block argument. val is converted to the corresponding. More...
|
|
template<typename T > |
void | set_arg (const std::string &key, const T &val, const size_t port=0) |
| Direct access to set a block argument. More...
|
|
uhd::device_addr_t | get_args (const size_t port=0) const |
| Return all block arguments as a device_addr_t. More...
|
|
std::string | get_arg (const std::string &key, const size_t port=0) const |
| Return a single block argument in string format. More...
|
|
template<typename T > |
T | get_arg (const std::string &key, const size_t port=0) const |
| Direct access to get a block argument. More...
|
|
std::string | get_arg_type (const std::string &key, const size_t port=0) const |
|
virtual void | clear () |
|
node_map_t | list_downstream_nodes () |
|
node_map_t | list_upstream_nodes () |
|
void | set_downstream_port (const size_t this_port, const size_t remote_port) |
|
size_t | get_downstream_port (const size_t this_port) |
|
void | set_upstream_port (const size_t this_port, const size_t remote_port) |
|
size_t | get_upstream_port (const size_t this_port) |
|
template<typename T > |
UHD_INLINE std::vector< boost::shared_ptr< T > > | find_downstream_node () |
|
template<typename T > |
UHD_INLINE std::vector< boost::shared_ptr< T > > | find_upstream_node () |
|
template<typename T , typename value_type > |
UHD_INLINE value_type | find_downstream_unique_property (boost::function< value_type(boost::shared_ptr< T > node, size_t port)> get_property, value_type null_value, const std::set< boost::shared_ptr< T > > &exclude_nodes=std::set< boost::shared_ptr< T > >()) |
|
template<typename T , typename value_type > |
UHD_INLINE value_type | find_upstream_unique_property (boost::function< value_type(boost::shared_ptr< T > node, size_t port)> get_property, value_type null_value, const std::set< boost::shared_ptr< T > > &exclude_nodes=std::set< boost::shared_ptr< T > >()) |
|
size_t | connect_downstream (node_ctrl_base::sptr downstream_node, size_t port=ANY_PORT, const uhd::device_addr_t &args=uhd::device_addr_t()) |
|
virtual void | set_rx_streamer (bool active, const size_t port) |
|
virtual void uhd::rfnoc::source_block_ctrl_base::issue_stream_cmd |
( |
const uhd::stream_cmd_t & |
stream_cmd, |
|
|
const size_t |
chan = 0 |
|
) |
| |
|
virtual |
Issue a stream command for this block.
There is no guaranteed action for this command. The default implementation is to send this command to the next upstream block, or issue a warning if there is no upstream block registered.
However, implementations of block_ctrl_base might choose to do whatever seems appropriate, including throwing exceptions. This may also be true for some stream commands and not for others (i.e. STREAM_MODE_START_CONTINUOUS may be implemented, and STREAM_MODE_NUM_SAMPS_AND_DONE may be not).
This function does not check for infinite loops. Example: Say you have two blocks, which are both registered as upstream from one another. If they both use block_ctrl_base::issue_stream_cmd(), then the stream command will be passed from one block to another indefinitely. This will not happen if one the block's controller classes overrides this function and actually handles it.
See also register_upstream_block().
- Parameters
-
stream_cmd | The stream command. |
Implements uhd::rfnoc::source_node_ctrl.