use*_*816 3 linux usb mouse libusb hidapi
为 USB 鼠标编写一些 C 代码。
更具体地说,将配置和信息写入鼠标,如轮询、灵敏度、按钮操作、颜色(光)、触觉改变、OLED 等。
与开始了这个古老的文章,其中libhid建议了libusb。
看着libhid它似乎已经死了。该项目的最后一次提交是从 2012 年开始的,它是 C++。但我发现一些链接说应该转到hidapi.
然而,hidapi似乎也已经死了。2016 年的最后一次提交。或者它可能只是稳定的?
libusb毕竟,它看起来像一个更好的使用。从一篇 15 年前的文章开始 - 这并没有那么夸张。
问题是我是否遗漏了什么?是libusb要走的路吗?
已经做了一些快速测试 libusb-1.0.0-dev
#include <libusb-1.0/libusb.h>
Run Code Online (Sandbox Code Playgroud)
并且效果很好 - 至少对于我所做的快速测试而言是这样。但是 HID 库也许会更好?
从本机包选项我至少有:
libhidapi-dev
libhidapi-libusb0
libhidrd0-dbg
libhidapi-hidraw0
libhidrd0
libhidrd0-dev
Run Code Online (Sandbox Code Playgroud)
和
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
Run Code Online (Sandbox Code Playgroud)
libusb建议对 USB HID 设备使用 hidapi。hidapi 可以根据操作系统使用不同的后端,例如 Windows 中的 hid.dll,Linux 中的 hidraw 或 libusb,因此它使用本地 USB 驱动程序。
请注意,尽管 hidapi 不会为您提供对发送的数据包的相同级别的控制。它比 libusb 级别更高,并且它用于请求的一些参数是固定的(例如 bRequest 值)。
hidapi 目前也未维护,如果您担心的话。
更新:截至 2019 年 6 月 4 日,hidapi 已移至libusb/hidapi,现在正在再次积极维护。
就我个人而言,如果 hidapi 适合您的项目,我会说使用它,但如果设备的协议不遵循 HID 标准,那么您会遇到麻烦,并且可能需要 libusb 为您提供的控制。