#frame #parser #format #hdlc #hdlc-frame #hdlc-address #type3

no-std hdlcparse

用于解析 HDLC 帧的 no_std

2 个稳定版本

2.0.0 2022 年 9 月 17 日
1.0.0 2022 年 7 月 4 日

#1933 in 解析器实现

MPL-2.0 许可证

16KB
301

HDLC 解析库

目前仅支持帧格式类型 3。这是 DLMS 中使用的格式。

文档

最新版本的文档可以在这里找到


lib.rs:

此模块可用于解析 HDLC 帧。

示例

use hdlcparse::type3::{HdlcAddress, HdlcFrame};

let frame: [u8; 33] = [
   0x7E, 0xA0, 0x20, 0x76, 0x54, 0xAE, 0x1B, 0x46, 0xA9, 0x13, 0x2F, 0x2F, /*HCS*/
   0xE6, 0xE6, 0x00, 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99, 0xAA,
   0xBB, 0xCC, 0xDD, 0xEE, 0xFF, 0x4E, 0x66, /*FCS*/
];
// parse the frame
let hdlc_frame = HdlcFrame::parse(&frame).unwrap();
// check the destination address
assert_eq!(
    hdlc_frame.1.dest_addr,
    HdlcAddress {
        upper: 0x1DAA,
        lower: Some(0x2B8D),
    }
);

依赖项

~1MB
~20K SLoC