Javaでシリアル通信

Java Communications API というライブラリがあるがメンテされていない。が、その仕様に準じたRXTXというOSSがある。

http://www.rxtx.org/

配布先からダウンロードして解凍。

RXTXcomm.jar と、各種OS用のドライバをclasspathの通っているディレクトリに置く。

eclipseならプロジェクトごとにクラスフォルダを作ってそこに配置

ちゃんと調べてないけど、多分、JNIで実装されているっぽいので
WindowsならDLL、Linuxなら.soとOSごとに異なるライブラリが必要になのだと。

で、Javaでシリアル通信ができて何がうれしいかというと、ArduinoとJavaでお話ができちゃうのだ。送信のほうは簡単だけど、受信はイベント駆動なので少し手間っぽい。今の段階では送信さえできていればロボットの操作ができるのでOKとしよう。

追記
RXTXcomm.jarのプロパティから、「ネイティブライブラリのロケーション」でdllを置いたパスを指定する

コメントをどうぞ。

TrackBack URI :