0

USB OTGアダプターを使用して電話に接続されたUSB FTDIケーブルを介してコンピューターから送信されたシリアルデータを読み取って表示するAndroidアプリケーションを作成しました。

端末プログラムから送信されたデータをコンピューターに表示するコードを書くことができました。これで、1 文字を送信しても問題なく動作しますが、長いデータ文字列を送信すると、複数の画面に表示されます。部品。

例:
端末から送信された文字列: 「端末プログラムからのデータ」
複数のトーストで電話スクリーンに表示されるデータ: 「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