|
GNU Radio 3.6.4.2 C++ API
|
Detect the peak of a signal and repeat every period samplesIf a peak is detected, this block outputs a 1 repeated every period samples until reset by detection of another 1 on the input or stopped after max_regen regenerations have occurred. More...
#include <regenerate_bb.h>
Public Types | |
| typedef boost::shared_ptr < regenerate_bb > | sptr |
Public Types inherited from gr_block | |
| 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_max_regen (unsigned int regen)=0 |
| Reset the maximum regeneration count; this will reset the current regen. More... | |
| virtual void | set_period (int period)=0 |
| Reset the period of regenerations; this will reset the current regen. More... | |
| virtual unsigned int | max_regen () const =0 |
| return the maximum regeneration count. More... | |
| virtual int | period () const =0 |
| return the regeneration period. More... | |
Public Member Functions inherited from gr_sync_block | |
| 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... | |
Public Member Functions inherited from gr_block | |
| 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 &) |
Static Public Member Functions | |
| static sptr | make (int period, unsigned int max_regen=500) |
| Make a regenerate block. More... | |
Additional Inherited Members | |
Public Attributes inherited from gr_block | |
| 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 |
Detect the peak of a signal and repeat every period samples
If a peak is detected, this block outputs a 1 repeated every period samples until reset by detection of another 1 on the input or stopped after max_regen regenerations have occurred.
Note that if max_regen=(-1)/ULONG_MAX then the regeneration will run forever.
|
static |
Make a regenerate block.
| period | The number of samples between regenerations |
| max_regen | The maximum number of regenerations to perform; if set to ULONG_MAX, it will regenerate continuously. |
|
pure virtual |
return the maximum regeneration count.
Implemented in gr::blocks::regenerate_bb_impl.
|
pure virtual |
return the regeneration period.
Implemented in gr::blocks::regenerate_bb_impl.
|
pure virtual |
Reset the maximum regeneration count; this will reset the current regen.
Implemented in gr::blocks::regenerate_bb_impl.
|
pure virtual |
Reset the period of regenerations; this will reset the current regen.
Implemented in gr::blocks::regenerate_bb_impl.