编写台上验收测试笔记(P0/P1/P2清单 + 仲裁用例1-13,灯泡语义)
This commit is contained in:
@@ -0,0 +1,82 @@
|
|||||||
|
# 电子开关-加热灯罩 台上验收测试笔记
|
||||||
|
|
||||||
|
- 固件:V1.0.0(`JBao_Heat_Lamp_V1.0.0_*`,提交 `426bb8d`)
|
||||||
|
- 协议:CBR0 / PRCBR0,`MAX_PACKAGE_LEN=512`,DP 0–29
|
||||||
|
- 日期 / 测试人 / 烧录镜像 hash:
|
||||||
|
- 第 1 轮:____-__-__ / ____ / hash ______
|
||||||
|
- 第 2 轮:____-__-__ / ____ / hash ______
|
||||||
|
|
||||||
|
> 依据规格书 `Doc/电子开关-加热灯罩_固件需求规格书.md` 第 17 章。勾选 = 实测通过。
|
||||||
|
> 串口:UART0 TX=PC5,波特率按 SDK `TCFG_UART0`(日志 tag:`[LIGHT]` / `[APP_NVM]` / `[APP_TMR]` / `[APP_LINK]` / `[JB_PRD]`)。
|
||||||
|
> 用 APP 直连时注意:DP9 是 WO(服务器下发),设备全量/差分上报不含 DP9。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 1. P0 — 台上 Bring-up(不依赖 APP)
|
||||||
|
|
||||||
|
- [ ] 1.1 上电即开机:无按键等待;**不强制清配对进绑定**(规格书 5.1/5.2,删除上电 `usr_goto_pair`)
|
||||||
|
- [ ] 1.2 短按开/关:继电器在**过零沿**吸合/断开,红绿 LED 跟实际吸合态
|
||||||
|
- [ ] 1.3 按住 5s → 配对提示(绿灯快闪);松手进绑定广播;120s 超时失败保持开机、灯回跟继电器
|
||||||
|
- [ ] 1.4 按住 12s → 红绿交替,进 OTA(`usr_app_ota_init`)
|
||||||
|
- [ ] 1.5 过零超时 100ms:开请求无沿 → 放弃保持关;关请求无沿 → 强断(`fault_code=2`,DP23)
|
||||||
|
- [ ] 1.6 运行中断电再上电:BLE 配对保留
|
||||||
|
|
||||||
|
> 仅 Bring-up 冒烟:把 `BOARD_LINKAGE/TIMER/TH_SCAN/RUNREC/LIGHT_LIFE/NVM_ENABLE` 置 0 编译(已验证 EXIT=0),板上复测 1.1–1.5。
|
||||||
|
|
||||||
|
## 2. P1 — 最小产品闭环
|
||||||
|
|
||||||
|
- [ ] 2.1 5s 配对后 APP 写 DP0 开/关灯泡:过零后灯与 DP0 上报一致(报**实际吸合态**)
|
||||||
|
- [ ] 2.2 短按同步上报 DP0
|
||||||
|
- [ ] 2.3 VM:改开关后断电,重新上电按上次开关恢复(开则等过零再吸合)
|
||||||
|
- [ ] 2.4 DP1 / DP2 / DP5–8 写忽略;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)
|
||||||
|
- [ ] 2.8 第一次开机:DP3=2,592,000、DP25=0(串口应见 `[LIGHT] light life init, remain=2592000`)
|
||||||
|
|
||||||
|
## 3. P2 — 自动化 + 寿命
|
||||||
|
|
||||||
|
- [ ] 3.1 断连已配对:500ms 见宝重连广播 ↔ 500ms 扫描交替;已连接停扫描
|
||||||
|
- [ ] 3.2 扫描匹配 `JBao-{缸体号}` 且配置版本相同才更新温度;湿度不参与开停
|
||||||
|
- [ ] 3.3 联动:`T<Tmin` 开灯、`T>Tmax` 关灯、中间保持;无匹配包保持上一态
|
||||||
|
- [ ] 3.4 缸体号 0 / `Tmin>Tmax` 不跑联动
|
||||||
|
- [ ] 3.5 手动作废后须先 `T>Tmax` 再 `T<Tmin` 才允许联动再开
|
||||||
|
- [ ] 3.6 定时 RTC 门闩:未对时绝不动作;对时后落在窗内立即开
|
||||||
|
- [ ] 3.7 定时:跨午夜窗、单次自毁(结束清 Byte0 落盘)、每天/每周、多组重叠
|
||||||
|
- [ ] 3.8 定时窗开始开、结束关,结束时立刻按 10.3 重判联动;**按 11.1 解析**(Byte1=类型)
|
||||||
|
- [ ] 3.9 DP10 脉冲删除;DP11 重写立刻重判
|
||||||
|
- [ ] 3.10 运行记录:实际吸合累计,满 600s 落盘;对时后跨天左移
|
||||||
|
- [ ] 3.11 出厂重置(DP26 写 1):清业务 VM 留配对;剩余寿命回 2,592,000、DP25=0
|
||||||
|
- [ ] 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.16 APP 写 DP3:任意 uint32 生效;>0 清告警、=0 置告警;立刻落盘
|
||||||
|
- [ ] 3.17 按键 5s 清绑定 **不**改寿命
|
||||||
|
- [ ] 3.18 点灯时 DP3 最多 1 分钟报一次;到期/复位/写 DP3 立刻报
|
||||||
|
- [ ] 3.19 掉电再上电:未到期接着扣;已到期仍 0 且 DP25=1
|
||||||
|
|
||||||
|
## 4. 仲裁最小用例(灯泡语义)
|
||||||
|
|
||||||
|
**前置**:缸体号≠0、`Tmin≤Tmax`、已配对;「关」=DP0 写 0 / 短按关,「开」同理。温度源:已连接写 DP9;断连扫描 `JBao-{缸体}`。
|
||||||
|
|
||||||
|
1. 空闲 `T<Tmin` → 开灯;短按关 → 保持关,即使仍低于 Tmin。
|
||||||
|
2. 用例 1 之后先到 `T>Tmax`,再回到 `T<Tmin`,才再次开。
|
||||||
|
3. 定时窗开始 → 开;窗未结束前保持开;结束时刻关;若此时 `T<Tmin` → **联动再开**。
|
||||||
|
4. 定时窗内再短按关 → 保持关到窗结束,定时不抢回;窗结束若已作废且仍 `T<Tmin` → **不要**被联动立刻打开。
|
||||||
|
5. 未对时,定时配置使能也不动作;对时后若在窗内立即开。
|
||||||
|
6. 上电 VM 为开、暂无温度 → 保持开(等过零吸合);温度到达后再按 10.3。
|
||||||
|
7. `T` 在 [Tmin, Tmax] → 保持上一态。
|
||||||
|
8. 断连扫描丢包 → 不关灯(保持上一态)。
|
||||||
|
9. 已连接写 **DP9** 使 `T<Tmin` → 开;断开后扫描到同一缸体更高温度 `T>Tmax` → 关。
|
||||||
|
10. 剩余寿命置 5,实际吸合 5 秒 → DP3=0、DP25=1,继电器保持开(若请求仍为开)。
|
||||||
|
11. 用例 10 之后 DP4 写 1 → DP3=2,592,000、DP25=0。
|
||||||
|
12. APP 写 DP3=100 后立刻拔电再上电 → 仍约 100(允许未满边沿的秒误差,**不允许**回到 2,592,000)。
|
||||||
|
13. 定时 11 字节:Byte1=1(每天)、Byte3–6=时分、Byte0=1 → 到点开;若误用加热垫偏移(Byte2 当类型)则本条失败。
|
||||||
|
|
||||||
|
## 5. 对账记录
|
||||||
|
|
||||||
|
| 轮次 | 日期 | 用例失败清单 | 根因 / 修复 commit | 回归 |
|
||||||
|
|---|---|---|---|---|
|
||||||
|
| 1 | | | | |
|
||||||
|
| 2 | | | | |
|
||||||
Reference in New Issue
Block a user