feat(lcd): use Montserrat clock and battery icon assets
This commit is contained in:
@@ -24,21 +24,26 @@
|
||||
## 状态栏
|
||||
|
||||
- 左上 HH:MM,沿用 SNTP 和系统时区;未同步显示 --:--。
|
||||
- 右上百分比和电池;未知值显示 --%,充电绿色并带闪电缺口,低电量红色。
|
||||
- 左上时间已改成 Montserrat 14 原始字号,提取数字、冒号、横线直接绘制;
|
||||
无 GFX label 分配、无 LVGL GUI 初始化。旧 5×7 字形已从 HUD 实现移除。
|
||||
- 右上删除百分比,使用用户提供的 40×20 五档电池图标及对应充电版本;
|
||||
未知电量不显示,保留原底部低电量提示。档位规则、成本和生成入口见新指南第五节。
|
||||
- SOC、有效性和充电状态来自现有 domain battery 服务,不从 ADC 重算。
|
||||
- GFX 顶部 320x40 RGB565 图层,常驻 25,600 B PSRAM;只在分钟或电池状态
|
||||
改变时使图层失效并刷新。正常待机/listening 眨眼切换缓存,不重新解码 PNG;
|
||||
实时网格与程序闭眼弧线属于待机缓存生成或缓存失败后备路径。
|
||||
- PNG 表情复用相同点阵 / 电池绘制器,在每帧合成时更新;二维码和 LCD
|
||||
- PNG 表情复用相同 Montserrat 子集 / 电池素材绘制器,在每帧合成时更新;二维码和 LCD
|
||||
边界测试页面不显示状态栏。PNG 无限等待期间不会独立重绘状态栏。
|
||||
- 不需要字体包或新图片。旧 PNG 低电量底部告警保留;旧充电 PNG 不再自动
|
||||
叠加,避免与数字电量冲突。GFX 待机低电量以红色电池表示。
|
||||
- 新增字形子集和十个电池素材编译数组,不创建字形/图标解码缓存;普通堆、
|
||||
像素 PSRAM 和 DMA 无新增。旧 PNG 低电量底部告警保留;旧充电 PNG 不再
|
||||
自动叠加。低电量图标颜色来自用户素材,不再由代码统一染红。
|
||||
|
||||
## 验证
|
||||
|
||||
`python3 tools/test_lcd_status_hud.py` 从实际源码提取绘制函数,用 Clang
|
||||
AddressSanitizer / UndefinedBehaviorSanitizer 检查 808 组有效性、充电、
|
||||
低电量、0..100% 组合,验证行块和整帧等价、边界及颜色。
|
||||
AddressSanitizer / UndefinedBehaviorSanitizer 检查 2,048 组有效性、充电、
|
||||
低电量、完整 uint8 电量输入组合和全天 1,440 个时间,验证行块与整帧等价、
|
||||
边界、原图 Alpha、透明背景恢复、240/320 像素画布和字节交换开关。
|
||||
|
||||
使用 ESP-IDF v5.5.4 执行 idf.py build。实机需验证:
|
||||
|
||||
|
||||
Reference in New Issue
Block a user