boatbod / op25

Fork of osmocom OP25 by boatbod
311 stars 97 forks source link

SmartNet: first substantial improvement of decoding and display #209

Closed ilyacodes closed 2 months ago

ilyacodes commented 2 months ago

Per request, I waited until I had substantial changes that were tested - sorry it's so big.

This first PR includes work done using OTA messages as well as confirmed messages RE-ed from other sources.

Add more OSWs

This PR adds many new OSWs, including support for voice call grants, OBT call grants including explicit tx frequencies, various extended function messages, denials, dynamic regrouping, date/time, patches/multiselects, AMSS, and various system/network status messages.

Note that future changes will add more OSWs after they have been confirmed.

Improve parsing reliability

Bad OSW queue reset

This PR adds logic to track when a sync lost or crc fail event occurs in rx_smartnet.cc and uses that to reset the OSW queue in tk_smartnet.py. In addition to the reset, it properly handles parsing messages after a queue reset, fixing the issue of bad OSWs being transparent to Python and parsing skipping over them.

System IDLE command reordering

We also add a lot of wonky logic to handle system IDLE commands, which are sometimes injected in the middle of other multi-OSW messages.

Improve display

Display call options

This PR displays call options (analog/digital, emergency, patch, etc) on both the ncurses and web terminal interfaces.

Track alternate CCs

This PR adds alternate CC tracking and displays them inline with the system frequencies on both the ncurses and web terminal interfaces.

Track adjacent sites

This PR adds adjacent site tracking and display on the web terminal interface.

Track patches

This PR adds patch tracking and display on the web terminal interface.

ilyacodes commented 2 months ago

Closing, replaced with #210