Module slowdata

Module slowdata 

Source
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§

SlowDataAssembler
Stateful slow data accumulator.
SlowDataText
20-character status text frame.
SlowDataTextCollector
D-STAR slow-data text-message collector.

Enums§

SlowDataBlock
A complete slow data block extracted from a stream of voice frames.
SlowDataBlockKind
Slow data block type, recovered from the high nibble of byte 0 after descrambling.
SlowDataError
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.