要编写一个java应用程序与Windows环境中的串行端口设备进行通信,谷歌浏览似乎转向了许多方向,也喜欢某些第三方工具库,如RXTX JavaComm。使用eclipse Reference尝试使用RXTX示例代码。
输出中没有显示串行端口空白
输出:
稳定的图书馆
Native lib Version = RXTX-2.1-7
Java lib Version = RXTX-2.1-7
我犯了什么错误?
让我知道这种方法是更好还是建议我更好的解决方案?
请告诉我这个问题的替代方案,我想通过串口使用java与设备通信,数据将从设备发送,应该写入文件。
提前致谢
答案 0 :(得分:3)
如果链接的示例失败,则表示RXTX未检测到计算机上的任何串行端口。您的计算机上可能有一个串行端口,但操作系统无法识别的原因之一可能是,因为它实际上是一个串口转USB适配器,并被识别为USB端口。
如果你在Linux上,串口通常如下所示:
ls /dev/ttyS*
输出:
/dev/ttyS0
/dev/ttyS1
/dev/ttyS2
适应的端口可能如下所示:
/dev/ttyUSB0
如果您可以在串行连接设备上看到一些输出(例如POS打印机或LCD显示器),您可以像这样测试:
echo 'hello' > /dev/ttyUSB0
如果设备连接到该端口并且一切正常,则设备应显示'hello'字符串。
但是,我肯定会推荐Java simple serial connector库而不是RxTx。我们已经在商业POS应用程序中尝试了这两种方法(目前大约有1M张票)。
RxTx正在成功用于顺序打印。在打印方案中,RxTx库按顺序调用,仅用于将数据发送到端口。只有一些串行标志是红色检测设备的buissiness。
但由于其局限性,我们根本无法用它来读取串行连接的IButton的输入。在iButton场景中,预计数据将从端口以异步方式接收。当我们尝试使用RxTx实现它时,常常出现错误和挂起,但是使用JSSC它几乎实现了immediatley。