2013-05-26 3 views
0

J'ai un périphérique USB (lecteur de badge RF), et j'ai besoin de mon application pour détecter le port COM sorcière que l'appareil est branché. ce que je m `faire est maintenant comme ceci:Comment détecter automatiquement et se connecter à un périphérique USB?

SerialPort mySerialPort = new SerialPort("COM3"); 
    mySerialPort.BaudRate = 9600; 
    mySerialPort.Parity = Parity.None; 
    mySerialPort.StopBits = StopBits.One; 
    mySerialPort.DataBits = 8; 
    mySerialPort.Handshake = Handshake.None; 
    mySerialPort.Open(); 

Si je connecter l'appareil à un autre port USB, l'application se bloque. Une idée Comment faire?

+0

Avez-vous essayé [this] (http://stackoverflow.com/questions/5411454/detecting-usb-connection-c-sharp-net-cf-3-5?rq=1) ou d'autres questions sur stackoverflow ? – BLaZuRE

+0

J'ai essayé, rien ne m'a aidé. –

+0

Avez-vous essayé de le mettre dans un 'Try-Catch' –

Répondre

0

Pour la plupart des périphériques USB-série, le port COM change si vous vous connectez à un autre port USB. C'est pourquoi il se bloque lorsque vous essayez d'ouvrir COM3.

Votre meilleure option est probablement de faire du port COM (COM3) un paramètre configurable par l'utilisateur. Vous ne devez pas déconnecter/reconnecter le périphérique USB pendant qu'il est utilisé, vous n'avez donc pas besoin d'une détection automatique.

Vous pouvez cependant essayer de détecter les changements USB (par exemple sur le SO) et détecter automatiquement votre périphérique (ce qui implique un peu de communication). Si vous réussissez ou non peut dépendre du pilote de périphérique USB.

Questions connexes