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")