71 lines
2.1 KiB
Markdown
71 lines
2.1 KiB
Markdown
# 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. 增加最小验证
|
|
- 增加协议层编解码基础测试
|
|
- 增加配置映射测试
|
|
- 增加报警暂停窗口逻辑测试
|
|
- 条件允许时补最小集成测试
|