![](/img/trans.png)
[英]Automatic detection of Arduino COM port in JAVA (preferably via JSSC)
[英]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.