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