From 8955d8da9476fa8fa37b0a5a88fa7be10c511b35 Mon Sep 17 00:00:00 2001 From: schodet Date: Sun, 18 Jul 2004 22:03:16 +0000 Subject: Initial revision --- n/avr/proto/proto.txt | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 n/avr/proto/proto.txt (limited to 'n/avr/proto/proto.txt') diff --git a/n/avr/proto/proto.txt b/n/avr/proto/proto.txt new file mode 100644 index 0000000..1c8b84d --- /dev/null +++ b/n/avr/proto/proto.txt @@ -0,0 +1,50 @@ +*Title: Module AVR Protocole série +*Author: Ni + +* Principe + +Ce module s'occupe de gérer le protocole de communication sur une ligne de type +port série. Il propose un service de décodage et un service d'encodage. + +Pour utiliser le décodage, il suffit d'appeler une fonctions à chaque +caractère reçu. Si une commande a été reçu, ou en cas d'erreur, elle appelle +une fonction définie par l'utilisateur avec pour paramètres les informations +sur la commande reçue. + +Pour utiliser l'encodage, il suffit d'appeler une fonction émission avec +les paramètres que l'on veux envoyer. + +* Protocole + +Le protocole de communication est basé sur des trames. Chaque trame commence +par un point d'exclamation et se termine par un retour chariot. Tout ce qui +n'est pas entouré de ces caractères est ignoré. + +Le point d'exclamation est directement suivi de la commande. La commande est +un caractère alphabétique minuscule ou majuscule. + +Après la commande vient une liste de d'arguments séparés par des virgules +optionnelles. Les arguments sont codés en hexadécimal, sur un ou deux octets +en fonction du réglage à la compilation. + +Par exemple : + +^<< +!z +!v03,f5 +!c0094,ffa8 +^>> + +* Utilisation + +On appelle d'abord la fonction d'initialisation avec en premier paramètre la +fonction callback (qui est appelée en cas de décodage réussi ou en cas +d'erreur), et en second paramètre la fonction de sortie (appelé avec en +paramètre le caractère à sortir). + +Pour chaque caractère reçu, on appelle |proto_accept|. Pour envoyer des +commandes, on utilise les fonctions |proto_send...|. + +* Doc + +*File: proto.exd -- cgit v1.2.3