0

我有一个带有 Windows DLL 的 HID 电话监视器。我想把它移植到linux。

该软件依靠回调函数来报告事件。

鉴于此设备不支持 Linux,我不得不依赖 libusb 和 hidapi 等低级 API 进行通信。我不清楚如何使用其中任何一个来实现事件回调。

会是非阻塞读取吗?相似的东西?

任何建议,将不胜感激。

4

2 回答 2

0

阻塞读取,只要它位于专用文件描述符上,就应该没问题。然后应用程序可以使用select()(或顶部的适当抽象)来等待事件,同时等待其他描述符上的其他事件。

似乎libusb对处理设备的同步和异步读取有很多支持。

于 2012-10-25T15:33:37.210 回答
0

HID 设备已经暴露在 /dev/input 下,大概你的设备会生成关键事件。一般来说,您使用 lsusb 或遍历 sysfs 找到您的设备,打开 /dev/input/eventN(或者可能是 udev 创建的 by-id 或 by-path 链接之一)以获取文件描述符,并读出事件。有关界面上的文档,请参见Documentation/input/input.txt内核树。这很简单。

如果没有有关您设备的更多信息,很难为您提供更具体的建议。

于 2012-10-25T15:45:46.310 回答