GNU Radio 3.6.5 C++ API

gr::digital::ofdm_frame_equalizer_vcvc_impl Class Reference

#include <ofdm_frame_equalizer_vcvc_impl.h>

Inheritance diagram for gr::digital::ofdm_frame_equalizer_vcvc_impl:
gr::digital::ofdm_frame_equalizer_vcvc gr_tagged_stream_block gr_block gr_basic_block gr_msg_accepter gruel::msg_accepter

List of all members.

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.

Constructor & Destructor Documentation

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 ( )

Member Function Documentation

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:

  • Go through all input ports
  • On every input port, search for the tag with the key specified in length_tag_key
  • Copy that value as an int to the corresponding position in n_input_items_reqd
  • Remove the length tag.
Parameters:
[in]tagsAll the tags found on the first item of every input port.
[out]n_input_items_reqdNumber 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.

Parameters:
noutput_itemsThe size of the writable output buffer
ninput_itemsThe exact size of the items on every input for this particular PDU. These will be consumed if a length tag key is provided!
input_itemsSee gr_block
output_itemsSee gr_block

Implements gr_tagged_stream_block.


The documentation for this class was generated from the following file: