/****************************************************************************** * @file app_led.h * @brief CBC2 灯效优先级:充电 > 配对 > 软关 > 低电 > 切模式闪 > 开机绿灯提示后灭 * @author cyWu <1917507415@qq.com> * @date 2026.08.25 * @version V1.1.0 * @history * - V1.0.0, 2026.08.21, cyWu, 首次发布 * - V1.1.0, 2026.08.25, cyWu, 开机绿灯只提示几秒,避免待机常亮耗电 ******************************************************************************/ #ifndef __APP_LED_H__ #define __APP_LED_H__ #include typedef enum { APP_LED_OK = 0, APP_LED_ERR_NOT_INIT } AppLed_Ret_t; typedef struct { uint8_t charge_led; /**< 0=无 1=充电红常亮 2=充满绿常亮 */ uint8_t pairing; /**< 1=配对中绿快闪 */ uint8_t app_power; /**< DP0,为 0 则功能灯灭 */ uint8_t low_bat; /**< 1=低电红闪 */ uint8_t life_on; /**< 1=允许显示开机灯效 */ } AppLedCtx_t; /** * @brief 灯效初始化,先全灭 * @return APP_LED_OK=成功 */ AppLed_Ret_t app_led_init(void); /** * @brief 按优先级刷新灯 * @param ctx 充电/配对/开关/低电状态,不可为空 * @param dt 距上次调用的毫秒数 * @return 无 */ void app_led_tick_1ms(const AppLedCtx_t *ctx, uint16_t dt); /** * @brief 请求切模式绿灯闪两下 * @return 无 */ void app_led_request_mode_blink(void); /** * @brief 重新亮几秒开机绿灯 * @return 无 */ void app_led_hint_power_on(void); /** * @brief 播放一次性配对结果灯 * @param ok 1=成功常绿,0=失败红绿交替 * @return 无 */ void app_led_start_pair_result(uint8_t ok); /** * @brief 查询是否已初始化 * @return APP_LED_OK=已初始化,APP_LED_ERR_NOT_INIT=未初始化 */ AppLed_Ret_t app_led_get_status(void); #endif /* __APP_LED_H__ */