18 个不稳定版本 (6 个重大更改)
0.6.0 | 2023 年 8 月 27 日 |
---|---|
0.5.0 | 2023 年 6 月 4 日 |
0.4.0 | 2023 年 2 月 12 日 |
0.3.1 | 2022 年 9 月 1 日 |
0.0.1 | 2016 年 5 月 20 日 |
#38 in 地理空间
每月 882 次下载
在 3 crates 中使用
230KB
5K SLoC
NMEA
Rust 的 NMEA 0183 句句解析器。
支持的句子
NMEA 标准句子
- AAM
- ALM
- BOD
- BWC
- BWW
- DBK
- GBS
- GGA *
- GLL *
- GNS *
- GSA *
- GSV *
- HDT
- MDA
- MTW
- MWV
- RMC *
- VHW
- VTG *
- ZDA
- ZFO
- ZTG
其他句子
- TXT *
供应商扩展
- PGRMZ
* Nmea::parse()
支持的句子
如何贡献
我们正在进行一项持续的工作,以支持尽可能多的来自 NMEA 0183
的句子,从最著名的开始。如果您想通过编写特定消息的解析器来做出贡献,请查看 支持附加句子 (AeroRust/nmea#54) 问题,并按照 3 简单步骤进行贡献
- 写一条评论 - 请在问题中为要实施的句子(们)写一条评论,您将被提及在任务中,以避免重复实现。
- 在
./src/sentences
目录下使用nom
crate 实现每个句子,并至少在每个自己的模块中编写一个测试。 - 打开一个 PR 🎉
什么是 NMEA 0183?
NMEA 0183 是一种综合的电气和数据规范,用于海洋电子设备之间的通信,如回声测深仪、声纳、风速仪、罗盘、自动驾驶仪、GPS 接收器和其他许多类型的仪器。
使用方法
在您的 Cargo.toml
中添加 nmea
依赖项
[dependencies]
nmea = "0.5"
对于 no_std
这个crate支持no_std
,无需使用分配器(alloc
),只需添加不带默认功能的nmea
crate
[dependencies]
nmea = { version = "0.5", default-features = false }
解析
要使用NMEA解析器,创建一个Nmea
结构体,并用NMEA句子填充它(仅支持GNSS
消息,否则请使用parse_str()
和parse_bytes()
)
use nmea::Nmea;
fn main() {
let mut nmea = Nmea::default();
let gga = "$GPGGA,092750.000,5321.6802,N,00630.3372,W,1,8,1.03,61.7,M,55.2,M,,*76";
// feature `GGA` should be enabled to parse this sentence.
#[cfg(feature = "GGA")]
{
nmea.parse(gga).unwrap();
println!("{}", nmea);
}
}
支持的Rust版本
最低支持的Rust版本(或MSRV)是 1.64。
不安全的crate
我们使用#![deny(unsafe_code)]
来创建一个完全不包含不安全的crate。
许可证
本项目受Apache-2.0许可证的约束。
贡献
除非您明确说明,否则您有意提交以包含在项目中并由您提交的任何贡献,均应按照Apache-2.0许可证授权,不附加任何额外条款或条件。
依赖项
~2.9–9MB
~75K SLoC