我在Linux发行版上使用了usbserial上的RxTx库。 RxTx lib的行为似乎与它在串行上的工作方式完全不同(以一种糟糕的方式)。
我最大的问题之一是RxTx SerialPortEvent.OUTPUT_BUFFER_EMPTY
不能通过usb serial在linux上运行。
我如何知道何时应该写入流?我可能错过的任何指标?
到目前为止,我同时写作和阅读的经历并不是很好。有没有人知道我在写入流时是否应该锁定DATA_AVAILABLE
处理程序?或者RxTx
接受并发读/写?
答案 0 :(得分:4)
(可能稍微偏离主题,但这里有)
我对这个特定的图书馆并不熟悉,但我可以向你保证不会有糟糕的经历(我在安全系统(如:硬件安全设备)业务中工作,其中RS-232使用频繁)并非所有USB -serial转换器天生平等。许多此类设备因此无法正确模拟所有RS-232线路,并且许多设备甚至无法处理任何没有流量控制的通信。在指责库之前,请尝试确认硬件实际上是否完成了它应该做的事情。
我不想支持特定的产品或品牌,多年来遇到的最好的(如:最少的车型)USB串行转换器是USA-19HS。
答案 1 :(得分:1)
在usb-to-serial上使用RxTx,你不能将notifyOnOutput设置为true,否则它会完全锁定。
我很难学到这一点。这个问题记录在互联网上的一些网站上。
我在Linux上运行它,我相信这只是一个Linux问题,虽然我无法确认。
至于你给我的链接......我已经看过SimpleReader和SimpleWriter示例,但这些并不代表真实世界的应用程序。它不是多线程的,假设读取具有所需的完整数据而不是缓冲读取等。
谢谢,
Jeach!