簡體   English   中英

Windows上的Java Comm端口-自動端口檢測

[英]Java Comm port on Windows - Automatic port detection

我正在開發一個應用程序,該應用程序必須能夠通過Windows OS上的Serial Comms與設備進行通信。 該應用程序是用Java編寫的。 我正在使用jSSC庫。 (Javax.comm存在問題,RxTx除非官方更新外不支持Java 8)。這些設備可以使用串行端口直接連接到PC,或者使用USB到串行轉換器直接連接到PC。

我的問題:Windows上的COM端口是動態的。 這為定義要連接到哪個通訊端口提出了一個問題。 有沒有一種方法可以自動確定要連接到哪個COM端口?

到目前為止,我能提出的唯一解決方案包括掃描所有com端口以查找活動端口,保存此列表,然后要求用戶插入設備並執行另一次掃描-然后,另一個COM端口將成為連接到。

或者,設備將響應特定的“標識”數據包:我可以打開每個COM端口並發送此數據包並評估響應。 這可能會在短時間內劫持其他設備,這是不理想的。

為了動態檢測端口,需要調用特定於操作系統的功能。 SCM庫提供用於動態檢測端口的API。

try {
    scm.registerUSBHotPlugEventListener(this, PRODUCT_VID, PRODUCT_PID, null);
    if(scm.isUSBDevConnected(PRODUCT_VID, PRODUCT_PID, null)) {
        USBhotplugEventQueue.offer(SerialComUSB.DEV_ADDED);
    }
} catch (Exception e) {
    e.printStackTrace();
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM