本地下载文件大小:966 KB
HIDAPI是一款开源的操作HID设备的库文件,采用C语言实现,包括hid.dll、hidraw驱动、libusb-1.0和IOHidManager等后端,可以连接USB和蓝牙HID设备,方便进行通信,附带一个测试图形用户界面。
HIDAPI有五个后端。
Windows (使用hid.dll)
Linux/hidraw (使用内核的hidraw驱动)
Linux/libusb (使用libusb-1.0)
FreeBSD (使用libusb-1.0)
Mac (使用IOHidManager)
在Linux上,可以使用hidraw或libusb后端。有一些取舍,支持的功能也略有不同。
Linux/hidraw(linux/hid.c)。
这个后端使用Linux内核中的hidraw接口,并支持USB和蓝牙HID设备。它需要内核版本至少为2.6.39才能构建。此外,它只能与有hidraw节点关联的设备进行通信。键盘、鼠标和其他一些被列入黑名单的设备将无法使用hidraw节点。幸运的是,对于几乎所有的hidraw用途来说,这都不是一个问题。
Linux/FreeBSD/libusb(libusb/hid.c)。
这个后端使用libusb-1.0来直接与USB设备通信。当然,这个后端不会与蓝牙设备一起工作。
HIDAPI还带有一个测试图形用户界面。该测试GUI是跨平台的,使用Fox Toolkit http://www.fox-toolkit.org。它可以在HIDAPI支持的每个平台上构建。由于它依赖于一个第三方库,构建它是可选的,但推荐使用,因为它在调试硬件时非常有用。
本文不详细介绍测试示例,根据笔者的实践经验,按流程列出主要的接口。
初始化和退出:
1、hid_init:初始化,无参数,可以不调用,因为在后续接口中会自动判断并调用。
2、hid_exit:退出,实际上是销毁结构体等,如果不调用,会造成内存泄漏。
枚举:
1、hid_enumerate:枚举设备,返回的是hid_device_info链表。一般使用hid_enumerate(0, 0)枚举所有设备。枚举一般用于获取设备ID或者设备路径。如果提前知道这些信息,亦可不用枚举。
2、hid_free_enumeration:释放枚举所用到的链表。
设备打开与关闭:
1、hid_open:打开指定 VID 和 PID 设备,返回设备结构体指针,如 hid_device *handle; handle = hid_open(0x4d8, 0x3f, NULL)。在设备读写和关闭函数,均需要该结构体指针。
2、hid_open_path:根据设备路径打开设备,设备路径由hid_enumerate获取。如Linux下的 /dev/hidraw0。
3、hid_close:关闭设备。
feature report 收发:
1、hid_get_feature_report:获取 Feature report。
2、hid_send_feature_report:发送 Feature report。
读写:
1、hid_read:读取数据 Input report。
2、hid_write:写数据 Output report。
获取错误:
hid_error:返回上一次的错误,wchar_t类型字符串形式,注意,该字符串无须调用者释放。
其它如hid_get_manufacturer_string、hid_get_product_string等,似乎重要程度不够,故不列出。
系统安全/ 22.6 MB
音频转换/ 9.5 MB
编程软件/ 9.7 MB
网络辅助/ 34.5 MB
商业贸易/ 18.4 MB
软件评论
请自觉遵守互联网相关政策法规,评论内容只代表网友观点,与本站立场无关!