prf::pr namespace

Packet Radio transport namespace.

Receivers and framing stages live here. The decoder in this file exposes raw channel bits that are consumed by future NRZI/HDLC stages.

Owns modem, framing and AX.25 helper code for the packet-radio path. Phase 1 contains only AFSK RX building blocks and related limits.

Namespaces

namespace afsk
AFSK1200 modem components.
namespace ax25
namespace hdlc
HDLC deframing primitives built on top of modem raw level bits.
namespace tests

Classes

class Afsk1200Decoder
Streaming AFSK1200 decoder for PCM16 mono input.
class RxPipeline
Packet-radio RX pipeline (AFSK -> HDLC -> AX.25 UI parser).
struct RxPipelineStats
Runtime statistics for RxPipeline.
struct RxQualityStats
Snapshot of receive input quality and demod confidence indicators.

Enums

enum class PacketRadioMode: std::uint8_t { kAfsk1200 = 0, kG3ruh9600 = 1 }
Runtime-selected packet radio receive mode.

Variables

std::size_t kMaxFrameBytes constexpr
Maximum deframed AX.25 frame size without trailing FCS bytes.
std::size_t kMaxFrameBytesWithFcs constexpr
Maximum deframed AX.25 frame size including trailing FCS bytes.

Enum documentation

enum class prf::pr::PacketRadioMode: std::uint8_t

Runtime-selected packet radio receive mode.

Phase 1 provides only AFSK1200 mode. Other modes are rejected until dedicated modem implementations are added.

Variable documentation

std::size_t prf::pr::kMaxFrameBytes constexpr

Maximum deframed AX.25 frame size without trailing FCS bytes.

Equal to kMaxFrameBytesWithFcs minus two FCS bytes.

std::size_t prf::pr::kMaxFrameBytesWithFcs constexpr

Maximum deframed AX.25 frame size including trailing FCS bytes.

This bound is used for fixed-size buffer planning in later HDLC/AX.25 stages. Keeping it explicit avoids accidental oversized allocations.