トップページ > 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を入れる作業をしてあげると、すんなり動くこともありますので…