Files
test/app/app_light.h
2025-07-05 20:11:15 +08:00

62 lines
1.3 KiB
C

#ifndef APP_LIGHT_H
#define APP_LIGHT_H
#ifdef __cplusplus
extern "C"
{
#endif
// 定义灯光状态枚举
typedef enum
{
LIGHT_OFF,
LIGHT_ON,
LIGHT_BLINK
} LightState;
// 定义灯光类型枚举
typedef enum
{
LIGHT_HEAD,
LIGHT_TAIL,
LIGHT_LEFT_TURN,
LIGHT_RIGHT_TURN,
LIGHT_BRAKE,
LIGHT_ALARM,
LIGHT_COUNT
} LightType;
typedef struct
{
LightState states[LIGHT_COUNT];
uint8_t brightness[LIGHT_COUNT];
uint16_t blink_interval[LIGHT_COUNT]; // 闪烁间隔(毫秒)
uint8_t blink_state[LIGHT_COUNT]; // 闪烁状态
Timer timer;// 设置定时器,定时调用灯光处理函数
uint8_t old_light_state; // 旧的灯光状态
uint8_t light_state; // 当前的灯光状态
Timer timer_function; // 函数定时器
uint8_t light_switch; // 当前的灯光开关状态
uint8_t double_click_flag;//双击标志
} LightSystem;
// 在头文件中声明外部变量
extern LightSystem light_data;
// 使用内联函数
static inline uint8_t setLightOn(void) { return 1; }
static inline uint8_t setLightOff(void) { return 0; }
void lightAppInit(void);
void setLightState(LightType light, LightState state);
void setLightBrightness(LightType light, uint8_t brightness);
void setBlinkInterval(uint16_t interval);
#ifdef __cplusplus
}
#endif
#endif // APP_LIGHT_H