#nmea #gps #parser #nmea0183 #0183

titanic

不可沉没的 NMEA 0183 协议 GGA 句解析器(解析 GPS 位置)

1 个不稳定版本

使用旧的 Rust 2015

0.1.0 2018 年 9 月 6 日

#11#nmea

MIT 许可证

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