Header formatter that includes the payload length, packet number, and a CRC check on the header.  
 More...
#include <gnuradio/digital/header_format_ofdm.h>
|  | 
|  | header_format_ofdm (const std::vector< std::vector< int > > &occupied_carriers, int n_syms, const std::string &len_key_name="packet_len", const std::string &frame_key_name="frame_len", const std::string &num_key_name="packet_num", int bits_per_header_sym=1, int bits_per_payload_sym=1, bool scramble_header=false) | 
|  | ~header_format_ofdm () override | 
| bool | format (int nbytes_in, const unsigned char *input, pmt::pmt_t &output, pmt::pmt_t &info) override | 
|  | Encodes the header information in the given tags into bits and places them into out.
 | 
| bool | parse (int nbits_in, const unsigned char *input, std::vector< pmt::pmt_t > &info, int &nbits_processed) override | 
| size_t | header_nbits () const override | 
|  | 
| static sptr | make (const std::vector< std::vector< int > > &occupied_carriers, int n_syms, const std::string &len_key_name="packet_len", const std::string &frame_key_name="frame_len", const std::string &num_key_name="packet_num", int bits_per_header_sym=1, int bits_per_payload_sym=1, bool scramble_header=false) | 
Header formatter that includes the payload length, packet number, and a CRC check on the header. 
Child class of header_format_base. This version's header format looks like:
- length (12 bits): length of the payload 
- number (12 bits): packet number 
- CRC8 (8 bits): A CRC8 check on the header contents
Instead of duplicating the payload length, we only add it once and use the CRC8 to make sure it's correctly received.
  |  0 -- 11 | 12 -- 23 | 24 -- 31 |
  |    len   | pkt len  |   CRC8   |
Reimplements packet_header_default in the style of the header_format_base. 
◆ sptr
◆ header_format_ofdm()
      
        
          | gr::digital::header_format_ofdm::header_format_ofdm | ( | const std::vector< std::vector< int > > & | occupied_carriers, | 
        
          |  |  | int | n_syms, | 
        
          |  |  | const std::string & | len_key_name = "packet_len", | 
        
          |  |  | const std::string & | frame_key_name = "frame_len", | 
        
          |  |  | const std::string & | num_key_name = "packet_num", | 
        
          |  |  | int | bits_per_header_sym = 1, | 
        
          |  |  | int | bits_per_payload_sym = 1, | 
        
          |  |  | bool | scramble_header = false ) | 
      
 
 
◆ ~header_format_ofdm()
  
  | 
        
          | gr::digital::header_format_ofdm::~header_format_ofdm | ( |  | ) |  |  | override | 
 
 
◆ format()
  
  | 
        
          | bool gr::digital::header_format_ofdm::format | ( | int | nbytes_in, |  
          |  |  | const unsigned char * | input, |  
          |  |  | pmt::pmt_t & | output, |  
          |  |  | pmt::pmt_t & | info ) |  | overridevirtual | 
 
Encodes the header information in the given tags into bits and places them into out. 
Uses the following header format:
- Bits 0-11: The packet length (what was stored in the tag with key len_tag_key)
- Bits 12-23: The header number (counts up every time this function is called)
- Bit 24-31: 8-Bit CRC 
Reimplemented from gr::digital::header_format_crc.
 
 
◆ header_nbits()
  
  | 
        
          | size_t gr::digital::header_format_ofdm::header_nbits | ( |  | ) | const |  | overridevirtual | 
 
 
◆ header_payload()
  
  | 
        
          | int gr::digital::header_format_ofdm::header_payload | ( |  | ) |  |  | overrideprotectedvirtual | 
 
 
◆ make()
  
  | 
        
          | sptr gr::digital::header_format_ofdm::make | ( | const std::vector< std::vector< int > > & | occupied_carriers, |  
          |  |  | int | n_syms, |  
          |  |  | const std::string & | len_key_name = "packet_len", |  
          |  |  | const std::string & | frame_key_name = "frame_len", |  
          |  |  | const std::string & | num_key_name = "packet_num", |  
          |  |  | int | bits_per_header_sym = 1, |  
          |  |  | int | bits_per_payload_sym = 1, |  
          |  |  | bool | scramble_header = false ) |  | static | 
 
Factory to create an async packet header formatter; returns an sptr to the object. 
 
 
◆ parse()
  
  | 
        
          | bool gr::digital::header_format_ofdm::parse | ( | int | nbits_in, |  
          |  |  | const unsigned char * | input, |  
          |  |  | std::vector< pmt::pmt_t > & | info, |  
          |  |  | int & | nbits_processed ) |  | overridevirtual | 
 
Parses a header. This function is overloaded in the child class, which knows how to convert the incoming hard bits (0's and 1's) back into a packet header.
- Parameters
- 
  
    | nbits_in | The number of bits in the input array. |  | input | The input as hard decision bits. |  | info | A vector of pmt::dicts to hold any meta data or info about the PDU. When parsing the header, the formatter can add info from the header into this dict. Each packet has a single PMT dictionary of info, so the vector length is the number of packets received extracted during one call to this parser function. |  | nbits_processed | Number of input bits actually processed; If all goes well, this is nbits_in. A premature return after a bad header could be less than this. |  
 
MUST be overloaded. 
Reimplemented from gr::digital::header_format_crc.
 
 
◆ d_bits_per_payload_sym
  
  | 
        
          | int gr::digital::header_format_ofdm::d_bits_per_payload_sym |  | protected | 
 
 
◆ d_frame_key_name
  
  | 
        
          | pmt::pmt_t gr::digital::header_format_ofdm::d_frame_key_name |  | protected | 
 
Tag key of the additional frame length tag. 
 
 
◆ d_header_len
  
  | 
        
          | size_t gr::digital::header_format_ofdm::d_header_len |  | protected | 
 
 
◆ d_occupied_carriers
  
  | 
        
          | const std::vector<std::vector<int> > gr::digital::header_format_ofdm::d_occupied_carriers |  | protected | 
 
Which carriers/symbols carry data. 
 
 
◆ d_scramble_mask
  
  | 
        
          | std::vector<uint8_t> gr::digital::header_format_ofdm::d_scramble_mask |  | protected | 
 
Bits are xor'd with this before tx'ing. 
 
 
◆ d_syms_per_set
  
  | 
        
          | int gr::digital::header_format_ofdm::d_syms_per_set |  | protected | 
 
Helper variable: Total number of elements in d_occupied_carriers. 
 
 
The documentation for this class was generated from the following file: