Baji_Rtc_Toy_Key/main/ui/screens/ui_ScreenSharing.c
Rdzleo 3a05c3c7d5 双模设备电子吧唧按键功能完整实现 + BLE设备间图片传输 + 模式切换防护
1、按键驱动重构:dzbj_button改为iot_button组件,支持BOOT/KEY2单击/双击/长按,回调通过xTaskCreate派发避免阻塞esp_timer;
2、新增按键导航管理器(key_nav):9种上下文状态机,统一分发按键事件到对应界面;
3、BLE改造:广播默认关闭由按键触发启停,新增设备间GATT Client图片传输(扫描→连接→MTU协商→分包发送),WRITE_EVT区分APP/设备传图跳转不同界面;
4、新增模式切换按键抑制:NVS标志+2秒时间窗,防止AI↔吧唧切换时幽灵按键触发配网或白屏;
5、AI模式BOOT单击回调添加抑制检查,吧唧模式key_nav_boot_click同步添加;
6、新增6个UI界面:配对(Peiwang)、更新(Update)、发送等待/接收等待/发送中/接收中;
7、新增电池指示器组件(battery_ui):多界面真实电量显示+3秒渐隐;
8、Home/Img界面重构:移除触摸手势事件,改为airhub背景+按键导航;
9、禁用触摸(DZBJ_ENABLE_TOUCH=0),保留代码可恢复;
10、sleep_mgr简化:按键唤醒由key_nav统一处理;

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-26 17:44:46 +08:00

26 lines
871 B
C

// 发送方传输中界面 - 显示sharing图片
// BLE配对成功后自动跳转到此界面
#include "../ui.h"
lv_obj_t *ui_ScreenSharing = NULL;
static lv_obj_t *sharing_img = NULL;
void ui_ScreenSharing_screen_init(void) {
ui_ScreenSharing = lv_obj_create(NULL);
lv_obj_clear_flag(ui_ScreenSharing, LV_OBJ_FLAG_SCROLLABLE);
lv_obj_set_style_bg_color(ui_ScreenSharing, lv_color_hex(0x000000), LV_PART_MAIN);
lv_obj_set_style_bg_opa(ui_ScreenSharing, 255, LV_PART_MAIN);
sharing_img = lv_img_create(ui_ScreenSharing);
lv_img_set_src(sharing_img, &ui_img_sharing_png);
lv_obj_set_align(sharing_img, LV_ALIGN_CENTER);
lv_obj_clear_flag(sharing_img, LV_OBJ_FLAG_SCROLLABLE);
}
void ui_ScreenSharing_screen_destroy(void) {
if (ui_ScreenSharing) lv_obj_del(ui_ScreenSharing);
ui_ScreenSharing = NULL;
sharing_img = NULL;
}