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

更具体地说,将配置和信息写入鼠标,例如民意测验,灵敏度,按钮 Action ,颜色(浅色),触觉改变,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库可能会更好?

从 native 软件包选项中,我至少有:
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

最佳答案

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

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

如果您担心,hidapi也是not currently maintained

更新:自2019年6月4日起,hidapi已移至libusb/hidapi,现在再次得到积极维护。

就个人而言,我会说如果它适合您的项目,请使用hidapi,但如果设备的协议(protocol)未遵循HID标准,那么您将遇到麻烦,并且可能需要libusb提供给您的控件。

10-05 18:34