## 功能迁移清单(从 Dzbj_ESP32_S3_Key → Baji_Rtc_Toy) ### 1. 设备间BLE图片传输(GATT Client + 协议) - 新增 ble_transfer.c/h:发送方 GATT Client 扫描→连接→MTU协商→分包写入 - 接收方复用现有 GATT Server(IMAGE_WRITE 0x0B01),协议完全兼容 - 发送完成/失败自动跳转 Img 界面并关闭蓝牙 ### 2. APP传图显示 Update 界面 - 新增 ui_ScreenUpdate.c/h:更新进度界面(Gengxin背景 + Update_GIF动画) - dzbj_ble.c WRITE_EVT 中通过 ble_transfer_is_receiving() 区分 APP传图 vs 设备间传输 - APP传图 → ScreenUpdate,设备间传输 → ScreenReceiving ### 3. KEY2 按键功能入口(iot_button 单击/双击/长按) - KEY2 单击:开蓝牙 → Peiwang 配对界面(APP传图) - KEY2 双击:接收模式 → ScreenImageReception(等待配对) - KEY2 长按:发送模式 → ScreenImageShar(等待配对) - 按键参数与按键版对齐:long_press_time=1200ms, short_press_time=300ms ### 4. BOOT+KEY2 组合键模式切换(替代 BOOT 长按3秒) - BOOT 2秒长按 + KEY2 同时按下 → 触发模式切换 - 消除单键长按的误触发问题 - AI模式和吧唧模式均注册组合键 ### 5. 按键上下文状态机 - btn_context_t 枚举:HOME/IMG/SET/PEIWANG/IMAGE_SHAR/IMAGE_RECEPTION/SHARING/RECEIVING/UPDATE - 所有界面切换点(手势/按键/BLE自动跳转)同步设置 context - BOOT 单击按 context 分发:Home无操作、Img/Set返回Home、配对退出蓝牙、传输等待取消 ### 6. 新增 UI 界面(6个Screen + 7张图片) - ScreenPeiwang:蓝牙配对等待 - ScreenUpdate:APP传图更新中 - ScreenImageShar:发送方等待配对 - ScreenImageReception:接收方等待配对 - ScreenSharing:发送方传输中 - ScreenReceiving:接收方接收中 ### 7. 其他适配 - BLE 广播改为按需启动(dzbj_ble_start/stop/is_active) - sleep_mgr 移除 KEY2 唤醒(仅 BOOT 唤醒屏幕) - device_mode 新增模式切换按键抑制(防止重启后立即触发) - battery_ui 电池指示器组件 - sdkconfig 启用 BLE GATTC 支持 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
69 lines
2.3 KiB
C
69 lines
2.3 KiB
C
// This file was generated by SquareLine Studio
|
|
// SquareLine Studio version: SquareLine Studio 1.6.0
|
|
// LVGL version: 8.3.11
|
|
// Project name: Lcd_Pro
|
|
|
|
#ifndef _LCD_PRO_UI_H
|
|
#define _LCD_PRO_UI_H
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
#include "lvgl.h"
|
|
|
|
#include "ui_helpers.h"
|
|
#include "ui_events.h"
|
|
|
|
///////////////////// SCREENS ////////////////////
|
|
#include "screens/ui_ScreenHome.h"
|
|
#include "screens/ui_ScreenSet.h"
|
|
#include "screens/ui_ScreenImg.h"
|
|
#include "screens/ui_ScreenPeiwang.h"
|
|
#include "screens/ui_ScreenUpdate.h"
|
|
#include "screens/ui_ScreenImageShar.h"
|
|
#include "screens/ui_ScreenImageReception.h"
|
|
#include "screens/ui_ScreenSharing.h"
|
|
#include "screens/ui_ScreenReceiving.h"
|
|
|
|
///////////////////// VARIABLES ////////////////////
|
|
|
|
// EVENTS
|
|
extern lv_obj_t *ui____initial_actions0;
|
|
|
|
// IMAGES AND IMAGE SETS
|
|
LV_IMG_DECLARE( ui_img_airhub_png); // Home界面背景图
|
|
LV_IMG_DECLARE( ui_img_s8_png); // assets/s8.png
|
|
LV_IMG_DECLARE( ui_img_s11_png); // assets/s11.png
|
|
LV_IMG_DECLARE( ui_img_s12_png); // assets/s12.png
|
|
LV_IMG_DECLARE( ui_img_s9_png); // assets/s9.png
|
|
LV_IMG_DECLARE( ui_img_s6_png); // assets/s6.png
|
|
LV_IMG_DECLARE( ui_img_s10_png); // assets/s10.png
|
|
LV_IMG_DECLARE( ui_img_s1_png); // assets/s1.png
|
|
LV_IMG_DECLARE( ui_img_s13_png); // assets/s13.png
|
|
LV_IMG_DECLARE( ui_img_s14_png); // assets/s14.png
|
|
LV_IMG_DECLARE( ui_img_neutral_png); // emoji: 中性
|
|
LV_IMG_DECLARE( ui_img_happy_png); // emoji: 开心
|
|
LV_IMG_DECLARE( ui_img_sad_png); // emoji: 伤心
|
|
LV_IMG_DECLARE( ui_img_angry_png); // emoji: 生气
|
|
LV_IMG_DECLARE( ui_img_crying_png); // emoji: 哭泣
|
|
LV_IMG_DECLARE( ui_img_funny_png); // emoji: 滑稽
|
|
LV_IMG_DECLARE( ui_img_laughing_png); // emoji: 大笑
|
|
LV_IMG_DECLARE( ui_img_peiwang_new2_png); // 配对界面背景
|
|
LV_IMG_DECLARE( ui_img_image_shar_png); // 发送方等待配对
|
|
LV_IMG_DECLARE( ui_img_image_reception_png);// 接收方等待配对
|
|
LV_IMG_DECLARE( ui_img_sharing_png); // 发送方传输中
|
|
LV_IMG_DECLARE( ui_img_receiving_png); // 接收方接收中
|
|
LV_IMG_DECLARE( Gengxin); // 更新界面"更新"文字图
|
|
LV_IMG_DECLARE( Update_GIF); // 更新界面GIF动画
|
|
|
|
// UI INIT
|
|
void ui_init(void);
|
|
void ui_destroy(void);
|
|
|
|
#ifdef __cplusplus
|
|
} /*extern "C"*/
|
|
#endif
|
|
|
|
#endif
|