feat(led): 添加键盘LED状态管理模块
- 新增keyboard_led_state_event事件用于处理USB/BLE HID输出报告中的LED状态 - 实现led_state_module模块,管理Num Lock指示灯和BLE状态指示灯 - 定义LED状态效果映射,包括熄灭、常亮、慢闪、快闪等效果 - 将hid_keymap_def.h从configuration目录移至inc目录 - 在BLE和USB HID模块中添加对输出报告LED掩码的解析和处理 - 配置DTS中的led_1为可用状态,更新CMakeLists.txt构建配置
This commit is contained in:
39
inc/led_state_def.h
Normal file
39
inc/led_state_def.h
Normal file
@@ -0,0 +1,39 @@
|
||||
#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)),
|
||||
};
|
||||
Reference in New Issue
Block a user