Crate aprs_parser

Source
Expand description

APRS message parser for Rust

§Usage

extern crate aprs_parser;

use aprs_parser::{AprsCst, AprsData, AprsPacket, AprsPosition, Callsign, Latitude, Longitude, Precision, Timestamp, Via, QConstruct};

fn main() {
    let result = AprsPacket::decode_textual(
        br"ICA3D2>APRS,qAS,dl4mea:/074849h4821.61N\01224.49E^322/103/A=003054"
    );

    assert_eq!(
        result,
        Ok(
            AprsPacket {
                from: Callsign::new_no_ssid("ICA3D2"),
                via: vec![
                    Via::QConstruct(QConstruct::AS),
                    Via::Callsign(Callsign::new_no_ssid("dl4mea"), false),
                ],
                data: AprsData::Position(
                    AprsPosition {
                        to: Callsign::new_no_ssid("APRS"),
                        timestamp: Some(
                            Timestamp::HHMMSS(
                                7,
                                48,
                                49
                            )
                        ),
                        messaging_supported: false,
                        latitude: Latitude::new(48.36016666666667).unwrap(),
                        longitude: Longitude::new(12.408166666666666).unwrap(),
                        precision: Precision::HundredthMinute,
                        symbol_table: '\\',
                        symbol_code: '^',
                        comment: b"322/103/A=003054".to_vec(),
                        cst: AprsCst::Uncompressed,
                    }
                )
            }
       )
   );
}

Re-exports§

pub use compression_type::AprsCompressionType;
pub use mic_e::AprsMicE;

Modules§

compression_type
mic_e

Structs§

AprsAltitude
AprsCourseSpeed
AprsMessage
AprsPacket
AprsPosition
AprsRadioRange
AprsStatus
Callsign
DhmTimestamp
Latitude
Longitude

Enums§

AprsCompressedCs
AprsCst
AprsData
DecodeError
EncodeError
Precision
QConstruct
Timestamp
Via