我在Linux发行版上使用了usbserial上的RxTx库。 RxTx lib的行为似乎与它在串行上的工作方式完全不同(以一种糟糕的方式)。
我的应用程序有几个线程,我最大的问题之一就是无处不在,我似乎在我的流上获得了一到两个额外的字节。我无法弄清楚他们来自哪里或为什么。当我使用另一个线程写入RxTx流时,这个问题似乎更频繁地发生。
所以我很想知道我是否应该在当前的RxTx线程上处理读取,或者在获取DATA_AVAILABLE事件时是否应该在另一个线程上处理读取。
我希望有人可能有某种方式或其他原因。
答案 0 :(得分:1)
这只是一个猜测,但它可能会给你一个线索。
发送和接收是否可能共享一个缓冲区,或者当您发送时,输入上的字节也会以某种方式接收 - 我之前在某些嵌入式系统上看到过这种情况。
您可能会发现最好的办法是在同一个线程上保持发送和接收。另一件事可能是在尝试读取之前确保输出消耗。
希望这可能会给你一些线索。