トップページ > dsPIC入門 > Javaでシリアル通信(3)

RXTXライブラリを使う

まず簡単なプログラム

最終目標は、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を入れる作業をしてあげると、すんなり動くこともありますので…




前へ   次へ