68 lines
7.0 KiB
Markdown
68 lines
7.0 KiB
Markdown
# 细化需求 (Docs/20_requirements-detail/main.md)
|
||
|
||
本章节定义手环终端的物理按键交互、报警矩阵(可编程 RGB 灯颜色与振动)以及防区划分详细需求。
|
||
|
||
## 1. 物理按键与菜单交互定义
|
||
|
||
手环共配备 **5 个物理按键**:侧边 3 个(▲ 上移、▼ 下移、■ 确认/CONFIRM),上部 2 个(相同的 SOS1、SOS2,具备完全一致的并联电气逻辑)。
|
||
|
||
### 1.1 页面与状态定义
|
||
* **时钟待机状态 (STATE_CLOCK)**:正常显示时间、日期、电量及布撤防状态。
|
||
* **低功耗休眠状态 (STATE_SLEEP)**:无按键操作 10 秒后自动进入。屏幕完全关闭,拉低 `SGM_CTRL = 0` 关闭 SGM3833 供电,单片机进入 Power-Down 挂起状态。
|
||
* **主选择菜单 (STATE_MENU)**:在 `STATE_CLOCK` 下长按 **■ 确认键** 3 秒进入。显示四个选项,通过 ▲/▼ 键进行滚动,CONFIRM 键确认进入:
|
||
1. `1. DATE/HEURE` (进入时间日期修改界面 `STATE_SET_TIME`)
|
||
2. `2. APPAIRAGE` (进入对码配对搜索界面 `STATE_PAIR_SEARCH`)
|
||
3. `3. ARM/DISARM` (进入系统布撤防手动设定界面 `STATE_ARM_DISARM_SELECT`)
|
||
4. `4. LIAISON IPC` (进入 IPC 摄像头绑定发送界面 `STATE_IPC_BIND`)
|
||
|
||
### 1.2 按键动作状态机映射
|
||
|
||
| 当前状态 | ▲ 上移键动作 | ▼ 下移键动作 | ■ 确认键 (CONFIRM) 动作 | SOS1 / SOS2 按键动作 |
|
||
| :--- | :--- | :--- | :--- | :--- |
|
||
| **时钟待机 (STATE_CLOCK)** | 无动作 | 无动作 | 长按 3 秒:进入主选择菜单 | 短按/长按:立即跳转至发送 SOS 报警 (`STATE_SOS_EMITTED`) |
|
||
| **低功耗休眠 (STATE_SLEEP)** | 短按:唤醒并恢复至时钟待机 | 短按:唤醒并恢复至时钟待机 | 短按:唤醒并恢复至时钟待机 | 短按/长按:唤醒系统并立即触发 SOS 报警 |
|
||
| **主选择菜单 (STATE_MENU)** | 短按:菜单项向上滚动 | 短按:菜单项向下滚动 | 短按:确认进入选中分支;长按 3 秒:退出菜单返回时钟 | 短按/长按:立即跳转至发送 SOS 报警 |
|
||
| **时间修改 (STATE_SET_TIME)** | 短按:增加当前选中数值 | 短按:减少当前选中数值 | 短按:保存并切换到下一个修改位;长按 3 秒:放弃修改返回时钟 | 短按/长按:立即跳转至发送 SOS 报警 |
|
||
| **对码配对 (STATE_PAIR_SEARCH)** | 无动作 | 长按 2 秒:放弃对码返回主菜单 | 无动作 | 短按/长按:立即跳转至发送 SOS 报警 |
|
||
| **对码确认微调 (STATE_PAIR_CONFIRM)** | 短按:自增后缀序号 (01->99) | 短按:自减后缀序号 (99->01) | 短按:确认保存配置并存入 Flash,返回时钟;长按 3 秒:放弃保存返回时钟 | 短按/长按:立即跳转至发送 SOS 报警 |
|
||
| **布撤防手动设定 (STATE_ARM_DISARM_SELECT)** | 短按:切换布撤防高亮项 | 短按:切换布撤防高亮项 | 短按:保存选定状态返回时钟 | 短按/长按:立即跳转至发送 SOS 报警 |
|
||
| **IPC 绑定发送 (STATE_IPC_BIND)** | 无动作 | 长按 2 秒:放弃绑定返回时钟 | 短按:立刻再次发射绑定射频包;长按 3 秒:退出返回时钟 | 短按/长按:立即跳转至发送 SOS 报警 |
|
||
| **警报触发状态 (STATE_ALARMING)** | 短按:解除报警并退回时钟 | 短按:解除报警并退回时钟 | 短按:解除报警并退回时钟 | 短按/长按:解除报警并退回时钟 |
|
||
| **本地主动 SOS 发送 (STATE_SOS_EMITTED)** | 短按:解除 SOS 发送退回时钟 | 短按:解除 SOS 发送退回时钟 | 短按:解除 SOS 发送退回时钟 | 短按/长按:解除 SOS 发送退回时钟 |
|
||
|
||
> [!NOTE]
|
||
> 1. **双 SOS 按键冗余**:上部的两个 SOS 键在电路与软件上完全等价。按下其中任意一个按键,均会触发相同的 SOS 信号采集与求救动作。
|
||
> 2. **一键报警优先级**:除了在报警状态和本地 SOS 发送状态下按 SOS 键为解除报警外,在其它任意状态下,短按或长按 SOS 键均拥有最高优先级,立刻强行中止当前业务并跳转至 SOS 呼救状态。
|
||
> 3. **对码自动类型识别与后缀选择**:
|
||
> * 手环在接收到 433MHz 射频对码信号时,**自动根据数据码(Data Code)识别传感器类型**(如门磁、红外、烟感等,无须用户手动选择类型),并直接跳转到对码微调页面。
|
||
> * 在微调确认页面中,传感器类型和图标为只读显示,用户仅需通过 ▲/▼ 键增减微调该传感器的后缀序号(01~99)。按 CONFIRM 键即可一键保存并写入 Flash 数据库。
|
||
> 4. **低功耗休眠与唤醒**:在待机、菜单或非报警页面下,若 **10秒内无任何按键操作**,系统将自动关闭 OLED 屏幕、切断 SGM3833 PMIC 电源,并将 MCU 挂起进入 Power-Down 停机模式。任何按键的按下或射频信号的接收都会通过中断将 CPU 瞬间唤醒。
|
||
|
||
## 2. 传感器对码与报警映射矩阵
|
||
|
||
手环接收到 433MHz 传感器射频数据后,通过匹配预设数据码(高 4 位为类型)和地址码,根据下表驱动多色 LED、马达振动波形并更新 LCD 显示。本系统支持 7 种不同的外部传感器类型,并预留了出厂预设的固定名称前缀。
|
||
|
||
| 传感器类型 | 数据码标识 | 预设名前缀 | LED 颜色 | 默认防区类型 | 马达振动波形 (周期 5 秒) |
|
||
| :--- | :--- | :--- | :--- | :--- | :--- |
|
||
| **🚪 门磁/窗磁** | `0x01` | `PORTE` | ● 红色 | ZONE 1 (普通) | 1 次短振 300ms |
|
||
| **👤 PIR 人体红外** | `0x02` | `PIR` | ● 橙色 | ZONE 1 (普通) | 2 次短振 300ms (间隔 200ms) |
|
||
| **🔥 烟雾传感器** | `0x03` | `FUMEE` | ● 绿色 | ZONE 0 (24h) | 3 次短振 200ms (间隔 150ms) |
|
||
| **🆘 紧急按钮** | `0x04` | `URGENCE` | ● 蓝色 | ZONE 0 (24h) | 1 次长振 800ms |
|
||
| **💨 气体泄漏** | `0x05` | `GAZ` | ● 紫色 | ZONE 0 (24h) | 4 次短振 200ms (间隔 100ms) |
|
||
| **💧 水浸传感器** | `0x06` | `INOND.` | ● 黄色 | ZONE 0 (24h) | 2 次长振 600ms (间隔 300ms) |
|
||
| **📳 振动传感器** | `0x07` | `VIBRA.` | ● 青色 | ZONE 1 (普通) | 连续3次 150ms (间隔 100ms) |
|
||
| **🚨 本地主动 SOS** | 手环触发 | `SOS` | ● 红色闪烁 | 独立运行 | 持续长振 (振 1000ms, 停 200ms) |
|
||
|
||
> [!IMPORTANT]
|
||
> **手环主动发射 SOS 射频数据格式**:
|
||
> 当触发“本地主动 SOS”时,手环通过内置发射芯片以 **2 秒** 为周期循环发射 EV1527 协议数据:
|
||
> * **源地址**:手环的 **20位出厂固定唯一 ID (Factory ID)**。
|
||
> * **数据码**:固定为 **`0x08`** (即 `1000`)。
|
||
> * **目的**:使 IPC 摄像头能接收解码,将其与配对列表中该手环 of Factory ID 匹对,从而识别求救来源。
|
||
|
||
## 3. ZONE 防区划分
|
||
|
||
手环支持将配对的传感器划分至不同的防区:
|
||
* **ZONE 0 (永久防区)**:烟雾、气体、水浸等危及安全的传感器。不论手环是否处于布防状态,一旦捕获信号即刻报警。
|
||
* **ZONE 1~N (可撤布防区)**:门磁、红外等防盗传感器。只有当手环接收到布防广播(系统进入 ARMED)时才会报警;在撤防(DISARMED)状态下被动忽略。
|