Files
blinky/inc/events/ble_bond_multi_event.h
skiinder 54c5f76c84 feat: 添加蓝牙多槽位绑定支持模块
- 新增 ble_bond_multi_module.c 实现多槽位蓝牙绑定管理功能
- 添加 ble_bond_multi_event 事件系统支持槽位状态广播
- 在 CMakeLists.txt 中注册新模块和事件源文件
- 更新 Kconfig 配置添加 BLINKY_BLE_BOND_MULTI 选项
- 修改 prj.conf 配置支持 4 个配对设备和 5 个身份标识
- 关闭默认 CAF ble_bond 模块使用自定义实现
- 更新 ui_settings_controller.h 接口支持槽位元数据设置
- 在 display_module.c 中添加事件订阅刷新UI显示
- 编写详细的设计文档 ble_multi_slot_design.md
2026-04-25 15:40:49 +08:00

47 lines
1.0 KiB
C

#ifndef BLINKY_BLE_BOND_MULTI_EVENT_H_
#define BLINKY_BLE_BOND_MULTI_EVENT_H_
#include <stdint.h>
#include <app_event_manager.h>
#include <app_event_manager_profiler_tracer.h>
#include <zephyr/bluetooth/addr.h>
#ifdef __cplusplus
extern "C" {
#endif
#define BLE_BOND_MULTI_DISPLAY_NAME_MAX_LEN 32U
#define BLE_BOND_MULTI_BLE_SLOT_COUNT 3U
#define BLE_BOND_MULTI_DONGLE_SLOT_ID 4U
enum ble_bond_multi_op {
BLE_BOND_MULTI_OP_NONE = 0,
BLE_BOND_MULTI_OP_REFRESH,
BLE_BOND_MULTI_OP_SWITCH,
BLE_BOND_MULTI_OP_ERASE,
};
struct ble_bond_multi_slot_meta {
bool occupied;
bt_addr_le_t last_peer_addr;
char display_name[BLE_BOND_MULTI_DISPLAY_NAME_MAX_LEN];
};
struct ble_bond_multi_event {
struct app_event_header header;
uint8_t current_slot;
uint8_t active_identity_id;
enum ble_bond_multi_op op;
uint8_t slot_occupied_bitmap;
struct ble_bond_multi_slot_meta slots[BLE_BOND_MULTI_BLE_SLOT_COUNT];
};
APP_EVENT_TYPE_DECLARE(ble_bond_multi_event);
#ifdef __cplusplus
}
#endif
#endif /* BLINKY_BLE_BOND_MULTI_EVENT_H_ */