cs_neho
Messages postés10Date d'inscriptionmardi 6 janvier 2004StatutMembreDernière intervention16 novembre 2004
-
15 nov. 2004 à 22:03
cs_Guismeau13
Messages postés20Date d'inscriptionvendredi 19 novembre 2004StatutMembreDernière intervention29 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 !!!!
econs
Messages postés4030Date d'inscriptionmardi 13 mai 2003StatutMembreDernière intervention23 décembre 200824 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.
cs_neho
Messages postés10Date d'inscriptionmardi 6 janvier 2004StatutMembreDernière intervention16 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.