Expand description
D-STAR slow data sub-codec.
Slow data is the 3 bytes-per-voice-frame side channel that carries text status messages, GPS NMEA passthrough, fast data, and header retransmissions for late joiners. Per JARL spec.
On the wire, slow data bytes are XOR-scrambled with a 3-byte
key (0x70 0x4F 0x93). The scrambler submodule handles
scramble/descramble; the scramble and descramble functions
are re-exported here. The assembler submodule accumulates
3-byte fragments across consecutive frames into complete blocks
of type SlowDataBlockKind; use SlowDataAssembler to
drive it.
Reference: ircDDBGateway/Common/SlowDataEncoder.cpp,
ircDDBGateway/Common/DStarDefines.h:85-92, 111-113.
Structs§
- Slow
Data Assembler - Stateful slow data accumulator.
- Slow
Data Text - 20-character status text frame.
- Slow
Data Text Collector - D-STAR slow-data text-message collector.
Enums§
- Slow
Data Block - A complete slow data block extracted from a stream of voice frames.
- Slow
Data Block Kind - Slow data block type, recovered from the high nibble of byte 0 after descrambling.
- Slow
Data Error - Slow data assembly errors.
Constants§
- MAX_
MESSAGE_ LEN - Assembled text message length (4 blocks × 5 chars).
Functions§
- descramble
- Descramble 3 bytes of slow data using the D-STAR XOR key.
- encode_
text_ message - Encode a text message into eight scrambled 3-byte slow-data payloads.
- scramble
- Scramble 3 bytes of slow data using the D-STAR XOR key.