hidapi vs libusb for Linux

问题描述 投票:0回答:1

为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
linux usb mouse libusb hidapi
1个回答
3
投票

用于USB HID设备的libusb recommend using hidapi。 hidapi可以根据操作系统使用不同的后端,例如: Windows中的hid.dll,Linux中的hidraw或libusb,所以它使用本机USB驱动程序。

请注意,虽然hidapi不会对您发送的数据包进行相同级别的控制。它比libusb更高级,并且它用于请求的一些参数是固定的(例如bRequest值)。

如果这是你关注的话,hidapi也是not currently maintained

我个人会说使​​用hidapi如果它适用于你的项目,但如果设备的协议不符合HID标准,那么你将遇到麻烦,可能需要libusb给你的控制。

© www.soinside.com 2019 - 2024. All rights reserved.