# 未完成协议与特性

本文按“参考项目/参考资料中存在，但当前仓库尚未形成完整可用能力”的标准整理。重点放在真正缺口，而不是已经有离线骨架但缺少实机回归的部分。

已达到 `L1` 的能力已经转入 `protocol-feature-acceptance.md`，本文只保留仍未完成或尚未形成高等级验收闭环的事项。

## 未完成判定说明

- `未开始`：当前仓库没有明确的数据结构、编码/解析或 CLI 能力。
- `部分完成`：有标准常量、离线摘要或采集骨架，但还没有协议级交互实现。
- `待实机回归`：代码链路已存在，但还缺设备回归，不列为主缺口。

## 当前剩余缺口

2026-06-12 按 PN-AL-Protocol d25 复查 live RT/AR 路径后新增一批 RT 层缺口。2026-06-15 已将其拆入 `TASKS.md` 的 `RT/AR Follow-up Backlog`，并在 `protocol-feature-acceptance.md` / `live-regression-checklist.md` 建验收入口。

| 状态 | ID | 缺口 | 当前判定 | 下一步 |
| --- | --- | --- | --- | --- |
| Blocked | RT-001 | 控制器侧 consumer DataHoldTime 看门狗 | L1 代码与白盒边界测试已补；完整能力仍缺 L2 实机证据 | 制造真实 input 中断或断链，保存日志/pcap，证明 `rt_local_dht_expired` 由本端 DHT 触发而非设备先发 RTA-ERR |
| Blocked | RT-002 | DHF 强制范围收敛与 CLI 覆盖 | L1 代码与白盒边界测试已补；完整能力仍缺 L2 实机证据 | 用真实设备覆盖默认 mandatory factor 与显式 optional factor，通过或拒绝均保存日志/PNIOStatus |
| Blocked | RT-003 | DataStatus 位级解析 | L1 代码与白盒边界测试已补；完整能力仍缺 L2 新实机日志 | 保存包含 `rt_first_rx_data_status_*` / `rt_last_rx_data_status_*` / `data_status_*` 采样字段的真实设备日志 |
| Blocked | RT-004 | ALPMI/ALPMR 报警状态机 | L1 responder 状态机与白盒测试已补；完整能力仍缺 L2 真实 AlarmNotification DATA | 触发真实 Pull/Plug/AlarmNotification，保存 DATA、`rt_alarm_state_*`、ACK 发包和 PNIOStatus/pcap |
| Blocked | RT-005 | 输出帧 VLAN priority 复核 | L1 已补默认 PCP 6 口径、互斥覆盖参数、Connect.req output IOCRTagHeader 同步和日志字段；仍缺 pcap | 抓包证明本端 output VLAN PCP，不凭设备 input `0xA000` 推断 |
| Blocked | RT-006 | IOCR Phase/Sequence 契约 | L4 契约已补；完整能力仍缺 L2 实机证据 | 用自定义周期实机验证 Connect.rsp 和后续 data_exchange，确认 Phase 不触发设备拒绝且 Sequence 仍保持随机序策略 |
| Deferred | RT-007 | UDP-RTC DHF 范围差异 | 未来传输类别缺口 | 等 UDP-RTC 实现时按传输类别分支 |

此前的主缺口已全部关闭。当前 L1 队列暂无新的 Open 项；RT-001..RT-006 的完整能力仍分别受实机/pcap 证据阻塞，RT-007 等 UDP-RTC 路径出现后再展开。当前状态汇总：

| 状态 | 协议/特性 | 说明 |
| --- | --- | --- |
| ✅ 完成 | GSD 深度类型系统 | §7-§18 全部建模完成，包括 Priority-1~4 全部类型（IsochroneMode, PROFIenergy, MRP, PROFIsafe, CommunicationInterface）。见 `gsd/detail.mbt` |
| ✅ 完成 | 新协议 CLI 命令集成 | 16 个新协议/离线辅助 CLI 命令全覆盖，含 `encode-record-write` 与 `encode-record-control`。见 `cmd/main/main.mbt` |
| ✅ 已建立清单 | DCP live 与新协议 live 链路 | 实机回归检查清单已建立（`docs/live-regression-checklist.md`），含 DCP/RPC/IO/Record/Alarm/SNMP/LLDP/DHCP 全协议检验项 + 抓包基线模板 |
| ✅ 完成 | 仿真验证体系 | `simulation/` 模块：ReplayScenario/ReplayStep/dry_run + DCP Identify/AR Connect 标准 fixture + 格式化输出。4 个测试通过 |
| ✅ 完成 | 形式化验证 | `verification/` 模块：alarm/record 头长度契约、AR/DriveState/PRO 状态机转换验证、IO 数据一致性检查、批量契约汇总。11 个测试通过 |
| ✅ 完成 | PROFINET Security Profiles | SecurityCredential 凭据模型、ACD 访问控制判定、CTLSAM(TLS) 状态机、SecurityBlockType 记录索引、SecurityErrorCode 错误码。见 `security/security.mbt` |
| ✅ 完成 | PROFIdrive 控制器应用层 | PncSubmodList/PncCtrlInfo/PncAlarmType 设备列表类型、PDC API 函数（precharge/pulse_enable/pulse_inhibit/coast_stop/quick_stop/fault_acknowledge/set_speed/get_speed）。见 `profidrive/controller.mbt` |

---

## 历史缺口追踪

下面条目曾经是本文的主缺口明细；当前已转入实现代码与验收矩阵，保留为追踪索引，避免重复按“未完成”推进。

| 历史缺口 | 原始规范范围 | 当前落点 |
| --- | --- | --- |
| GSD 深度类型系统 | GSDML Specification V2.50 §7-§18 | `gsd/detail.mbt` 已覆盖设备配置、IO 数据、诊断/报警、记录数据与扩展能力类型；验收见 `protocol-feature-acceptance.md` |
| PROFINET Security Profiles | PN-Security-Profiles V2.5 §6 / §8 / Annex A-B | `security/security.mbt` 已覆盖凭据模型、ACD 判定、TLS SAM 状态机、安全记录索引与错误码；后续只在 live/security profile 集成时扩展 |
| PROFIdrive 控制器应用层 | PD Controller Application V1.0 / IEC 61800-7-3 | `profidrive/controller.mbt` 已覆盖 PNC 数据类型、PDC 状态机入口、速度控制与故障确认 API；后续随真实驱动设备验证扩展 |

新的协议级主缺口应先补入 `protocol-feature-acceptance.md` 的验收阶段，再按是否低于 L1 决定是否回填到本文。

## 建议优先级

1. 实机回归验证（raw scan/get/set、live AR/IO 链路）
2. live Record/Alarm/SNMP/LLDP/DHCP 链路端到端验证
3. 仿真基线扩展（replay / 模拟器）
4. 更强形式化验证（Why3/proof 层）
5. 回归抓包与设备矩阵沉淀

## 建议推进方式

- 第一阶段（已完成）：为各已完成模块补 CLI 命令入口，与 `cmd/main/main.mbt` 现有命令风格对齐。
- 第二阶段：接入 rawnet / UDP 通道，完成 live 链路端到端（AR 建链 → IO 交换 → record read/write → 报警监听）。
- 第三阶段：补 replay / 仿真回归，形成不依赖实机的可重复验收基线。
- 第四阶段：扩展已完成 GSD 类型系统的回归覆盖，并补强形式化约束，提升可维护性与可信度。
