#协议 #解析器 #ALP

no-std dash7

DASH7 ALP 协议编解码器实现

15 个版本 (6 个重大更新)

0.7.3 2024年7月29日
0.7.0 2024年4月2日
0.6.1 2023年12月11日

编码 中排名 1076

Download history 77/week @ 2024-05-03 43/week @ 2024-05-10 152/week @ 2024-05-17 20/week @ 2024-05-24 2/week @ 2024-06-07 2/week @ 2024-06-14 96/week @ 2024-06-28 1/week @ 2024-07-05 7/week @ 2024-07-19 168/week @ 2024-07-26 16/week @ 2024-08-02

每月下载量 191
2 crates 中使用

MIT 许可证

160KB
4.5K SLoC

Dash7-rs

Crates.io Documentation MIT licensed codecov ci

Dash7 负载数据在 Rust 中的编码和解码!

目前,此库仅辅助编码和解码 dash7 负载数据。没有更多功能。我计划支持 no_std,甚至可能不使用 alloc,但截至本文撰写时,仅支持 std 目标。

要使用此库,请运行

cargo add dash7

命令行界面

此存储库还包括一个命令行工具,位于包 dash7-tools 中,可以帮助您快速解码 dash7 负载数据(作为十六进制字符串)。

安装

Dash7-rs 发布在 crates.io 上,因此您可以轻松安装它

cargo install dash7-tools

用于 sub-iot 负载数据

cargo install dash7-tools --no-default-features -F subiot

使用方法

要查看帮助菜单,请运行

dash7 --help

目前只有一个子命令 parse

dash7 parse --help

要解析 ALP 负载数据,可以使用

dash7 parse -t alp "04 48 00 09 00 00 00 00 00 00 30 00 00 04 48 00 09 00 00 30 00 00 00 00 02 00 04 48 00 09 00 00 70 00 00 00 30 02 00"

类型和文件 ID 都是可选的。如果两者都没有提供,它将尝试解析为任何可能的类型,并作为任何已知的系统文件。但这可能给出一个错误的负载印象。

致谢

为什么不是 https://github.com/Stratus51/rust_dash7_alp ? 这是一个好问题!@Stratus51 在那里做了非常好的工作。然而,我并不喜欢位操作与数据结构本身如此紧密地交织在一起。位序和字节序很难,尤其是在主机和目标字节序不同的情况下。为此,此库使用 https://docs.rs/deku。Deku 提供了一个 proc_derive 宏,用于轻松定义字段,而底层的 bitvec 则负责所有位级操作。

但是,我必须感谢 @Stratus51 提供了许多结构定义,甚至文档!

依赖关系

~3MB
~74K SLoC