类似于 Windows HID API 的 Linux HID API

标签 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(对我来说是暗区)

谢谢,

最佳答案

一个跨平台的 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)或使用诸如 42-logitech-unify-permissions.rules 的 udev 规则来解决.

由于您需要同时支持 Windows 和 Linux 平台,我认为您最好使用前面提到的 HIDAPI 库。

关于类似于 Windows HID API 的 Linux HID API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22528522/

相关文章:

linux - 我们可以写入物理地址linux吗

linux - Linux 上的 USB HID 设备轮询间隔

linux - 如何在不包含 tar 文件中的整个路径的情况下对多个文件进行 tar

linux - 如何访问 Azure 中的 Linux VM

php - 如何为 php 启用 mysqlnd?

api - osCommerce 有 API 吗?

php - Laravel 5.5 API 资源收集使用数组

c# - REST API token 认证

c++ - 虚拟 HID(人机接口(interface)设备)的代码示例

keyboard - 如何使用 Linux 和 Python3 读取模仿 HID 键盘的 USB Rfid 阅读器