我有一个带有Windows DLL的HID手机显示器。我想把它移植到linux。
该软件依赖回调函数来报告事件。
鉴于Linux不支持使用此设备,我不得不依赖libusb和hidapi等低级API进行通信。我不清楚如何使用其中任何一个来实现事件回调。
是否是非阻塞读取?类似的东西?
任何建议都将不胜感激。
答案 0 :(得分:0)
阻塞读取,只要它在专用文件描述符上,就应该没问题。然后,应用程序可以使用select()
(或顶部的合适抽象)等待事件并行等待其他描述符上的其他事件。
似乎libusb有足够的支持来处理来自设备的同步和异步读取。
答案 1 :(得分:0)
HID设备已经在/ dev / input下公开,可能是你的设备生成了关键事件。从广义上讲,您会发现您的设备使用lsusb或遍历sysfs,打开/ dev / input / eventN(或者可能是udev创建的by-id或by-path链接之一)来获取文件描述符,并读出事件。有关接口上的文档,请参阅内核树中的Documentation/input/input.txt
。这很简单。
如果没有有关您设备的更多信息,很难向您提供更具体的建议。