feat(hid): 实现HID通道状态管理和多通道支持
- 将原来的HID传输状态事件替换为新的HID通道状态事件,支持USB键盘、USB消费者和BLE共享通道 - 添加usb_hid_consumer_module.c模块来处理USB消费者HID报告 - 添加usb_hid_keyboard_module.c模块来处理USB键盘HID报告 - 修改CMakeLists.txt以包含新的HID模块源文件 - 更新事件系统中的transport字段为channel字段,并相应修改所有相关处理逻辑 - 在hid_flowctrl_module.c中实现多通道并发处理机制 - 删除过时的hid_transport_state_event相关代码 - 添加新的hid_channel_state_event用于报告各通道就绪状态
This commit is contained in:
38
inc/events/hid_channel_state_event.h
Normal file
38
inc/events/hid_channel_state_event.h
Normal file
@@ -0,0 +1,38 @@
|
||||
#ifndef BLINKY_HID_CHANNEL_STATE_EVENT_H_
|
||||
#define BLINKY_HID_CHANNEL_STATE_EVENT_H_
|
||||
|
||||
#include <app_event_manager.h>
|
||||
#include <app_event_manager_profiler_tracer.h>
|
||||
|
||||
#include "keyboard_core.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
struct hid_channel_state_event {
|
||||
struct app_event_header header;
|
||||
enum hid_send_channel channel;
|
||||
uint8_t report_ready_bm;
|
||||
enum keyboard_protocol_mode protocol_mode;
|
||||
};
|
||||
|
||||
APP_EVENT_TYPE_DECLARE(hid_channel_state_event);
|
||||
|
||||
static inline void submit_hid_channel_state_event(
|
||||
enum hid_send_channel channel, uint8_t report_ready_bm,
|
||||
enum keyboard_protocol_mode protocol_mode)
|
||||
{
|
||||
struct hid_channel_state_event *event = new_hid_channel_state_event();
|
||||
|
||||
event->channel = channel;
|
||||
event->report_ready_bm = report_ready_bm;
|
||||
event->protocol_mode = protocol_mode;
|
||||
APP_EVENT_SUBMIT(event);
|
||||
}
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* BLINKY_HID_CHANNEL_STATE_EVENT_H_ */
|
||||
Reference in New Issue
Block a user