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に移行する可能性大(苦笑).
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に移行する可能性大(苦笑).