我有4個usb串行轉換器(Prolific)連接到USB集線器。當我查看設備管理器時,我看到了動態分配的Com編號。但是在將hub插入另一個usb端口或系統reebot之後,這些com編號有時會改變。有沒有辦法爲每個轉換器更新這些數字,而無需手動搜索這些數字?基本上,我想在我的C#項目中有一個方法,它將爲每個轉換器查找一些唯一的ID,然後獲取新的COM號碼。有沒有辦法做到這一點(嘗試一些wmi查詢,但沒有成功)?如何區分usb串行轉換器?
今天我想到了一種解決方法。所以我有另一個問題。如何獲得有關USB集線器的信息?基本上,我可以以某種方式找到我的USB集線器,然後檢索有關連接到集線器端口設備的信息。然後通過wmi查詢獲得這些設備的com編號將非常容易。我使用USBView來查看是否可以獲取此類信息。我可以看到從根集線器 - >通用USB集線器 - > Prolific USB到串行通信端口開始樹,但是現在如何在代碼中執行此操作。有任何想法嗎?
沒有,USB是一個總線,它不顯示端口號。是的,當你測試時(不是在生產中),這是一個痛苦的問題。除了一個接一個地插入它們並且觀察代碼中的SerialPort.GetPortNames()之外,您所能做的並不多。從設備數據中識別物理設備是最好的解決方案。 –
我不記得很多細節,但創建的每個端口都有一個關聯的註冊表項(位置取決於USB串行芯片的製造商),您應該能夠區分它們。 –
我切換到使用Moxa 8端口PCI串行卡來避免此問題。 –