Mobile-AREA  1.1
BTS SNIR LaSalle Avignon 2021
ProtocolAREA.java
Aller à la documentation de ce fichier.
1 package com.example.area;
2 
11 import android.util.Log;
12 
13 import java.util.Vector;
14 
19 public class ProtocolAREA
20 {
24  private static final String TAG = "_ProtocoleAREA";
25  public static final String NOM_MODULE_NET = "NET_AREA";
26  public static final String NOM_MODULE_AFFICHEUR_AREA = "AFFICHEURAREA";
27  public static final String NOM_MODULE_SCORE_AREA = "SCORE_AREA";
28  public static final String ADRESSE_MODULE_NET = "24:6F:28:7B:E1:06";
29  public static final String ADRESSE_MODULE_AFFICHEUR = "DC:A6:32:52:7D:B5";
30  public static final String DELIMITEUR_CHAMP = ";";
31  public static final String DELIMITEUR_FIN = "\r\n";
32  public static final String DEBUT_TRAME = "MOBILE_AREA";
33  // MODULE_NET
34  public static final String TRAME_SERVICE = "MOBILE_AREA;SERVICE\r\n";
35  // MODULE_AFFICHEUR
36  public static final int TRAME_AFFICHEUR_RENCONTRE = 0;
37  public static final int TRAME_AFFICHEUR_INFO_PARTIE = 1;
38  public static final int TRAME_AFFICHEUR_SCORE = 2;
39  public static final int TRAME_AFFICHEUR_ETAT_PARTIE = 3;
40  public static final int TRAME_AFFICHEUR_NET = 4;
41  //MODULE_SCORE
42  public static final int TRAME_SCORE_POSITION = 0;
43  public static final String POSITION_GAUCHE = "GAUCHE";
44  public static final String POSITION_DROITE = "DROITE";
45 
56  public static String fabriquerTrameAfficheur(int typeTrame, Partie partie)
57  {
58  String trame = DEBUT_TRAME;
59 
60  switch (typeTrame)
61  {
67  Vector<Joueur> joueursA = partie.getJoueursA();
68  Vector<Joueur> joueursB = partie.getJoueursB();
69  if (joueursA.size() > 1)
70  trame += DELIMITEUR_CHAMP + TRAME_AFFICHEUR_INFO_PARTIE + DELIMITEUR_CHAMP + partie.getId() + DELIMITEUR_CHAMP + joueursA.elementAt(Partie.POSITION_PREMIER_JOUEUR).getNom() + DELIMITEUR_CHAMP +
71  joueursA.elementAt(Partie.POSITION_PREMIER_JOUEUR).getPrenom() + DELIMITEUR_CHAMP + joueursA.elementAt(Partie.POSITION_DEUXIEME_JOUEUR).getNom() + DELIMITEUR_CHAMP +
72  joueursA.elementAt(Partie.POSITION_DEUXIEME_JOUEUR).getPrenom() + DELIMITEUR_CHAMP + joueursB.elementAt(Partie.POSITION_PREMIER_JOUEUR).getNom() + DELIMITEUR_CHAMP +
73  joueursB.elementAt(Partie.POSITION_PREMIER_JOUEUR).getPrenom() + DELIMITEUR_CHAMP + joueursB.elementAt(Partie.POSITION_DEUXIEME_JOUEUR).getNom() + DELIMITEUR_CHAMP +
74  joueursB.elementAt(Partie.POSITION_DEUXIEME_JOUEUR).getPrenom() + DELIMITEUR_FIN;
75  else
76  trame += DELIMITEUR_CHAMP + TRAME_AFFICHEUR_INFO_PARTIE + DELIMITEUR_CHAMP + partie.getId() + DELIMITEUR_CHAMP + joueursA.elementAt(Partie.POSITION_PREMIER_JOUEUR).getNom() + DELIMITEUR_CHAMP +
77  joueursA.elementAt(Partie.POSITION_PREMIER_JOUEUR).getPrenom() + DELIMITEUR_CHAMP + joueursB.elementAt(Partie.POSITION_PREMIER_JOUEUR).getNom() + DELIMITEUR_CHAMP +
78  joueursB.elementAt(Partie.POSITION_PREMIER_JOUEUR).getPrenom() + DELIMITEUR_FIN;
79  break;
85  trame += DELIMITEUR_CHAMP + TRAME_AFFICHEUR_SCORE + DELIMITEUR_CHAMP + partie.getId() + DELIMITEUR_CHAMP + partie.getPointsJoueursA() +
86  DELIMITEUR_CHAMP + partie.getPointsJoueursB() + DELIMITEUR_CHAMP + partie.getManchesJoueursA() + DELIMITEUR_CHAMP +
88  break;
96  String etat = "DEMARREE";
97  if (partie.estFinie())
98  etat = "TERMINEE";
99  trame += DELIMITEUR_CHAMP + TRAME_AFFICHEUR_ETAT_PARTIE + DELIMITEUR_CHAMP + partie.getId() + DELIMITEUR_CHAMP + etat + DELIMITEUR_FIN;
100  break;
101  case TRAME_AFFICHEUR_NET:
105  trame += DELIMITEUR_CHAMP + TRAME_AFFICHEUR_NET + DELIMITEUR_CHAMP + partie.getId() + DELIMITEUR_FIN;
106  break;
107  }
108 
109  Log.d(TAG, "fabriquerTrameAfficheur() trame = " + trame);
110 
111  return trame;
112  }
113 
119  public static String fabriquerTrameAfficheurRencontre(Rencontre rencontre)
120  {
121  String trame = DEBUT_TRAME;
122 
123  trame += DELIMITEUR_CHAMP + TRAME_AFFICHEUR_RENCONTRE + DELIMITEUR_CHAMP + rencontre.getEquipeA().getNomClub() + DELIMITEUR_CHAMP + rencontre.getEquipeB().getNomClub() + DELIMITEUR_FIN;
124 
125  Log.d(TAG, "fabriquerTrameAfficheurRencontre() trame = " + trame);
126 
127  return trame;
128  }
133  public static boolean verifierTrameNet(String trame)
134  {
135  if (trame.startsWith("NET_AREA") && trame.contains("NET"))
136  {
137  return true;
138  }
139  return false;
140  }
141 
143  {
144  String trame = DEBUT_TRAME;
145 
146  String pointsJoueursA = partie.getManches().lastElement().elementAt(Partie.POSITION_PREMIER_JOUEUR).toString();
147  String pointsJoueursB = partie.getManches().lastElement().elementAt(Partie.POSITION_DEUXIEME_JOUEUR).toString();
148  String manchesJoueurA = Integer.toString(partie.getManchesJoueursA());
149  String manchesJoueurB = Integer.toString(partie.getManchesJoueursB());
150 
151  if(partie.getManches().lastElement().elementAt(Partie.POSITION_PREMIER_JOUEUR) > partie.getManches().lastElement().elementAt(Partie.POSITION_DEUXIEME_JOUEUR))
152  manchesJoueurA = Integer.toString(partie.getManchesJoueursA()-1);
153  else
154  manchesJoueurB = Integer.toString(partie.getManchesJoueursB()-1);
155 
156  trame += DELIMITEUR_CHAMP + TRAME_AFFICHEUR_SCORE + DELIMITEUR_CHAMP + partie.getId() + DELIMITEUR_CHAMP + pointsJoueursA +
157  DELIMITEUR_CHAMP + pointsJoueursB + DELIMITEUR_CHAMP + manchesJoueurA + DELIMITEUR_CHAMP +
158  manchesJoueurB + DELIMITEUR_FIN;
159 
160  return trame;
161  }
162 
163  public static String fabriquerTramePosition(boolean estADroite)
164  {
165  String trame = DEBUT_TRAME;
166 
174  if (estADroite)
175  trame += DELIMITEUR_CHAMP + TRAME_SCORE_POSITION + DELIMITEUR_CHAMP + POSITION_DROITE + DELIMITEUR_FIN;
176  else
177  trame += DELIMITEUR_CHAMP + TRAME_SCORE_POSITION + DELIMITEUR_CHAMP + POSITION_GAUCHE + DELIMITEUR_FIN;
178 
179  Log.d(TAG, "fabriquerTramePosition() trame = " + trame);
180 
181  return trame;
182  }
183 }
Equipe getEquipeA()
Accesseur de l&#39;attribut equipeA.
Definition: Rencontre.java:178
static final String ADRESSE_MODULE_AFFICHEUR
addrese MAC du module AFFICHEUR
int getManchesJoueursB()
Accesseur de l&#39;attribut manchesJoueursB.
Definition: Partie.java:119
Vector< Joueur > getJoueursA()
Accesseur de l&#39;attribut joueursA.
Definition: Partie.java:79
int getId()
Accesseur de l&#39;attribut iD.
Definition: Partie.java:127
static final int TRAME_AFFICHEUR_SCORE
code pour une trame afficheur de score
Les détails du protocole AREA.
static final String DELIMITEUR_FIN
le délimiteur de fin de trame
static final int TRAME_AFFICHEUR_RENCONTRE
code pour une trame afficheur rencontre
static final String NOM_MODULE_NET
nom du module NET
static final String NOM_MODULE_AFFICHEUR_AREA
nom du module AFFICHEUR
static final String POSITION_GAUCHE
static final String TRAME_SERVICE
la trame d&#39;initialistaion du mode détection
Vector< Joueur > getJoueursB()
Accesseur de l&#39;attribut joueursB.
Definition: Partie.java:87
static String fabriquerTrameAfficheur(int typeTrame, Partie partie)
Méthode permettant de fabiquer les trames à destination du module Afficheur.
static String fabriquerTrameAfficheurRencontre(Rencontre rencontre)
Méthode permettant de fabiquer les trames à destination du module Afficheur dédiée spécifiquement aux...
static boolean verifierTrameNet(String trame)
Méthode permettant de vérifier l&#39;intégrité d&#39;une trame NET.
Vector< Vector< Integer > > getManches()
Definition: Partie.java:145
static final String NOM_MODULE_SCORE_AREA
nom du module SCORE
static String fabriquerTramePosition(boolean estADroite)
static final int TRAME_SCORE_POSITION
code pour une trame Score de position
static final String TAG
TAG pour les logs.
static final String DEBUT_TRAME
début des trame dont l&#39;application est expéditrice
static final String POSITION_DROITE
Classe qui permet la gestion d&#39;une rencontre entre deux équipes.
Definition: Rencontre.java:18
int getPointsJoueursA()
Accesseur de l&#39;attribut pointsJoueursA.
Definition: Partie.java:95
final String getNomClub()
Accesseur de la l&#39;attribut nomClub.
Definition: Equipe.java:61
static final int POSITION_DEUXIEME_JOUEUR
Definition: Partie.java:29
static final String ADRESSE_MODULE_NET
addrese MAC du module NET
static final int TRAME_AFFICHEUR_ETAT_PARTIE
code pour une trame afficheur d&#39;état de partie
static final int TRAME_AFFICHEUR_NET
code pour une trame afficheur NET
int getPointsJoueursB()
Accesseur de l&#39;attribut pointsJoueursB.
Definition: Partie.java:103
static String fabriquerTrameScoreAfficheurDernierPoint(Partie partie)
Classe permettant la gestion d&#39;une partie.
Definition: Partie.java:22
int getManchesJoueursA()
Accesseur de l&#39;attribut manchesJoueursA.
Definition: Partie.java:111
Equipe getEquipeB()
Accesseur de l&#39;attribut equipeB.
Definition: Rencontre.java:187
static final String DELIMITEUR_CHAMP
le délimiteur permettant de séparer les champs des trames
static final int POSITION_PREMIER_JOUEUR
Definition: Partie.java:28
static final int TRAME_AFFICHEUR_INFO_PARTIE
code pour une trame afficheur d&#39;information de partie