RTU/mimo/plan/iec101帧搜索方案.md

32 lines
931 B
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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 分支 |
## 编译验证
```bash
./release/build.sh
```