Projet Bee-Honey't  0.2
BTS SNIR LaSalle Avignon 2020
communication.h
Aller à la documentation de ce fichier.
1 #ifndef COMMUNICATION_H
2 #define COMMUNICATION_H
3 
11 #include <QObject>
12 #include <QtMqtt/QtMqtt>
13 #include <QDebug>
14 
15 class Ihm;
16 
24 class Communication : public QObject
25 {
26  Q_OBJECT
27 
28 public:
29  Communication(QObject *parent = nullptr);
31 
32  void connecterTTN(QString hostname, int port, QString username, QString password);
33  void souscrireTopic(QString topic);
34  void desabonnerTopic(QString topic);
35 
36 private:
37  QMqttClient *client;
38  QMqttSubscription *subscription;
39  Ihm *ihm;
40 
41  QString extraireHorodatage(QJsonObject objetJSON);
42  QString extraireDeviceID(QJsonObject objetJSON, QStringList listeCles, int position);
43  double extraireTemperatureInterieure(QJsonObject objetJSON);
44  double extraireTemperatureExterieure(QJsonObject objetJSON);
45  double extraireHumiditeInterieure(QJsonObject objetJSON);
46  double extraireHumiditeExterieure(QJsonObject objetJSON);
47  int extraireEnsoleillement(QJsonObject objetJSON);
48  int extrairePression(QJsonObject objetJSON);
49  double extrairePoids(QJsonObject objetJSON);
50  int extraireCharge(QJsonObject objetJSON);
51 
52  QString formaterHorodatage(QString horodatageBrut);
53 
54 public slots:
55  void decoderJson(const QByteArray &json);
56  void changerEtatConnexion();
57 
58 signals:
59  void nouvelleValeurTemperatureInterieure(QString nomDeLaRuche, double temperatureInterieure, QString horodatage);
60  void nouvelleValeurTemperatureExterieure(QString nomDeLaRuche, double temperatureExterieure, QString horodatage);
61  void nouvelleValeurEnsoleillement(QString nomDeLaRuche, int ensoleillement, QString horodatage);
62  void nouvelleValeurHumiditeInterieure(QString nomDeLaRuche, double humiditeInterieure, QString horodatage);
63  void nouvelleValeurHumiditeExterieure(QString nomDeLaRuche, double humiditeExterieure, QString horodatage);
64  void nouvelleValeurPression(QString nomDeLaRuche, int pression, QString horodatage);
65  void nouvelleValeurPoids(QString nomDeLaRuche, double poids, QString horodatage);
66  void nouvelleValeurCharge(QString nomDeLaRuche, int charge, QString horodatage);
67  void nouvelEtatConnexion(int etat);
68 };
69 
70 #endif // COMMUNICATION_H
int extraireEnsoleillement(QJsonObject objetJSON)
Méthode pour extraire l&#39;ensoleillement de l&#39;objet JSON.
void nouvelleValeurPression(QString nomDeLaRuche, int pression, QString horodatage)
double extraireTemperatureInterieure(QJsonObject objetJSON)
Méthode pour extraire la température intérieure de l&#39;objet JSON.
void changerEtatConnexion()
Méthode pour notifier un changement d&#39;état de la connexion TTN.
double extraireHumiditeExterieure(QJsonObject objetJSON)
Méthode pour extraire l&#39;humidité extérieure de l&#39;objet JSON.
void nouvelleValeurTemperatureExterieure(QString nomDeLaRuche, double temperatureExterieure, QString horodatage)
~Communication()
Destructeur de la classe Communication.
void nouvelleValeurCharge(QString nomDeLaRuche, int charge, QString horodatage)
QString extraireDeviceID(QJsonObject objetJSON, QStringList listeCles, int position)
Méthode pour extraire le device ID de l&#39;objet JSON.
void nouvelleValeurPoids(QString nomDeLaRuche, double poids, QString horodatage)
void desabonnerTopic(QString topic)
Méthode pour se désabonner d&#39;un topic TTN.
int extraireCharge(QJsonObject objetJSON)
Méthode pour extraire la charge de la batterie le l&#39;objet JSON.
QMqttSubscription * subscription
Definition: communication.h:38
void souscrireTopic(QString topic)
Méthode pour s&#39;abonner à un topic TTN.
QString formaterHorodatage(QString horodatageBrut)
Méthode pour mettre dans le bon format l&#39;horodatage reçu.
Ihm * ihm
interface utilisateur
Definition: communication.h:39
void decoderJson(const QByteArray &json)
Méthode pour décoder le JSON reçu.
void nouvelleValeurHumiditeExterieure(QString nomDeLaRuche, double humiditeExterieure, QString horodatage)
int extrairePression(QJsonObject objetJSON)
Méthode pour extraire la pression de l&#39;objet JSON.
QMqttClient * client
Definition: communication.h:37
void connecterTTN(QString hostname, int port, QString username, QString password)
Méthode pour se connecter à TTN.
La fenêtre principale de l&#39;application.
Definition: ihm.h:53
Permet de recevoir les données.
Definition: communication.h:24
void nouvelleValeurEnsoleillement(QString nomDeLaRuche, int ensoleillement, QString horodatage)
QString extraireHorodatage(QJsonObject objetJSON)
Méthode pour extraire le temps de l&#39;objet JSON.
double extrairePoids(QJsonObject objetJSON)
Méthode pour extraire le poids le l&#39;objet JSON.
void nouvelleValeurTemperatureInterieure(QString nomDeLaRuche, double temperatureInterieure, QString horodatage)
double extraireHumiditeInterieure(QJsonObject objetJSON)
Méthode pour extraire l&#39;humidité intérieure de l&#39;objet JSON.
double extraireTemperatureExterieure(QJsonObject objetJSON)
Méthode pour extraire la température extérieure de l&#39;objet JSON.
Communication(QObject *parent=nullptr)
Constructeur de la classe Communication.
void nouvelleValeurHumiditeInterieure(QString nomDeLaRuche, double humiditeInterieure, QString horodatage)
void nouvelEtatConnexion(int etat)