Projet Bee-Honey't  1.0
BTS SN 2019
Connecteurs publics | Signaux | Fonctions membres publiques | Attributs privés | Liste de tous les membres
Référence de la classe Communication

La classe Communication. Plus de détails...

#include <communication.h>

Graphe de collaboration de Communication:
Collaboration graph

Connecteurs publics

void connecteTTN ()
 slot permetant la connection au serveur ttn Plus de détails...
 
void deconnecteTTN ()
 slot permetant la deconnection au serveur ttn Plus de détails...
 
void receptionner (const QByteArray &message, const QMqttTopicName &topic)
 slot permetant la reception des donnée grace au protocole mqtt Plus de détails...
 
void reponsePingTTN ()
 slot permetant d'effectuer un ping vers le serveur ttn Plus de détails...
 
void changementEtatTTN ()
 slot permetant de recevoir l'etat du serveur ttn Plus de détails...
 
void erreurClientTTN ()
 slot permetant de recevoir les erreur rencontré lors de la connection au serveur ttn Plus de détails...
 

Signaux

void etatClientConnexion (bool connexion)
 
void messageRecu (const QByteArray &message, const QMqttTopicName &topic)
 

Fonctions membres publiques

 Communication (QStringList donneesRucheTTN, QObject *parent=0)
 Constructeur de la classe Communication. Plus de détails...
 
 ~Communication ()
 destructeur de la classse Communication Plus de détails...
 
void connecterTTN ()
 
void deconnecterTTN ()
 

Attributs privés

QMqttClient * client
 
QMqttSubscription * abonnement
 
QStringList donneesRucheTTN
 
QString nomTopic
 
PortsTTN portsTTn
 

Description détaillée

Auteur
Florentin Mellah, Enzo Rossi
Version
0.1

Documentation des constructeurs et destructeur

◆ Communication()

Communication::Communication ( QStringList  donneesRucheTTN,
QObject parent = 0 
)
Paramètres
parentQObject Adresse de l'objet Qt parent (0 = fenêtre principale)

Définition des attributs client , abonement et nomTopic a 0 (=null)

Références changementEtatTTN(), client, connecterTTN(), connecteTTN(), deconnecteTTN(), erreurClientTTN(), nomTopic, receptionner(), et reponsePingTTN().

28 {
29  nomTopic = donneesRucheTTN.at(6) + "/devices/" + donneesRucheTTN.at(2) + "/up";
30  qDebug()<< Q_FUNC_INFO << "donneesRucheTTN" << donneesRucheTTN << "nomTopic" << nomTopic;
31  client = new QMqttClient();
32  connect(client, SIGNAL(stateChanged(ClientState)), this, SLOT(changementEtatTTN()));
33  connect(client, SIGNAL(errorChanged(ClientError)), this, SLOT(erreurClientTTN()));
34  connect(client, SIGNAL(connected()), this, SLOT(connecteTTN()));
35  connect(client, SIGNAL(disconnected()), this, SLOT(deconnecteTTN()));
36  connect(client, SIGNAL(messageReceived(const QByteArray &, const QMqttTopicName &)), this, SLOT(receptionner(const QByteArray &, const QMqttTopicName &)));
37  connect(client, SIGNAL(pingResponseReceived()), this, SLOT(reponsePingTTN()));
38  connecterTTN();
39 }
void changementEtatTTN()
slot permetant de recevoir l&#39;etat du serveur ttn
Definition: communication.cpp:124
void receptionner(const QByteArray &message, const QMqttTopicName &topic)
slot permetant la reception des donnée grace au protocole mqtt
Definition: communication.cpp:103
void connecteTTN()
slot permetant la connection au serveur ttn
Definition: communication.cpp:71
void deconnecteTTN()
slot permetant la deconnection au serveur ttn
Definition: communication.cpp:89
QMqttClient * client
Definition: communication.h:44
void connecterTTN()
Definition: communication.cpp:52
void reponsePingTTN()
slot permetant d&#39;effectuer un ping vers le serveur ttn
Definition: communication.cpp:113
QMqttSubscription * abonnement
Definition: communication.h:45
QStringList donneesRucheTTN
Definition: communication.h:46
void erreurClientTTN()
slot permetant de recevoir les erreur rencontré lors de la connection au serveur ttn ...
Definition: communication.cpp:142
QString nomTopic
Definition: communication.h:47

◆ ~Communication()

Communication::~Communication ( )

Références abonnement, client, et deconnecterTTN().

45 {
47  delete abonnement;
48  delete client;
49  qDebug() << Q_FUNC_INFO;
50 }
void deconnecterTTN()
Definition: communication.cpp:62
QMqttClient * client
Definition: communication.h:44
QMqttSubscription * abonnement
Definition: communication.h:45

Documentation des fonctions membres

◆ changementEtatTTN

void Communication::changementEtatTTN ( )
slot

Références client.

Référencé par Communication().

125 {
126  // Pour le debug
127  QString message;
128  switch(client->state())
129  {
130  case 0: message = "Déconnecté"; break;
131  case 1: message = "En cours de connexion"; break;
132  case 2: message = "Connecté"; break;
133  }
134  qDebug()<< Q_FUNC_INFO << "client MQTT" << message << "state=" << client->state();
135 }
QMqttClient * client
Definition: communication.h:44

◆ connecterTTN()

void Communication::connecterTTN ( )

Références client, et donneesRucheTTN.

Référencé par Communication().

53 {
54  qDebug()<< Q_FUNC_INFO << donneesRucheTTN.at(4) << donneesRucheTTN.at(5).toInt() << donneesRucheTTN.at(6) << donneesRucheTTN.at(7);
55  client->setHostname(donneesRucheTTN.at(4));
56  client->setPort(donneesRucheTTN.at(5).toInt());
57  client->setUsername(donneesRucheTTN.at(6));
58  client->setPassword(donneesRucheTTN.at(7));
59  client->connectToHost();
60 }
QMqttClient * client
Definition: communication.h:44
QStringList donneesRucheTTN
Definition: communication.h:46

◆ connecteTTN

void Communication::connecteTTN ( )
slot

Références abonnement, APP_TITRE, client, etatClientConnexion(), et nomTopic.

Référencé par Communication().

72 {
73  qDebug() << Q_FUNC_INFO << nomTopic;
74  // Le client est maintenant connecté
75  emit etatClientConnexion(true); // pour l'IHM
76  // Souscription à un topic :
77  abonnement = client->subscribe(nomTopic);
78  if (!abonnement)
79  {
80  qDebug() << Q_FUNC_INFO << "Impossible de s'abonner au broker TTN !";
81  QMessageBox::critical(0, QString::fromUtf8(APP_TITRE), QString::fromUtf8("Impossible de s'abonner au broker The Things Network!"));
82  }
83 }
#define APP_TITRE
Definition: parametres.h:17
void etatClientConnexion(bool connexion)
QMqttClient * client
Definition: communication.h:44
QMqttSubscription * abonnement
Definition: communication.h:45
QString nomTopic
Definition: communication.h:47

◆ deconnecterTTN()

void Communication::deconnecterTTN ( )

Références client.

Référencé par ~Communication().

63 {
64  client->disconnectFromHost();
65 }
QMqttClient * client
Definition: communication.h:44

◆ deconnecteTTN

void Communication::deconnecteTTN ( )
slot

Références etatClientConnexion().

Référencé par Communication().

90 {
91  qDebug()<< Q_FUNC_INFO;
92  // Le client est maintenant déconnecté
93  emit etatClientConnexion(false); // pour l'IHM
94 }
void etatClientConnexion(bool connexion)

◆ erreurClientTTN

void Communication::erreurClientTTN ( )
slot
A faire:
Faire une boîte de dialogue d'information sur l'erreur rencontrée

Références client.

Référencé par Communication().

143 {
144 
145  /*QMqttClient::NoError 0 No error occurred.
146  QMqttClient::InvalidProtocolVersion 1 The broker does not accept a connection using the specified protocol version.
147  QMqttClient::IdRejected 2 The client ID is malformed. This might be related to its length.
148  QMqttClient::ServerUnavailable 3 The network connection has been established, but the service is unavailable on the broker side.
149  QMqttClient::BadUsernameOrPassword 4 The data in the username or password is malformed.
150  QMqttClient::NotAuthorized 5 The client is not authorized to connect.
151  QMqttClient::TransportInvalid 256 The underlying transport caused an error. For example, the connection might have been interrupted unexpectedly.
152  QMqttClient::ProtocolViolation 257 The client encountered a protocol violation, and therefore closed the connection.
153  QMqttClient::UnknownError 258 An unknown error occurred.
154  QMqttClient::Mqtt5SpecificError 259 The error is related to MQTT protocol level 5. A reason code might provide more details.*/
155 
159  qDebug()<< Q_FUNC_INFO << "code erreur" << client->error();
160 }
QMqttClient * client
Definition: communication.h:44

◆ etatClientConnexion

void Communication::etatClientConnexion ( bool  connexion)
signal

Référencé par connecteTTN(), et deconnecteTTN().

◆ messageRecu

void Communication::messageRecu ( const QByteArray &  message,
const QMqttTopicName &  topic 
)
signal

Référencé par receptionner().

◆ receptionner

void Communication::receptionner ( const QByteArray &  message,
const QMqttTopicName &  topic 
)
slot
Paramètres
messagecorrespondant au données recu
topiccorrespondant au nom de topic

Références messageRecu().

Référencé par Communication().

104 {
105  emit messageRecu(message, topic);
106 }
void messageRecu(const QByteArray &message, const QMqttTopicName &topic)

◆ reponsePingTTN

void Communication::reponsePingTTN ( )
slot

Référencé par Communication().

114 {
115  // Pour les tests (requestPing())
116  qDebug()<< Q_FUNC_INFO;
117 }

Documentation des données membres

◆ abonnement

QMqttSubscription* Communication::abonnement
private

Référencé par connecteTTN(), et ~Communication().

◆ client

QMqttClient* Communication::client
private

◆ donneesRucheTTN

QStringList Communication::donneesRucheTTN
private

Référencé par connecterTTN().

◆ nomTopic

QString Communication::nomTopic
private

Référencé par Communication(), et connecteTTN().

◆ portsTTn

PortsTTN Communication::portsTTn
private

La documentation de cette classe a été générée à partir des fichiers suivants :