这是我的代码,我正在使用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;
}
其余代码与此相同,我只更改了两件事。
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;
}
对我来说,消除睡眠是不可能的,但这不是问题,谢谢veer