2017-09-07 70 views
0

我有兩個USB接收器連接到樹莓pi3(Windows IOT核心)條形碼掃描儀。C#SerialDevice沒有端口信息(樹莓派3)

我可以連接到它們並列出USB虛擬COM設備並連接到它們並接收數據。但是我無法區分這兩者,ID是相同的,系統沒有提供端口號。

當我調用Current.portnumber.ToString()時,該字符串爲空。

我希望將每個設備分配給一個人,並讓他們掃描一個條形碼作爲他們的用戶名,並希望顯示哪個掃描儀與哪個人相關聯(如Com5 = Bill Com6 = Dave),但只是可以「T找到每個虛擬COM

private async void ListAvailablePorts() 
     { 
      try 
      { 
       string aqs = SerialDevice.GetDeviceSelector(); 
       var infos = await DeviceInformation.FindAllAsync(aqs); 

       foreach (var info in infos) 
       { 
        var serialDevice = await SerialDevice.FromIdAsync(info.Id); 
        DeviceInformation Current = info as DeviceInformation; 
        if (serialDevice != null && Current.Name == "USB Virtual COM") 
        { 
         listOfDevices.Add(Current); 
         ComList.Items.Add(Current.Name.ToString()); 
        } 
       } 

       DeviceList.ItemsSource = listOfDevices; 

       ComList.SelectedIndex = -1; 
       DeviceList.SelectedIndex = -1; 
      } 
      catch (Exception ex) 
      { 
       txtUser.Text = ex.Message; 
      } 
     } 

回答

0

附加審查我發現,ID字段上的86字符串中的單個位後不同的唯一標識符。

\\?\ USB#VID_0416 & PID_5011#5 & 3753427a #{86e0d1e0-8089-11d0-9ce4-08003e301f73}

VS

\\?\ USB# VID_0416 & PID_5011#5 & 3753427a #{86e0d1e0-8089-11d0-9ce4-08003e301f73}

謝謝

+0

你可以將這些插入桌面計算機,並用「USB視圖」查看USB描述符?在你展示的兩個字符串之間通用的部分之一,我相信應該是唯一的USB序列號。但並非所有制造商都能正確序列化他們的設備......如果您發現兩臺設備上的序列號相同,那麼請讓世界其他地方爲之傾倒,並向USB實施者論壇報告違反USB標準的情況。序列號是可選的,但如果提供,它們應該是唯一的。 –