Header formatter that includes the payload length, packet number, and a CRC check on the header. More...
#include <gnuradio/digital/header_format_crc.h>
| Public Types | |
| typedef std::shared_ptr< header_format_crc > | sptr | 
| Public Types inherited from gr::digital::header_format_base | |
| typedef std::shared_ptr< header_format_base > | sptr | 
| Public Member Functions | |
| header_format_crc (const std::string &len_key_name="packet_len", const std::string &num_key_name="packet_num") | |
| ~header_format_crc () override | |
| void | set_header_num (unsigned header_num) | 
| 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 | 
| Public Member Functions inherited from gr::digital::header_format_base | |
| header_format_base () | |
| virtual | ~header_format_base () | 
| sptr | base () | 
| sptr | formatter () | 
| size_t | header_nbytes () const | 
| Static Public Member Functions | |
| static sptr | make (const std::string &len_key_name="packet_len", const std::string &num_key_name="packet_num") | 
| Protected Member Functions | |
| bool | header_ok () override | 
| Verify that the header is valid. | |
| int | header_payload () override | 
| Protected Member Functions inherited from gr::digital::header_format_base | |
| virtual void | enter_search () | 
| Enter Search state of the state machine to find the access code. | |
| virtual void | enter_have_sync () | 
| Access code found, start getting the header. | |
| virtual void | enter_have_header (int payload_len) | 
| Header found, setup for pulling in the hard decision bits. | |
| Protected Attributes | |
| uint16_t | d_header_number | 
| pmt::pmt_t | d_len_key_name | 
| pmt::pmt_t | d_num_key_name | 
| crc | d_crc_impl | 
| Protected Attributes inherited from gr::digital::header_format_base | |
| state_t | d_state | 
| state of the state machine | |
| header_buffer | d_hdr_reg | 
| header_buffer object to hold header bits | |
| pmt::pmt_t | d_info | 
| info captured from the header | |
| gr::logger_ptr | d_logger | 
| gr::logger_ptr | d_debug_logger | 
| Additional Inherited Members | |
| Protected Types inherited from gr::digital::header_format_base | |
| enum | state_t { STATE_SYNC_SEARCH , STATE_HAVE_SYNC } | 
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:
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.
| typedef std::shared_ptr<header_format_crc> gr::digital::header_format_crc::sptr | 
| gr::digital::header_format_crc::header_format_crc | ( | const std::string & | len_key_name = "packet_len", | 
| const std::string & | num_key_name = "packet_num" ) | 
| 
 | override | 
| 
 | overridevirtual | 
Encodes the header information in the given tags into bits and places them into out. 
Uses the following header format:
len_tag_key)Implements gr::digital::header_format_base.
Reimplemented in gr::digital::header_format_ofdm.
| 
 | overridevirtual | 
Returns the length of the formatted header in bits.
Implements gr::digital::header_format_base.
Reimplemented in gr::digital::header_format_ofdm.
| 
 | overrideprotectedvirtual | 
Verify that the header is valid.
Implements gr::digital::header_format_base.
| 
 | overrideprotectedvirtual | 
Get info from the header; return payload length and package rest of data in d_info dictionary.
Implements gr::digital::header_format_base.
Reimplemented in gr::digital::header_format_ofdm.
| 
 | static | 
Factory to create an async packet header formatter; returns an sptr to the object.
| 
 | 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.
| 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.
Implements gr::digital::header_format_base.
Reimplemented in gr::digital::header_format_ofdm.
| 
 | inline | 
References d_header_number.
| 
 | protected | 
| 
 | protected | 
Referenced by set_header_num().
| 
 | protected | 
| 
 | protected |