通过GATT进行HID:错误地解释了报告地图

时间:2019-02-12 10:04:29

标签: c bluetooth hid gatt esp32

我想在ESP32上使用GID上的HID来处理遥控器:播放/暂停,下一个扫描,上一个扫描,静音...,但是根据我使用的电话,其解释方式不同。

我正在使用的报告图与:很好地配合使用:

  • 华为平板电脑

  • 小米Redmi注意事项5

  • 旧版Archos手机

它被错误地解释为:

  • 小米MIX 2(下一个扫描和上一个扫描正在增大和减小音量)

  • Ubuntu笔记本电脑:只有音量增大和减小,

它与:完全不起作用

  • Windows labtop:HID错误显示

我没有在Iphone上进行测试

这是我正在使用的报告地图:

0x05, 0x0C,   // Usage Pg (Consumer Devices)
0x09, 0x01,   // Usage (Consumer Control)
0xA1, 0x01,   // Collection (Application)
0x85, 0x01,   // Report Id (1)

0x09, 0x02,   //   Usage (Numeric Key Pad)
0xA1, 0x02,   //   Collection (Logical)
0x05, 0x09,   //     Usage Pg (Button)
0x19, 0x01,   //     Usage Min (Button 1)
0x29, 0x0A,   //     Usage Max (Button 10)
0x15, 0x01,   //     Logical Min (1)
0x25, 0x0A,   //     Logical Max (10)
0x75, 0x04,   //     Report Size (4)
0x95, 0x01,   //     Report Count (1)
0x81, 0x00,   //     Input (Data, Ary, Abs)
0xC0,         //     End Collection

0x05, 0x0C,   //   Usage Pg (Consumer Devices)
0x09, 0x86,   //   Usage (Channel)
0x09, 0xE0,   //   Usage (Volume)
0x15, 0xFF,   //   Logical Min (-1)
0x25, 0x01,   //   Logical Max (1)
0x75, 0x02,   //   Report Size (2)
0x95, 0x02,   //   Report Count (2)
0x81, 0x46,   //   Input (Data, Var, Rel, Null)

0x09, 0xE2,   //   Usage (Mute)
0x09, 0x30,   //   Usage (Power)
0x09, 0x83,   //   Usage (Recall Last)
0x09, 0x81,   //   Usage (Assign Selection)
0x09, 0xB0,   //   Usage (Play)
0x09, 0xB1,   //   Usage (Pause)
0x09, 0xB2,   //   Usage (Record)
0x09, 0xB3,   //   Usage (Fast Forward)
0x09, 0xB4,   //   Usage (Rewind)
0x09, 0xB5,   //   Usage (Scan Next)
0x09, 0xB6,   //   Usage (Scan Prev)
0x09, 0xB7,   //   Usage (Stop)
0x15, 0x01,   //   Logical Min (1)
0x25, 0x0C,   //   Logical Max (12)
0x75, 0x04,   //   Report Size (4)
0x95, 0x01,   //   Report Count (1)
0x81, 0x00,   //   Input (Data, Ary, Abs)

0x09, 0x80,   //   Usage (Selection)
0xA1, 0x02,   //   Collection (Logical)
0x05, 0x09,   //     Usage Pg (Button)
0x19, 0x01,   //     Usage Min (Button 1)
0x29, 0x03,   //     Usage Max (Button 3)
0x15, 0x01,   //     Logical Min (1)
0x25, 0x03,   //     Logical Max (3)
0x75, 0x02,   //     Report Size (2)
0x95, 0x01,   //     Report Count (1)
0x81, 0x00,   //     Input (Data, Ary, Abs)
0xC0,         //     End Collection

0x75, 0x02,   //   Report Size (2)
0x95, 0x01,   //   Report Count (1)
0x81, 0x03,   //   Input (Const, Var, Abs)
0xC0,         //   End Collection

您在此报告图中看到任何错误,这是受esp-idf中的HID项目示例启发的。我看了看HID使用表: https://www.usb.org/sites/default/files/documents/hut1_12v2.pdf 并与他们最后给出的示例进行了比较,但我没有发现任何错误。

我希望ESP32可以与尽可能多的手机一起使用,如果可以使其与我的ubuntu和/或Windows一起使用,那就太好了!

如果您对我的问题有任何想法,或者知道如何调试,请随时与我们分享。

最诚挚的问候,

奥瑞莲

0 个答案:

没有答案