mouky66
Messages postés49Date d'inscriptionmardi 29 mars 2005StatutMembreDernière intervention13 juillet 2005
-
21 avril 2005 à 11:28
cs_casy
Messages postés7741Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention24 septembre 2014
-
21 avril 2005 à 13:39
salut
voila deja un petit moment que je bosse sur des cartes électronique. je communique avec elles (com1) et elles me répondent jusque la pas de problème.
je voudrais traiter le cas ou la carte ne répond pas (je la débranche pour cela).
g essayer MScomm1.Input = ""
mais bon ca marche pas.
il y aurai pas une astuce pour traduire "pas de réponse"?
ou pe etre alors il faut utiliser un timer (ou delay) qui au bout de quelques secondes, si la carte ne répond pas alors je passe a la prochaine carte.........
merki de vos réponses
cs_casy
Messages postés7741Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention24 septembre 201440 21 avril 2005 à 13:39
Tu ne peux pas traduire "pas de réponse" puisque c'est une réponse que tu n'obteindras pas.
Tu l'a dit toi même, il faut créer une attente, appelle là comme tu
veux mais dans ce cas precis on appelle ça gébéralement TimeOut.
une piste (je sais pas comment tu gère ton port) :
toto=time
do
if reponse_recu then
rep_recu=true
exit do
end if
dovents
loop while time<(toto + timeout)
if rep_recu=false then
' erreur timeout, pas de réponse
else
' réponse recue, traitement de la réponse
endif
Ce code ne marche peut-etre pas comme ça, mais il y a la base.
En fait tu tourne dans le do-loop tant que tu n'as pas recu de réponse
et au maxi pendant une durée définie par timeout. Dès que tu sort du
Do-loop, tu teste si t'es sortie sur timeout ou sur réponse recue.
<hr size="2" width="100%">Si le cerveau était assez simple pour que nous puissions le comprendre,
nous serions assez bête pour ne pas le comprendre malgré tout.