5 个版本
0.0.5 | 2019年7月1日 |
---|---|
0.0.4 | 2019年7月1日 |
0.0.3 | 2019年7月1日 |
0.0.2 | 2019年6月28日 |
0.0.1 | 2019年6月28日 |
#1825 在 解析器实现 中
每月 下载 40 次
110KB
3K SLoC
NMEA-0183
使用 Nom 编写的 nmea-0183 句子解析器
示例
use nmea_0183::sentence::parse;
fn main() {
// We first need a sentence to parse.
// According to the NMEA-0183 specification, a sentence ends with <CR><LF>
let raw_sentence = "$GPGGA,092725.00,4717.11399,N,00833.91590,E,1,08,1.01,499.6,M,48.0,M,,*5B\r\n";
let parsed_sentence = parse(raw_sentence)
.expect("Could not parse nmea sentence.");
println!("{:?}", parsed_sentence);
/*
Sentence {
sentence_type: Parametric,
talker: GPS,
message: GGA(GGAMessage {
time: Some(09:27:25),
lat: Some(Degree(47.1711399)),
ns: North,
lon: Some(Degree(8.339159)),
ew: East,
quality: AutonomousGNSSFix,
num_sv: Some(8),
hdop: Some(1.01),
alt: Some(Meter(499.6)),
sep: Some(Meter(48.0)),
diff_age: None,
diff_station: None
})
}
*/
}
状态
该解析器处于早期阶段,我根据 U-Blox 接收器协议规范 编写了它,并尽可能地进行了解释。
我根据提供的样本编写了单元测试,但我还没有任何接收器来测试输出。
如果您想改进它,或者如果您发现了一个(众多!)错误,请 打开一个问题,或者更好的是,提交一个拉取请求 :)
如何安装
如果您使用 cargo-edit(我推荐),在您想添加库的项目中打开一个shell并运行以下命令
$ cargo add nmea-0183
Adding nmea-0183 v0.0.2 to dependencies
如果您不使用,请将库添加到您的 Cargo.toml 依赖中
[dependencies]
nmea-0183 = "*"
许可证
根据您的选择,许可如下:
- Apache License,版本 2.0 (LICENSE-APACHE 或 http://www.apache.org/licenses/LICENSE-2.0)
- MIT 许可证 (LICENSE-MIT 或 http://opensource.org/licenses/MIT)
。
双 MIT/Apache2 许可更加宽松
依赖
~2MB
~33K SLoC