ノートubuntuシステムJava開発シリアルプログラム
5095 ワード
ノートubuntuシステムJava開発シリアルプログラム
一、開発環境配置
ノートはシリアルがないので、buntuの下に仮想シリアルソフトウェアがありません。だから仮想マシンでuuntuシステムをインストールしたいです。私はVM ware 7.0を使っています。システムはuuntu 11.04です。もちろん、宿主システムはXP SP 3です。
以下の開発環境配置手順:
1、XPにVPD XP 5.1をインストールし、シリアルCOM 1とCOM 2のペアを追加します。
2、XPでシリアルデバッグアシスタントUart Asistを実行し、シリアルポートが正常に使用できるかをテストします。
3、XPの下で仮想マシンVM ware 7.0をインストールし、仮想マシンの下でuuntu 11.04をインストールし、インストールが完了したらシステムを閉じ、「仮想マシン設定の編集」をクリックし、次のステップで「追加」をクリックし、「シリアル」を選択し、「物理ポート」を選択し、「COM 1」を選択し、追加が完了したら確定する。
4、第2ステップでコミッションアシスタントがCOM 1に接続中の場合、COM 1の接続を切断します。(継続的に開くと、仮想マシンはCOM 1を使用できません。)XPの下でUart AsistでCOM 2に接続します。ボーレートは9600,8,1です。
5、仮想マシンを起動して、uuntuシステムに入ります。(もちろん、まずVM toolsとeclipseをインストールします。)UbuntuソフトウェアセンターでシリアルテストソフトCuteConを検索してインストールして、「アプリケーション」-「その他」の中で「CuteCon」を選択して、実行して、Openシリアルポート「キティS 0」(これはXPシステムのCOM 1ですが、2つの名前だけです。)波特率9600,8,1を設定し、シリアルポートを開く
6、CuteConにaaaaaaaaを入力して、返車して送ります。
7、XPに戻ると、Uart AsistがCOM 2を傍受している場合、Uart Asistでaaaaa aを受信する。
二、プログラミングテスト
私が使っているのはrxtxカバンです。eclipseで関連した構成が必要です。
1、プロジェクトを作成し、工程でlibのフォルダを作成し、RXTXcomm.jarとlibraxtSerial.so、libraxtxPalel.soをlibフォルダにコピーする。
2、プロジェクトを右クリックして、properties–build path->Libraryを選んで、この3つのファイルadd Jarsを ,RXTXcomm.jar左側の下三角をクリックして、Native library locationを選んで、そのディレクトリをプロジェクトの中でlibのディレクトリに設定します。このステップは設定できないと、エラーが発生します。java.lang.Usatis fied LinkErrror:/usr/lib/jvm/java-6-sun-1.6.04/jre/lib/i 386:client/libxtxSerialalal. so:/usr/lib/lib/jvm/jvm/java-java-6-sun-susususususun-sususun-6 6 6 6 6/jjjclclclclclclclclcleeemmmmmmmmmmmmmmmmmmmb/jjjjjjjjjjjjjjjjjjjjjjjjjjjjthrown while loading)
3、クラスを作成します。ここで例をあげます。
4、Ubuntuでシリアルポートの入出力をテストするには、仮想マシンに2つのシリアルCOM 1とCOM 2を追加する必要があります。そして、仮想マシンを開く前に、XPシステムに他のプログラム(例えばUart Asist)がこの2つの仮想ソケットを使っていないと、エラーが発生することを保証しなければなりません。
5、Ubuntuのeclipseで2つのプログラムを作成してテストプログラムに使用します。前の例のプログラムでキティS 0とキティS 1をそれぞれ開く必要があります。(それぞれXPのCOM 1とCOM 2に対応しています。)、二つのプログラムをコミッションしてシリアルの例を添付します。
201.6.15
一、開発環境配置
ノートはシリアルがないので、buntuの下に仮想シリアルソフトウェアがありません。だから仮想マシンでuuntuシステムをインストールしたいです。私はVM ware 7.0を使っています。システムはuuntu 11.04です。もちろん、宿主システムはXP SP 3です。
以下の開発環境配置手順:
1、XPにVPD XP 5.1をインストールし、シリアルCOM 1とCOM 2のペアを追加します。
2、XPでシリアルデバッグアシスタントUart Asistを実行し、シリアルポートが正常に使用できるかをテストします。
3、XPの下で仮想マシンVM ware 7.0をインストールし、仮想マシンの下でuuntu 11.04をインストールし、インストールが完了したらシステムを閉じ、「仮想マシン設定の編集」をクリックし、次のステップで「追加」をクリックし、「シリアル」を選択し、「物理ポート」を選択し、「COM 1」を選択し、追加が完了したら確定する。
4、第2ステップでコミッションアシスタントがCOM 1に接続中の場合、COM 1の接続を切断します。(継続的に開くと、仮想マシンはCOM 1を使用できません。)XPの下でUart AsistでCOM 2に接続します。ボーレートは9600,8,1です。
5、仮想マシンを起動して、uuntuシステムに入ります。(もちろん、まずVM toolsとeclipseをインストールします。)UbuntuソフトウェアセンターでシリアルテストソフトCuteConを検索してインストールして、「アプリケーション」-「その他」の中で「CuteCon」を選択して、実行して、Openシリアルポート「キティS 0」(これはXPシステムのCOM 1ですが、2つの名前だけです。)波特率9600,8,1を設定し、シリアルポートを開く
6、CuteConにaaaaaaaaを入力して、返車して送ります。
7、XPに戻ると、Uart AsistがCOM 2を傍受している場合、Uart Asistでaaaaa aを受信する。
二、プログラミングテスト
私が使っているのはrxtxカバンです。eclipseで関連した構成が必要です。
1、プロジェクトを作成し、工程でlibのフォルダを作成し、RXTXcomm.jarとlibraxtSerial.so、libraxtxPalel.soをlibフォルダにコピーする。
2、プロジェクトを右クリックして、properties–build path->Libraryを選んで、この3つのファイルadd Jarsを ,RXTXcomm.jar左側の下三角をクリックして、Native library locationを選んで、そのディレクトリをプロジェクトの中でlibのディレクトリに設定します。このステップは設定できないと、エラーが発生します。java.lang.Usatis fied LinkErrror:/usr/lib/jvm/java-6-sun-1.6.04/jre/lib/i 386:client/libxtxSerialalal. so:/usr/lib/lib/jvm/jvm/java-java-6-sun-susususususun-sususun-6 6 6 6 6/jjjclclclclclclclclcleeemmmmmmmmmmmmmmmmmmmb/jjjjjjjjjjjjjjjjjjjjjjjjjjjjthrown while loading)
3、クラスを作成します。ここで例をあげます。
package com.test;
import gnu.io.CommPort;
import gnu.io.CommPortIdentifier;
import gnu.io.NoSuchPortException;
import gnu.io.PortInUseException;
import gnu.io.SerialPort;
import gnu.io.SerialPortEvent;
import gnu.io.SerialPortEventListener;
import gnu.io.UnsupportedCommOperationException;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.Enumeration;
import java.util.TooManyListenersException;
public class SimpleRead2 implements SerialPortEventListener { //SerialPortEventListener ,
static CommPortIdentifier portId; //
static Enumeration portList; //
InputStream inputStream; //
OutputStream outputStream;//
SerialPort serialPort; //
public SimpleRead2() {
try {
portId = CommPortIdentifier.getPortIdentifier("/dev/ttyS0");
} catch (NoSuchPortException e1) {
//
e1.printStackTrace();
}
try {
serialPort = (SerialPort) portId.open("myapp", 2000);// myapp, 2
} catch (PortInUseException e) {
//
}
try {
inputStream = serialPort.getInputStream();
outputStream = serialPort.getOutputStream();
} catch (IOException e) {
}
try {
serialPort.addEventListener(this); //
} catch (TooManyListenersException e) {
}
serialPort.notifyOnDataAvailable(true); //
try {
serialPort.setSerialPortParams(2400, SerialPort.DATABITS_8, //
SerialPort.STOPBITS_1, SerialPort.PARITY_NONE);
} catch (UnsupportedCommOperationException e) {
}
}
public void serialEvent(SerialPortEvent event) {//SerialPortEventListener ,
switch (event.getEventType()) {
case SerialPortEvent.BI:
case SerialPortEvent.OE:
case SerialPortEvent.FE:
case SerialPortEvent.PE:
case SerialPortEvent.CD:
case SerialPortEvent.CTS:
case SerialPortEvent.DSR:
case SerialPortEvent.RI:
case SerialPortEvent.OUTPUT_BUFFER_EMPTY:
break;
case SerialPortEvent.DATA_AVAILABLE:// ,
byte[] readBuffer = new byte[1000];
try {
while (inputStream.available() > 0) {
int numBytes = inputStream.read(readBuffer);
}
System.out.println(new String(readBuffer));
char[] a= {0x16,0x16,0x20,0x10,0x69,0x0,0x03,0x20,0x01,0x22};
byte[] b = new String(a).getBytes();
outputStream.write(b);
} catch (IOException e) { }
break;
}
}
public static void main(String[] args) {
SimpleRead2 reader = new SimpleRead2(); //
}
}
このプログラムを実行して、XPでUart Asistが任意のデータを入力して送信すると、プログラムで結果が表示されます。4、Ubuntuでシリアルポートの入出力をテストするには、仮想マシンに2つのシリアルCOM 1とCOM 2を追加する必要があります。そして、仮想マシンを開く前に、XPシステムに他のプログラム(例えばUart Asist)がこの2つの仮想ソケットを使っていないと、エラーが発生することを保証しなければなりません。
5、Ubuntuのeclipseで2つのプログラムを作成してテストプログラムに使用します。前の例のプログラムでキティS 0とキティS 1をそれぞれ開く必要があります。(それぞれXPのCOM 1とCOM 2に対応しています。)、二つのプログラムをコミッションしてシリアルの例を添付します。
201.6.15