我在Linux发行版上使用的是RxTx库,而不是usbserial。RxTx库的行为似乎与它在串行上的工作方式有很大的不同(以一种糟糕的方式)。
我最大的问题之一是RxTx SerialPortEvent.OUTPUT_BUFFER_EMPTY不能在linux over usb串口上工作。
我怎么知道什么时候应该写到流中?有什么我可能遗漏的指标吗?
到目前为止,我在写作和阅读方面的经验还不是很好。有没有人知道当我在流上写东西时,是否应该锁定DATA_AVAILABLE处理程序,使其不被调用?或者RxTx接受并发读/写?
发布于 2008-10-09 19:58:09
(可能有点离题,但这里有)
我不熟悉那个特定的库,但我可以从可怕的经验(我在安全系统(如:硬件安全设备)业务中工作,其中大量使用RS-232 )向您保证,并不是所有的USB串行转换器都是天生平等的。因此,许多此类设备无法正确模拟所有RS-232线路,而且许多设备在没有流量控制的情况下甚至无法处理任何通信。在责怪程序库之前,请尝试确认硬件确实做了它应该做的事情。
我不想为某个特定的产品或品牌背书,但多年来我遇到过的最好的(比如:buggy最少的)USB-串行转换器就是USA-19HS。
发布于 2008-09-22 14:00:55
通过usb到串口使用RxTx,你不能将notifyOnOutput设置为true,否则它会完全锁定。
我已经学到了很难的东西。在互联网上的一些网站上记录了这个问题。
我在Linux上运行它,我相信这只是一个Linux问题,尽管我不能确认这一点。
至于你给我的链接。我见过SimpleReader和SimpleWriter示例,但它们并不代表真实的应用程序。它不是多线程的,假设读取具有所需的全部数据,而不是缓冲读取,等等。
谢谢,
杰奇!
https://stackoverflow.com/questions/84859
复制相似问题