2008-09-17 78 views
1

我在Linux發行版上通過usbserial使用RxTx庫。 RxTx庫似乎表現得非常不同(以一種不好的方式),而不是它如何通過串行工作。我應該處理哪個線程RxTx SerialEvent.DATA_AVAILABLE事件?

我的應用程序有幾個線程,我最大的問題之一是,無處不在,我似乎在我的流上得到一到兩個額外的字節。我無法弄清楚他們來自哪裏或爲什麼。當我使用另一個線程寫入RxTx流時,這個問題似乎更頻繁地發生。

所以我想知道是否應該在當前的RxTx線程上處理讀取操作,或者當我收到DATA_AVAILABLE事件時是否應該在另一個線程上處理讀取操作。

我希望有人可能有好的或壞的理由做這種或那種方式。

+0

更新:我發現了額外字節的來源!它們來自USB設備,並且與RxTx無關! 但我最好的線程閱讀(RxTx或其他)的問題仍然沒有答案! – Jeach 2009-10-16 18:39:16

回答

1

這只是一個猜測,但它可能會給你一個線索。

有可能發送和接收共享一個緩衝區,或者發送時,字節也會以某種方式在輸入上接收 - 我曾在某些嵌入式系統上看到過這一點。

您可能會發現最好的做法是最初在同一個線程上保持發送和接收。另一件事可能是在嘗試讀取之前確保輸出消失。

希望這可能會給你一些線索。

相關問題