Protocoles de communication
Ce programme envoie une commande Vision par le port série, lit la réponse
du système de vision, l'écrit dans des variables VR et affiche le résultat dans
la fenêtre de terminal de Trajexia Tools.
' Dans le programme STARTUP
' Paramétrer le port RS232 pour le systčme de vision
SETCOM(38400,8,1,0,1,0)
' Dans le programme d'application
loop:
' Déclencheur, front montant sur le systčme virtuel
WAIT UNTIL IN(30)=0
WAIT UNTIL IN(30)=1
' Effacer l'écran
PRINT CHR(27);"[2J"
' Effacer le tampon
GOSUB clear_buffer
' Envoyer la commande au port série en fonction de VR(10)
IF vision_command=v_measure THEN
PRINT #1, "M"
PRINT ">> M"
ELSEIF vision_command=v_date THEN
PRINT #1, "DATE"
PRINT ">> DATE"
ELSEIF vision_command=v_scene THEN
PRINT #1,"SCENE ";scene_n
PRINT ">> SCENE"
ENDIF
' Vérifier la réponse
GOSUB read_buffer
GOTO loop
read_buffer:
count=0
resp_status=0
k=-1
TICKS=5000
MANUEL DE PROGRAMMATION
REPEAT
IF KEY#1 THEN
count=count+1
GET#1, k
'PRINT k;count
TABLE(count,k)
'PRINT count
ENDIF
UNTIL TICKS<0 'OR k=13
PRINT "Reception de ";count[0];" caracteres"
FOR i=1 TO count
IF TABLE(i)<>13 THEN
PRINT CHR(TABLE(i))
ELSE
PRINT "'cr'"
ENDIF
NEXT i
IF TICKS<0 THEN
PRINT "Expiration du delai de communication avec le F500"
resp_status=3
ELSEIF TABLE(count-2)=79 AND TABLE(count-1)=75 THEN
PRINT "Reponse OK"
resp_status=1
ELSE
PRINT "Reponse incorrecte"
resp_status=2
ENDIF
PRINT "Etat de la reponse :";resp_status[0]
RETURN
clear_buffer:
PRINT "Effacement..."
WHILE KEY#1
GET#1,k
PRINT k
WEND
PRINT "Effacement termine !"
RETURN
166