如何为BLE HID遥控器设置报告描述符和输入报告?

时间:2019-10-18 16:35:13

标签: bluetooth-lowenergy hid esp32 remote-control

我已经在GitHub(https://gist.github.com/sabas1080/93115fb66e09c9b40e5857a19f3e7787)上检查了项目,并且试图在ESP32上实现BLE远程控制(此远程控制具有32个键)。问题是,我不太确定如何声明该报告以及因此的输入报告。

我必须发送的HCI数据格式如下:

  • 总大小:8字节

  • 字节0:修改键

  • 字节1:保留

  • 键数组:6个字节每个字节代表一个按钮,最多可容纳6个按钮。

根据文档“通用串行总线HID使用表”,我声明了此报告:

Strict<DataTypeBoolean>

那是正确的吗?我对如何设置报告参数感到困惑。

对于输入报告,我尝试发送如下音量命令:

  0x05, 0x0C,        // Usage Page (Consumer)
  0x09, 0x01,        // Usage (Consumer Control)
  0xA1, 0x01,        // Collection (Application)
  0x85, 0x01,        // Report ID (1)
  0x05, 0x0C,        // Usage Page (Consumer Devices)
  0x15, 0x00,        // Logical Minimum (1) 
  0x25, 0x01,        // Logical Maximum (2)
  0x15, 0x08,        // Report Size (8) 
  0x25, 0x01,        // Report Count (1) Modifier 1 Byte
  0x81, 0x00,        // Input(Data,Array,Abs,No Wrap,Linear,Preferred State,No Null Position)
  0x15, 0x08,        // Report Size (8)
  0x25, 0x01,        // Report Count (1) Reserved 1 Byte
  0x81, 0x01,        // Input(Const,Array,Abs,No Wrap,Linear,Preferred State,No Null Position)     
  0x15, 0x00,        // Logical Minimum 
  0x25, 0x20,        // Logical Maximum  32 keys
  0x15, 0x08,        // Report Size (8)
  0x25, 0x06,        // Report Count (6) Keys 6 Bytes
  0x81, 0x00,        // Input(Data,Array,Abs,No Wrap,Linear,Preferred State,No Null Position)
  0xC0,              // End Collection 

0 个答案:

没有答案