usb.windows: 这个包包含 usb.core.Host 对象的 Windows 实现、bootstrapping 支持和其他可以提升 Windows USB 支持的类。这个实现仍然处于非常初级的阶段。
usb.remote: 这个包是 usb.core API 的远程版本。它包括一个 RMI proxy 和一个 daemon 应用程序,它让 Java 应用程序可以访问远程计算机上的 USB 设备。
usb.util: 这个包提供了一些有用的实用程序,可以将 firmware 下载到 USB 设备上、将 USB 系统的内容转储到 XML 中、以及将只有 bulk I/O 的 USB 设备工具转换成一个套接字(socket)。
usb.devices: 这个可选包收集了用 jUSB API 访问不同 USB 设备的 Java 代码,包括柯达数码相机和 Rio 500 MP3 播放器。这些 API 经过特别编写以简化访问特定 USB 设备的过程,并且不能用于访问其他设备。这些 API 是在 usb.core API 之上构建的,它们可以工作在所有支持 jUSB 的操作系统上。
usb.view: 这个可选包提供了基于 Swing 的 USB 树简单 浏览器。它是一个展示 jUSB API 应用的很好的示例程序。
尽管 usb.core.Host 对象的实现对于不同的操作系统是不同的,但是 Java 程序员只需要理解 usb.core 包就可以用 jUSB API 开始应用程序的开发。表 1 列出了 usb.core 的接口和类,Java 程序员应该熟悉它们:
表 1. jUSB 中的接口和类
接口 说明
Bus 将一组 USB 设备连接到 Host 上
类 说明
Configuration 提供对设备所支持的 USB 配置的访问,以及对与该配置关联的接口的访问
Descriptor 具有 USB 类型的描述符的实体的基类
Device 提供对 USB 设备的访问
DeviceDescriptor 提供对 USB 设备描述符的访问
EndPoint 提供对 USB 端点描述符的访问、在给定设备配置中构造设备数据输入或者输出
HostFactory 包含 bootstrapping 方法
Hub 提供对 USB hub 描述符以及一些 hub 操作的访问
Interface 描述一组端点,并与一个特定设备配置相关联
PortIdentifier 为 USB 设备提供稳定的字符串标识符,以便在操作和故障诊断时使用
用 jUSB API 访问一台 USB 设备的正常过程如下:
通过从 HostFactory 得到 USB Host 进行 Bootstrap。
从 Host 访问 USB Bus,然后从这个 Bus 访问 USB root hub(即 USB Device)。
得到 hub 上可用的 USB 端口数量,遍历所有端口以找到正确的 D