1、按键驱动重构:从GPIO中断改为iot_button组件,支持BOOT/KEY2的单击/双击/长按6种事件; 2、新增按键导航管理器(key_nav):9种上下文状态机,统一分发按键事件到对应界面业务逻辑; 3、BLE模块改造:广播默认关闭由按键触发,新增设备间图片传输(GATT Client),支持扫描配对→MTU协商→分包发送; 4、新增6个UI界面:配对(Peiwang)、更新(Update)、发送等待(ImageShar)、接收等待(ImageReception)、发送中(Sharing)、接收中(Receiving); 5、新增电池指示器组件(battery_ui):支持多界面真实电量显示,3秒渐隐效果; 6、Home界面重构:移除手势事件,改为airhub背景图+电池指示器; 7、Img界面重构:移除触摸事件,新增删除二次确认边框机制; 8、禁用ScreenSet/ScreenChar界面(保留文件),禁用触摸初始化(保留代码可恢复); 9、sleep_mgr简化:移除ScreenSet亮度UI依赖,按键唤醒由key_nav统一处理; 10、新增9张图片资源(airhub背景、配对、传输状态、电池图标等); Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
124 lines
3.7 KiB
Markdown
124 lines
3.7 KiB
Markdown
# 按键版电子吧唧功能规划
|
||
|
||
## 硬件按键
|
||
|
||
- **BOOT按键** (GPIO9):确认/执行/返回
|
||
- **KEY按键** (GPIO8):导航/切换
|
||
|
||
## 按键驱动
|
||
|
||
采用 ESP-IDF 官方 `iot_button` 组件,原生支持单击、双击、长按检测,替代原有自定义 GPIO 中断驱动。
|
||
|
||
## 全局规则
|
||
|
||
| 操作 | 功能 |
|
||
|------|------|
|
||
| 双击BOOT | 任何界面/模式下→返回Home |
|
||
| 任意键按下 | 熄屏状态→唤醒屏幕(仅唤醒,不触发业务) |
|
||
|
||
## 各界面按键功能
|
||
|
||
### 1. Home界面
|
||
|
||
| 操作 | 功能 |
|
||
|------|------|
|
||
| KEY单击 | 切换到Img界面(图片浏览) |
|
||
| BOOT单击 | 切换到Set界面(设置) |
|
||
| BOOT双击 | 无操作(已在Home) |
|
||
|
||
### 2. Img界面(图片浏览)
|
||
|
||
#### 正常浏览模式
|
||
|
||
| 操作 | 功能 |
|
||
|------|------|
|
||
| KEY单击 | 显示下一张图片(循环) |
|
||
| BOOT单击 | 返回Home界面 |
|
||
| BOOT双击 | 返回Home界面 |
|
||
|
||
#### 删除模式(从Set界面进入,显示ContainerDle)
|
||
|
||
| 操作 | 功能 |
|
||
|------|------|
|
||
| BOOT单击 | 确认删除当前图片,顺位显示下一张 |
|
||
| KEY单击 | 取消删除,隐藏ContainerDle,回到正常浏览模式 |
|
||
| BOOT双击 | 返回Home界面 |
|
||
|
||
### 3. Set界面(设置)
|
||
|
||
#### 焦点导航
|
||
|
||
进入Set界面默认无焦点选中。KEY单击按顺序轮询选中功能图标:
|
||
|
||
```
|
||
无选中 → 节能 → 应援灯 → 删除 → 亮度 → 无选中(循环)
|
||
```
|
||
|
||
- 选中的图标显示**蓝色加粗边框**
|
||
- 切换到下一个图标时,上一个取消边框
|
||
- 离开Set界面或返回Home后,边框状态全部清除
|
||
- 下次进入Set界面默认无选中
|
||
|
||
#### 未选中状态
|
||
|
||
| 操作 | 功能 |
|
||
|------|------|
|
||
| KEY单击 | 选中第一个图标(节能) |
|
||
| BOOT单击 | 返回前一界面(Home或Img) |
|
||
| BOOT双击 | 返回Home界面 |
|
||
|
||
#### 已选中图标但未激活功能
|
||
|
||
| 操作 | 功能 |
|
||
|------|------|
|
||
| KEY单击 | 切换到下一个图标 |
|
||
| BOOT单击 | 激活当前选中图标的功能 |
|
||
| BOOT双击 | 返回Home界面 |
|
||
|
||
#### 各功能详细操作
|
||
|
||
**1)节能模式**
|
||
- BOOT单击激活:切换节能模式开/关
|
||
- 激活后立即生效,焦点保持在节能图标
|
||
- 继续KEY单击→移到下一个图标
|
||
|
||
**2)应援灯(手电筒)**
|
||
- BOOT单击激活:进入应援灯全屏模式
|
||
- 进入后按键上下文切换为应援灯模式:
|
||
|
||
| 操作 | 功能 |
|
||
|------|------|
|
||
| BOOT单击 | 切换颜色(红→绿→蓝循环) |
|
||
| KEY单击 | 退出应援灯,返回Set界面 |
|
||
| BOOT双击 | 退出应援灯,返回Home界面 |
|
||
|
||
**3)删除图片**
|
||
- BOOT单击激活:跳转Img界面,显示删除容器(ContainerDle)
|
||
- 进入删除模式后按键行为见上方「Img界面-删除模式」
|
||
|
||
**4)亮度调节**
|
||
- BOOT单击激活:进入亮度调节模式
|
||
- 进入后按键行为:
|
||
|
||
| 操作 | 功能 |
|
||
|------|------|
|
||
| KEY单击 | 亮度-10%(最低10%) |
|
||
| BOOT单击 | 亮度+10%(最高100%) |
|
||
| KEY长按2秒 | 退出亮度调节,继续焦点轮询 |
|
||
| BOOT双击 | 返回Home界面 |
|
||
|
||
## 实施步骤
|
||
|
||
1. 添加 `iot_button` 组件依赖,替代自定义按键驱动
|
||
2. 新建按键导航管理器(key_nav模块),管理界面上下文和焦点状态
|
||
3. 改造各界面:移除触摸手势,添加按键驱动的导航逻辑
|
||
4. Set界面添加蓝色边框高亮样式
|
||
5. 适配休眠管理器
|
||
|
||
## 设计说明
|
||
|
||
1. **取消触摸芯片**:本次改版取消触摸芯片以降低成本,所有交互通过两个物理按键实现
|
||
2. **iot_button组件**:使用ESP官方组件,自带去抖、单击/双击/长按检测,稳定可靠
|
||
3. **上下文隔离**:不同界面/模式的按键行为完全独立,通过导航管理器统一调度
|
||
4. **双击BOOT全局返回**:任何状态下双击BOOT都能回Home,用户不会"迷路"
|