EMS 知识库
首页 / knowledge/代码解析/hmi

led.h

源文件路径:hmi/led.h 所属模块:hmi(人机界面) 代码行数:26

1. 文件职责

本文件是 EMS 指示灯(LED)显示模块的对外头文件,只做两件事:声明 hmi/led.c 导出的两个函数 led_display_test() 与 led_display(),并把 LED 模块所需的公共依赖一次性拉进来。它本身不含任何数据结构、宏或变量定义,是一个纯声明头。

它处在 HMI 数据流的"灯显出口"位置:上层由 hmi/key.c 的 task_hmi_parse() 任务在每轮循环中先调用一次 led_display_test()(hmi/key.c:8896,开机点亮自检),之后在 for(;;) 里周期调用 led_display()(hmi/key.c:8953)刷新指示灯。灯的颜色与闪烁节拍全部由 led_display() 内部根据逆变器/电池/电表/联网状态现场计算,本头文件不参与任何计算。

它同时是 LED 新旧两套实现的"交汇点":#include "app_led.h"(hmi/led.h:17)把 2026 年新增的 WS2812 灯带模块(app_led.c/app_led_cfg.c/led_dev.c)一并引入,使 hmi/led.c 可以直接读写 sys_current_status_color 这个跨文件的颜色状态量。

2. 关键数据结构与宏

本文件没有定义任何结构体、枚举、宏或变量。

名称类型(结构体/枚举/宏/联合体)说明
__LED_H__宏(防重包含)头文件保护宏,hmi/led.h:9-10
(无)—本文件不含结构体、枚举、联合体、常量宏定义

3. 函数清单

本文件只有函数声明,没有任何函数定义。

函数名作用域(static/全局)说明(一句话)
led_display_test全局(声明,hmi/led.h:22)开机/切换显示类型时的灯显自检函数,定义于 hmi/led.c:42
led_display全局(声明,hmi/led.h:23)指示灯周期刷新主函数,定义于 hmi/led.c:157

4. 核心逻辑解析

本文件是纯声明头,无逻辑。与它相关的时序约束如下:

5. 对外接口

本文件导出(供外部使用)

名称类型使用方
led_display_test函数声明hmi/key.c:8896
led_display函数声明hmi/key.c:8953

本文件间接暴露(通过 include 传递)

名称来源说明
includes.hUCOSII/uCOS-CONFIG/includes.h全局类型/OS 头,hmi/led.h:13
data.hdata/data.h数据层公共类型与 g_t_config_data 等,hmi/led.h:14
bms.hmidware/bms/bms.hBMS 中间件接口,hmi/led.h:15
inverter.hmidware/inverter/inverter.h逆变器中间件接口与 INVERTER_TYPE 机型宏,hmi/led.h:16
app_led.hhmi/led/app_led.h新增 WS2812 灯带任务接口,hmi/led.h:17;并继续传递 app_led_cfg.h → led_dev.h

6. 依赖关系

7. 备注与风险点