GNU Radio 3.6.4.2 C++ API
|
throttle flow of samples such that the average rate does not exceed samples_per_sec.input: one stream of itemsize; output: one stream of itemsize More...
#include <gr_throttle.h>
Public Types | |
typedef boost::shared_ptr < gr_throttle > | sptr |
![]() | |
enum | { WORK_CALLED_PRODUCE = -2, WORK_DONE = -1 } |
Return options for the work call. More... | |
enum | tag_propagation_policy_t { TPP_DONT = 0, TPP_ALL_TO_ALL = 1, TPP_ONE_TO_ONE = 2 } |
typedef std::deque< pmt::pmt_t > | msg_queue_t |
typedef std::map< pmt::pmt_t, msg_queue_t, pmt::pmt_comperator > | msg_queue_map_t |
typedef std::map< pmt::pmt_t, msg_queue_t, pmt::pmt_comperator > ::iterator | msg_queue_map_itr |
typedef boost::function< void(pmt::pmt_t)> | msg_handler_t |
typedef std::map< pmt::pmt_t, msg_handler_t, pmt::pmt_comperator > | d_msg_handlers_t |
Public Member Functions | |
virtual void | set_sample_rate (double rate)=0 |
Sets the sample rate in samples per second. More... | |
![]() | |
gr_sync_block (void) | |
gr_sync_block (const std::string &name, gr_io_signature_sptr input_signature, gr_io_signature_sptr output_signature) | |
virtual | ~gr_sync_block (void) |
int | general_work (int noutput_items, gr_vector_int &ninput_items, gr_vector_const_void_star &input_items, gr_vector_void_star &output_items) |
implements work -> calls work More... | |
virtual int | work (int noutput_items, gr_vector_const_void_star &input_items, gr_vector_void_star &output_items) |
just like gr_block::general_work, only this arranges to call consume_each for you More... | |
![]() | |
gr_block (void) | |
gr_block (const std::string &name, gr_io_signature_sptr input_signature, gr_io_signature_sptr output_signature) | |
long | unique_id (void) const |
std::string | name (void) const |
virtual | ~gr_block (void) |
gr_io_signature_sptr | input_signature (void) const |
gr_io_signature_sptr | output_signature (void) const |
void | set_input_signature (gr_io_signature_sptr sig) |
void | set_output_signature (gr_io_signature_sptr sig) |
virtual bool | check_topology (int ninputs, int noutputs) |
virtual void | forecast (int, std::vector< int > &) |
Overload me! I am the forecast. More... | |
virtual bool | start (void) |
virtual bool | stop (void) |
void | consume_each (const int how_many_items) |
Call during work to consume items. More... | |
void | consume (const size_t i, const int how_many_items) |
void | produce (const size_t o, const int how_many_items) |
uint64_t | nitems_read (const size_t which_input=0) |
Get absolute count of all items consumed on the given input port. More... | |
uint64_t | nitems_written (const size_t which_output=0) |
Get absolute count of all items produced on the given output port. More... | |
void | add_item_tag (const size_t which_output, const gr_tag_t &tag) |
void | add_item_tag (const size_t which_output, uint64_t abs_offset, const pmt::pmt_t &key, const pmt::pmt_t &value, const pmt::pmt_t &srcid=pmt::PMT_F) |
void | get_tags_in_range (std::vector< gr_tag_t > &tags, const size_t which_input, uint64_t abs_start, uint64_t abs_end, const pmt::pmt_t &key=pmt::pmt_t()) |
void | set_alignment (const size_t alignment) |
bool | is_unaligned (void) |
size_t | fixed_rate_noutput_to_ninput (const size_t noutput_items) |
size_t | interpolation (void) const |
void | set_interpolation (const size_t) |
size_t | decimation (void) const |
void | set_decimation (const size_t) |
int | max_noutput_items (void) const |
void | set_max_noutput_items (int) |
void | unset_max_noutput_items (void) |
bool | is_set_max_noutput_items (void) const |
unsigned | history (void) const |
void | set_history (unsigned history) |
void | set_fixed_rate (const bool fixed_rate) |
bool | fixed_rate (void) const |
Get the fixed rate setting. More... | |
void | set_relative_rate (const double relative_rate) |
double | relative_rate (void) const |
Get the relative rate setting. More... | |
void | set_output_multiple (const size_t multiple) |
size_t | output_multiple (void) const |
Get the output multiple setting. More... | |
tag_propagation_policy_t | tag_propagation_policy (void) |
void | set_tag_propagation_policy (tag_propagation_policy_t p) |
void | set_max_output_buffer (long) |
void | set_max_output_buffer (int, long) |
long | max_output_buffer (size_t) |
void | set_min_output_buffer (long) |
void | set_min_output_buffer (int, long) |
long | min_output_buffer (size_t) |
std::string | symbol_name () const |
bool | alias_set () |
std::string | alias () |
pmt::pmt_t | alias_pmt () |
void | set_block_alias (std::string name) |
template<typename T > | |
void | set_msg_handler (pmt::pmt_t which_port, T msg_handler) |
void | message_port_register_in (pmt::pmt_t) |
void | message_port_register_out (pmt::pmt_t) |
void | message_port_pub (pmt::pmt_t, pmt::pmt_t) |
void | message_port_sub (pmt::pmt_t, pmt::pmt_t) |
void | message_port_unsub (pmt::pmt_t, pmt::pmt_t) |
virtual bool | message_port_is_hier (pmt::pmt_t port_id) |
virtual bool | message_port_is_hier_in (pmt::pmt_t port_id) |
virtual bool | message_port_is_hier_out (pmt::pmt_t port_id) |
pmt::pmt_t | message_ports_in () |
Get input message port names. More... | |
pmt::pmt_t | message_ports_out () |
Get output message port names. More... | |
bool | empty_p (pmt::pmt_t which_port) |
is the queue empty? More... | |
bool | empty_p () |
void | insert_tail (pmt::pmt_t, pmt::pmt_t) |
pmt::pmt_t | delete_head_nowait (pmt::pmt_t) |
pmt::pmt_t | delete_head_blocking (pmt::pmt_t) |
msg_queue_t::iterator | get_iterator (pmt::pmt_t which_port) |
void | erase_msg (pmt::pmt_t which_port, msg_queue_t::iterator it) |
virtual bool | has_msg_port (pmt::pmt_t which_port) |
bool | has_msg_handler (pmt::pmt_t which_port) |
Tests if there is a handler attached to port which_port . More... | |
virtual void | dispatch_msg (pmt::pmt_t which_port, pmt::pmt_t msg) |
void | set_processor_affinity (const std::vector< int > &mask) |
Set the thread's affinity to processor core n . More... | |
void | unset_processor_affinity () |
Remove processor affinity to a specific core. More... | |
std::vector< int > | processor_affinity () |
Get the current processor affinity. More... | |
void | work (const InputItems &, const OutputItems &) |
implements work -> calls general work More... | |
void | notify_topology (const size_t, const size_t) |
notifications of new topological commits More... | |
void | notify_active (void) |
start notification More... | |
void | notify_inactive (void) |
stop notification More... | |
virtual void | propagate_tags (const size_t, const gras::TagIter &) |
implements tag_propagation_policy() More... | |
void | _update_input_reserve (void) |
gras::BufferQueueSptr | input_buffer_allocator (const size_t, const gras::SBufferConfig &) |
gras::BufferQueueSptr | output_buffer_allocator (const size_t, const gras::SBufferConfig &) |
Additional Inherited Members | |
![]() | |
long | _unique_id |
std::string | _name |
std::string | d_symbol_alias |
std::string | d_symbol_name |
msg_queue_map_t | msg_queue |
pmt::pmt_t | message_subscribers |
d_msg_handlers_t | d_msg_handlers |
gruel::mutex | d_setlock |
std::vector< int > | d_affinity |
gr_vector_int | _work_ninput_items |
gr_vector_int | _fcast_ninput_items |
size_t | _num_outputs |
ptrdiff_t | _work_io_ptr_mask |
size_t | _output_multiple_items |
double | _relative_rate |
bool | _enable_fixed_rate |
size_t | _input_history_items |
tag_propagation_policy_t | _tag_prop_policy |
size_t | _interp |
size_t | _decim |
gr_io_signature_sptr | _in_sig |
gr_io_signature_sptr | _out_sig |
throttle flow of samples such that the average rate does not exceed samples_per_sec.
input: one stream of itemsize; output: one stream of itemsize
N.B. this should only be used in GUI apps where there is no other rate limiting block. It is not intended nor effective at precisely controlling the rate of samples. That should be controlled by a source or sink tied to sample clock. E.g., a USRP or audio card.
|
pure virtual |
Sets the sample rate in samples per second.