Loading...
Searching...
No Matches
gr::digital::packet_header_default Class Reference
GNU Radio C++ Signal Processing Blocks » Packet/Frame Operators

Default header formatter for digital packet transmission. More...

`#include <gnuradio/digital/packet_header_default.h>`

## Public Types

typedef std::shared_ptr< packet_header_default > | sptr

## Public Member Functions

| packet_header_default (long header_len, const std::string &len_tag_key="packet_len", const std::string &num_tag_key="packet_num", int bits_per_byte=1)
virtual | ~packet_header_default ()
sptr | base ()
sptr | formatter ()
void | set_header_num (unsigned header_num)
long | header_len ()
pmt::pmt_t | len_tag_key ()
virtual bool | header_formatter (long packet_len, unsigned char *out, const std::vector< tag_t > &tags=std::vector< tag_t >())
| Encodes the header information in the given tags into bits and places them into `out`.
virtual bool | header_parser (const unsigned char *header, std::vector< tag_t > &tags)
| Inverse function to header_formatter().

## Static Public Member Functions

static sptr | make (long header_len, const std::string &len_tag_key="packet_len", const std::string &num_tag_key="packet_num", int bits_per_byte=1)

## Protected Attributes

long | d_header_len
pmt::pmt_t | d_len_tag_key
pmt::pmt_t | d_num_tag_key
int | d_bits_per_byte
unsigned | d_header_number
unsigned | d_mask
crc | d_crc_impl

## Detailed Description

Default header formatter for digital packet transmission.

For bursty/packetized digital transmission, packets are usually prepended with a packet header, containing the number of bytes etc. This class is not a block, but a tool to create these packet header.

This is a default packet header (see header_formatter()) for a description on the header format). To create other header, derive packet header creator classes from this function.

gr::digital::packet_headergenerator_bb uses header generators derived from this class to create packet headers from data streams.

## Member Typedef Documentation

## sptr

typedef std::shared_ptr<packet_header_default> gr::digital::packet_header_default::sptr

## Constructor & Destructor Documentation

## packet_header_default()

gr::digital::packet_header_default::packet_header_default | ( | long | header_len,
|  | const std::string & | len_tag_key = "packet_len",
|  | const std::string & | num_tag_key = "packet_num",
|  | int | bits_per_byte = 1 )

References header_len(), and len_tag_key().

## ~packet_header_default()

virtual gr::digital::packet_header_default::~packet_header_default | ( |  | ) |

virtual

## Member Function Documentation

## base()

sptr gr::digital::packet_header_default::base | ( |  | ) |

inline

## formatter()

sptr gr::digital::packet_header_default::formatter | ( |  | ) |

inline

## header_formatter()

virtual bool gr::digital::packet_header_default::header_formatter | ( | long | packet_len,
|  | unsigned char * | out,
|  | const std::vector< tag_t > & | tags = std::vector< tag_t >() )

virtual

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 All other bits: Are set to zero

If the header length is smaller than 32, bits are simply left out. For this reason, they always start with the LSB.

However, it is recommended to stay above 32 Bits, in order to have a working CRC.

Reimplemented in gr::digital::packet_header_ofdm.

## header_len()

long gr::digital::packet_header_default::header_len | ( |  | ) |

inline

References d_header_len.

Referenced by make(), and packet_header_default().

## header_parser()

virtual bool gr::digital::packet_header_default::header_parser | ( | const unsigned char * | header,
|  | std::vector< tag_t > & | tags )

virtual

Inverse function to header_formatter().

Reads the bit stream in `header` and writes a corresponding tag into `tags`.

Reimplemented in gr::digital::packet_header_ofdm.

## len_tag_key()

pmt::pmt_t gr::digital::packet_header_default::len_tag_key | ( |  | ) |

inline

References d_len_tag_key.

Referenced by make(), gr::digital::packet_header_ofdm::make(), packet_header_default(), and gr::digital::packet_header_ofdm::packet_header_ofdm().

## make()

sptr gr::digital::packet_header_default::make | ( | long | header_len,
|  | const std::string & | len_tag_key = "packet_len",
|  | const std::string & | num_tag_key = "packet_num",
|  | int | bits_per_byte = 1 )

static

References header_len(), and len_tag_key().

## set_header_num()

void gr::digital::packet_header_default::set_header_num | ( | unsigned | header_num | ) |

inline

References d_header_number.

## Member Data Documentation

## d_bits_per_byte

int gr::digital::packet_header_default::d_bits_per_byte

protected

## d_crc_impl

crc gr::digital::packet_header_default::d_crc_impl

protected

## d_header_len

long gr::digital::packet_header_default::d_header_len

protected

Referenced by header_len().

## d_header_number

unsigned gr::digital::packet_header_default::d_header_number

protected

Referenced by set_header_num().

## d_len_tag_key

pmt::pmt_t gr::digital::packet_header_default::d_len_tag_key

protected

Referenced by len_tag_key().

## d_mask

unsigned gr::digital::packet_header_default::d_mask

protected

## d_num_tag_key

pmt::pmt_t gr::digital::packet_header_default::d_num_tag_key

protected

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

- packet_header_default.h