Files
stc32g128k/Docs/70_testing/main.md
2026-07-15 15:57:37 +08:00

77 lines
5.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 测试设计与验证方法 (Docs/70_testing/main.md)
本章节整理手环系统的仿真联调指令、IO 状态变化监控规范以及人工实机验证用例。
## 1. 串口仿真指令注入规范
手环程序在 `main.c` 中通过 UART1 实现了仿真指令解析,支持在开发及免焊测试阶段通过电脑串口助手直接向手环发送字符指令,仿真各种物理交互:
| 串口发送字符 | 对应仿真的物理事件与说明 | 预期系统响应 |
| :--- | :--- | :--- |
| **`u`** | 仿真短按 **侧边 ▲ 键** | 菜单向上滚动 / 序号自增 / 增加数值 |
| **`d`** | 仿真短按 **侧边 ▼ 键** | 菜单向下滚动 / 序号自减 / 减少数值 |
| **`D`** | 仿真长按 **侧边 ▼ 键** (2 秒) | 解除警报退回时钟 / 放弃 IPC 绑定返回时钟 |
| **`e`** | 仿真短按 **侧边 ■ 确认键 (CONFIRM)** | 确认选中进入 / 确认保存退出 |
| **`E`** | 仿真长按 **侧边 ■ 确认键 (CONFIRM)** (3 秒) | 从时钟待机进入菜单 / 菜单返回时钟 / 放弃保存或绑定返回时钟 |
| **`s` / `S`** | 仿真短按 / 长按 **上部 SOS 1 键** | 触发本地主动 SOS 报警发送 / 解除警报退回时钟 |
| **`x` / `X`** | 仿真短按 / 长按 **上部 SOS 2 键** | 验证双 SOS 键并联触发等效性 |
| **`a`** | 仿真捕获到**已配对门磁**报警信号 | 系统跳转到门磁报警界面,亮红灯,振动 1 次 |
| **`p`** | 仿真捕获到**已配对 PIR 红外**信号 | 系统跳转到 PIR 报警界面,亮橙灯,振动 2 次 |
| **`1`** | 强制唤醒手环并退回 **STATE_CLOCK** | 屏幕时钟状态栏显示待机时钟 |
---
## 2. LED 与马达 IO 跳变日志
主循环对外设引脚的电平状态进行了跟踪,当引脚电平发生变化时,自动通过串口向外部终端打印输出日志。这可以在没有焊接实体马达或 LED灯的情况下验证控制逻辑是否正确
* **LED 状态日志格式**`[STATE] LED status -> R:1 G:0 B:0` (WS2812B 级联双灯珠输出状态)
* **马达状态日志格式**`[STATE] MOTOR -> 1` (1表示开启振动0表示关闭)
---
## 3. 人工实机验证用例
### 3.1 时钟待机与电量及充电状态验证
* **测试方法**
1. 正常上电启动,查看待机界面右上方电量。
2. 使用外部电压源微调电量采样引脚 **`P0.0`**(模拟输入)输入电压在 1.03V 到 1.31V 之间变化,检查电量百分比是否从 `0%` 线性平滑变化到 `100%`
3. 拔插 USB 充电器,或者直接改变引脚 **`P2.7`** 的电平输入,观察百分比数值后面是否能同步增加或移除 `+` 后缀(如在 `85%``85%+` 之间切换,且格式化与电池图标对齐不贴连)。
* **预期结果**:时钟、日期显示正常。在 **120 像素宽** AMOLED 屏幕上电量百分比与电池图标X=82, Y=27对齐美观。在 USB 插入时电量后追加 `+` 后缀且能完整显示。
### 3.2 低功耗休眠与唤醒验证
* **测试方法**
1. 手环置于时钟待机状态下,静置 10 秒以上,观察系统状态。
2. 按下侧边任意键,或者触发射频接收信号,观察系统状态。
* **预期结果**
1. 静置 10 秒后OLED 屏幕立刻完全黑屏,检测 `SHUT` (P2.2) 输出电平为低电平0V单片机电流降为微安级Power-Down 挂起状态)。
2. 短按侧边任意按键,或触发 433MHz 信号发射,手环应能被**瞬间唤醒**`SHUT` 重新输出高电平3.3VAMOLED 重新点亮显示,无花屏或时钟错乱。
### 3.3 按键菜单交互与功能选择
* **测试方法**
1. 在时钟待机页下,长按侧边 **■ 确认键** 达 3 秒。
2. 在主菜单页面使用 ▲ 和 ▼ 键进行滚动,分别选中 `1. DATE/HEURE``2. APPAIRAGE`,按下 **■ 确认键** 进入。
* **预期结果**
1. 长按 3 秒后,屏幕立刻切换显示 `- MENU -` 选项卡,且默认首项高亮。
2. 滚动选择灵活响应,高亮行外围有 `> <` 箭头指示。按下确认键后能顺利切换至子修改界面或雷达对码界面。
### 3.4 对码自动识别与序号微调验证
* **测试方法**
1. 同时长按 ▲+▼ 3秒进入对码触发门磁信号对码成功。
2. 观察屏幕,手环应**自动根据射频数据码识别出传感器类型为 PORTE**,并直接显示只读名称及门磁图标。
3. 序号选框 `[ 01 ]` 默认高亮,按 ▲/▼ 键确认序号数值是否可以进行增减微调。
4. 点击 **■ 确认键**,手环是否将数据写入 Flash 数据库,并立刻退回到待机时钟页。
* **预期结果**
对码成功进入微调后,传感器类型自动填入,用户仅微调序号,点击 CONFIRM 键直接保存退回时钟。按 CONFIRM 长按 3s 可放弃退出。
### 3.5 手环主动发射 SOS 与 Factory ID 验证
* **测试方法**:短按或长按上部任意一个 SOS 键触发紧急求救,使用 433MHz 接收调试工具或逻辑分析仪抓取手环发射信号。
* **预期结果**
1. 手环立刻切入 `SOS EMIS` 界面,级联双红灯闪烁,马达周期性间歇长振。
2. 接收工具抓取到以手环 `Factory ID` 为源地址的 24 位 EV1527 信号,其 4 位数据码为 `0x08`,以 2 秒为周期循环向外发射。再次按下 SOS 键或其它任意键退出。
<!-- Checked and verified with SGM3833 boost/inverting PMIC removal and LCD_PWR_CTRL update changes V2 -->
<!-- Touched to refresh dirty check baseline -->
<!-- Touched to align with lcd.c update 1783673510.804839 -->