トップページ > dsPIC入門 > Javaでシリアル通信(3)
最終目標は、GUIプログラムにおいてシリアル通信をしてdsPICを動かすこと…ですが、 まずはコマンドプロンプト上で動作する簡単なCUIのプログラムを作ってみましょう。 シリアルポートから“right”と出力します。
以下のコードを書いて、コンパイルして、実行してみます。 メソッド等の解説は次回にまわします。今回はRXTXライブラリが正常に使用できるかのチェックを 優先しましょう。
次のソースコードを“serial_test.java”の名前で保存します。
import java.io.*; import gnu.io.*; public class serial_test { public static void main( String arg[] ) { try { //===================================================================================== //シリアルポートを確保する //使用するCOMポートを取得 CommPortIdentifier comID = CommPortIdentifier.getPortIdentifier( "COM5" ); //COMポートを開きます CommPort commPort = comID.open("hoge",2000); //シリアルポートのインスタンスを生成… SerialPort port = (SerialPort)commPort; //===================================================================================== //シリアルポートの設定 //ボーレート、データビット数、ストップビット数、パリティを設定 port.setSerialPortParams( 115200,SerialPort.DATABITS_8, SerialPort.STOPBITS_1, SerialPort.PARITY_NONE ); //フロー制御はしない port.setFlowControlMode( SerialPort.FLOWCONTROL_NONE ); //===================================================================================== //ストリームを生成して、1文字ずつ送信していきます OutputStream out = port.getOutputStream(); out.write( 'r' ); out.write( 'i' ); out.write( 'g' ); out.write( 'h' ); out.write( 't' ); out.write( '\r' ); //===================================================================================== //ストリームとCOMポートを閉じる処理 out.close(); port.close(); } catch( Exception e ) { System.out.println( "Error発生:" + e ); } } }
コマンドプロンプトを起動して、例のごとくjavacコマンドでコンパイル、javaコマンドで実行します。 このあたりは入門書等に依ることにします…。今回のソースコードは“Java_prog”というディレクトリを Cドライブ内に作って、そこに保存しています。
指定したCOMポート(上記ソースコードでは“COM5”)に、例のごとく dsPIC基盤をつなぎます。 最終テストプログラムをdsPICに書き込んでおきます。 以上のセッティングの上で今回のjavaプログラムを実行すると、基盤上のLEDが右へ流れるようになっています。
コンパイルが通らない場合は、JDKディレクトリ内のjre/lib/extにちゃんとRXTXcomm.jarが入っているか確認 します。複数のバージョンが混在していたり、JRE単体のディレクトリがあったり…と、ややこしいケースの場合は 環境変数の“path”を確認するか、もうjre/lib/extと名の付くディレクトリ全てに放り込んでしまう…という 荒技も使えます(汗)
「コンパイルは通るけど、実行できない」という場合です。“NotFound”の類のエラーが出ると思います。 これは.dllファイルを置く場所を間違えている可能性があります。もう一度、JDK内のbinディレクトリに 入っているか確認しておきます。それでもダメなら…荒技で。Javaディレクトリ内の “bin”と名の付くディレクトリ全てに放り込んでしまいましょう(爆)
とりあえず、Javaディレクトリ内を整理することをお勧めします。最新バージョンのJDKをインストールして、 旧バージョンのJDK(独立したJREディレクトリがあれば、それも)をすべて削除してしまいます。 その上で環境変数pathを“Java/最新JDKのディレクトリ/bin”に設定。この時点で、過去につくった javaプログラムがコンパイル&実行できるか確認します。確認がとれたら、もう一度最初からRXTXcomm.jarや rxtxSerial.dllを入れる作業をしてあげると、すんなり動くこともありますので…