#aka #parser #aprs #fabulous #libfap #warpper

fap

Rust 对 Fabulous APRS 解析器的包装(又称 libfap)

2 个不稳定版本

使用旧的 Rust 2015

0.2.1 2018年6月28日
0.1.0 2018年6月10日

#8#aprs

Artistic-1.0-Perl

800KB
20K SLoC

Shell 7.5K SLoC // 0.2% comments M4 7K SLoC // 0.2% comments C 5K SLoC // 0.1% comments Rust 217 SLoC // 0.0% comments Automake 11 SLoC // 0.4% comments

包含(autotools 混淆代码,430KB) src/libfap-1.5/configure,(模糊的 autoconf 代码,1KB) src/libfap-1.5/configure.ac

Fabulous APRS 解析器

On Travis CI On crates.io On docs.rs

Rust 对 Fabulous(或芬兰语?)APRS 解析器的包装,又称 libfap

请参阅 crate 文档 以获取用法和示例。


lib.rs:

Fabulous APRS 解析器

这是一个对 Fabulous(或,也许,芬兰语... 或两者)APRS 解析器的 Rust 包装,又称 libfap

解析数据包

extern crate aprs; 
extern crate fap;
use aprs::{Packet, Position, Degrees, Knots}; 

let raw = "DISCOF>APT314,RAZOR*,WIDE1*,qAS,GERLCH:/022526h4046.40N/11912.12W-347/001/";
let parsed = fap::Packet::new(raw);

match parsed {
    Ok(packet) => {
        assert_eq!(packet.source(), "DISCOF");
        assert_eq!(packet.latitude(), Some(40.7733335));
        assert_eq!(packet.longitude(), Some(-119.202));
        assert_eq!(packet.course(), Some(Degrees(347.0)));
    },
    Err(_) => {
        panic!("Bad packet!")
    }
}

解析后的数据包实现了 aprs::Packet trait,有关如何使用返回值的详细信息,请参阅 aprs crate 文档

依赖项

~0.1–2.1MB
~40K SLoC