QT 下使用 hidapi 进行USB HID 通讯
2019-01-11 本文已影响74人
蓝点工坊
一 关于HID Api
https://github.com/signal11/hidapi
这是对各个OS下usb hid 读写接口的封装.大大简化了hid应用开发
这里注明各个平台接口
HIDAPI has four back-ends:
* Windows (using hid.dll)
* Linux/hidraw (using the Kernel's hidraw driver)
* Linux/libusb (using libusb-1.0)
* FreeBSD (using libusb-1.0)
* Mac (using IOHidManager)
如果想在Mac 下编译动态库可
准备工作:
brew install autoconf
brew install automake
brew install libtool
如果报错错误提示,
没有安装autoconf
./bootstrap: line 2: autoreconf: command not found
这是没有安装automake
autoreconf: failed to run aclocal: No such file or directory
error: Libtool library used but 'LIBTOOL' is undefined
编译
./bootstrap
./configure
make
二. QT 对于 hidapi 的支持
QT直接使用 hidapi有很多问题,比如缺省QT signal支持,对于界面显示数据结构缺少. 因为有人写了 QHidApi来解决这一些问题
https://github.com/simonmeaden/qhidapi
但是有一个问题,它是编译成一个QT模块,无论是在项目中运行还是调试都是相当麻烦
第二个作者是在Android测试,缺省mac/windows/Linux的编译pro.
windows还需要setupApi.dll这个库
三. TestHidApi
因为我把他的example中的TestHidApi 抽出来单独做个项目,QHidApi/hidapi均作为其子项目统一编译.并加入对Mac/Windows/Linux的支持.
同时也修正一些bug.用于Qt开发快速对hid测试