GNU Radio 3.5.1 C++ API
|
Takes an OFDM symbol in, demaps it into bits of 0's and 1's, packs them into packets, and sends to to a message queue sink.NOTE: The mod input parameter simply chooses a pre-defined demapper/slicer. Eventually, we want to be able to pass in a reference to an object to do the demapping and slicing for a given modulation type. More...
#include <digital_ofdm_frame_sink.h>
Public Member Functions | |
~digital_ofdm_frame_sink () | |
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 | |
Protected Member Functions | |
digital_ofdm_frame_sink (const std::vector< gr_complex > &sym_position, const std::vector< unsigned char > &sym_value_out, gr_msg_queue_sptr target_queue, unsigned int occupied_tones, float phase_gain, float freq_gain) | |
void | enter_search () |
void | enter_have_sync () |
void | enter_have_header () |
bool | header_ok () |
unsigned char | slicer (const gr_complex x) |
unsigned int | demapper (const gr_complex *in, unsigned char *out) |
bool | set_sym_value_out (const std::vector< gr_complex > &sym_position, const std::vector< unsigned char > &sym_value_out) |
Friends | |
DIGITAL_API digital_ofdm_frame_sink_sptr | digital_make_ofdm_frame_sink (const std::vector< gr_complex > &sym_position, const std::vector< unsigned char > &sym_value_out, gr_msg_queue_sptr target_queue, unsigned int occupied_tones, float phase_gain, float freq_gain) |
Takes an OFDM symbol in, demaps it into bits of 0's and 1's, packs them into packets, and sends to to a message queue sink.
NOTE: The mod input parameter simply chooses a pre-defined demapper/slicer. Eventually, we want to be able to pass in a reference to an object to do the demapping and slicing for a given modulation type.
digital_ofdm_frame_sink::digital_ofdm_frame_sink | ( | const std::vector< gr_complex > & | sym_position, |
const std::vector< unsigned char > & | sym_value_out, | ||
gr_msg_queue_sptr | target_queue, | ||
unsigned int | occupied_tones, | ||
float | phase_gain, | ||
float | freq_gain | ||
) | [protected] |
digital_ofdm_frame_sink::~digital_ofdm_frame_sink | ( | ) |
unsigned int digital_ofdm_frame_sink::demapper | ( | const gr_complex * | in, |
unsigned char * | out | ||
) | [protected] |
void digital_ofdm_frame_sink::enter_have_header | ( | ) | [protected] |
void digital_ofdm_frame_sink::enter_have_sync | ( | ) | [protected] |
void digital_ofdm_frame_sink::enter_search | ( | ) | [protected] |
bool digital_ofdm_frame_sink::header_ok | ( | ) | [inline, protected] |
bool digital_ofdm_frame_sink::set_sym_value_out | ( | const std::vector< gr_complex > & | sym_position, |
const std::vector< unsigned char > & | sym_value_out | ||
) | [protected] |
unsigned char digital_ofdm_frame_sink::slicer | ( | const gr_complex | x | ) | [protected] |
int digital_ofdm_frame_sink::work | ( | int | noutput_items, |
gr_vector_const_void_star & | input_items, | ||
gr_vector_void_star & | output_items | ||
) | [virtual] |
just like gr_block::general_work, only this arranges to call consume_each for you
The user must override work to define the signal processing code
Implements gr_sync_block.
DIGITAL_API digital_ofdm_frame_sink_sptr digital_make_ofdm_frame_sink | ( | const std::vector< gr_complex > & | sym_position, |
const std::vector< unsigned char > & | sym_value_out, | ||
gr_msg_queue_sptr | target_queue, | ||
unsigned int | occupied_tones, | ||
float | phase_gain, | ||
float | freq_gain | ||
) | [friend] |