一、BLE 蓝牙优化 - 设备名称改为动态名称 Airhub_MAC(基于BLE MAC地址) - 广播数据拆分为 ADV + Scan Response 两包 - 图片接收完成后数据直通显示(跳过SPIFFS重读,减少200-500ms延迟) - BLE耗时操作(NVS写入+导航显示)转移到独立FreeRTOS任务,避免BTC_TASK栈溢出 - 缩短BLE连接间隔(min=7.5ms, max=20ms),提升传输吞吐量 - 减少传输日志输出(每100包打印一次),提升传输速度 二、显示性能优化 - LVGL绘制缓冲区从DMA 30行改为PSRAM 120行大缓冲,减少flush次数 - CPU最大频率从160MHz提升到240MHz,提升解码性能 三、GIF动图支持(条件编译,当前默认关闭) - 实现自定义GIF播放器:Palette LUT查表 + TRUE_COLOR无Alpha + 后台线程解码流水线 - 使用 #if LV_USE_GIF 条件编译包裹所有GIF代码,sdkconfig中CONFIG_LV_USE_GIF=n时零开销 - 启用GIF时需设置 CONFIG_LV_USE_GIF=y 即可 四、图片管理优化 - BLE接收新图片后直接追加到列表(避免重扫SPIFFS目录) - SPIFFS图片扫描支持.gif扩展名(条件编译控制) 五、文档更新 - 设备运行日志:GIF性能瓶颈分析与优化方案 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
27 lines
1.3 KiB
C
27 lines
1.3 KiB
C
#include "esp_err.h"
|
||
#include <stdint.h>
|
||
#include <stdbool.h>
|
||
#include "lvgl.h"
|
||
|
||
void app_test_display(); // 测试显示
|
||
void app_img_display(); // 显示图片
|
||
esp_err_t nvs_change_img(char *imgname); // 改变NVS中的图片路径
|
||
void app_img_change(); // 改变图片
|
||
void img_switch_task(void *pvParameters);// 图片切换任务
|
||
void img_loop_task(void *pvParameters); // 图片循环任务
|
||
void pwm_init(); // 初始化PWM背光
|
||
void pwm_set_brightness(uint8_t percent); // 设置屏幕亮度(0=关闭, 10-100%)
|
||
uint8_t pwm_get_brightness(void); // 获取当前亮度值
|
||
|
||
// 图片管理函数
|
||
const char* get_current_image(void); // 获取当前图片文件名
|
||
bool delete_current_image(void); // 删除当前图片
|
||
void init_spiffs_image_list(void); // 初始化/扫描SPIFFS图片列表
|
||
void free_spiffs_image_list(void); // 重置图片列表
|
||
bool set_image_index_by_name(const char *name); // 根据文件名设置当前图片索引
|
||
void ble_image_navigate(const char *filename); // BLE接收后导航到ScreenImg显示
|
||
void ble_image_navigate_with_data(const char *filename, uint8_t *data, size_t data_size); // BLE接收后直通显示(跳过SPIFFS重读)
|
||
#if LV_USE_GIF
|
||
void pages_cleanup_gif(void); // 清理 GIF 控件资源
|
||
#endif
|