Files
2026-05-12 15:45:50 +08:00

2.1 KiB

TODO

日期:2026-05-11

第一阶段

  1. 统一端口管理器
  • 明确保留哪一套端口管理器作为唯一实现
  • 替换重启链路里的端口获取逻辑
  • 校验 fire_leavefire_check、测温端口关系
  • 清理废弃实现和重复状态
  1. 修复 service.conf schema
  • 明确 service.conf 的唯一 schema
  • 增加 DeviceData -> ServiceConfig 转换
  • 重写 SaveServiceConfig() / SaveSingleServiceConfig()
  • 检查已有启动流程兼容性
  1. 修复 fire_leave 参数映射
  • 明确 fire_leave 运行时依赖字段
  • 补齐 param.fire_leave 到运行字段的映射
  • 清理主流程里对默认值的隐式依赖
  • 复核 confidence 是否要区分双模型

第二阶段

  1. 接入 /dhlr/forbid_timefire_leave 暂停上报
  • 明确 /dhlr/forbid_time 最终字段语义
  • 增加 fire_leave 暂停状态存储
  • fire_leave 主判断前接入暂停窗口检查
  • 清理或降级 reporter 中不再适用的事件周期逻辑
  1. 调整 GPIO 按钮逻辑
  • 确认按钮最终由谁决定暂停时长
  • 确认按钮是本地触发还是必须等待上层下发
  • 移除与“事件周期切换”强耦合的旧逻辑

第三阶段

  1. 改造 WebSocket 协议层为 protobuf binary frame
  • 引入 service.proto 对应的 Go 类型
  • 重写 websocket 读写帧逻辑
  • 重写 request/reply 关联逻辑
  • 重写下行 topic_event 分发逻辑
  • 重写上行 metric_data 发送逻辑
  1. 保留主动 ping 和失败重连
  • 在新协议层中保留 ping loop
  • 保留 ping 失败即重连逻辑
  • 复核重连后 register 和 subscribe 恢复是否完整

暂不处理

  1. 业务上报 ACK
  • 暂不增加业务 ACK
  • 协议改造时保留现有单向上报模式
  • 作为已知风险保留在 整改计划.md
  1. 运行中配置热更新链路
  • 判断当前业务是否真的需要运行中热更新
  • 如果需要,后续再设计完整消费链路
  • 如果不需要,后续再移除误导性代码

收尾

  1. 增加最小验证
  • 增加协议层编解码基础测试
  • 增加配置映射测试
  • 增加报警暂停窗口逻辑测试
  • 条件允许时补最小集成测试