9 annexe 9.1 protocole macro: description, 1 opérations de calcul du checksum, 2 exemple de programme de test – Videotec SM164B User Manual

Page 108

Advertising
background image

Page 32

MNVCSM84A_0408

9 Annexe

9.1 Protocole Macro: description

Le protocole Macro se caractérise par des messages uniquement composés de caractères ASCII imprimables,
délimités par deux caractères de terminaison ‘[‘ et ‘]’. À l'intérieur du message est prévue la distinction entre
majuscules et minuscules et AUCUN espace de séparation n'est inséré. Le format d'un message type se
constitue d'une chaîne de caractères ‘[VA1PC1VidS1,12A]’ pouvant être interprétée comme suit:

[

Début du message

VA1

Destinataire du message

(1)

Unité vidéo numéro 1

PC1

Expéditeur du message

(1)

PC numéro 1

VidS

Commande

Commutation

1

Premier paramètre

(2)

Moniteur 1

,

Séparateur de paramètres

(2)

12

Second paramètre

(2)

Caméra 12

A

Checksum

]

Fin du message

(1)

Dans ce cas également, les unités Destinataire et Expéditeur ne peuvent être adressées, et il est nécessaire

d'indiquer un numéro d'identification fictif.

(2)

En fonction de la commande, un maximum de 4 paramètres numériques séparés par des virgules sont

prévus: pour transmettre le nombre ‘123’, trois caractères doivent être expédiés ‘1’ (ASCII 49), ‘2’ (ASCII 50) et
‘3’ (ASCII 51).

9.1.1 Opérations de calcul du checksum

Additionner le code ASCII de tous les caractères du message, à l'exception des caractères de terminaison ‘[‘et‘]’
1) calculer la valeur de la somme module 26 (reste de la division par 26, toujours un numéro entier de 0 à 25)
2) additionner 65 au module ainsi calculé, et chercher le caractère correspondant dans le tableau ASCII: le
résultat doit être un caractère alphabétique majuscule compris entre ‘A’ et ‘Z’.
Le message sera interprété par la matrice si le checksum est correct.

9.1.2 Exemple de programme de test

Un programme simple de test en BASIC, utilisé comme ligne de guide dans la réalisation de systèmes de
contrôles plus complexes, est indiqué ci-dessous. Ce programme utilise la série COM1 avec bauds 9600.

OPEN "COM1:9600,N,8,1,BIN,RB1000,DS0,CS0,CD0,RS" FOR RANDOM AS #1
COM(1) ON

ON COM(1) GOSUB Réception

DO WHILE (1)
A$ = UCASE$(INKEY$)

‘ reconnaît la pression d'une touche

SELECT CASE A$

CASE “1”: ‘ commute la caméra 1 sur le moniteur 1
PRINT #1, “[VA1PC1VidS1,1C]”;

CASE “2”: ‘commute la caméra 2 sur le moniteur 1
PRINT #1, “[VA1PC1VidS1,2D]”;

CASE “S”: ‘ cyclage automatique sur le moniteur 1
PRINT #1, “[VA1PC1VidA1V]”;

CASE CHR(27): ‘ sortie du programme avec ESC

END

END SELECT
LOOP

Réception:
DO WHILE NOT(EOF(1))
B$ = INPUT$(1,1)
IF B$ = “[” THEN PRINT
PRINT B$;
LOOP
RETURN

Advertising