40 lines
1.3 KiB
C
40 lines
1.3 KiB
C
|
|
#include "led_state.h"
|
|||
|
|
#include <caf/led_effect.h>
|
|||
|
|
|
|||
|
|
/*
|
|||
|
|
* 该文件仅被 led_state_module.c 包含一次,用于定义:
|
|||
|
|
* 1) 逻辑 LED 到 CAF LED 实例编号映射;
|
|||
|
|
* 2) 每个逻辑状态对应的 LED 效果。
|
|||
|
|
*/
|
|||
|
|
const struct {} led_state_def_include_once;
|
|||
|
|
|
|||
|
|
/*
|
|||
|
|
* CAF LED 实例编号来源于 DTS 中 status=okay 的 gpio-leds 顺序:
|
|||
|
|
* - led_0 -> 0(Num Lock)
|
|||
|
|
* - led_1 -> 1(BLE 状态)
|
|||
|
|
*/
|
|||
|
|
static const uint8_t led_map[LED_ID_COUNT] = {
|
|||
|
|
[LED_ID_NUM_LOCK] = 0,
|
|||
|
|
[LED_ID_BLE_STATE] = 1,
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
/* Num Lock 指示:灭=关闭,常亮=开启。 */
|
|||
|
|
static const struct led_effect led_num_lock_state_effect[LED_NUM_LOCK_STATE_COUNT] = {
|
|||
|
|
[LED_NUM_LOCK_STATE_OFF] = LED_EFFECT_LED_OFF(),
|
|||
|
|
[LED_NUM_LOCK_STATE_ON] = LED_EFFECT_LED_ON(LED_COLOR(255, 255, 255)),
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
/*
|
|||
|
|
* BLE 指示灯策略:
|
|||
|
|
* - OFF: 熄灭(USB 连接或 BLE 非活动模式)
|
|||
|
|
* - WAIT_RECONNECT: 慢闪(1s toggle)
|
|||
|
|
* - PAIRING: 快闪(0.5s toggle)
|
|||
|
|
* - CONNECTED: 常亮
|
|||
|
|
*/
|
|||
|
|
static const struct led_effect led_ble_state_effect[LED_BLE_STATE_COUNT] = {
|
|||
|
|
[LED_BLE_STATE_OFF] = LED_EFFECT_LED_OFF(),
|
|||
|
|
[LED_BLE_STATE_WAIT_RECONNECT] = LED_EFFECT_LED_BLINK(1000, LED_COLOR(255, 255, 255)),
|
|||
|
|
[LED_BLE_STATE_PAIRING] = LED_EFFECT_LED_BLINK(500, LED_COLOR(255, 255, 255)),
|
|||
|
|
[LED_BLE_STATE_CONNECTED] = LED_EFFECT_LED_ON(LED_COLOR(255, 255, 255)),
|
|||
|
|
};
|