これは私のコードです。 rxtxを使用しています。
public void Send(byte[] bytDatos) throws IOException {
this.out.write(bytDatos);
}
public byte[] Read() throws IOException {
byte[] buffer = new byte[1024];
int len = 20;
while(in.available()!=0){
in.read(buffer);
}
System.out.print(new String(buffer, 0, len) + "\n");
return buffer;
}
残りのコードはこれとまったく同じです。2 つの点を変更しただけです。
InputStream in = serialPort.getInputStream();
OutputStream out = serialPort.getOutputStream();
それらは現在グローバル変数であり、...
(new Thread(new SerialReader(in))).start();
(new Thread(new SerialWriter(out))).start();
今は存在しない...
これを送信しています(毎秒)
Send(("123456789").getBytes());
そして、これは私が得たものです:
123456789123
456789
123456789
1234567891
23456789
誰でも私を助けることができますか?
編集
後で、私はそれを解決するためのより良い方法を得ました。ありがとう、これは読み取りコードでした
public byte[] Read(int intEspera) throws IOException {
try {
Thread.sleep(intEspera);
} catch (InterruptedException ex) {
Logger.getLogger(COM_ClComunica.class.getName()).log(Level.SEVERE, null, ex);
}//*/
byte[] buffer = new byte[528];
int len = 0;
while (in.available() > 0) {
len = in.available();
in.read(buffer,0,528);
}
return buffer;
}
あの眠りを消すのは無理だったけど問題ないからありがとう