我正在尝试从一个Windows机器上的终端客户端到一台安卓设备之间的RS232串口连接中读取数据。我能够轻松地通过设备向终端发送数据,但当我尝试从终端向我的安卓设备发送数据时,我会随机丢失一些位。此外,在键盘上输入字母时,我必须按两次,例如要发送“a”,我必须在键盘上按两次“a”。
我正在使用来自此链接的源代码:https://code.google.com/p/android-serialport-api/source/checkout 以下是接收数据的代码。
以下是另一个类中调用onreceived方法的代码。
我正在使用来自此链接的源代码:https://code.google.com/p/android-serialport-api/source/checkout 以下是接收数据的代码。
@Override
protected void onDataReceived(final byte[] buffer, final int size) {
runOnUiThread(new Runnable() {
public void run() {
if (mReception != null) {
mReception.append(new String(buffer, 0, size));
}
}
});
以下是另一个类中调用onreceived方法的代码。
private class ReadThread extends Thread {
@Override
public void run() {
super.run();
while(!isInterrupted()) {
int size;
try {
byte[] buffer = new byte[64];
if (mInputStream == null) return;
size = mInputStream.read(buffer);
if (size > 0) {
onDataReceived(buffer, size);
}
} catch (IOException e) {
e.printStackTrace();
return;
}
}
}
}