|
virtual void | config_record (const uint32_t base_addr, const uint32_t size, const size_t chan)=0 |
| Configure the base address and size of the record buffer region (in bytes). More...
|
|
virtual void | config_play (const uint32_t base_addr, const uint32_t size, const size_t chan)=0 |
| Configure the base address and size of the playback buffer region (in bytes). More...
|
|
virtual void | record_restart (const size_t chan)=0 |
| Restarts recording at the beginning of the record buffer. More...
|
|
virtual uint32_t | get_record_addr (const size_t chan)=0 |
| Returns the base address of the record buffer (in bytes). More...
|
|
virtual uint32_t | get_play_addr (const size_t chan)=0 |
| Returns the base address of the playback buffer (in bytes). More...
|
|
virtual uint32_t | get_record_size (const size_t chan)=0 |
| Returns the size of the record buffer (in bytes). More...
|
|
virtual uint32_t | get_record_fullness (const size_t chan)=0 |
| Returns the current fullness of the record buffer (in bytes). More...
|
|
virtual uint32_t | get_play_size (const size_t chan)=0 |
| Returns the size of the playback buffer (in bytes). More...
|
|
virtual void | set_words_per_packet (const uint32_t num_words, const size_t chan)=0 |
| Sets the size of the packets played by the Replay block (in 64-bit words) More...
|
|
virtual uint32_t | get_words_per_packet (const size_t chan)=0 |
| Returns the size of the packets played by the Replay block (in 64-bit words) More...
|
|
virtual void | play_halt (const size_t chan)=0 |
| Halts playback and clears the playback command FIFO. More...
|
|
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 (uint32_t next_address, size_t output_block_port=0) |
|
virtual void | configure_flow_control_out (const bool enable_output, const bool lossless_link, const size_t buf_size_bytes, const size_t pkt_limit=0, const size_t block_port=0, const uhd::sid_t &sid=uhd::sid_t()) |
|
size_t | get_mtu (size_t block_port=0) const |
|
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 uint32_t reg, const uint32_t data, const size_t port=0) |
|
void | sr_write (const std::string ®, const uint32_t data, const size_t port=0) |
|
uint64_t | sr_read64 (const settingsbus_reg_t reg, const size_t port=0) |
|
uint32_t | sr_read32 (const settingsbus_reg_t reg, const size_t port=0) |
|
uint64_t | user_reg_read64 (const uint32_t addr, const size_t port=0) |
|
uint64_t | user_reg_read64 (const std::string ®, const size_t port=0) |
|
uint32_t | user_reg_read32 (const uint32_t addr, const size_t port=0) |
|
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 () |
|
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 |
|
node_map_t | list_downstream_nodes () |
|
node_map_t | list_upstream_nodes () |
|
void | disconnect () |
|
void | disconnect_output_port (const size_t output_port) |
|
void | disconnect_input_port (const size_t input_port) |
|
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 (bool active_only=false) |
|
template<typename T > |
UHD_INLINE std::vector< boost::shared_ptr< T > > | find_upstream_node (bool active_only=false) |
|
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) |
|
stream_sig_t | get_input_signature (size_t block_port=0) const |
|
std::vector< size_t > | get_input_ports () const |
|
size_t | get_fifo_size (size_t block_port=0) const |
|
size_t | get_mtu (size_t block_port=0) const |
|
virtual void | configure_flow_control_in (const size_t bytes, const size_t block_port=0) |
|
virtual void | set_error_policy (const std::string &policy) |
|
size_t | connect_upstream (node_ctrl_base::sptr upstream_node, size_t port=ANY_PORT, const uhd::device_addr_t &args=uhd::device_addr_t()) |
|
virtual void | set_tx_streamer (bool active, const size_t port) |
|
|
typedef boost::shared_ptr< source_block_ctrl_base > | sptr |
|
typedef boost::shared_ptr< block_ctrl_base > | sptr |
|
typedef boost::function< sptr(const make_args_t &)> | make_t |
|
typedef boost::shared_ptr< node_ctrl_base > | sptr |
|
typedef boost::weak_ptr< node_ctrl_base > | wptr |
|
typedef std::map< size_t, wptr > | node_map_t |
|
typedef std::pair< size_t, wptr > | node_map_pair_t |
|
typedef boost::function< void(void)> | graph_update_cb_t |
|
typedef boost::shared_ptr< source_node_ctrl > | sptr |
|
typedef std::map< size_t, boost::weak_ptr< source_node_ctrl > > | node_map_t |
|
typedef std::pair< size_t, boost::weak_ptr< source_node_ctrl > > | node_map_pair_t |
|
typedef boost::shared_ptr< sink_block_ctrl_base > | sptr |
|
typedef boost::shared_ptr< sink_node_ctrl > | sptr |
|
typedef std::map< size_t, boost::weak_ptr< sink_node_ctrl > > | node_map_t |
|
typedef std::pair< size_t, boost::weak_ptr< sink_node_ctrl > > | node_map_pair_t |
|
static void | register_block (const make_t &make, const std::string &name) |
|
static sptr | make (const make_args_t &make_args, uint64_t noc_id=~0) |
| Create a block controller class given a NoC-ID or a block name. More...
|
|
virtual size_t | _request_output_port (const size_t suggested_port, const uhd::device_addr_t &args) const |
|
| block_ctrl_base (void) |
|
virtual | ~block_ctrl_base () |
|
| block_ctrl_base (const make_args_t &make_args) |
|
stream_sig_t | _resolve_port_def (const blockdef::port_t &port_def) const |
|
uhd::fs_path | get_arg_path (const std::string &key, size_t port=0) const |
| Return the property tree path to a block argument key on port . More...
|
|
timed_wb_iface::sptr | get_ctrl_iface (const size_t block_port) |
| Get a control interface object for block port block_port . More...
|
|
virtual void | _clear (const size_t port=0) |
| Override this function if your block does something else. More...
|
|
virtual void | _set_command_time (const time_spec_t &time_spec, const size_t port=ANY_PORT) |
| Override this function if your block needs to specially handle. More...
|
|
| node_ctrl_base (void) |
|
virtual | ~node_ctrl_base () |
|
void | update_graph () |
|
virtual size_t | _request_input_port (const size_t suggested_port, const uhd::device_addr_t &args) const |
|
uhd::property_tree::sptr | _tree |
| Property sub-tree. More...
|
|
uhd::fs_path | _root_path |
| Root node of this block's properties. More...
|
|
blockdef::sptr | _block_def |
| Block definition (stores info about the block such as ports) More...
|
|
uhd::device_addr_t | _args |
| Stores default arguments. More...
|
|
node_map_t | _upstream_nodes |
| List of upstream nodes. More...
|
|
node_map_t | _downstream_nodes |
| List of downstream nodes. More...
|
|
size_t | _num_input_ports |
|
size_t | _num_output_ports |
|
std::map< size_t, bool > | _rx_streamer_active |
|
std::map< size_t, bool > | _tx_streamer_active |
|
Replay block controller.
The replay block has the following features:
- One input and one output
- The ability to record and playback data
- Configurable base addresses and buffer sizes
- Independent record and playback controls
- Radio-like playback interface
- The storage for the replay data can be any memory, usually an off-chip DRAM.