我正在使用AMOLED屏幕。供应商将屏幕的亮度控制暴露给USB HID,并且只给予我一个使用Chrome的navigator.hid
的示例网页。我读了JavaScript代码,发现我需要做以下事情:
- 查找供应商ID为1810且产品ID为10的USB HID设备;
- 在每次我需要设置亮度时,我必须发送一个报告ID为9的报告和包含格式化亮度值的四个字节的数据。
虽然看起来非常清晰和简单,但我仍然不知道如何用Linux和C来做这些。特别是:
- 当我插入控制USB端口时,我发现有两个新的设备文件:
/dev/hidraw0
和/dev/usb/hiddev0
。它们之间有什么区别,我应该使用哪一个? - 如何做USB特定的事情,即获取供应商ID和产品ID,发送带有报告ID的报告?
ioctl
标志是否有特定的头文件?
1条答案
按热度按时间fae0ux8s1#
经过一些研究我发现应该使用
/dev/hidrawX
设备,/dev/usb/hiddevX
很可能是用于屏幕触摸输入的。该API在linux kernel documentation中描述,不需要库。事实上,所有的东西都是直接和直接的。首先我应该
open
hidraw设备。可以使用ioctl
和HIDIOCGRAWINFO
以及structhidraw_devinfo
检索供应商ID和产品ID:在确定正确的hidraw设备,我应该写他们5字节数组使用
write
.第一个字节包含报告ID 9,后四个字节包含使设备满意的消息。