Baji_Rtc_Toy/main/dzbj/dzbj_init.c
Rdzleo 6b166f4463 feat: add EAF RTC and badge dual mode
1. 固定 RTC 数字人链路使用 ai_chat_ui_eaf,双模式开启后不再回退 LVGL/GIF 旧 RTC UI。

2. 保留电子吧唧 LVGL/SquareLine UI,只在电子吧唧运行模式启动 LVGL,避免与 EAF 抢同一 LCD flush。

3. 拆分 dzbj_hw_display_init 与 dzbj_display_init,AI/配网只初始化 LCD Touch 硬件,电子吧唧再启动 LVGL UI。

4. 配网模式使用 EAF 最小显示栈显示中文提示,请使用APP 蓝牙配网,不加载数字人资源和动画。

5. 开启 CONFIG_BAJI_BADGE_MODE,形成 RTC 数字人对话与电子吧唧图片显示双模式固件。

6. 电子吧唧图片扫描跳过 Background_360x360.jpg,避免 RTC 数字人背景进入吧唧图片列表。

7. BLE 图传在 BLE 5.0 关闭时跳过 2M PHY API,保持 legacy 1M PHY 兼容配网和图传。

8. sdkconfig.defaults 同步 BLE 内存优化,限制连接数和缓存,保留 GATT 与扫描能力。

9. 移除 ota.cc 编译和 app_update 直接依赖,双模式固件不创建 OTA 检查任务。

10. Ota 接口改为禁用 stub,保留接口兼容但不执行升级和版本检查。

11. Board 上报 JSON 的 OTA label 改为 disabled,避免依赖 OTA 运行分区。

12. partitions.csv 改为 factory 单 app 分区,扩大 app 到 0x900000,并扩大 storage 到 0x6F0000。

13. application 去除 OTA 任务句柄和服务器时间依赖,减少运行时资源占用。

14. system_info 去除 esp_ota_ops 依赖,配合无 OTA 分区配置。

15. 同步最新烧录运行日志,记录本轮双模式与配网测试结果。
2026-06-02 13:16:39 +08:00

60 lines
1.7 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#include "sdkconfig.h"
#include "dzbj_init.h"
#include "dzbj_gpio.h"
#include "lcd.h"
#include "pages_pwm.h"
#ifdef CONFIG_BAJI_BADGE_MODE
#include "ui/ui.h"
#endif
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "esp_log.h"
#define TAG "DZBJ"
// 仅 LCD/Touch 硬件初始化,不启动 LVGL。
// 双模式固件中 CONFIG_BAJI_BADGE_MODE 只是"支持电子吧唧"的编译开关,
// 不能用它判断当前运行模式AI/EAF/配网路径必须避免初始化 LVGL。
void dzbj_hw_display_init(i2c_master_bus_handle_t i2c_bus) {
ESP_LOGI(TAG, "开始初始化显示硬件...");
// 1. LCD 硬件初始化QSPI ST77916—— 共享
lcd_init();
ESP_LOGI(TAG, "LCD 硬件初始化完成");
#if DZBJ_ENABLE_TOUCH
// 2. 传入 I2C 总线句柄(与音频编解码器共享)
lcd_set_i2c_bus(i2c_bus);
// 3. 触摸控制器初始化CST816S
touch_init();
#else
(void)i2c_bus;
ESP_LOGI(TAG, "屏幕触摸已禁用 (DZBJ_ENABLE_TOUCH=0)");
#endif
ESP_LOGI(TAG, "硬件初始化完成,跳过 LVGL等待上层显示管线接管");
}
#ifdef CONFIG_BAJI_BADGE_MODE
// 完整初始化(硬件+LVGL + SquareLine UI + 背光)—— 仅吧唧模式
void dzbj_display_init(i2c_master_bus_handle_t i2c_bus) {
dzbj_hw_display_init(i2c_bus);
// 电子吧唧模式才启动 LVGL + SquareLine UI。
lvgl_lcd_init();
ESP_LOGI(TAG, "LVGL 初始化完成");
// SquareLine UI 初始化
ui_init();
ESP_LOGI(TAG, "UI 初始化完成");
// 等待首帧渲染完成
vTaskDelay(pdMS_TO_TICKS(100));
// 点亮背光
pwm_init();
ESP_LOGI(TAG, "背光已点亮dzbj 显示模块初始化完成");
}
#endif // CONFIG_BAJI_BADGE_MODE