15 个版本 (6 个重大更新)
0.7.3 | 2024年7月29日 |
---|---|
0.7.0 | 2024年4月2日 |
0.6.1 | 2023年12月11日 |
在 编码 中排名 1076
每月下载量 191
在 2 crates 中使用
160KB
4.5K SLoC
Dash7-rs
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