1、开机按满 5s 绿灯先切配对快闪提示,松手才清绑定并进配网,继续按到 12s 仍可改道 OTA
2、app_led_init 提前到按键判定前,3s 常亮 / 5s 快闪 / 拒绝开机低电闪统一走灯效事件表,去掉开机阶段手搓 GPIO 闪烁
This commit is contained in:
@@ -2,10 +2,12 @@
|
||||
* @file led_manager.c
|
||||
* @brief CBC2 灯事件:充电红与待机绿走不同通道,可同时亮
|
||||
* @author cyWu <1917507415@qq.com>
|
||||
* @date 2026.08.25
|
||||
* @version V1.0.0
|
||||
* @date 2026.08.27
|
||||
* @version V1.1.0
|
||||
* @history
|
||||
* - V1.0.0, 2026.08.25, cyWu, 首次发布,实现红绿独立通道灯事件表
|
||||
* - V1.1.0, 2026.08.27, cyWu, 新增 LED_EVENT_BOOT_REJECT:拒绝开机低电闪,
|
||||
* 供 app_boot 在按键判定阶段直接复用事件库
|
||||
******************************************************************************/
|
||||
|
||||
#include "led_manager.h"
|
||||
@@ -21,6 +23,7 @@ static uint8_t led_pair_ok_handler(LED_Config_t *led_config);
|
||||
static uint8_t led_pair_fail_handler(LED_Config_t *led_config);
|
||||
static uint8_t led_ota_handler(LED_Config_t *led_config);
|
||||
static uint8_t led_empty_handler(LED_Config_t *led_config);
|
||||
static uint8_t led_boot_reject_handler(LED_Config_t *led_config);
|
||||
|
||||
/**
|
||||
* @brief 只改掩码里的通道,其它灯保持原样
|
||||
@@ -139,6 +142,20 @@ static uint8_t led_empty_handler(LED_Config_t *led_config)
|
||||
return 1;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 拒绝开机低电闪:闪完 N 下后删事件,随后调用方直接回深睡
|
||||
* @param led_config 配置
|
||||
* @return 1=还在闪,0=闪完已删事件
|
||||
*/
|
||||
static uint8_t led_boot_reject_handler(LED_Config_t *led_config)
|
||||
{
|
||||
if (LED_Update(led_config) == 0) {
|
||||
LED_EventDelete(LED_EVENT_BOOT_REJECT);
|
||||
return 0;
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 注册回调并装载 CBC2 事件表(GPIO 已在 bsp_hw_init)
|
||||
* @return 无
|
||||
@@ -259,6 +276,18 @@ void user_led_init(void)
|
||||
.config.runNum = BOARD_LED_EMPTY_BLINK_N,
|
||||
.ledEventHandler = led_empty_handler,
|
||||
},
|
||||
[LED_EVENT_BOOT_REJECT] = {
|
||||
/* 拒绝开机:电量过低,红灯闪 N 下,参数与运行时 EMPTY 独立解耦 */
|
||||
.event = LED_EVENT_BOOT_REJECT,
|
||||
.priority = PRIORITY_4,
|
||||
.config.ledMask = LED_CHANNEL(LED_CH_RED),
|
||||
.config.state = LED_BLINKING,
|
||||
.config.blinkParams.orDer = 0, /* 先亮后灭 */
|
||||
.config.blinkParams.onTime = BOARD_BOOT_LOWBAT_ON_MS,
|
||||
.config.blinkParams.offTime = BOARD_BOOT_LOWBAT_OFF_MS,
|
||||
.config.runNum = BOARD_BOOT_LOWBAT_BLINK_N,
|
||||
.ledEventHandler = led_boot_reject_handler,
|
||||
},
|
||||
};
|
||||
|
||||
LED_SetStateInit(set_led_multi);
|
||||
|
||||
Reference in New Issue
Block a user