Mobile-DARTS  1.1
BTS SNIR LaSalle Avignon 2021
Protocole.md
Aller à la documentation de ce fichier.
1 # Protocole DARTS
2 
3 Version : 1.0
4 
5 Avis : validé le 11/06/2021 par Thierry VAIRA
6 
7 ## Format général des trames
8 
9 Type de contenu : Caractères ASCII
10 
11 Délimiteurs
12 
13 - Début : `$DARTS`
14 - Fin : `\r\n`
15 - Champ de début : `;`
16 
17 Liste des trames
18 
19 - Trame de début : `START`
20 - Trame de touche : `HIT`
21 - Trame de joueur suivant : `NEXT`
22 - Trame de fin : `END`
23 - Trame de réinitialisation : `RESET`
24 - Trame d'acquittement : `OK`
25 
26 Sens des trames
27 
28 - Émetteur : Application mobile Darts, Module cible Darts.
29 - Récepteur : ihm Darts, Application mobile Darts, Module cible Darts.
30 
31 Voir diagramme des échanges
32 
33 ## Format détaillé des trames
34 
35 - Trame début :
36 
37  Format : `$DARTS;START;TYPE_PARTIE;NB_JOUEURS[;NOMS]\r\n`
38  Exemple : `$DARTS;START;501;2;Billy;Robert\r\n`
39 
40 Types de partie :
41  `301`
42  `301_DOUBLE_OUT`
43  `501`
44  `501_DOUBLE_OUT`
45 
46 _Remarque :_ les champs entre crochets `[]` sont optionnels.
47 
48 - Trame de touche :
49 
50  Format : `$DARTS;HIT;valeurTouche;multiplicateurTouche;ID\r\n`
51 
52 Les valeurs possibles pour valeurTouche sont :
53 
54 - Les secteurs 1 à 20 ;
55 - Le centre de la cible (la bulle ou Bull’s Eye) ;
56 - Les valeurs possibles pour multiplicateurTouche sont : 1, 2 (double) et 3 (triple)
57 - Les valeurs possibles pour ID sont : 0 à 2
58 
59 Exemples :
60 
61 ```
62 $DART;HIT;25;2;0\r\n -> Fléchette bullseye (50 points)
63 $DART;HIT;25;1;0\r\n -> Fléchette demi-bulle (25 points)
64 
65 Les simples :
66 $DART;HIT;1;1;0\r\n -> 1 pts
67 ...
68 $DART;HIT;20;1;0\r\n -> 20 pts
69 $DART;HIT;25;1;0\r\n -> 20 pts
70 
71 Les doubles :
72 $DART;HIT;1;2;0\r\n -> 2 pts
73 ...
74 $DART;HIT;20;2;0\r\n
75 $DART;HIT;25;2;0\r\n
76 
77 $DART;HIT;20;2;0\r\n -> 40 pts
78 
79 Les triples :
80 $DART;HIT;1;3;0\r\n -> 3 pts
81 ...
82 $DART;HIT;20;3;0\r\n -> 60 pts
83 ```
84 
85 - Trame d'acquittement :
86 
87  Format : `$DARTS;OK\r\n`
88 
89 _Remarque :_ Les trames de touche sont acquittées avec les modules cible et mobile.
90 
91 - Trame de réinitialisation :
92 
93  Format : `$DARTS;RESET\r\n`
94 
95 _Remarque :_ La trame `RESET` permet de réinitialiser le module cible en cas d’erreur ou à la fin d’une partie. Cela permet d’annuler une partie en cours.
96 
97 - Trame de fin :
98 
99  Format : `$DARTS;END;(LE GAGNANT)\r\n`
100 
101 - Trame de joueur suivant :
102 
103  Format : `$DARTS;NEXT\r\n`
104 
105 
106 ## Echanges
107 
108 \image html echanges.png