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

时间:2020-03-05 18:59:13  来源:igfitidea点击:

我在Linux发行版的usbserial上使用RxTx库。 RxTx库的行为似乎与串行工作方式大不相同(以一种不好的方式)。

我的应用程序有多个线程,而我最大的问题之一是,我似乎无处不在地在流中获得一到两个额外的字节。我不知道它们来自哪里或者为什么。当我使用另一个线程写入RxTx流时,似乎更经常发生此问题。

因此,我想知道是否应该在获取DATA_AVAILABLE事件时在当前RxTx线程上处理读取,还是在另一个线程上处理读取。

我希望某人以某种方式进行此操作可能有好有坏的原因。

解决方案

回答

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

发送和接收是否有可能共享一个缓冲区,或者在发送时是否也以某种方式在某些嵌入式系统上看到了字节输入。

我们可能会发现最好的方法是最初将发送和接收都保持在同一线程上。另一件事可能是在尝试读取之前确保输出耗尽。

希望这可以给我们一些线索。