有很多关于Java串口库(如RXTX和JSSC)的讨论,但它们真正提供了什么?在linux和windows中你都可以简单地打开串口就像一个文件进行读写,不是吗?使用库而不是仅使用文件IO从设备读取和写入有什么好处?
据我所知,这些库允许您配置端口,这通常需要通过命令行调用来完成。但假设已经配置了端口,是否有任何理由使用这些库?
答案 0 :(得分:1)
历史上,串行端口专为调制解调器等慢速通信线路而设计。它们具有“清除发送”,“请求发送”,“数据终端就绪”,“挂断”,“振铃”等附加信号。某些串行设备仍然使用这些信号。这些东西仍然存在于硬件中,因此串行库应提供访问它的API。
另一件事是中断。您可能不希望一直轮询连接以查看是否有可用数据。串行API通常为其提供回调或事件处理程序。
打开和关闭端口最好在应用程序中完成。严格来说,这不是必要的,但最好不要期望某个特定的港口在开始时是开放的,或者在退出时将其锁定。
答案 1 :(得分:1)
在linux和windows中你只需打开串口就像一个文件进行读写,不是吗?
虽然这是可行的,但实际上并不是推荐的方法。转到第二点:
但假设已经配置了端口,是否有任何理由使用这些库?
假设端口已正确配置和配置,那么完全可以简单地打开串口并像普通文件一样读写。这确实带来了另一个警告:如果您完全依赖控制信号,您将无法从端口获取该数据。我使用过的大多数串行设备都没有对控制线做任何事情,但这并不是你总能确定的。
使用库的重点是,您可以获取并设置所需的确切设置,以便通过端口进行适当的交谈。
至于JSSC / RXTX对他们没有InputStream
/ OutputStream
,我也不喜欢那些库,所以我wrote my own。
答案 2 :(得分:0)
下面是我们考虑图书馆的原因的快速列表,但在很大程度上我觉得如果我们制作商业产品而不是现成的图书馆可能是个不错的选择,否则作为一个学习者我们可以写自己的。