在 QT 中使用 libusb 检测 MAC 上的 USB 设备

最近在用 QT 做一个 MAC 上的 Kindle 批注管理软件,遇到的第一个问题就是检测 MAC 上连接的 USB 设备的状态。如果是在 Cocoa 进行开发,会有对应的系统 API 可供使用,但是由于我是在 QT 平台进行的开发,所以无形中加大了一点难度。就在这时,我发现了一个库:libusb

libusb 介绍

libusb 设计了一系列的外部API 为应用程序所调用,通过这些API应用程序可以操作硬件,从libusb的源代码可以看出,这些API 调用了内核的底层接口,和kernel driver中所用到的函数所实现的功能差不多,只是libusb更加接近USB 规范。使得libusb的使用也比开发内核驱动相对容易的多。(From: 百度百科)

0x00 下载 libusb

在 libusb 项目主页(http://libusb.info)我们可以找到最新的源码,下载下来,并且解压。这里我下载的是 libusb-1.0.20.tar.bz2,把它解压出来。

0x01 安装 libusb

cd libusb-1.0.20/
./configure
make
make install

这时就已经在机器上编译安装完成了 libusb

0x02 运行示例程序

cd examples/
make

然后我们看到在 examples/ 目录下多了几个可执行程序:

  • listdevs:列出当前所有的 USB 设备

  • hotplugtest:USB 热插拔测试

  • dpfp_threaded:操作 U.are.U 4000b 指纹采集仪的 Demo

  • dpfp:初始化 U.are.U 4000b 指纹采集仪

  • sam3u_benchmark:测试 Atmel SAM3U USB 主控的同步传输的性能的 Demo

  • fxload:USB 固件操作

Usage: fxload [-v] [-V] [-t type] [-d vid:pid] [-p bus,addr] [-s loader] -i firmware

  -i        -- Firmware to upload
  -s        -- Second stage loader
  -t <type>       -- Target type: an21, fx, fx2, fx2lp, fx3
  -d     -- Target device, as an USB VID:PID
  -p    -- Target device, as a libusb bus number and device address path
  -v              -- Increase verbosity
  -q              -- Decrease verbosity (silent mode)
  -V              -- Print program version
  • xusb:USB 测试程序
usage: /Users/jason/Downloads/libusb-1.0.20/examples/.libs/xusb [-h] [-d] [-i] [-k] [-b file] [-l lang] [-j] [-x] [-s] [-p] [-w] [vid:pid]

   -h      : display usage
   -d      : enable debug output
   -i      : print topology and speed info
   -j      : 

你可能感兴趣的:(QT,嵌入式,Linux应用开发,Linux内核学习,api,qt,usb,mac)