//javac -cp C:\xbee\rxtx-2.1-7-bins-r2\Windows\ch-rxtx-2.2-20081207-win-x64\RXTXcomm.jar CountReadPacket.java
//java -cp C:\xbee\rxtx-2.1-7-bins-r2\Windows\ch-rxtx-2.2-20081207-win-x64\RXTXcomm.jar;. -Djava.library.path=C:\xbee\rxtx-2.1-7-bins-r2\Windows\ch-rxtx-2.2-20081207-win-x64 CountReadPacket
import java.io.*;
import gnu.io.*;
import java.awt.*;
public class CountReadPacket{
public static void main( String arg[] ){
WindowTest windowTest=new WindowTest();
try{
int counter=0;
windowTest.labelChange(counter);
//シリアルポートを確保する
//使用するCOMポートを取得
CommPortIdentifier comID = CommPortIdentifier.getPortIdentifier( "COM16" );
//COMポートを開く
CommPort commPort = comID.open("hoge",2000);
//シリアルポートのインスタンスを生成
SerialPort port = (SerialPort)commPort;
//シリアルポートの設定
//ボーレート、データビット数、ストップビット数、パリティを設定
port.setSerialPortParams( 9800,SerialPort.DATABITS_8, SerialPort.STOPBITS_1, SerialPort.PARITY_NONE );
//フロー制御(今回は行わない)
port.setFlowControlMode( SerialPort.FLOWCONTROL_NONE );
InputStream in = port.getInputStream();
while (true) {
byte[] buffer = new byte[1024];
int numRead = in.read(buffer);
if (numRead == -1) {
break;
} else if (numRead == 0) {
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
// 割り込まれても何もしない
}
}
String xx = new String(buffer, "UTF-8");
String s2 = "H";
if(xx.startsWith(s2)){
java.awt.Toolkit.getDefaultToolkit().beep();
counter++;
System.out.println( String.valueOf(counter));
windowTest.labelChange(counter);
}
/*String xx = new String(buffer, "UTF-8");
if (xx.length() > 1){
System.out.println(xx);
System.out.print("ho");
}*/
}
port.close();
}catch( Exception e ){
System.out.println( "エラーです:" + e );
}
}
}
class WindowTest{
String regA="";
Label label;//表示用の部品(ここではラベル)を宣言
//コンストラクタ
WindowTest(){
//Windowを作る
Frame frame;//Frame 型変数を宣言
frame=new Frame("Window Test");//Frame型変数に初期値をセット
frame.setSize(600, 600);//サイズを指定す
frame.setVisible(true);//可視化する
//WIndowに表示する。
label=new Label(regA);//表示用部品に初期値をセット
label.setFont(new Font("MS ゴシック", Font.BOLD, 240));
label.setPreferredSize(new Dimension(400,400));
label.setAlignment(Label.CENTER);
frame.add(label);//表示用の部品をWindowに追加
regA = "hoge";
}
void labelChange(int i){
regA = String.valueOf(i);
label.setText(regA);
}
}
0 件のコメント:
コメントを投稿