summaryrefslogtreecommitdiff
path: root/n/avr/modules/proto/proto.txt
blob: 51ded0a6a39d6495c64b0a01553e379fb0a47025 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
*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. Les arguments sont cod�s en
hexad�cimal.

Par exemple :

^<<
!z
!v03f5
!c0094ffa8
^>>

On peut aussi envoyer directement un caract�re ascii en param�tre en le
pr�c�dant d'une apostrophe.

Par exemple :

^<<
!p'sa800
^>>

* V�rification d'erreur

La v�rification d'erreur n'est pas forc�e par l'utilisation de ce module. En
r�gle g�n�rale, on utilisera le fonctionnement suivant :

	* pour un message fiable, le p�riph�rique doit retourner la commande
	  d�s r�ception ;
	* pour un message non-fiable, le p�riph�rique ne retourne rien.

Par message non-fiable, on entend un message qui arrive en permanence, et dont
l'on a pas besoin de v�rifier la bonne r�ception. En effet, une valeur plus �
jour est pr�f�rable � une r��mission.

Seul le p�riph�rique renvois des messages de v�rification ou des messages
d'erreur. Le protocole d'�change doit �tre pr�vu en prenant cela en compte. Il
n'est par exemple pas conseill� de d�clencher des messages non demand� depuis
le p�riph�rique, en effet, il n'y a aucun moyen de v�rifier s'il est arriv�
correctement. Des messages envoy�s sous l'initiative du p�riph�rique doivent
donc �tre des messages p�riodiques, pas �v�nementiels.

* Utilisation

On doit d�finir une fonction de callback afin de traiter les messages arrivant
et une fonction d'envois de caract�re utilis�e dans les fonctions d'envois. Le
nom de ces deux fonctions est d�fini dans |avrconfig.h|

Pour chaque caract�re re�u, on appelle |proto_accept|. Pour envoyer des
commandes, on utilise les fonctions |proto_send...|.

Regarder le programme de test pour avoir un example.

* Doc

*File: proto.exd
*File: proto_inline.exd