我正在尝试使用 MSP430dev 软件包资源在 Windows 中创建 USB 游戏 epad 接口。
此时、我能够使单个 HID 游戏界面正常工作。 遗憾的是、我一直在尝试使用相同的实现方式来获取用于双路游戏 epad 的2个 HID 接口。
我已经查看了"HH1_hidDemo2hidDemo"示例、并使用解码器工具重新生成了解码器文件、定义了2个 HID 器件。
我添加了报告 ID、并将其计算为"0x85、0x01"和 0x85、0x02、 // report_ID (供应商定义)。 我将相应地通过 USB 报告发送 ID。
typedef 结构{ uint8_t id; uint8_t btn; INT8_t DX; int8_t dy; int8_t dz; int8_t DRX; }Gamepad_report;
uint16_t const report_desc_size[HID_NUM_interfaces]= { 48、 48 }; uint8_t const report_len_input[HID_NUM_interfaces]= { 6、 6} ;
INT8_t const REPORT_desc_HID0[]= { 0x05、0x01、 // usage_page (通用桌面) 0x09、0x05、 //用法(游戏板) 0xa1、0x01、 //收集(应用) 0xa1、0x00、 //集合(物理) 0x85、0x01、 // REPORT_ID (供应商定义) 0x05、0x09、 // USAGE_PAGE (按钮) 0x19、0x01、 // USAGE_MINIMUM (按钮1) 0x29、0x08、 // usage_maximum (按钮8) 0x15、0x00、 // logical_minimum (0) 0x25、0x01、 // logical_maximum (1) 0x95、0x08、 // REPORT_COUNT (8) 0x75、0x01、 // REPORT_SIZE (1) 0x81、0x02、 // 输入(数据、VAR、ABS) 0x05、0x01、 // usage_page (通用桌面) 0x09、0x30、 // 用法(X) 0x09、0x31、 // 用法(Y) 0x09、0x32、 // 用法(Z) 0x09、0x33、 // 用法(Rx) 0x15、0x81、 // logical_minimum (-127) 0x25、0x7f、 // logical_maximum (127) 0x75、0x08、 // REPORT_SIZE (8) 0x95、0x04、 // REPORT_COUNT (4) 0x81、0x02、 // 输入(数据、VAR、ABS) 0xc0、 // end_collection 0xc0 // end_collection };
结果是主机(WIN PC)仍然只能识别一个游戏 epad 设备。 由于某种原因、主机似乎未正确编号第二个器件。
是否有人知道、是否面临相同的问题、或者是否成功实施了类似的方案?
感谢您的任何帮助。
谢谢
Shaun
