hidapi vs libusb(适用于Linux)

时间:2019-03-21 01:41:57

标签: linux usb mouse libusb hidapi

为USB鼠标编写一些C代码。

更具体地说,将配置和信息写入鼠标,例如民意测验,灵敏度,按钮动作,颜色(浅色),触觉改变,OLED等。


this old article开始,其中推荐libhid胜过libusb

看着libhid似乎已经死了。该项目的最后一次提交是在2012年,它是C ++。但是我发现一些链接说应该转到hidapi

但是,hidapi似乎也已经死了。上一次提交时间为2016年。也许它只是稳定的?

使用libusb似乎是更好的选择。从一篇长达15年的文章开始-不需要花费太多时间。

问题是我是否缺少某些东西? libusb可行吗?

已使用libusb-1.0.0-dev

进行了一些快速测试
#include <libusb-1.0/libusb.h>

,并且效果很好-至少对于我已经完成的快速测试。但是HID库可能会更好?

从本机软件包选项中我至少有:

libhidapi-dev      
libhidapi-libusb0  
libhidrd0-dbg      
libhidapi-hidraw0  
libhidrd0          
libhidrd0-dev

libusb-0.1-4                 libusbmuxd4
libusb-1.0-0                 libusbmuxd-dev
libusb-1.0-0-dev             libusbmuxd-tools
libusb-1.0-doc               libusb-ocaml
libusbauth-configparser1     libusb-ocaml-dev
libusbauth-configparser-dev  libusbprog0v5
libusb-dev                   libusbprog-dev
libusbguard0                 libusbredirhost1
libusbhid-common             libusbredirhost-dev
libusb-java                  libusbredirparser1
libusb-java-dbg              libusbredirparser-dev
libusb-java-doc              libusbtc08-1
libusb-java-lib              libusbtc08-dev

1 个答案:

答案 0 :(得分:1)

USB HID设备的

libusb recommend using hidapi。 hidapi可以根据操作系统使用不同的后端,例如在Windows中为hid.dll,在Linux中为hidraw或libusb,因此它使用的是本机USB驱动程序。

请注意,尽管hidapi对您发送的数据包没有提供相同级别的控制。它的级别比libusb高,并且它用于请求的某些参数是固定的(例如bRequest值)。

如果您担心的话,

hidapi也是not currently maintained

个人而言,如果它对您的项目运行正常,我会说使用hidapi,但是如果设备的协议未遵循HID标准,那么您将遇到麻烦,并且可能需要libusb为您提供的控制。