From ceb56ee45812eaa154c52b3a7c7d127808f125d1 Mon Sep 17 00:00:00 2001 From: sfink Date: Fri, 13 Nov 2026 13:31:44 +0100 Subject: [PATCH] Add support for OGNSIT (SITACO) beacons Positions sent to the tocall OGNSIT get the beacon type 'sitaco' instead of 'unknown'. The sentence uses only fields the parser already reads, so nothing else changes. Co-Authored-By: Claude Fable 5.2 --- CHANGELOG.md | 3 +++ ogn/parser/parse.py | 1 + tests/parser/parse/test_parse.py | 14 ++++++++++++++ 3 files changed, 18 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6af1eb9..d3088a3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,8 @@ # CHANGELOG +## not released +- parser: Added support for OGNSIT (SITACO) beacons + ## 2.0.0: - 2025-05-23 - parser: use rust parser as default - parser: removed OgnParseError since only invalid APRS don't pass the parser diff --git a/ogn/parser/parse.py b/ogn/parser/parse.py index 74b011f..d219217 100644 --- a/ogn/parser/parse.py +++ b/ogn/parser/parse.py @@ -22,6 +22,7 @@ 'OGNSDR': 'receiver', 'OGNSKY': 'safesky', 'OGPAW': 'pilot_aware', + 'OGNSIT': 'sitaco', 'OGSKYL': 'skylines', 'OGSPID': 'spider', 'OGSPOT': 'spot', diff --git a/tests/parser/parse/test_parse.py b/tests/parser/parse/test_parse.py index 4f35486..95bf106 100644 --- a/tests/parser/parse/test_parse.py +++ b/tests/parser/parse/test_parse.py @@ -141,6 +141,20 @@ def test_spot_beacons(): _parse_valid_beacon_data_file(filename='OGSPOT_Spot.txt', beacon_type='spot') +def test_sitaco_beacons(): + message = parse("SITB4E21C>OGNSIT,qOR:/104212h4842.74N/00918.94E'072/024/A=001354 !W16! id37B4E21C +039fpm", + reference_timestamp=datetime(2015, 4, 10, 17, 0), use_server_timestamp=False) + + assert message['aprs_type'] == 'position' + assert message['beacon_type'] == 'sitaco' + assert message['dstcall'] == 'OGNSIT' + assert message['name'] == 'SITB4E21C' + assert message['address'] == 'B4E21C' + assert message['address_type'] == 3 + assert message['aircraft_type'] == 13 + assert message['track'] == 72 + + def test_generic_beacons(): message = parse("EPZR>WTFDSTCALL,TCPIP*,qAC,GLIDERN1:>093456h this is a comment")