記事

【Java Ring】03. 検索に頼ろう

Web 検索は時に有効です。そうでなくとも,とりあえず調べてみると,何か分かるかもしれません。

 前回の​記事では,​Java Ring を​ 1-Wire デバイスと​して​認識する​ところまで​確認しました。

 ただ,​OneWireViewer から​見えた​情報は​デバイス・アドレスと​デバイス種別くらいで,​ここから​どうやって​中身に​触れば​よいのかは​分かりませんでした。

とりあえず​手詰まり#

 マクニカの​記事に​載っている​ OneWireViewer の​スクリーン・ショットには,​モニタや​コンソールなどの​デバッグに​使えそうな​項目が​写っていました。​ 一方で,​手元の​ OneWireViewer には​それらしい​表示が​ありません。

 つまり,​Java Ring が​ 1-Wire バス上に​いる​ことは​分かった​ものの,​それ以上の​通信方​法が​見えていない​状態です。

 うーん,​何故でしょう。​ Java Ring は​実は​ OneWire で​通信する​デバイスではないかもしれません。​ とりあえず,​手詰まりです。

何を​探すべきか#

 手元の​ツールを​眺めていても​前に​進まないので,​一旦検索する​対象を​絞る​ことにしました。

Java Ring の​当初の​用途は,​JavaOne の​参加者情報や​コーヒーの​嗜好を​記録し,​イベント会場で​利用する​ことだったようです。​ で​あれば,​まずは​参加者情報を​ Java Ring に​書き込むための​何か,が​ Web に​(できれば​ソース・​コードごと)​転がっている​やも​しれません。

 Internet Watch の​当時の​記事には,​「Java Developer Conference 98 Tokyo」で​使われたらしい​入力画面が​写っています。​ ここに​ある​文言を​検索の​手が​かりにします。

Java Developer Conference 98 Tokyo の入力画面

Personalize your JavaTM Ring by entering the information below.

 こういう​古い​資料は,​単語を​ばらして​検索すると​関係ない​ページに​埋もれがちです。​ そこで,​この​文を​そのまま​引用符で​囲んで​厳格検索してみます。

BusinessCard.java#

 検索していると,​それらしい​ Java Card アプレットの​ソース・​コードに​行き​着きました。

BusinessCard.java

 ​見つけたのは​ BusinessCard.java と​いう​ファイルです。​ コメントには​「personal information storage and retrieval」と​あり,さらに​コーヒーの​嗜好に​関する​記述も​あります。​ Java Ring の​用途と​して​知られている​内容と​かなり​一致しています。

 同じリポジトリ内を​眺めると,iButton や​ OneWire と​いう​語も​出てきます。​ これが​ Java Ring ​その​ものの​実装か,​少なくとも​極めて​近い​サンプルである​可能性は​高そうです。

 ​これは​大きな​前進です。​ さっそく​ローカルに​落として​動かしてみます。

動かない#

 ……​動きませんでした。

読み込みエラー

 ZIP 内の​ iButton53.jar から​ワークスペースを​読み込む​ところで​失敗しています。​うーん。

 どうも,​アーカイブ内の​いく​つかの​ファイルが​壊れているようです。​と​いうのも,​恐らく​ SVN から​ Git に​持ってくる​過程で,​ 改行コードの​一括​変換が​行われてしまったのではないかと​思われます​(​その​証拠に,​あらゆる​バイナリから​ CRLF が​大量に​出現しています)。

 やっと​有力そうな​手掛かりを​見つけたと​思ったのですが,​このままでは​使えません。

いったん整理#

 ここまでで​分かった​ことを​整理します。

  1. Java Ring は,​Java-powered iButton と​呼ばれる​種類の​デバイスらしい。
  2. iButton は​ 1-Wire プロトコル上で​通信する。
  3. Java Ring の​用途に​近い​ BusinessCard.java と​いう​ Java Card アプレットが​存在する。
  4. ただし,​見つけた​当時物の​開発環境や​アーカイブは​破損しており,​そのままでは​動かせない。

iB-IDE なる​ものを​発見#

 さらに​調べていく​と,​iB-IDE と​いう​ iButton 向け統合開発環境が​ある​ことが​分かりました。​ しかし,​入手リンクは​ FTP で​示されており,​Web Archive では​クロールできなかったようです。

 ​調べていく​と,https://bbs.kanxue.com/thread-19243-6.htmと​いう​ 中国の​掲示板に,​iB-IDE に​関する​情報が​ありました。

 どうやら,http://www.ee.usyd.edu.au/~mattb/2003/project/ibutton と​いう​ URL に​ iB-IDE が​アップロードされていた​痕跡が​あるようです。​ 現在は​リンク​切れしていますが,​プロトコルが​ HTTP なので,もしかすると​ Web Archive に​残っているかもしれません。

Web Archive Web Archive

 なんと!​有るでは​ありませんか。​ では,​こちらを​ダウン・ロードして,​次回検証する​ことと​いたしましょう!

まとめ#

いかがでしたか?

 検索を​しまくった​ところ,​Java Ring の​用途に​近い​ Java Card アプレットの​ソース・​コードを​見つける​ことができました。​ さらに,​iB-IDE と​いう​ iButton 向け統合開発環境の​痕跡も​見つかりました。

 次回は,​この​ iB-IDE を​入手して,​よしなに​検証してみたいと​思います。

ではでは。

前回: 【Java Ring】02. 初動解析篇
次回: 【Java Ring】04. iB-IDE を​動かす