# 按键版电子吧唧功能规划 ## 硬件按键 - **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,用户不会"迷路"