Linux:读取原始HID数据

时间:2018-04-09 21:59:59

标签: linux driver

我正在尝试为游戏控制器编写一个驱动程序,它已经被linux识别为“hidraw”。我在网上搜索了一下这个例子:

https://github.com/atomic-penguin/linux/blob/master/samples/hidraw/hid-example.c

如果我编译并运行它,我得到以下输出:

Report Descriptor Size: 203
Report Descriptor:
5 1 15 0 9 4 a1 1 85 30 5 1 5 9 19 1 29 a 15 0 25 1 75 1 95 a 55 0 65 0 81 2 5 9 19 b 29 e 15 0 25 1 75 1 95 4 81 2 75 1 95 2 81 3 b 1 0 1 0 a1 0 b 30 0 1 0 b 31 0 1 0 b 32 0 1 0 b 35 0 1 0 15 0 27 ff ff 0 0 75 10 95 4 81 2 c0 b 39 0 1 0 15 0 25 7 35 0 46 3b 1 65 14 75 4 95 1 81 2 5 9 19 f 29 12 15 0 25 1 75 1 95 4 81 2 75 8 95 34 81 3 6 0 ff 85 21 9 1 75 8 95 3f 81 3 85 81 9 2 75 8 95 3f 81 3 85 1 9 3 75 8 95 3f 91 83 85 10 9 4 75 8 95 3f 91 83 85 80 9 5 75 8 95 3f 91 83 85 82 9 6 75 8 95 3f 91 83 c0 

Raw Name: Nintendo Co., Ltd. Pro Controller
Raw Phys: usb-0000:00:14.0-1/input0
Raw Info:
    bustype: 3 (USB)
    vendor: 0x057e
    product: 0x2009
ioctl HIDIOCGFEATURE returned: 4
HIDIOCGFEATURE: Broken pipe
write() wrote 2 bytes
read: Resource temporarily unavailable

在这里,我被困住了。我怎样才能理解报告描述符?更重要的是:为什么read()操作失败? (它返回-1)。 感谢任何帮助,谢谢!

0 个答案:

没有答案