安卓串口API读取数据问题

3
我正在尝试从一个Windows机器上的终端客户端到一台安卓设备之间的RS232串口连接中读取数据。我能够轻松地通过设备向终端发送数据,但当我尝试从终端向我的安卓设备发送数据时,我会随机丢失一些位。此外,在键盘上输入字母时,我必须按两次,例如要发送“a”,我必须在键盘上按两次“a”。
我正在使用来自此链接的源代码: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;
            }
        }
    }
}

请问你能帮我吗?目前,我正在使用RS232端口连接到一个Android设备的机器上工作。我需要建立通信并在它们之间发送/接收数据。 - Pravin Suthar
1个回答

0
原来我连接到了调试端口,这就是连接失败的原因。现在我已经将Android设备上的rs232端口连接到了终端,一切都运行得很顺畅。

嗨@Susheel,我现在遇到了同样的问题。我使用ttyHS4端口。当我向端口发送数据时,它像魔术般地工作,但是当我尝试将数据作为字节数组接收时,有时会从端口中获取未编码的字符。我不知道我的端口是否处于调试模式。实际上,我想问你如何将你的端口从调试模式改为rs232(或类似的模式)。 (也许我可以在调试模式下使用我的端口) - oalpayli

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接