Skip to content

Struct dp_frame_state_t

ClassList > dp_frame_state_t

Frame state. More...

  • #include <frame_core.h>

Public Attributes

Type Name
int built
wfm_frame_desc_t d
wfm_frame_desc_layout_t dl
size_t nbits
uint8_t * one
uint8_t * own
int rx_checked
int rx_ok
int rx_symbols
int rx_units

Detailed Description

Allocate with dp_frame_create().

Public Attributes Documentation

variable built

int dp_frame_state_t::built;

Non-zero once the description is fixed: set by dp_frame_create and by a successful dp_frame_build. It is NOT one != NULL, because a description with a data field is built, laid out and checkable, yet has no single frame to hold its data field has no bits of its own, so one stays NULL and dp_frame_bits writes none.


variable d

wfm_frame_desc_t dp_frame_state_t::d;

The DESCRIPTION — fields and stages — which is what everything here delegates on. The constructor describes the common frame through dp_wfm_frame_fixed() and the builder appends field by field, so the two produce the same kind of thing and share every method below. Its bits pointers address the owned copies, never the caller's arrays: a Python buffer is released the moment the call that supplied it returns.


variable dl

wfm_frame_desc_layout_t dp_frame_state_t::dl;

The general layout, derived at build.


variable nbits

size_t dp_frame_state_t::nbits;

variable one

uint8_t* dp_frame_state_t::one;

One materialised frame, built at create (configured) or at build() (described) — which is also the proof the description CAN be materialised. bits() repeats this rather than regenerating, so every repeat is bit-identical by construction and a PN field cannot advance its register between them.


variable own

uint8_t* dp_frame_state_t::own[WFM_FRAME_MAX_FIELDS];

Owned copies of every literal field; NULL for a generated kind.


variable rx_checked

int dp_frame_state_t::rx_checked;

What the last dp_frame_deframe() found, summed across the stages it reversed. Read-backs rather than a returned record: the call hands back BITS, and jm binds one return value. rx_checked == 0 means the description carries no reversible stage — which is not the same fact as a failed check, and an FER conflating them would score every unprotected frame as an error.


variable rx_ok

int dp_frame_state_t::rx_ok;

variable rx_symbols

int dp_frame_state_t::rx_symbols;

variable rx_units

int dp_frame_state_t::rx_units;


The documentation for this class was generated from the following file native/inc/doppler/frame/frame_core.h