我应该在哪个线程处理RxTx SerialEvent.DATA_AVAILABLE事件?

时间:2008-09-17 15:52:46

标签: linux rxtx

我在Linux发行版上使用了usbserial上的RxTx库。 RxTx lib的行为似乎与它在串行上的工作方式完全不同(以一种糟糕的方式)。

我的应用程序有几个线程,我最大的问题之一就是无处不在,我似乎在我的流上获得了一到两个额外的字节。我无法弄清楚他们来自哪里或为什么。当我使用另一个线程写入RxTx流时,这个问题似乎更频繁地发生。

所以我很想知道我是否应该在当前的RxTx线程上处理读取,或者在获取DATA_AVAILABLE事件时是否应该在另一个线程上处理读取。

我希望有人可能有某种方式或其他原因。

1 个答案:

答案 0 :(得分:1)

这只是一个猜测,但它可能会给你一个线索。

发送和接收是否可能共享一个缓冲区,或者当您发送时,输入上的字节也会以某种方式接收 - 我之前在某些嵌入式系统上看到过这种情况。

您可能会发现最好的办法是在同一个线程上保持发送和接收。另一件事可能是在尝试读取之前确保输出消耗。

希望这可能会给你一些线索。