我正在寻找类似于Microsoft此页面上提到的相应的Linux HID API:
http://msdn.microsoft.com/en-us/library/windows/hardware/jj126202(v=vs.85).aspx
基本上与DataMovement对应的函数:
Data Movement
The following list identifies HID API that an application can use to move data back and forth between the app and a selected device.
HidD_GetInputReport
HidD_SetFeature
HidD_SetOutputReport
ReadFile
WriteFile
我目前有两个方向:
- >安装wine框架并尝试使用Windows应用程序(使用HID Apis)
- >第二个使用相应的Linux HID Apis(对我来说是黑暗区域)
谢谢,
答案 0 :(得分:3)
跨平台的HID API库是HIDAPI(在幕后,它使用Windows的ReadFile / WriteFile和Linux的libusb)。我从未使用它,所以我不能保证它。
如果您只需要SetReport和GetReport,那么在Linux中运行 hidraw 设备可能会更容易。我将此技术用于ltunify。您可以通过查询sysfs(example)来发现哪个/dev/hidrawX
设备属于某个设备。
拥有设备(例如/dev/hidraw0
)后,您可以打开它进行读写,并使用POSIX read()
和write()
功能。您可能会遇到权限问题,但可以通过手动(setfacl -m u:$USER:rw /dev/hidraw0
)或使用udev规则(例如42-logitech-unify-permissions.rules)更改设备的权限来解决此问题。
由于您需要同时支持Windows和Linux平台,我认为您最好使用之前提到的HIDAPI库。