Projet Bee-Honey't  1.0
BTS SN 2019
ruche.h
Aller à la documentation de ce fichier.
1 #ifndef RUCHE_H
2 #define RUCHE_H
3 
16 #include <QString>
17 #include <QtMqtt/QtMqtt>
18 #include <QtMqtt/QMqttClient>
19 #include "parametres.h"
20 
22 class InfosHumidite;
24 class InfosTemperature;
25 class InfosBatterie;
26 class InfosPoids;
27 class Communication;
28 class BaseDeDonnees;
29 class Alertes;
30 
31 // Les structures de données pour les mesures
33 {
34  QString tension;
36  QString courant;
38  QString charge;
40 };
41 
42 // La structure de données pour les mesures horodatées
44 {
46  QString poids;
47  QString horodatagePoids;
58  QString ensoleillement;
60 };
61 
63 {
64  int heure;
73 };
74 
76 {
77  int heure;
90 };
91 
93 {
94  int heure;
99 };
100 
101 
102 
115 class Ruche : public QObject
116 {
117  Q_OBJECT
118 
119  public:
120  Ruche(QStringList donneesRucheTTN, QObject *parent = 0);
121  ~Ruche();
122 
123  Alertes* getAlertes();
124 
125  private:
135  QStringList donneesRucheTTN;
140 
141  void connecterGestionMessageTraite();
142  void connecterGestionMessageBrut();
143  QString extraireDonneesBrutes(const QByteArray &message);
144  QString extrairePoids(const QString &donneesBrutes);
145  PortsTTN recupererNumeroDePort(QByteArray message);
146  void extraireDonnees(PortsTTN port, QByteArray message);
147  QString recupererDonnees(QByteArray message, QString objetJson, QString sousObjetJson);
148  QString recupererHorodatage(QByteArray message, QString objetJson, QString sousObjetJson);
149  void gererAlertes();
150  void insererDonneesPortMesureRuche();
151  void insererDonneesPortMesureEnvironnement();
152  void insererDonneesPortEnsoleillement();
153  void insererDonneesPortPoids();
154  void insererDonneesPortBatterie();
155  void insererMesureHoraireRuche();
156  void insererMesureHoraireEnvironnement();
157  void insererMesureHoraireEnsoleillement();
158  void insererMesureHorairePoids();
159  void insererMesureHoraireBatterie();
160 
161  public slots:
162  void recevoirMessage(const QByteArray &message, const QMqttTopicName &topic);
163  void recevoirEtatClientConnexion(bool);
164  /********************Slots Mesure****************************/
165  void recevoirTemperatureInterieurTraite(double temperatureInterieur,QString horodatage);
166  void recevoirMesureHumiditeInterieurTraite(double humiditeInterieurTraite,QString horodatage);
167  void recevoirTemperatureExterieurTraite(double temperatureExterieur, QString horodatage);
168  void recevoirMesureHumiditeExterieurTraite(double humiditeExterieurTraite, QString horodatage);
169  void recevoirEnsoleillementTraite(double ensoleillement,QString horodatage);
170  void recevoirPressionAtmospheriqueTraite(double pressionAtmospherique,QString horodatage);
171  void recevoirMesureTensionTraite(double tension, QString);
172  void recevoirMesureCourantTraite(double courant, QString);
173  void recevoirMesureChargeTraite(double charge, QString);
174  void recevoirMesurePoidsTraite(double poids, QString);
175 
176  /********************Slots calcul Moyenne****************************/
177  void recevoirTraitementTemperatureInterieur(const double temperatureInterieurMoyenne , const double temperatureInterieurMinimum , const double temperatureInterieurMaximum, int heure);
178  void recevoirTraitementTemperatureExterieur(const double temperatureExterieurMoyenne ,const double temperatureExterieurMinimum ,const double temperatureExterieurMaximum, int heure);
179  void recevoirTraitementHumiditeInterieur(const double temperatureInterieurMoyenne ,const double temperatureInterieurMinimum ,const double temperatureInterieurMaximum, int heure);
180  void recevoirTraitementHumiditeExterieur(const double humiditeExterieursMoyenne , const double humiditeExterieursMinimum , const double humiditeExterieursMaximum, int heure);
181  void recevoirTraitementPressionAtmospherique(const double pressionAtmospheriqueMoyenne, const double pressionAtmospheriqueMinimum, const double pressionAtmospheriqueMaximum, int heure);
182  void recevoirTraitementEnsoleillement(const double ensoleillementsMoyen , const double ensoleillementsMinimum , const double temperatureExterieurMaximum, int heure);
183  /*void recevoirTraitementCharge();
184  void recevoirTraitementPoids();*/
185 
186  /********************Slots Alertes****************************/
187  void recevoirAlertesTemperatureInterieur(SeuilsAlertes seuilsAlertes);
188  void recevoirAlertesTemperatureExterieur(SeuilsAlertes seuilsAlertes);
189  void recevoirAlertesHumiditeInterieur(SeuilsAlertes seuilsAlertes);
190  void recevoirAlertesHumiditeExterieur(SeuilsAlertes seuilsAlertes);
191  void recevoirAlertesPressionAtmospherique(SeuilsAlertes seuilsAlertes);
192  void recevoirAlertesPoids(SeuilsAlertes);
193  void recevoirAlertesEnsoleillement(SeuilsAlertes, double niveauEnsoleillement);
194  void recevoirAlertesBatterie(SeuilsAlertes, double);
195 
196  signals:
197  /********************SIGNAUX VERS CLASSE INFOS****************************/
198  void nouvelleMesurePoids(QString poids , QString horodatagePoids);
199  void nouvelleTemperatureInterieur(QString temperatureInterieur,QString horodatage);
200  void nouvelleHumiditeInterieur(QString humiditeInterieur,QString horodatage);
201  void nouvelleTemperatureExterieur(QString temperatureExterieur,QString horodatage);
202  void nouvelleHumiditeExterieur(QString humiditeExterieur,QString horodatage);
203  void nouvellePressionAtmospherique(QString pressionAtmospherique,QString horodatage);
204  void nouvelleMesureEnsoleillement(QString ensoleillement,QString horodatage);
205  void nouvelleMesureCharge(QString charge, QString horodatage);
206  void nouvelleMesureCourant(QString courant, QString horodatage);
207  void nouvelleMesureTension(QString tension, QString horodatage);
208 
209  /********************** SIGNAUX VERS IHM **********************************/
210  void nouvelleMesureTemperatureInterieurTraite(double temperatureInterieurTraite ,QString horodatage);
211  void nouvelleMesureHumiditeInterieurTraite(double humiditeInterieurTraite ,QString horodatage);
212  void nouvelleMesureTemperatureExterieurTraite(double temperatureExterieur, QString horodatage);
213  void nouvelleMesureHumiditeExterieurTraite(double humiditeExterieurTraite, QString horodatage);
214  void nouvelleMesureEnsoleillementTraite(double ensoleillement, QString horodatage);
215  void nouvellePressionAtmospheriqueTraite(double pressionAtmospherique, QString horodatage);
216  void nouvelleMesureTension(double tension, QString horodatage);
217  void nouvelleMesureCourant(double courant, QString horodatage);
218  void nouvelleMesureCharge(double charge, QString horodatage);
219  void nouvelleMesurePoids(double poids, QString horodatage);
220  void nouvelleMesureTemperatureInterieurTraiteParHeure();
221  void nouvelleMesureTemperatureExterieurTraiteParHeure();
222  void nouvelleMesureHumiditeInterieurTraiteParHeure();
223  void nouvelleMesureHumiditeExterieurTraiteParHeure();
224  void nouvelleMesurePressionAtmospheriqueTraiteParHeure();
225  void nouvelleMesureEnsoleillementTraiteParHeure();
226 
227  void envoiAlertesTemperatureInterieur(SeuilsAlertes);
228  void envoiAlertesTemperatureExterieur(SeuilsAlertes);
229  void envoiAlertesHumiditeInterieur(SeuilsAlertes);
230  void envoiAlertesHumiditeExterieur(SeuilsAlertes);
231  void envoiAlertesPressionAtmospherique(SeuilsAlertes);
232  void envoiAlertesPoids(SeuilsAlertes);
233  void envoiAlertesEnsoleillement(SeuilsAlertes, double);
234  void envoiAlertesBatterie(SeuilsAlertes, double);
235  void etatClientConnexion(bool connexion);
236 };
237 
238 #endif // RUCHE_H
239 
InfosBatterie * infosBatterie
Definition: ruche.h:130
double temperatureExterieurMaximum
Definition: ruche.h:81
double temperatureInterieurMinimum
Definition: ruche.h:67
Paramètres généraux de l&#39;application.
QString horodatageTemperatureExterieur
Definition: ruche.h:53
bool temperaturesRecues
Definition: ruche.h:65
La classe Ruche.
Definition: ruche.h:115
QString temperatureInterieur
Definition: ruche.h:48
QString horodatageHumiditeInterieur
Definition: ruche.h:51
Communication * communicationRuche
Definition: ruche.h:132
InfosEnsoleillement * ensoleillementRuche
Definition: ruche.h:126
QString tension
Definition: ruche.h:34
double humiditeExterieurMaximum
Definition: ruche.h:85
QString horodatageTemperatureInterieur
Definition: ruche.h:49
double humiditeExterieurMinimum
Definition: ruche.h:84
int heure
Definition: ruche.h:77
La classe des alertes.
Definition: alertes.h:28
QString courant
Definition: ruche.h:36
PortsTTN
Definition: parametres.h:77
Definition: baseDeDonnees.h:25
La classe InfosHumidite.
Definition: infosHumidite.h:32
double humiditeInterieurMaximum
Definition: ruche.h:72
Definition: ruche.h:92
double humiditeInterieurMinimum
Definition: ruche.h:71
BaseDeDonnees * bdd
agrégation de l&#39;objet BaseDeDonnees
Definition: ruche.h:133
QString horodatagecourant
Definition: ruche.h:37
La classe InfosEnsoleillement.
Definition: infosEnsoleillement.h:32
Definition: ruche.h:32
Definition: infosBatterie.h:7
La classe InfosTemperature.
Definition: infosTemperature.h:32
double pressionAtmospheriqueMinimum
Definition: ruche.h:87
double ensoleillementsMinimum
Definition: ruche.h:96
bool pressionAtmospheriqueRecues
Definition: ruche.h:89
int heure
Definition: ruche.h:64
QString horodatagePressionAtmospherique
Definition: ruche.h:57
double pressionAtmospheriqueMoyenne
Definition: ruche.h:86
Alertes * alertes
Definition: ruche.h:134
Definition: infosPoids.h:7
QString charge
Definition: ruche.h:38
QString ensoleillement
Definition: ruche.h:58
SeuilsAlertes
Definition: parametres.h:55
double temperatureExterieurMoyenne
Definition: ruche.h:79
QStringList donneesRucheTTN
Definition: ruche.h:135
bool temperaturesRecues
Definition: ruche.h:78
Definition: ruche.h:62
InfosHumidite * humiditeRuche
Definition: ruche.h:127
QString horodatagePoids
Definition: ruche.h:47
MesureHoraireEnvironement mesureHoraireEnvironement
Definition: ruche.h:138
int heure
Definition: ruche.h:94
QString horodatageHumiditeExterieur
Definition: ruche.h:55
bool ensoleillementsRecues
Definition: ruche.h:98
double temperatureInterieurMaximum
Definition: ruche.h:68
InfosPoids * infosPoids
Definition: ruche.h:131
double humiditeInterieurMoyenne
Definition: ruche.h:70
Definition: ruche.h:43
QString humiditeInterieur
Definition: ruche.h:50
Definition: ruche.h:75
bool humiditesRecues
Definition: ruche.h:82
double ensoleillementsMaximum
Definition: ruche.h:97
QString poids
Definition: ruche.h:46
La classe Communication.
Definition: communication.h:32
QString temperatureExterieur
Definition: ruche.h:52
La classe InfosPressionAtmospherique.
Definition: infosPressionAtmospherique.h:34
QString horodatagecharge
Definition: ruche.h:39
QString horodatageEnsoleillement
Definition: ruche.h:59
double ensoleillementsMoyen
Definition: ruche.h:95
DonneesBatterie donneesBatterie
Definition: ruche.h:45
double pressionAtmospheriqueMaximum
Definition: ruche.h:88
double humiditeExterieurMoyenne
Definition: ruche.h:83
QString pressionAtmospherique
Definition: ruche.h:56
QString humiditeExterieur
Definition: ruche.h:54
InfosPressionAtmospherique * pressionAtmospheriqueRuche
Definition: ruche.h:128
QString horodatagetension
Definition: ruche.h:35
DonneesRuche donneesRuche
Definition: ruche.h:136
double temperatureInterieurMoyenne
Definition: ruche.h:66
double temperatureExterieurMinimum
Definition: ruche.h:80
MesuresHoraireEnsoleillement mesuresHorraireEnsoleillement
Definition: ruche.h:139
InfosTemperature * temperatureRuche
Definition: ruche.h:129
bool humiditesRecues
Definition: ruche.h:69
MesureHoraireRuche mesureHoraireRuche
Definition: ruche.h:137