为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提供给您的控件。