Comment reconnaitre un port USB utilisé en VB ?

cs_neho Messages postés 10 Date d'inscription mardi 6 janvier 2004 Statut Membre Dernière intervention 16 novembre 2004 - 15 nov. 2004 à 22:03
cs_Guismeau13 Messages postés 20 Date d'inscription vendredi 19 novembre 2004 Statut Membre Dernière intervention 29 janvier 2010 - 17 déc. 2004 à 11:31
Bonjour,
je dois créer un programme qui doit communiquer avec des modules d'acquisitions analogiques ( jusqu'ici tout va bien ) les informations sont véhiculées par une communication serie ( USB ), mon probleme c'est que je ne peux pas dire à mon programme d'utiliser le comm 1 si l'utilisateur ce connecte à Comm2 ou 3 ou 4.....16!!!!
Donc comment faire pour savoir à l'avance le port Comm sur lequel il a branché les modules pour que la communication devienne effective et ca sur n'importe quel Port Comm !!!!

merci d'avance.

4 réponses

econs Messages postés 4030 Date d'inscription mardi 13 mai 2003 Statut Membre Dernière intervention 23 décembre 2008 24
16 nov. 2004 à 03:08
Il faut envoyer sur chaque port une trame à laquelle les modules analogiques sont censés répondre.

Pour i allant de 1 à nombre_de_ports_comm
envoyer une trame particulière
Si je reçois la réponse attendue alors
mon périphérique est branché sur comm(i)
fin de si
fin de pour

Manu
-------------------------------------------
Une question bien posée, c'est une chance de réponse bien adaptée.
0
cs_neho Messages postés 10 Date d'inscription mardi 6 janvier 2004 Statut Membre Dernière intervention 16 novembre 2004
16 nov. 2004 à 13:15
merci pour ces conseils, je vais les mettres en oeuvre cet apres midi et je te tiens au courant,

merci encore.
0
cs_neho Messages postés 10 Date d'inscription mardi 6 janvier 2004 Statut Membre Dernière intervention 16 novembre 2004
16 nov. 2004 à 20:58
J'ai mis en ouevre tes conseils en fesant comme suit :

avec l'utilisation de MSCOMM pour la comm sur port USB,

For i=3 to 8
Mscomm1.CommPort = i
Mscomm1.Settings = 9600,N,8,1
Mscomm1.Inputlen = 0
Mscomm1.PortOpen = true
Mscomm1.OutPut = " $01M" & Chr$(13) 'envoie d'une trame à un module

do
buffer$=buffer$ & Mscomm1.Input
loopUntil Instr ( buffer$, vbCr )

If buffer$ = "!014017P" & Chr$(13) then ' attente retour réponse du module si ok alors
Text1.text= Mscomm1.CommPort ' dans text1 j'ai le num du port utilisé
Mscomm1.PortOpen = false
End if

Next

Je laisse Comm1 et 2 tranquil car réservé pour le port serie et non pour l'USB.

Ce que j'obtiens :
Quand il sonde un comm qui n'est pas connecté alors le prog se met en mode debug puis me montre la ligne d'erreur qui correspond à : Mscomm1.PortOpen = true

le message d'erreur est le suivant : " Numéro de port non valide " erreur d'éxecution 8002.

Pourriez vous m'éclairer SVP
0
cs_Guismeau13 Messages postés 20 Date d'inscription vendredi 19 novembre 2004 Statut Membre Dernière intervention 29 janvier 2010
17 déc. 2004 à 11:31
J'ai le même pb...

Guismeau13
0
Rejoignez-nous