usb4j の機能

Takami Torao #usb4j
  • このエントリーをはてなブックマークに追加

usb4j は USB デバイスと通信する Java アプリケーションを開発するためのライブラリです。Java の高い移植性を生かしてプラットフォームごとに異なる USB 実装をより抽象化した API で利用することを目的としています。

特徴

マルチプラットフォーム

usb4j はプラットフォーム固有の USB I/O 処理を JNI 層で吸収し、上位の Java 層で抽象化された API を提供しています。アプリケーションはプラットフォームごとにデバイスドライバを作成せずに USB デバイスと通信することが出来ます。

usb4j Layer
汎用 USB ドライバ

usb4j は汎用 USB ドライバの Java 版として機能します。アプリケーションは未知の USB デバイスとも通信する事ができますが、開発者はデバイスとの USB 通信手順についての知識が必要です。

ユーザモード動作

Java VM はユーザモードでのみ動作します。usb4j を使用してもハードディスクやネットワークインターフェースのような OS カーネルへの組み込みが必要なドライバを作成することはできません。しかしこれらのカーネルモードを必要とするデバイスの多くは OS で標準対応しています。そもそもカーネルモードが必要なドライバにフットプリントの大きい Java は不向きです。

抽象ビュー

これらの特徴から、OS の標準サポートやメーカー製ドライバの提供されていないプラットフォーム向けの特定 USB デバイス用アプリケーション開発に向いています。

機能

ライブラリ LibUSB-Win32 libusb 0.1 OpenUSB 1.0
デバイス一覧
記述子情報
Control転送
Bulk転送
Interrupt転送
Isochronous転送 × ×
マルチスレッド × ×
接続/切断検知 × ×
対応OS Windows Linux
MacOS
FreeBSD
Linux
Solaris