修复一下问题:

A用户绑定IPC和门夹弹力绳,分享给B用户;
A用户先进入门夹弹力绳页面,已唤醒玩具,B用户再进入页面
A用户退出页面下发休眠指令,B用户操作玩具,未提示操作成功/失败
This commit is contained in:
2026-09-10 11:43:33 +08:00
parent 026d6d5da7
commit 5875d2a339
5 changed files with 155 additions and 45 deletions
+76 -33
View File
@@ -1,11 +1,12 @@
# 门夹弹力绳 需求文档(V1.1
# 门夹弹力绳 需求文档(V1.3
| 项目 | 内容 |
| --- | --- |
| 产品名称 | 门夹弹力绳(智能逗宠玩具) |
| 型号 | PICBC2 / CBC2 |
| 主控 | 杰理 AC7016C |
| 日期 | 2026-08-25 |
| 日期 | 2026-09-10 |
| 修订 | V1.3:App 软关后,再下发其它控制指令也可退出关机 |
---
@@ -13,26 +14,39 @@
门夹弹力绳是一款智能逗宠玩具。设备夹在门板上,内部电机带动弹力绳收放,让绳端玩具按不同"玩法"动起来逗宠物玩。支持手机 App 通过远程控制,也支持按键本地操作。
硬件:红绿双指示灯(低电平亮)+ 单按键(低电平按下)。
---
## 2. 核心功能
### 2.1 开关机
| 操作 | 行为 |
| --- | --- |
| 深睡状态下按 3 秒 | 开机 |
| 深睡状态下按 5 秒 | 开机并进入配对模式 |
| 开机状态下按 3 秒 | 关机(深睡省电) |
| 插着充电线时上电 | 自动开机,不用按键 |
| 刚上电没按按键 | 保持深睡,不误开机 |
| 操作 | 行为 | 灯效 |
| --- | --- | --- |
| 刚上电没按按键、也没插充电线 | 保持深睡,不误开机 | 灭 |
| 插着充电线时上电 | 自动开机,跳过按键判定 | 进正常灯效 |
| 深睡状态下按**3 秒** 后松手 | 开机 | 满 3 秒时绿灯常亮 |
| 深睡状态下按住 **5 秒** 后松手 | 开机并进入配对(清配对信息) | 满 5 秒切成绿灯快闪 |
| 深睡状态下按住 **12 秒** | 开机并进入 OTA(不等松手) | 随后红绿交替闪 |
| 深睡状态下电量过低(约 ≤5%)且未充电 | 拒绝开机,红闪 5 下后继续深睡 | 红 200ms 亮/灭 ×5 |
| 开机状态下按住 **3 秒** | 关机(深睡省电) | 立刻灭灯 |
- 深睡状态下,按按键(3 秒/5 秒)或插充电线均可唤醒开机。
补充说明:
- 深睡唤醒:按按键(3 秒开机 / 5 秒配对 / 12 秒 OTA)或插充电线均可开机。
- 满 5 秒只是「武装配对 + 快闪提示」,真正提交配对在 **松手** 那一刻。如果继续按到 12 秒,改道进 OTA,不再进配对。
- 开机判定时如果手还按着,会锁住按键,松开后才认短按/长按,避免刚开机立刻关机。
### 2.2 开关(App 控制)
- App 可开/关设备功能;关闭后电机停转,蓝牙不断开,可随时再开。
- 功能关闭后,以下操作都会退出软关并恢复功能:
- App 下发开机 DP
- App 再下发其它控制指令(自动玩法、手动点动等),并按该指令继续执行
- 短按按键:只唤醒功能,**不切玩法**
- 拔掉充电线会自动进入低功耗状态(电机停转、LED 关闭、蓝牙保持连接)。
- 充电中、正在深睡关机:其它指令不会把功能拉开。
### 2.3 自动玩法(6 种,App 或按键选择)
@@ -48,46 +62,74 @@
- 玩法会循环播放,直到切换或停止。
- 运行中可随时切换到其他玩法或停止。
- 单次最长运行 **10 分钟**,到点自动停转回待机(保护性超时,不闪灯,避免误以为被按到)。
- 充电中、配对中、正在深睡关机:不允许跑自动玩法,强制回到停转。
- 功能关闭时若 App 下发玩法/点动:先退出软关,再按该指令执行。
### 2.4 手动控制(App 控制)
- App 可手动点动:控制电机**收绳**或**放绳**,松手/点停止后电机停止。
- 手动控制进行中,自动玩法暂停。
- 从自动/空闲切到手动时,绿灯闪两下提示。
- 手动点动进行中,短按按键无效,避免打断收放绳。
- 选中自动玩法会先停手动,再进入自动模式。
### 2.5 按键控制
| 操作 | 行为 |
| --- | --- |
| 短按(<1 秒) | 切换玩法:停 → 玩法1 → 玩法2 → … → 玩法6 → 停,循环 |
| 长按 3 秒 | 关机 |
| 充电中 / 配对中 | 按键无效 |
开机后只有一颗按键,短按/长按含义如下:
| 操作 | 条件 | 行为 |
| --- | --- | --- |
| 短按(松开且未到 3 秒) | 功能开、空闲 | 切换玩法:停 → 玩法1 → … → 玩法6 → 停,循环;绿灯闪两下 |
| 短按 | 功能已关(App 软关 / 拔充电线后) | 只唤醒功能,不切玩法;挂待机绿灯 |
| 短按 | 手动点动进行中 | 无效 |
| 长按 3 秒 | 功能开 | 关机进深睡 |
| 短按 / 长按 | 充电中 / 配对中 / 正在关机 | 无效 |
### 2.6 电量与充电
- 电量按电压换算:满电 4.2V = 100%3.2V = 0%,电量自动上报 App 显示。
- **低电量**(电池电压低于 **3.7V**):App 上报警告,指示灯红灯慢闪;持续 1 分钟未充电则自动关机保护电池
- **电量极低**(低于 3.2V):直接自动关机
- **插入充电线**:电机立即停止、进入充电状态,只有红灯常亮,表示充电中,充满转绿灯常亮;充电期间不执行玩法,按键无效
- **充电中拔掉充电线**:设备自动进入低功耗状态(电机停转、LED关闭、蓝牙保持连接),需按短按按键或 App 重新开启后才能使用
- 电池:锂电池,USB 5V 充电,充满自动转灯
- 电量按电压换算:满电 4.12V = 100%3.2V = 0%,电量自动上报 App 显示。充电内阻压降下,充满基准按 4.2V 计。
- **低电量**(电池电压低于 **3.7V**):App 上报警告,指示灯红灯慢闪。只提示、不关机;电压回升超过 3.75V 后退出低电
- **空电关机**(显示电量 ≤ **5%**):立刻停电机,红灯闪 5 下后自动关机保护电池。充电中不判定
- **开机电量过低**(未充电且裸电压约 ≤ 3.25V,对应约 5%):拒绝开机,红闪 5 下后继续深睡
- 开机后约 3 秒内不因低电/空电关机,避免上电瞬间误判
- **插入充电线**:电机立即停止、进入充电状态,红灯常亮表示充电,充满转绿灯常亮;充电期间不执行玩法,按键无效。功能关掉时充电灯仍继续亮
- **充电中拔掉充电线**:设备自动进入低功耗状态(电机停转、LED 关闭、蓝牙保持连接),需短按按键或 App 重新开启后才能使用。
- 电池:锂电池,USB 5V 充电,充满自动转灯;硬件判定充满后电量强制收尾到 100%。
### 2.7 指示灯
| 状态 | 灯效 |
| --- | --- |
| 正常待机 | 绿灯常亮 |
| 充电中 | 红灯常亮 |
| 充满 | 绿灯常亮 |
| 低电量 | 红灯慢闪 |
| 配对中 | 绿灯快闪 |
| 配对成功 | 绿灯常亮 3 秒 |
| 配对失败 | 红绿交替闪 3 秒 |
| 按键切玩法 | 绿灯闪两下 |
红绿双灯,通道独立,可以同时亮。充电灯和功能开关无关。
| 状态 | 灯效 | 节奏 |
| --- | --- | --- |
| 正常待机(功能开、没充电) | 绿灯常亮 | 一直亮 |
| 充电中 | 红灯常亮 | 一直亮 |
| 充满 | 绿灯常亮 | 一直亮 |
| 低电量(功能开、没接电) | 红灯慢闪 | 亮 200ms / 周期 2s |
| 配对 | 绿灯快闪 | 100ms 亮 / 100ms 灭 |
| 配对成功 | 绿灯常亮 3 秒 | 一次性 |
| 配对失败 | 红绿交替 3 秒 | 200ms 半周期 |
| 切玩法 / 切手动 | 绿灯闪两下 | 150ms 灭 + 150ms 亮 ×2 |
| OTA | 红绿交替,独占全部灯 | 200ms 半周期,一直闪到升级结束/复位 |
| 运行中空电关机 | 关绿灯,红灯闪 5 下再掉电 | 200ms 亮/灭 ×5 |
| 开机电量过低被拒 | 红灯闪 5 下后继续深睡 | 同上 |
优先级(高的盖住低的):
1. OTA / 空电关机红闪 / 切模式绿闪
2. 配对快闪、配对成功、配对失败
3. 充电红 / 充满绿 / 低电红闪
4. 待机绿灯(最低)
OTA 和空电关机会清掉其它灯,只跑自己那一种。功能关掉时,待机/配对/切模式/低电灯会清掉,**充电灯保留**。
### 2.8 配对
- 首次使用:深睡状态长按 5 秒开机并进入配对,App 扫码连接即可。
- 配对窗口 120:期间连接成功绿灯 3 秒;超时未连接保持开机,可重新配对。
- 首次使用:深睡状态长按 5 秒后松手,开机并进入配对,App 扫码连接即可。
- 按满 5 秒绿灯先切到配对快闪;若继续按到 12 秒则改道 OTA,不再提交配对。
- 配对窗口 120 秒:期间连接成功绿灯常亮 3 秒;超时未连接红绿交替 3 秒,之后保持开机,可重新配对。
- 配对期间不跑玩法、按键无效。
- App 可解绑设备,解绑后设备清除配对信息,重新配对即可再次使用。
### 2.9 时间同步
@@ -97,6 +139,7 @@
### 2.10 固件升级(OTA
- 支持 App 远程升级固件,升级协议已打通。
- 本地入口:深睡状态按住 12 秒,开机并进入 OTA 广播,红绿交替闪。
- 当前版本:固件 V1.0.0、硬件 V1.0.0。
- 实际升级流程(写入芯片、校验、版本判断)待开发。