2015年1月12日月曜日

xbeeカウントアップ-プログラム

//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 件のコメント:

コメントを投稿