1

Linuxディストリビューションでusbserial経由でRxTxライブラリを使用しています。RxTx ライブラリは、シリアル経由での動作とは (悪い意味で) まったく異なる動作をしているようです。

私のアプリケーションには複数のスレッドがあり、私の最大の問題の 1 つは、どこからともなく、ストリームで 1 ~ 2 バイト余分に取得しているように見えることです。それらがどこから来たのか、なぜなのかわかりません。この問題は、別のスレッドを使用して RxTx ストリームに書き込むと、より頻繁に発生するようです。

そのため、DATA_AVAILABLE イベントを取得したときに、現在の RxTx スレッドで読み取りを処理する必要があるのか​​、それとも別のスレッドで読み取りを処理する必要があるのか​​ 疑問に思いました。

誰かが何らかの方法でそれを行うための良い理由または悪い理由を持っていることを願っています.

4

1 に答える 1

1

これはあくまでも推測ですが、ヒントになるかもしれません。

送信と受信がバッファを共有する可能性はありますか、それとも送信時に何らかの形で入力でもバイトが受信される可能性はありますか?これは以前にいくつかの組み込みシステムで見たことがあります。

最善の方法は、最初は送信と受信の両方を同じスレッドに保持することです。もう1つのことは、読み取りを試みる前に出力が確実に排出されるようにすることです。

うまくいけば、これはあなたにいくつかの手がかりを与えるかもしれません.

于 2008-09-19T22:53:35.770 に答える