GNU Radio 3.6.4 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 Member Functions | |
virtual void | set_max_regen (unsigned int regen)=0 |
Reset the maximum regeneration count; this will reset the current regen. | |
virtual void | set_period (int period)=0 |
Reset the period of regenerations; this will reset the current regen. | |
virtual unsigned int | max_regen () const =0 |
return the maximum regeneration count. | |
virtual int | period () const =0 |
return the regeneration period. | |
![]() | |
virtual int | work (int noutput_items, gr_vector_const_void_star &input_items, gr_vector_void_star &output_items)=0 |
just like gr_block::general_work, only this arranges to call consume_each for you | |
void | forecast (int noutput_items, gr_vector_int &ninput_items_required) |
Estimate input requirements given output request. | |
int | general_work (int noutput_items, gr_vector_int &ninput_items, gr_vector_const_void_star &input_items, gr_vector_void_star &output_items) |
compute output items from input items | |
int | fixed_rate_ninput_to_noutput (int ninput) |
Given ninput samples, return number of output samples that will be produced. N.B. this is only defined if fixed_rate returns true. Generally speaking, you don't need to override this. | |
int | fixed_rate_noutput_to_ninput (int noutput) |
Given noutput samples, return number of input samples required to produce noutput. N.B. this is only defined if fixed_rate returns true. Generally speaking, you don't need to override this. | |
![]() | |
virtual | ~gr_block () |
unsigned | history () const |
void | set_history (unsigned history) |
bool | fixed_rate () const |
Return true if this block has a fixed input to output rate. | |
virtual bool | start () |
Called to enable drivers, etc for i/o devices. | |
virtual bool | stop () |
Called to disable drivers, etc for i/o devices. | |
void | set_output_multiple (int multiple) |
Constrain the noutput_items argument passed to forecast and general_work. | |
int | output_multiple () const |
bool | output_multiple_set () const |
void | set_alignment (int multiple) |
Constrains buffers to work on a set item alignment (for SIMD) | |
int | alignment () const |
void | set_unaligned (int na) |
int | unaligned () const |
void | set_is_unaligned (bool u) |
bool | is_unaligned () const |
void | consume (int which_input, int how_many_items) |
Tell the scheduler how_many_items of input stream which_input were consumed. | |
void | consume_each (int how_many_items) |
Tell the scheduler how_many_items were consumed on each input stream. | |
void | produce (int which_output, int how_many_items) |
Tell the scheduler how_many_items were produced on output stream which_output . | |
void | set_relative_rate (double relative_rate) |
Set the approximate output rate / input rate. | |
double | relative_rate () const |
return the approximate output rate / input rate | |
uint64_t | nitems_read (unsigned int which_input) |
Return the number of items read on input stream which_input. | |
uint64_t | nitems_written (unsigned int which_output) |
Return the number of items written on output stream which_output. | |
tag_propagation_policy_t | tag_propagation_policy () |
Asks for the policy used by the scheduler to moved tags downstream. | |
void | set_tag_propagation_policy (tag_propagation_policy_t p) |
Set the policy by the scheduler to determine how tags are moved downstream. | |
int | min_noutput_items () const |
Return the minimum number of output items this block can produce during a call to work. | |
void | set_min_noutput_items (int m) |
Set the minimum number of output items this block can produce during a call to work. | |
int | max_noutput_items () |
Return the maximum number of output items this block will handle during a call to work. | |
void | set_max_noutput_items (int m) |
Set the maximum number of output items this block will handle during a call to work. | |
void | unset_max_noutput_items () |
Clear the switch for using the max_noutput_items value of this block. | |
bool | is_set_max_noutput_items () |
Ask the block if the flag is or is not set to use the internal value of max_noutput_items during a call to work. | |
void | expand_minmax_buffer (int port) |
long | max_output_buffer (size_t i) |
Returns max buffer size on output port i . | |
void | set_max_output_buffer (long max_output_buffer) |
Sets max buffer size on all output ports. | |
void | set_max_output_buffer (int port, long max_output_buffer) |
Sets max buffer size on output port port . | |
long | min_output_buffer (size_t i) |
Returns min buffer size on output port i . | |
void | set_min_output_buffer (long min_output_buffer) |
Sets min buffer size on all output ports. | |
void | set_min_output_buffer (int port, long min_output_buffer) |
Sets min buffer size on output port port . | |
float | pc_noutput_items () |
Gets average noutput_items performance counter. | |
float | pc_noutput_items_var () |
Gets variance of noutput_items performance counter. | |
float | pc_nproduced () |
Gets average num items produced performance counter. | |
float | pc_nproduced_var () |
Gets variance of num items produced performance counter. | |
float | pc_input_buffers_full (int which) |
Gets average fullness of which input buffer. | |
float | pc_input_buffers_full_var (int which) |
Gets variance of fullness of which input buffer. | |
std::vector< float > | pc_input_buffers_full () |
Gets average fullness of all input buffers. | |
std::vector< float > | pc_input_buffers_full_var () |
Gets variance of fullness of all input buffers. | |
float | pc_output_buffers_full (int which) |
Gets average fullness of which input buffer. | |
float | pc_output_buffers_full_var (int which) |
Gets variance of fullness of which input buffer. | |
std::vector< float > | pc_output_buffers_full () |
Gets average fullness of all output buffers. | |
std::vector< float > | pc_output_buffers_full_var () |
Gets variance of fullness of all output buffers. | |
float | pc_work_time () |
Gets average clock cycles spent in work. | |
float | pc_work_time_var () |
Gets average clock cycles spent in work. | |
void | reset_perf_counters () |
Resets the performance counters. | |
void | set_processor_affinity (const std::vector< unsigned int > &mask) |
Set the thread's affinity to processor core n . | |
void | unset_processor_affinity () |
Remove processor affinity to a specific core. | |
std::vector< unsigned int > | processor_affinity () |
Get the current processor affinity. | |
gr_block_detail_sptr | detail () const |
void | set_detail (gr_block_detail_sptr detail) |
![]() | |
virtual | ~gr_basic_block () |
long | unique_id () const |
long | symbolic_id () const |
std::string | name () const |
std::string | symbol_name () const |
gr_io_signature_sptr | input_signature () const |
gr_io_signature_sptr | output_signature () const |
gr_basic_block_sptr | to_basic_block () |
bool | alias_set () |
std::string | alias () |
pmt::pmt_t | alias_pmt () |
void | set_block_alias (std::string name) |
void | message_port_register_in (pmt::pmt_t port_id) |
void | message_port_register_out (pmt::pmt_t port_id) |
void | message_port_pub (pmt::pmt_t port_id, pmt::pmt_t msg) |
void | message_port_sub (pmt::pmt_t port_id, pmt::pmt_t target) |
void | message_port_unsub (pmt::pmt_t port_id, pmt::pmt_t target) |
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. | |
pmt::pmt_t | message_ports_out () |
Get output message port names. | |
void | _post (pmt::pmt_t which_port, pmt::pmt_t msg) |
bool | empty_p (pmt::pmt_t which_port) |
is the queue empty? | |
bool | empty_p () |
void | insert_tail (pmt::pmt_t which_port, pmt::pmt_t msg) |
pmt::pmt_t | delete_head_nowait (pmt::pmt_t which_port) |
pmt::pmt_t | delete_head_blocking (pmt::pmt_t which_port) |
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) |
virtual bool | check_topology (int ninputs, int noutputs) |
Confirm that ninputs and noutputs is an acceptable combination. | |
template<typename T > | |
void | set_msg_handler (pmt::pmt_t which_port, T msg_handler) |
Set the callback that is fired when messages are available. | |
![]() | |
gr_msg_accepter () | |
~gr_msg_accepter () | |
void | post (pmt::pmt_t which_port, pmt::pmt_t msg) |
send msg to msg_accepter on port which_port | |
![]() | |
msg_accepter () | |
virtual | ~msg_accepter () |
Static Public Member Functions | |
static sptr | make (int period, unsigned int max_regen=500) |
Make a regenerate block. |
Additional Inherited Members | |
![]() | |
enum | vcolor { WHITE, GREY, BLACK } |
![]() | |
gr_sync_block (void) | |
gr_sync_block (const std::string &name, gr_io_signature_sptr input_signature, gr_io_signature_sptr output_signature) | |
![]() | |
std::vector< long > | d_max_output_buffer |
std::vector< long > | d_min_output_buffer |
gruel::mutex | d_setlock |
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.