4 releases

Uses new Rust 2024

new 0.3.3 Apr 17, 2025
0.3.2 Apr 17, 2025
0.3.1 Apr 17, 2025
0.3.0 Apr 17, 2025

#194 in Geospatial

Download history 309/week @ 2025-04-12

309 downloads per month

MIT/Apache

80KB
2K SLoC

ogn-parser

Build Status

APRS message parser for Rust

This is a fork of aprs-parser-rs v0.2.0. Goal of this fork is to parse OGN flavoured APRS strings.

Usage

extern crate ogn_parser;

fn main() {
    let result = ogn_parser::parse(
        r"ICA3D1C35>OGFLR,qAS,Padova:/094220h4552.41N/01202.28E'110/099/A=003982 !W96! id053D1C35 -1187fpm +0.0rot 0.8dB 2e +4.5kHz gps1x2 s6.09 h32 rDD09D0"
    );

    println!("{:#?}", result);

    //  Ok(
    //     AprsPacket {
    //         from: Callsign {
    //             call: "ICA3D1C35",
    //             ssid: None,
    //         },
    //         to: Callsign {
    //             call: "OGFLR",
    //             ssid: None,
    //         },
    //         via: [
    //             Callsign {
    //                 call: "qAS",
    //                 ssid: None,
    //             },
    //             Callsign {
    //                 call: "Padova",
    //                 ssid: None,
    //             },
    //         ],
    //         data: Position(
    //             AprsPosition {
    //                 timestamp: Some(
    //                     HHMMSS(
    //                         9,
    //                         42,
    //                         20,
    //                     ),
    //                 ),
    //                 messaging_supported: false,
    //                 latitude: Latitude(
    //                     45.87365,
    //                 ),
    //                 longitude: Longitude(
    //                     12.0381,
    //                 ),
    //                 symbol_table: '/',
    //                 symbol_code: '\'',
    //                 comment: PositionComment {
    //                     course: Some(
    //                         110,
    //                     ),
    //                     speed: Some(
    //                         99,
    //                     ),
    //                     altitude: Some(
    //                         3982,
    //                     ),
    //                     additional_precision: Some(
    //                         AdditionalPrecision {
    //                             lat: 9,
    //                             lon: 6,
    //                         },
    //                     ),
    //                     id: Some(
    //                         ID {
    //                             address_type: 1,
    //                             aircraft_type: 1,
    //                             is_stealth: false,
    //                             is_notrack: false,
    //                             address: 4004917,
    //                         },
    //                     ),
    //                     climb_rate: Some(
    //                         -1187,
    //                     ),
    //                     turn_rate: Some(
    //                         0.0,
    //                     ),
    //                     signal_quality: Some(
    //                         0.8,
    //                     ),
    //                     error: Some(
    //                         2,
    //                     ),
    //                     frequency_offset: Some(
    //                         4.5,
    //                     ),
    //                     gps_quality: Some(
    //                         "1x2",
    //                     ),
    //                     flight_level: None,
    //                     signal_power: None,
    //                     software_version: Some(
    //                         6.09,
    //                     ),
    //                     hardware_version: Some(
    //                         50,
    //                     ),
    //                     original_address: Some(
    //                         14485968,
    //                     ),
    //                     unparsed: None,
    //                 },
    //             },
    //         ),
    //     },
    // )
}

License

This project is licensed under either of

at your option.

Dependencies

~0.3–0.9MB
~20K SLoC