ネットワーク管理者の憂鬱な日常

とある組織でネットワーク管理に携わる管理者の憂鬱な日常を書いてみたりするブログ

JavaとRubyとC#の狭間

とあるデバイスにJavaからアクセスするために格闘中だったりする.
OSはWindows XP.

USBのHuman Interface Devices(HID)へ入出力できればいいのだが,
実はそのデバイス用のDLLが用意されているので,それを叩けばいいだけの話
なのだろうけど・・・
うーん,JNIでラッピングすんのか,面倒だなぁ・・・と思っていたら,
Java libusbなるライブラリを発見.

▽ Java LibUSB / libusb-win32 wrapper
http://libusbjava.sourceforge.net/wp/

そもそもlibusb-win32なるライブラリがあるらしく,これのラッパークラスっぽい.

▽ LibUSB-Win32
http://sourceforge.net/projects/libusb-win32/

で,とりあえずJavaで書かれたサンプルプログラムをコンパイルして
動かしてみたら,PCに接続されているUSBデバイス一覧が取り出せた.
でも,目的デバイスの入出力コマンドがわかんないので,次はそこを調べなきゃ.

ってなことをやってると,RubyからNative methodを呼ぶのは結構簡単みたい.
require 'Win32API' を宣言して,Win32API.new('hoge')などとして,
インスタンスを作ってやればいいようだ.

C#でもDllImportでDLLを呼べるから,簡単といえば簡単.

Javaからハードウエア扱おうと思えば何かと面倒というのが今のところの感想.

Bluetoothにしても,Java Bluetooth API(JSR-82)の実装であるbluecove
http://code.google.com/p/bluecove/を使っているのだが,ドングルを選ぶらしく,
どうも上手くいかない.

SunSPOTなども存在しているが,Javaからベタにハードウエアを弄ろうとすれば,
もう少し経験値を上げないといけないかもしれない.

ってことで,どうやらC#とRubyに移行する可能性大(苦笑).

スポンサーリンク