11static const constexpr uint8_t HID_MOUSE_REPORT_DESC[] = {
45class HIDMouse :
public HID<sizeof(HID_MOUSE_REPORT_DESC), 4, 0>
55 :
HID(false, in_ep_interval, 1, in_ep_num,
Endpoint::EPNumber::EP_AUTO)
87 void Move(uint8_t buttons, int8_t x, int8_t y, int8_t wheel = 0)
89 Report report = {buttons, x, y, wheel};
98 Report report = {0, 0, 0, 0};
108 return ErrorCode::OK;
113 return ConstRawData{HID_MOUSE_REPORT_DESC,
sizeof(HID_MOUSE_REPORT_DESC)};
常量原始数据封装类。 A class for encapsulating constant raw data.
USB描述符基类 USB descriptor base class.
Data data_
设备描述符数据实例 / Internal data instance
@ HID
人机接口类 / Human Interface Device
USB端点基类 / USB Endpoint base class.
EPNumber
端点号 / Endpoint number
@ EP_AUTO
自动分配端点号 / Auto allocate
USB HID(Human Interface Device)基类,支持可选 OUT 端点、自动生成描述符,适合键盘、鼠标、手柄等扩展。 USB HID (Human Interface Device)...
ErrorCode SendInputReport(ConstRawData report)
标准 USB HID 鼠标派生类 / Standard USB HID Mouse derived class
HIDMouse(uint8_t in_ep_interval=1, Endpoint::EPNumber in_ep_num=Endpoint::EPNumber::EP_AUTO)
构造函数 / Constructor
Button
鼠标按钮定义 / Mouse button definitions
ConstRawData GetReportDesc() override
获取 HID 报告描述符 Get HID Report Descriptor
ErrorCode WriteDeviceDescriptor(DeviceDescriptor &header) override
写入/补全设备描述符(非IAD情况下会被调用) Write device descriptor (non-IAD case will be called)
void Release()
释放所有按钮 / Release all buttons
void Move(uint8_t buttons, int8_t x, int8_t y, int8_t wheel=0)
发送鼠标移动与按钮状态 / Send mouse movement and button state
ClassID bDeviceClass
设备类代码 / Device class code
uint8_t bDeviceSubClass
设备子类代码 / Device subclass code
uint8_t bDeviceProtocol
协议代码 / Protocol code
鼠标报告结构体 / Mouse input report structure
uint8_t buttons
按键状态 / Button state
int8_t x
X 轴相对移动 / X movement.
int8_t y
Y 轴相对移动 / Y movement.