GNU Radio's CDMA Package

Public Types | Public Member Functions | Static Public Member Functions | Protected Attributes | List of all members
gr::cdma::packet_header2 Class Reference

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

`#include <packet_header2.h>`

Inheritance diagram for gr::cdma::packet_header2:
[legend]

## Public Types
typedef boost::shared_ptr< packet_header2 > | sptr

## Public Member Functions
| packet_header2 (long header_len, const std::string &len_tag_key="packet_len", const std::string &num_tag_key="packet_num", int bits_per_byte=1, int tcm_type=1, const std::string &tcm_type_key="tcm_type")
| ~packet_header2 ()
void | set_tcm_type (int tcm_type)
pmt::pmt_t | num_tag_key ()
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`. More...

## 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, int tcm_type=1, const std::string &tcm_tag_key="tcm_type")

## Protected Attributes
pmt::pmt_t | d_tcm_tag_key
int | d_tcm_type

## 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 boost::shared_ptr<packet_header2> gr::cdma::packet_header2::sptr

## Constructor & Destructor Documentation

## ◆ packet_header2()

gr::cdma::packet_header2::packet_header2 | ( | long | header_len,
|  | const std::string & | len_tag_key = `"packet_len"`,
|  | const std::string & | num_tag_key = `"packet_num"`,
|  | int | bits_per_byte = `1`,
|  | int | tcm_type = `1`,
|  | const std::string & | tcm_type_key = `"tcm_type"`
| ) |  |

## ◆ ~packet_header2()

gr::cdma::packet_header2::~packet_header2 | ( |  | ) |

## Member Function Documentation

## ◆ header_formatter()

bool gr::cdma::packet_header2::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`.

Uses the following header format: Bits 0-11: The packet length (what was stored in the tag with key `len_tag_key`) Bits 12-15: The trellis coded modulation type Bits 16-27: The header number (counts up everytime this function is called) Bit 28-35: 8-Bit CRC All other bits: Are set to zero

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

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

## ◆ make()

static sptr gr::cdma::packet_header2::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`,
|  | int | tcm_type = `1`,
|  | const std::string & | tcm_tag_key = `"tcm_type"`
| ) |  |
| static

## ◆ num_tag_key()

pmt::pmt_t gr::cdma::packet_header2::num_tag_key | ( |  | ) |
| inline

## ◆ set_tcm_type()

void gr::cdma::packet_header2::set_tcm_type | ( | int | tcm_type | ) |
| inline

## Member Data Documentation

## ◆ d_tcm_tag_key

pmt::pmt_t gr::cdma::packet_header2::d_tcm_tag_key
| protected

## ◆ d_tcm_type

int gr::cdma::packet_header2::d_tcm_type
| protected

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

- packet_header2.h