npr::rf::frames::SignalingFrame class final

Encoder/decoder for signaling payload (protocol-id kSignaling).

Public static variables

static size_t kMaxElements constexpr

Public static functions

static auto append_who_tlv(uint8_t* payload, size_t payload_capacity, size_t* payload_pos, const WhoPayload& who) -> bool
Appends WHO TLV into signaling payload buffer.
static auto encode(const NprFrameCodec& codec, const SignalingConnectAckEncodeInput& input, uint8_t* out_frame, size_t out_capacity, size_t* out_size) -> bool
Builds full on-air downlink CONNECT_ACK signaling frame.
static auto encode(const NprFrameCodec& codec, const SignalingConnectNackEncodeInput& input, uint8_t* out_frame, size_t out_capacity, size_t* out_size) -> bool
Builds full on-air downlink CONNECT_NACK signaling frame.
static auto encode(const NprFrameCodec& codec, const SignalingConnectRequestEncodeInput& input, uint8_t* out_frame, size_t out_capacity, size_t* out_size) -> bool
Builds full on-air CONNECT_REQ signaling frame.
static auto encode(const NprFrameCodec& codec, const SignalingDisconnectAckEncodeInput& input, uint8_t* out_frame, size_t out_capacity, size_t* out_size) -> bool
Builds full on-air downlink DISCONNECT_ACK signaling frame.
static auto encode(const NprFrameCodec& codec, const SignalingDisconnectRequestEncodeInput& input, uint8_t* out_frame, size_t out_capacity, size_t* out_size) -> bool
Builds full on-air DISCONNECT_REQ signaling frame.
static auto encode(const NprFrameCodec& codec, const SignalingMasterWhoEncodeInput& input, uint8_t* out_frame, size_t out_capacity, size_t* out_size) -> bool
Builds full on-air downlink signaling frame containing master WHO entry.
static auto encode(const NprFrameCodec& codec, const SignalingWhoEncodeInput& input, uint8_t* out_frame, size_t out_capacity, size_t* out_size) -> bool
Builds full on-air WHO signaling frame.
static auto nack_reason_name(uint8_t reason) -> const char*
Returns readable label for CONNECT_NACK reason.
static auto parse_connect_request_payload(const uint8_t* data, size_t data_size, ConnectRequestPayload* out_payload) -> bool
Parses CONNECT_REQ TLV payload body into structured representation.
static auto parse_who_payload(const uint8_t* data, size_t data_size, WhoPayload* out_payload) -> bool
Parses WHO TLV payload body into structured representation.

Public functions

auto decode(const uint8_t* decoded, size_t decoded_size) -> bool
Parses decoded signaling payload into internal TLV list.
auto element_at(size_t index) const -> const SignalingElement*
Returns element at index or nullptr if out of range.
auto element_count() const -> size_t
Number of parsed TLV elements.

Function documentation

static bool npr::rf::frames::SignalingFrame::append_who_tlv(uint8_t* payload, size_t payload_capacity, size_t* payload_pos, const WhoPayload& who)

Appends WHO TLV into signaling payload buffer.

Parameters
payload Destination buffer.
payload_capacity Capacity of payload.
payload_pos In/out write cursor.
who
Returns true when append succeeded.