我正在開發一個應用程序,需要能夠通過Windows OS上的串行通信與設備進行通信。該應用程序是用Java編寫的。我正在使用jSSC庫。 (Javax.comm有問題,RxTx除了非正式更新外沒有Java 8支持)設備可以使用串行端口直接連接到PC,或使用USB到串行轉換器。Windows上的Java通信端口 - 自動端口檢測
我的問題: 窗口上的COM端口是動態的。這提出了一個問題來定義連接到哪個通信端口。有沒有辦法自動找出連接哪個COM端口?
到目前爲止,我已經能夠提出的唯一解決方案涉及掃描所有通信端口的活動端口,保存該列表,然後要求用戶插入設備並執行另一次掃描 - 額外的COM端口將會成爲連接的人。
或者,設備將響應特定的「識別」數據包:我可以打開每個COM端口併發送此數據包並評估響應。這有其他設備被短時間劫持的風險,這並不理想。
我還沒有看到一個很好的自動檢測方案。你永遠不知道其他設備如何反應,因爲你已經提到。如果你只在Windows上運行,我會建議一個.net中的幫助程序庫,它可以捕獲USB插入的事件。如果這是一個經典的DB9,那麼我對你沒有任何幫助。查看我的名爲Porty的應用程序,它執行端口名稱檢測。你可能可以適應你的需求。 https://github.com/corytodd/porty –
謝謝!我看了一下你的應用程序,看起來可能會有所幫助。 –