1、修复CBR0寿命与31天记录落盘失败(比较缓冲128→256)

2、APP换灯直接写DP3,DP4本版忽略;上电用restore灌RAM;读/全量打包权威剩余秒数
This commit is contained in:
2026-09-08 12:29:02 +08:00
parent 974c0f57cb
commit e65b2b22b6
11 changed files with 121 additions and 86 deletions
@@ -28,7 +28,7 @@
- [ ] 2.1 5s 配对后 APP 写 DP0 开/关灯泡:过零后灯与 DP0 上报一致(报**实际吸合态**)
- [ ] 2.2 短按同步上报 DP0
- [ ] 2.3 VM:改开关后断电,重新上电按上次开关恢复(开则等过零再吸合)
- [ ] 2.4 DP1 / DP2 / DP58 写忽略;DP2 上报恒 0
- [ ] 2.4 DP1 / DP2 / DP4 / DP58 写忽略;DP2 上报恒 0
- [ ] 2.5 DP9(WO):APP/服务器能写当前温度;设备全量上报**不含** DP9
- [ ] 2.6 定时 7 组 **11 字节** + `time_en` 能存(规格书 11.1 布局);`BOARD_TIMER_ENABLE=0` 不执行
- [ ] 2.7 `MAX_PACKAGE_LEN=512`APP 能读完整 124B `run_record`DP20,本阶段可为 0
@@ -50,10 +50,10 @@
- [ ] 3.12 过零超时 `fault_code=2`DP23
- [ ] 3.13 仲裁表(第 12 章)用例 1–13(见下节)
- [ ] 3.14 寿命:实际吸合才扣;到 0 停在 0、`alarm_code=1`、灯仍可亮(不互锁)
- [ ] 3.15 DP4 写 1剩余寿命回 2,592,000、告警清 0、立刻上报
- [ ] 3.15 DP4 写 1**不改寿命**(本版忽略);换灯请写 DP3=2,592,000
- [ ] 3.16 APP 写 DP3:任意 uint32 生效;>0 清告警、=0 置告警;立刻落盘
- [ ] 3.17 按键 5s 清绑定 **不**改寿命
- [ ] 3.18 点灯时 DP3 最多 1 分钟报一次;到期/复位/写 DP3 立刻报
- [ ] 3.18 点灯时 DP3 最多 1 分钟报一次;到期/写 DP3 立刻报
- [ ] 3.19 掉电再上电:未到期接着扣;已到期仍 0 且 DP25=1
## 4. 仲裁最小用例(灯泡语义)
@@ -70,7 +70,7 @@
8. 断连扫描丢包 → 不关灯(保持上一态)。
9. 已连接写 **DP9** 使 `T<Tmin` → 开;断开后扫描到同一缸体更高温度 `T>Tmax` → 关。
10. 剩余寿命置 5,实际吸合 5 秒 → DP3=0、DP25=1,继电器保持开(若请求仍为开)。
11. 用例 10 之后 DP4 写 1 → DP3=2,592,000DP25=0。
11. 用例 10 之后 APP 写 DP3=2,592,000DP25=0。写 DP4=1 **不得**改寿命。
12. APP 写 DP3=100 后立刻拔电再上电 → 仍约 100(允许未满边沿的秒误差,**不允许**回到 2,592,000)。
13. 定时 11 字节:Byte1=1(每天)、Byte36=时分、Byte0=1 → 到点开;若误用加热垫偏移(Byte2 当类型)则本条失败。