6 个版本
0.2.4 | 2021 年 7 月 10 日 |
---|---|
0.1.4 | 2021 年 7 月 9 日 |
0.0.4 | 2021 年 7 月 9 日 |
#2671 in 解析器实现
48KB
913 行
Calamp-rs
特性
- 快速:使用 nom 解析器组合器
- 安全:内存安全
- 消息:支持 EventReport
- Serde:序列化为 json、xml
快速入门
要开始使用 calamp-rs,请将以下内容添加到您的 Cargo.toml
文件中
[dependencies]
calamp-rs= "0.2.4"
然后,解析消息
use calamp_rs::Message;
fn main() {
let data: [u8; 117] = [
0x83, 0x05, 0x46, 0x34, 0x66, 0x32, 0x35, 0x01, 0x01, 0x01, 0x02, 0x3a,
0x86, 0x5f, 0xf1, 0x3a, 0x54, 0x5f, 0xf1, 0x3a, 0x57, 0xf1, 0xe2, 0x85,
0x78, 0xe4, 0x22, 0xd6, 0x40, 0x00, 0x01, 0x36, 0xf8, 0x00, 0x00, 0x00,
0x0b, 0x00, 0x00, 0x06, 0x20, 0x00, 0x00, 0xff, 0x8d, 0x02, 0x1e, 0x1e,
0x00, 0x7b, 0x21, 0x10, 0x00, 0x00, 0x00, 0x31, 0xe0, 0x00, 0x00, 0x10,
0x1a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x22, 0x2a, 0x32, 0x00, 0x00, 0x03,
0xf1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xc8, 0x2d,
0x3f, 0x01, 0xc8, 0x2d, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40,
0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
];
let msg = Message::parse(&data);
println!("Message Type: {}", msg.message_header.message_type);
}
最后,使用以下命令运行此基准测试 cargo run
。您应该看到类似于以下输出的结果
Message Type: MessageType::EventReport
示例
要查看一些示例,只需通过以下命令运行它们 cargo run --examples
。
cargo run --example srv_udp
另一个终端
cargo run --example cli_udp
贡献
首先,感谢您的贡献。
使用 calamp-rs 进行自己的基准测试并报告您的经验,提交问题并进行评论等,这是为 calamp-rs 做出贡献的一种很好的方式。
欢迎以拉取请求的形式提交代码或文档改进。如果您不确定要做什么,请尝试检查“入门”标签。
如果在几天后您的 issue 或 pull request 没有得到回应,请随时 ping 我 (@muriloijanc)。
有关更多详细信息,请参阅 CONTRIBUTING.md 文件。
许可协议
Calamp-rs 在 BSD2 许可协议下分发。
见 LICENSE
依赖关系
~2.5MB
~53K SLoC