931 B
931 B
IEC-101 帧搜索方案(修订)
设计
在现有 self_ptl_search_iec_frame() 中增加 IEC-101 搜索分支,由上到下串行匹配,命中即退出:
self_ptl_search_iec_frame(p_data, len, p_pos, p_valid_len):
for i in 0..len:
① 尝试 IEC-101 短帧 (0x10)
0x10 | ctrl | addr(LSB) | [addr(MSB)] | cks | 0x16
→ 5或6字节,校验 cks = data 累加和
② 尝试 IEC-101 长帧 (0x68)
0x68 | len | len | 0x68 | ctrl | addr(2B) | data.. | cks | 0x16
→ 验证 len重复 + 第4位0x68 + tail 0x16 + cks
③ 尝试 IEC-104 帧 (0x68) — 保持现有逻辑
0x68 | len | ctrl1..4 | asdu..
排除:若满足 101 长帧特征则跳过(len重复+第4位=0x68)
涉及文件
| 文件 | 改动 |
|---|---|
self_ptl.cpp |
修改 self_ptl_search_iec_frame() 增加 101 分支 |
编译验证
./release/build.sh