2017-09-07 5 views
0

J'ai deux récepteurs USB pour les scanners de codes à barres connectés à un pi3 de framboise (Windows IOT Core).C# SerialDevice aucune information de port (Raspberry Pi 3)

Je peux me connecter à eux et répertorier les périphériques USB Virtual COM et me connecter à eux et recevoir des données. Mais je ne peux pas faire la différence entre les deux, les ID sont identiques et le système ne fournit pas de numéros de port.

Lorsque j'appelle Current.portnumber.ToString(), la chaîne est vide. Je souhaite assigner chaque périphérique à une personne et lui faire scanner un code-barres pour son nom d'utilisateur et aimerait afficher quel scanner est associé à quelle personne (comme Com5 = Bill Com6 = Dave) mais juste peut « t trouver un identifiant unique pour chaque com virtuel

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; 
      } 
     } 

Répondre

0

Après un examen plus je trouve que les champs d'identification sont différents sur un seul chiffre au sein d'une chaîne de 86 caractères.

\\? \ 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

Merci

+0

Pouvez-vous les brancher sur un ordinateur de bureau et regarder les descripteurs USB avec "USB View"? L'une des parties communes aux deux chaînes que vous montrez est censée être le numéro de série USB unique. Mais tous les fabricants ne sérialisent pas réellement leurs appareils correctement ... Si vous trouvez que le numéro de série est le même sur les deux appareils, faites une faveur au reste du monde et signalez la violation de la norme USB au Forum USB Implementer. Les numéros de série sont facultatifs, mais s'ils sont fournis, ils sont supposés être uniques. –