Ecran-DARTS  1.1
BTS SNIR LaSalle Avignon 2021
communication.h
Aller à la documentation de ce fichier.
1 #ifndef COMMUNICATION_H
2 #define COMMUNICATION_H
3 
13 #include <QObject>
14 #include <QString>
15 #include <QBluetoothLocalDevice>
16 #include <QBluetoothServer>
17 #include <QBluetoothSocket>
18 
19 // Les états
24 #define ETAT_PARTIE_ATTENTE 0
25 
29 #define ETAT_PARTIE_EN_COURS 1
30 
34 #define ETAT_PARTIE_FIN 2
35 
36 //Trame de début : $DARTS;START;TYPE_PARTIE;NB_JOUEURS;NOMS\r\n
41 #define CHAMP_TYPE_PARTIE 2
42 
46 #define CHAMP_NB_JOUEURS 3
47 
51 #define CHAMP_DEBUT_NOM_JOUEUR 4
52 //Trame de touche : $DARTS;HIT;valeurTouche;multiplicateurTouche;ID\r\n
57 #define CHAMP_TOUCHE 2
58 
62 #define CHAMP_MULTIPLICATEUR 3
63 
67 #define CHAMP_ID 4
68 
69 #define CHAMP_LE_GAGNANT 2
70 
71 static const QString serviceUuid(QStringLiteral("0000110a-0000-1000-8000-00805f9b34fb"));
72 static const QString serviceNom(QStringLiteral("ecran-darts"));
73 
74 class Communication : public QObject
75 {
76  Q_OBJECT
77 
78  private:
79  QBluetoothServer *serveur;
80  QBluetoothSocket *socket;
81  QBluetoothLocalDevice localDevice;
82  QString localDeviceName;
83  QBluetoothServiceInfo serviceInfo;
84  QString trame;
85  int etatPartie;
86 
87  void configurer();
88  void deconnecter();
89  bool traiterTrame();
90 
91  void effacerTrame();
92 
93 public:
94  Communication(QObject *parent = nullptr);
95  ~Communication();
96 
97  void demarrer();
98  void arreter();
99  bool estConnecte();
100 
101  public slots:
102  void connecter();
103  void socketDisconnected();
104  void recevoir();
105  void envoyer(QString trame);
106  void deviceConnected(const QBluetoothAddress &adresse);
107  void deviceDisconnected(const QBluetoothAddress &adresse);
108  void error(QBluetoothLocalDevice::Error erreur);
109 
110  signals:
111  void connexionMobileDarts();
112  void deconnexionMobileDarts();
113  void connexionAppareil();
114  void deconnexionAppareil();
115  void tramePartieRecue(QString typePartie, int nbJoueurs);
116  void listeJoueurs(QStringList nomsJoueur);
117  void trameToucheRecue(int id, int touche, int multiplicateur);
118  void trameAcquittementRecue();
120  void tramePartieFinRecue(QString leGagnant);
121  void partieEnAttente(int etatPartie);
122  void partieEnCours(int etatPartie);
123  void partieFini(int etatPartie);
124 };
125 
126 #endif // COMMUNICATION_H
Communication::error
void error(QBluetoothLocalDevice::Error erreur)
Renvoie une erreur.
Definition: communication.cpp:379
Communication::etatPartie
int etatPartie
Défini les états de la partie.
Definition: communication.h:85
Communication::tramePartieFinRecue
void tramePartieFinRecue(QString leGagnant)
Signal qui est envoyer quand la trame de fin et reçu.
Communication::connexionMobileDarts
void connexionMobileDarts()
Signal qui est envoyer lors de la connection Bluetooth.
Communication::localDevice
QBluetoothLocalDevice localDevice
L'interface add Widjet Bluetooth de la Raspberry Pi.
Definition: communication.h:81
Communication::deviceConnected
void deviceConnected(const QBluetoothAddress &adresse)
Vérifie si l'appreille est connecter.
Definition: communication.cpp:352
serviceNom
static const QString serviceNom(QStringLiteral("ecran-darts"))
Communication::~Communication
~Communication()
Déstruteur de la classe Communication.
Definition: communication.cpp:35
Communication::connexionAppareil
void connexionAppareil()
Signal qui est envoyer quand l'appareil est connecter.
Communication::recevoir
void recevoir()
Recoit les trames envoyer.
Definition: communication.cpp:206
Communication::partieEnCours
void partieEnCours(int etatPartie)
Signal qui change l'état de la partie et qui la met en cours.
Communication::envoyer
void envoyer(QString trame)
Envoie la trame.
Definition: communication.cpp:192
Communication
Definition: communication.h:74
Communication::traiterTrame
bool traiterTrame()
Méthode qui traite la trame.
Definition: communication.cpp:235
Communication::localDeviceName
QString localDeviceName
Le nom de l'appareil.
Definition: communication.h:82
Communication::serviceInfo
QBluetoothServiceInfo serviceInfo
Informations sur le service bluetooth.
Definition: communication.h:83
Communication::serveur
QBluetoothServer * serveur
Le serveur Bluetooth.
Definition: communication.h:79
Communication::connecter
void connecter()
Connecte la socket de communication Bluetooth.
Definition: communication.cpp:134
Communication::deconnexionAppareil
void deconnexionAppareil()
Signal qui est envoyer quand l'appareil est déconnecter.
Communication::tramePartieRecue
void tramePartieRecue(QString typePartie, int nbJoueurs)
Signal qui contient le type de partie et le nombres de joueurs.
Communication::socket
QBluetoothSocket * socket
La socket de communication Bluetooth.
Definition: communication.h:80
Communication::deconnecter
void deconnecter()
Méthode qui déconnect le bluetooth.
Definition: communication.cpp:153
Communication::socketDisconnected
void socketDisconnected()
Déconnecte la socket de communication Bluetooth.
Definition: communication.cpp:181
Communication::listeJoueurs
void listeJoueurs(QStringList nomsJoueur)
Signal qui contient la liste de nom des joueurs.
Communication::deviceDisconnected
void deviceDisconnected(const QBluetoothAddress &adresse)
Emet le signal deconnexionAppareil()
Definition: communication.cpp:368
serviceUuid
static const QString serviceUuid(QStringLiteral("0000110a-0000-1000-8000-00805f9b34fb"))
Communication::configurer
void configurer()
Méthode qui configure la connexion Bluetooth en mode serveur.
Definition: communication.cpp:47
Communication::partieFini
void partieFini(int etatPartie)
Signal qui change l'état de la partie et qui la met en attente.
Communication::estConnecte
bool estConnecte()
Méthode qui vérifie la connection Bluetooth.
Definition: communication.cpp:167
Communication::deconnexionMobileDarts
void deconnexionMobileDarts()
Signal qui est envoyer lors de la déconnection Bluetooth.
Communication::partieEnAttente
void partieEnAttente(int etatPartie)
Signal qui change l'état de la partie et qui la met en attente.
Communication::Communication
Communication(QObject *parent=nullptr)
Constructeur de la classe Communication.
Definition: communication.cpp:23
QObject
Communication::trameReinitialisationRecue
void trameReinitialisationRecue()
Signal qui est envoyer quand la trame de reinitialisation et reçu.
Communication::arreter
void arreter()
Méthode qui arrête le serveur Bluetooth
Definition: communication.cpp:106
Communication::trame
QString trame
Attribut qui contient la trame.
Definition: communication.h:84
Communication::trameToucheRecue
void trameToucheRecue(int id, int touche, int multiplicateur)
Signal qui contient l'identifiant de la touche, la valeur de la touche et le multiplcateur de touche.
Communication::effacerTrame
void effacerTrame()
Méthode qui efface la trame.
Definition: communication.cpp:225
Communication::demarrer
void demarrer()
Méthode qui démarre le serveur Bluetooth.
Definition: communication.cpp:81
Communication::trameAcquittementRecue
void trameAcquittementRecue()
Signal qui est envoyer quand la trame d'aquittement et reçu.