在android应用程序中读取串行数据的正确方法

时间:2014-10-21 12:13:27

标签: android terminal serial-port uart usb-otg

我创建了一个Android应用程序,用于读取和显示通过使用USB OTG适配器插入手机的USB FTDI线缆从计算机发送的串行数据。

我已经设法写了一段代码来显示从我的计算机上的终端程序发送的数据,现在如果我发送一个字符但是如果我发送一长串数据然后它会在屏幕上以多个显示它部分。

例如:
从终端发送的字符串:“来自终端程序的数据”
电话屏幕上显示的多个数据:“dat”然后是“a from t” “then”erminal pr“then”ogram“

用于读取数据的代码:

private Runnable mLoop = new Runnable() {

            @Override
            public void run() {

                int len;
                final byte[] buf = new byte[256];

                for (;;) {

                    len = mSerial.read(buf);
                    buf[len] = 0;

                    if(len > 0) {

                        for (int i= 0; i < len; ++i) {

                            mText.append((char) buf[i]);
                        }



                        mHandler.post(new Runnable() {

                            public void run() {

                                MainActivity.this.runOnUiThread(new Runnable() {

                                    public void run() {

                                        Toast.makeText(MainActivity.this, mText.toString(), Toast.LENGTH_SHORT).show();
                                        mText.setLength(0);
                                    }
                                });
                            }

                        });


                try {
                    Thread.sleep(50);
                } 

                catch (InterruptedException e) {
                    e.printStackTrace();
                }

                if (mStop) {
                    mRunningMainLoop = false;
                    return;
                }

                }

        }
            }
        };

如果有人能够对此有所了解,我将非常感激,谢谢

0 个答案:

没有答案