GNU Radio 3.6.5 C++ API
|
#include <ofdm_frame_equalizer_vcvc_impl.h>
Public Member Functions | |
ofdm_frame_equalizer_vcvc_impl (digital_ofdm_equalizer_base_sptr equalizer, int cp_len, const std::string &len_tag_key, bool propagate_channel_state, int fixed_frame_len) | |
~ofdm_frame_equalizer_vcvc_impl () | |
int | work (int noutput_items, gr_vector_int &ninput_items, gr_vector_const_void_star &input_items, gr_vector_void_star &output_items) |
Just like gr_block::general_work, but makes sure the input is valid. | |
Protected Member Functions | |
void | parse_length_tags (const std::vector< std::vector< gr_tag_t > > &tags, gr_vector_int &n_input_items_reqd) |
Parse all tags on the first sample of a PDU, return the number of items per input and prune the length tags. |
gr::digital::ofdm_frame_equalizer_vcvc_impl::ofdm_frame_equalizer_vcvc_impl | ( | digital_ofdm_equalizer_base_sptr | equalizer, |
int | cp_len, | ||
const std::string & | len_tag_key, | ||
bool | propagate_channel_state, | ||
int | fixed_frame_len | ||
) |
gr::digital::ofdm_frame_equalizer_vcvc_impl::~ofdm_frame_equalizer_vcvc_impl | ( | ) |
void gr::digital::ofdm_frame_equalizer_vcvc_impl::parse_length_tags | ( | const std::vector< std::vector< gr_tag_t > > & | tags, |
gr_vector_int & | n_input_items_reqd | ||
) | [protected, virtual] |
Parse all tags on the first sample of a PDU, return the number of items per input and prune the length tags.
In most cases, you don't need to override this, unless the number of items read is not directly coded in one single tag.
Default behaviour:
length_tag_key
n_input_items_reqd
[in] | tags | All the tags found on the first item of every input port. |
[out] | n_input_items_reqd | Number of items which will be read from every input |
Reimplemented from gr_tagged_stream_block.
int gr::digital::ofdm_frame_equalizer_vcvc_impl::work | ( | int | noutput_items, |
gr_vector_int & | ninput_items, | ||
gr_vector_const_void_star & | input_items, | ||
gr_vector_void_star & | output_items | ||
) | [virtual] |
Just like gr_block::general_work, but makes sure the input is valid.
The user must override work to define the signal processing code. Check the documentation for general_work() to see what happens here.
Like gr_sync_block, this calls consume() for you (it consumes ninput_items[i] items from the i-th port).
A note on tag propagation: The PDU length tags are handled by other functions, but all other tags are handled just as in any other gr_block
. So, most likely, you either set the tag propagation policy to TPP_DONT and handle the tag propagation manually, or you propagate tags through the scheduler and don't do anything here.
noutput_items | The size of the writable output buffer |
ninput_items | The exact size of the items on every input for this particular PDU. These will be consumed if a length tag key is provided! |
input_items | See gr_block |
output_items | See gr_block |
Implements gr_tagged_stream_block.