0

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

我已经设法编写了一段代码来显示从我的计算机上的终端程序发送的数据,现在如果我发送一个字符,这可以正常工作,但如果我发送一长串数据,那么它将在屏幕上显示多个部分。

例如:
从终端发送的字符串:“来自终端程序
的数据” 多个 toast 中显示在手机屏幕上的数据:“dat”然后是“a from t”,然后是“erminal pr”,然后是“gram”

读取数据的代码:

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;
                }

                }

        }
            }
        };

如果有人能对此有所了解,我将不胜感激,谢谢

4

0 回答 0