mirror of
https://github.com/MidnightBlueLabs/tetra-bluestation.git
synced 2026-09-16 10:32:35 +00:00
* Add: Refactor AACH behaviour. Main changes here are to split a lot of the integer typed fields out into enums and structs, and make invalid state of the AccessAssign PDU unrepresentable through typing. Studied the BaseFrameLength behaviour and standardised on a sensible set of defaults throughout for that. Other changes include advertising CLCH opportunities via BaseFrameLength::CLCHSubslot where expected and a relaxing of how often SYNC bursts are sent. Using Air Interface monitoring on a few radios indicated that SYNC bursts appearing in non-mandated slots caused decode errors and radio downlink counter decrements. * Fix: Indicate reserved uplink subslots in ACCESS-ASSIGN. This caused issues with multi-fragment messages. Seems like some radios do indeed check the AACH during a multi-slot grant and if they don't see Reserved Subslots (00) abort and re-attempt random-access again. * Refactor: One place to set the default access frame marker in bs_sched * Add: Tests for reserved & CLCH sched subslots