Linux HID APIS类似于Windows HID API

时间:2014-03-20 09:25:50

标签: linux api hid

我正在寻找类似于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(对我来说是黑暗区域)

谢谢,

1 个答案:

答案 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库。