1 个不稳定版本
使用旧的 Rust 2015
0.1.0 | 2018 年 9 月 6 日 |
---|
#11 在 #nmea
79KB
2K SLoC
Nmea 0183 GGA 解析器
这是一个 NMEA 0183 协议 GGA 句的解析器。
未来可能会添加更多句子,但目前尚未计划。接受的数据描述见此处。
设置
将此添加到 Cargo.toml
[dependencies]
titanic = "0.1.0"
然后将其放入您的 crate 根目录下
extern crate titanic;
用法
GgaParser
可以像 Iterator
一样使用。在 GgaParser
上调用 next
会 阻塞,直到
- 找到
'$'
, - 到达 EOF
- 发生 I/O 错误。
'$'
表示新句子的开始。如果新句子是 GGA 类型,它将被解析(如果可能的话)。解析器会迭代 Result<GgaSentence, ParseError>
。
EOF 表示迭代器的结束。
# extern crate titanic;
# use std::io::Cursor;
use titanic::GgaParser;
let data = Cursor::new("$GPGGA,142212.000,1956.9418,S,06938.0163,W,1,3,5.74,102.1,M,47.9,M,,*57");
let parser = GgaParser::new(data).unwrap();
for gga in parser {
let gga = gga.unwrap();
println!(
"Time: {}, we are here: {}°, {}°",
gga.utc.format("%H:%M:%S"),
gga.lat.unwrap(),
gga.long.unwrap()
);
}
// Prints "Time: 14:22:12, we are here: -19.94903°, -69.633605°"
依赖关系
~1.5MB
~21K SLoC