# TODO 日期:2026-05-11 ## 第一阶段 1. 统一端口管理器 - 明确保留哪一套端口管理器作为唯一实现 - 替换重启链路里的端口获取逻辑 - 校验 `fire_leave`、`fire_check`、测温端口关系 - 清理废弃实现和重复状态 2. 修复 `service.conf` schema - 明确 `service.conf` 的唯一 schema - 增加 `DeviceData -> ServiceConfig` 转换 - 重写 `SaveServiceConfig()` / `SaveSingleServiceConfig()` - 检查已有启动流程兼容性 3. 修复 `fire_leave` 参数映射 - 明确 `fire_leave` 运行时依赖字段 - 补齐 `param.fire_leave` 到运行字段的映射 - 清理主流程里对默认值的隐式依赖 - 复核 `confidence` 是否要区分双模型 ## 第二阶段 1. 接入 `/dhlr/forbid_time` 到 `fire_leave` 暂停上报 - 明确 `/dhlr/forbid_time` 最终字段语义 - 增加 `fire_leave` 暂停状态存储 - 在 `fire_leave` 主判断前接入暂停窗口检查 - 清理或降级 `reporter` 中不再适用的事件周期逻辑 2. 调整 GPIO 按钮逻辑 - 确认按钮最终由谁决定暂停时长 - 确认按钮是本地触发还是必须等待上层下发 - 移除与“事件周期切换”强耦合的旧逻辑 ## 第三阶段 1. 改造 WebSocket 协议层为 protobuf binary frame - 引入 `service.proto` 对应的 Go 类型 - 重写 websocket 读写帧逻辑 - 重写 request/reply 关联逻辑 - 重写下行 `topic_event` 分发逻辑 - 重写上行 `metric_data` 发送逻辑 2. 保留主动 ping 和失败重连 - 在新协议层中保留 ping loop - 保留 ping 失败即重连逻辑 - 复核重连后 register 和 subscribe 恢复是否完整 ## 暂不处理 1. 业务上报 ACK - 暂不增加业务 ACK - 协议改造时保留现有单向上报模式 - 作为已知风险保留在 `整改计划.md` 2. 运行中配置热更新链路 - 判断当前业务是否真的需要运行中热更新 - 如果需要,后续再设计完整消费链路 - 如果不需要,后续再移除误导性代码 ## 收尾 1. 增加最小验证 - 增加协议层编解码基础测试 - 增加配置映射测试 - 增加报警暂停窗口逻辑测试 - 条件允许时补最小集成测试