Projet

Général

Profil

Protocole EthernetWifi V1 » Historique » Version 17

Anonyme, 27/03/2013 12:03

1 1 Anonyme
h1. Protocole EthernetWifi V1
2
3
h2. Généralités
4
5
Le protocole de communication privilégié est l'UDP.
6
7 5 Anonyme
Le respect de l'endianness (et donc si nécessaire la conversion) doit être si nécessaire assurée au l'envoi comme à la réception.
8 2 Anonyme
9
h2. Valeurs numériques
10
11 6 Anonyme
Toutes les valeurs numériques (récupérées depuis un capteur ou transmises comme consigne) doivent être converties de sorte que leurs valeurs varient entre -32767(valeur minimale théoriquement atteignable) et 32767 (valeur maximale théoriquement atteignable). 
12 1 Anonyme
Un champ de valeur aussi important garantissant une précision en principe suffisante pour les calculs à effectuer par la suite.
13
14
L'usage de int16_t définis dans stdint.h peut donc être pertinent dans le cadre des manipulations de ces valeurs.
15
16 15 Anonyme
Une formule permettant d'obtenir un formatage efficace est : 
17 16 Anonyme
*Val_formatée = (65534 . (Val_Réelle - Val_Min)/(Val_Max - Val_Min)) – 32767*
18 1 Anonyme
Attention : les calculs doivent être réalisés en float afin d'éviter des pertes importantes au cours de la division.
19
20 15 Anonyme
Pour inverser le formatage, la formule est :
21 16 Anonyme
*Val_récup = (((Val_formatée + 32767) / 65534) . (Val_Max – Val_Min)) +Val_Min*
22 14 Anonyme
23 1 Anonyme
Si ce choix semble non pertinent merci de nous contacter.
24
25
*Attention : à l'issue de ce formatage, le 0 ne désigne pas nécessairement la position neutre ou le 0 conventionnel. Cela ne sera vrai que si l'intervalle des valeurs d'origine est centré en 0 (val_min = -val_max).*
26
27 2 Anonyme
h2. Format général de la trame
28 1 Anonyme
29
Le format de trame sera le suivant :
30 16 Anonyme
31
*<NUM_PAQUET><!><TYPE_TRAME><< ?>|<<:><VAL>[,VAL[,...]]>><!><CTRL_SUM><CRLF>*
32 1 Anonyme
33
Avec :
34
35
<NUM_PAQUET> : numéro du paquet, auto-incrémental, sur 4 chiffres, non signé, en décimal. 
36
37
<!> : caractère "!" utilisé comme séparateur
38
39
<TYPE_TRAME> : suite de 2 caractères en ASCII indiquant les informations portées par la trame (voir plus bas)
40
41
<< ?>|<<:><VAL>[,VAL[,...]]>> valant soit :
42
       -- "?" dans le cadre de la demande d'une (série de) valeurs
43
       -- ":" suivi d'une série de valeurs séparés par des virgules
44 7 Anonyme
45
<CTRL_SUM> consiste en la somme des valeur ASCII de toute la trame jusqu'au caractère "!" précédant cette somme ("!" inclus)
46 1 Anonyme
47
<CRLF> : caractères "\r\n"
48
49
h2. Liste des TYPE_TRAME
50
51
les TYPES_TRAME sont des suites de 2 caractères ASCII
52
53 17 Anonyme
La liste des types réservés sont disponibles sur la page : [[Types des trames]]
54 1 Anonyme
55 13 Anonyme
h2. Exemples 
56 1 Anonyme
57
On aura ainsi par exemple 
58
59
60 13 Anonyme
0010!Gx?!513
61 1 Anonyme
62
correspond au dixième message échangé, le contrôleur demande au drone la valeur de son gyroscope en x
63
64 13 Anonyme
0011!Gx:21!608
65 1 Anonyme
66
serait la réponse du drone
67
68
ou encore 
69
70 13 Anonyme
0101!0B:21,22,58!828
71 1 Anonyme
72
Qui serait le 101e message d'une série, utilisant un protocole de test (commençant par 0) et renvoyant 3 valeurs
73
74
75 2 Anonyme
h2. Informations complémentaires
76 1 Anonyme
77
*_Notes :_*
78
_1) La présence de bits de bourrage en fin de trames peut être envisagée et pourrait être décidée dans le cadre d'une révision ultérieure de ce document_
79
_2) Ce protocole est encore une ébauche, il est susceptible d'être modifié par la suite_
80
_3) Ce protocole constitue un premier jet destiné à la phase de conception initiale du système, l'optimisation de la vitesse n'est pas privilégiée ici_
81
_4) Ce protocole sera probablement fortement étendu voire totalement abandonné lors de développement ultérieurs du projet, les implémentations de divers protocoles doivent donc pouvoir être interverties aisément au sein du code réalisé (au besoin à l'aide de pattern adéquats). Les révisions cités son suceptibles d'affecter profondément la forme des trames mais aussi de manière non négligeable les informations transmises_
82 3 Anonyme
83
_5)Par ailleurs, de manière plus générale, l'usage des variables définies dans stdint.h pourrait être un gage de portabilité, il me semble donc pertinent d'envisager de les préférer aux variables par défaut._
84 1 Anonyme
85
86
-----------------------------------------------------------------------------
87
88 14 Anonyme
_+Dernière révision : 11/03/2013 9h00+_
89 1 Anonyme
_+Auteurs : Couma Joani -- Faure Axel+_