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 地理空间

Download history 743/week @ 2024-03-13 380/week @ 2024-03-20 102/week @ 2024-03-27 140/week @ 2024-04-03 120/week @ 2024-04-10 219/week @ 2024-04-17 142/week @ 2024-04-24 111/week @ 2024-05-01 116/week @ 2024-05-08 212/week @ 2024-05-15 146/week @ 2024-05-22 235/week @ 2024-05-29 230/week @ 2024-06-05 264/week @ 2024-06-12 268/week @ 2024-06-19 86/week @ 2024-06-26

每月 882 次下载
3 crates 中使用

MIT/Apache

230KB
5K SLoC

NMEA

Version Build Status License Apache-2

完整的文档可以在 www.docs.rs/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 简单步骤进行贡献

  1. 写一条评论 - 请在问题中为要实施的句子(们)写一条评论,您将被提及在任务中,以避免重复实现。
  2. ./src/sentences 目录下使用 nom crate 实现每个句子,并至少在每个自己的模块中编写一个测试。
  3. 打开一个 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