我正在开发一个应用程序,该应用程序需要能够通过 Windows 操作系统上的串行通信与设备进行通信。该应用程序是用 Java 编写的。我正在使用 jSSC 库。(Javax.comm 有问题,RxTx 除了非官方更新外不支持 Java 8)这些设备可以使用串行端口直接连接到 PC,或者使用 USB 到串行转换器。
我的问题:Windows 上的 COM 端口是动态的。这引发了定义要连接到哪个通信端口的问题。有没有办法自动确定要连接到哪个 COM 端口?
到目前为止,我能够提出的唯一解决方案包括扫描所有 com 端口以查找活动端口,保存此列表,然后要求用户插入设备并执行另一次扫描 - 然后额外的 COM 端口将成为连接至。
或者,设备将响应特定的“识别”数据包:我可以打开每个 COM 端口并发送此数据包并评估响应。这存在其他设备在短时间内被劫持的风险,这并不理想。