JavaとWindowsで赤外線OBEX通信をする試み

目次

はじめに

NTTドコモが発売している携帯電話504iシリーズ以降にはIrDA規格に準拠した赤外線デバイスが備えられています。この赤外線デバイスを使用してWindows上で稼動するJava SEとOBEXプロトコル(IrMCもこのプロトコルを使用します)による赤外線を行えればいろいろと便利ではないかと思い、実装を行ってみました。このページではそのライブラリについて取り扱います。

なお、同社の携帯電話に限らず、OBEXにて通信を行うPalm OS機や他社携帯電話とも接続可能です。その他にも任意のデバイスで通信を行うことができるため、その部分の実装を追加すれば赤外線以外の通信経路でOBEXプロトコルを扱う機器と通信を行うことも可能です。

OBEXプロトコルを扱うWindows用Javaライブラリ

APIの概要

Java SEには、現在のところ標準でOBEXプロトコルを扱うAPIというものが存在しません。そこでNTTドコモが同社の携帯電話504iシリーズに搭載したOBEXプロトコルを扱うAPIを設計の下敷きとして、Java SEで504i/505iシリーズと赤外線による通信を行うためのライブラリを作成してみました(このライブラリは赤外線による通信の他、TCP/IPによるOBEX通信もサポートしています)。

504i向け赤外線によるOBEX通信APIを元にした設計を採用したのは以下の理由からです。

前述のように、現在のJava SE仕様にはOBEXプロトコルおよび赤外線デバイスを扱うAPIが存在しないため、今回の実装では筆者が独自に仕様を策定することになります。この際に候補となるAPIはBluetooth向けのOBEX仕様とNTTドコモによる504iシリーズ向けの仕様の二つが存在しました。このうち後者の方が実際に使用している開発者が多いのではないかという判断から、504iシリーズに搭載されている赤外線OBEX通信APIを概ね継承した設計としました。しかしそのままでは汎用性に欠ける部分および実装上必ずしも真似る必要がないと判断した部分については独自の実装を行いました。

ただし、あくまで下敷きにしただけで完全に互換性があるわけではないこと、Java SE上で動作するiアプリエミュレータに邪魔にならないこと、NTTドコモが使用すべきパッケージ名を汚染すべきではないことから、独自のパッケージ名personal.sakaki.ioの中に実装することにしました。ご存知のようにパッケージ名はドメイン名をひっくり返したものを使用すべきなのですが、筆者は独自のドメイン名を持っていないため、このようなパッケージ名を採用しました。

想定する実行環境

このOBEXライブラリは赤外線通信部分にネイティブコードを含んでいるため、該当する処理はWindows2000/XPおよび98/98SE/Meでのみ動作します。作者はWindowsXPのみで動作確認を行っていることから、その他の環境では正常に動作しない可能性があります。

その他の動作条件については以下の通りです。なお、赤外線通信を行わないのであれば、環境を問わずJava 1.1以降で動作するものと思います。

必須動作環境
OSWindows2000/XPを推奨、Windows98/98SE/Meでも動作すると思われます。
Java実行環境Java 1.1をフルスペックでサポートするWindows上のJava VM
Microsoft VM for Java Build 3154以降(それ以前は不可)
IrDAデバイスWindowsがIrDAデバイスとして認識するもの(CIRおよびConsumer IRとして認識されているものは不可)。

作者は以下の環境で動作確認を行いました。

作者の動作確認環境
OSWindows XP Professional / Service Pack 2
Java実行環境Java SE 1.6.0_07のみ
IrDAデバイスリンク・エボリューション製 IrSTICK(旧Sigmatel Inc社製チップ採用)
株式会社クエスト製 USB IrDA(KC Technology, Inc社製チップ採用)
マシンIntel D875PBZ / Pentium 4 630 / RAM 2GB
赤外線対応機器504i各機種および504iS各機種、505i〜506iSの一部、FOMA P2101V/N2051/F2051/P2102V、FOMA 900i〜905iシリーズの一部、PalmIIIc、その他

パッケージ構成内容

赤外線OBEX通信ライブラリには同ライブラリとそのAPIリファレンスの他、以下のようなサンプルアプリケーションが付属しています。

使用条件

このOBEXライブラリは以下の使用条件に同意する場合に限って使用することができます。これらの使用条件は配布パッケージに同梱される全てのファイルに対して適用されます。

  1. 使用目的はこのソフトウェアの評価目的に限ります。その他の目的に転用することはできません。
  2. 配布パッケージは自己責任によってのみ使用することができます。使用した結果何らかの損害を生じたとしても作者(さかきけい)は一切責任を負いません。
  3. この配布パッケージ全体および一部をいかなる手段を用いても転載および再配布することを禁じます。
  4. 配布パッケージの所有権および著作権他、全ての権利は作者(さかきけい)が保持しています。使用者に対して各種権利等が移転することはありません。

上記の他、筆者が必要だと判断して追加および変更する使用条件は全ての配布パッケージにさかのぼって適用されます。

ダウンロード

上記の使用条件に同意する場合に限ってOBEXライブラリをダウンロードして条件の範囲内で使用することができます。同意する場合は以下のリンクをクリックしてダウンロードしてください。

使用条件に同意して赤外線OBEX通信ライブラリをダウンロードします。

このOBEXライブラリを実行した結果、動作したか否かという情報およびここはこうした方がいいのではないかという提案等がありましたら Overflow!コミュニケーションボード へ書き込んでください。よろしくお願いします。現在掲示板は設置しておりません。

その他

詳しくはOBEXライブラリに付属するドキュメントを参照してください。使用条件について本ページとドキュメントの間で差がある場合はより限定的な条件を優先することとします。

OBEXライブラリ付属のドキュメントはこちらのページに、APIリファレンスはこちらのページにてそれぞれ参照することができます。これらのページは常に配布パッケージに含まれるものと同一であるわけではありません。異なることもあります。

最後に

OBEX認証関連を機能制限で使用不可能にしていた点を修正し、動作可能なように変更したバージョンを公開しました。今回は環境を含めてかなり色々と変わったので新たな不具合が発生している可能性を排除できません。何か問題があるようでしたらメールにてお知らせいただければと思います。

更新履歴

トップページへ

Copyright© 2002,2003,2005,2008 by KEI SAKAKI.
ALL RIGHTS RESERVED.
無断転載を禁じます。