Projet Bee-Honey't  0.2
BTS SNIR LaSalle Avignon 2020
ihm.h
Aller à la documentation de ce fichier.
1 #ifndef IHM_H
2 #define IHM_H
3 
11 #include <QtWidgets>
12 #include <QSystemTrayIcon>
13 #include <QtCharts>
14 #include <QDebug>
15 #include <QMessageBox>
16 #include "ruche.h"
17 
18 #define NOM_APPLICATION "Bee Honey't"
19 #define VERSION_APPLICATION "v0.2"
20 
21 #define AXE_TEMPERATURE_MIN -10
22 #define AXE_TEMPERATURE_MAX 50
23 
29 {
35 };
36 
37 class IHMNouvelleRuche;
38 class IHMReglageRuche;
39 class Communication;
40 class Configuration;
41 
42 namespace Ui {
43 class ihm;
44 }
45 
53 class Ihm : public QMainWindow
54 {
55  Q_OBJECT
56 
57 public:
58  explicit Ihm(QWidget *parent = nullptr);
59  ~Ihm();
60 
61  void initialiserGraphiques();
62 
63  void initialiserGraphiqueTemperatures();
64  void initialiserGraphiqueHumidite();
65  void initialiserGraphiqueEnsoleillement();
66  void initialiserGraphiquePression();
67  void initialiserGraphiquePoids();
68  void initialiserGraphiqueActivite();
69 
70  QString getNomRuche();
71 
72 public slots:
73  void setValeurTemperatureInterieure(QString nomDeLaRuche, double temperatureInterieure, QString horodatage);
74  void setValeurTemperatureExterieure(QString nomDeLaRuche, double temperatureExterieure, QString horodatage);
75 
76  void setValeurHumiditeInterieure(QString nomDeLaRuche, double humiditeExterieure, QString horodatage);
77  void setValeurHumiditeExterieure(QString nomDeLaRuche, double humiditeInterieure, QString horodatage);
78 
79  void setValeurEnsoleillement(QString nomDeLaRuche, int ensoleillement, QString horodatage);
80  void setValeurPression(QString nomDeLaRuche, int pression, QString horodatage);
81  void setValeurPoids(QString nomDeLaRuche, double poids, QString horodatage);
82  void setValeurCharge(QString nomDeLaRuche, int charge, QString horodatage);
83 
84 private slots:
85  void on_pushButton_ruches_clicked();
86  void on_pushButton_mesures_clicked();
87  void on_pushButton_graphiques_clicked();
88  void on_pushButton_alertes_clicked();
89  void on_pushButton_nouvelle_ruche_clicked();
90  void on_pushButton_reglage_clicked();
91  void on_pushButton_supprimer_ruche_clicked();
92  void on_pushButton_reglage_ttn_clicked();
93  void on_pushButton_connexion_ttn_clicked();
94  void on_pushButton_enregistrer_configuration_ttn_clicked();
95 
96  void changerAbscisseGraphiques();
97  void changerDonneesVueGlobale();
98  void changerEtatConnexion(int etat);
99 
100  void ajouterNouvelleRuche(Ruche ruche);
101 
102 protected:
103  void closeEvent(QCloseEvent *event);
104 
105 private:
106  Ui::ihm *ui;
109  QSystemTrayIcon *iconeEtatSysteme;
112  QVector<Ruche> ruches;
113 
114  QLineSeries *temperatureInterieure;
115  QVector<QPointF> mesuresTemperatureInterieure;
116 
117  QLineSeries *temperatureExterieure;
118  QVector<QPointF> mesuresTemperatureExterieure;
119 
120  QLineSeries *humidite;
121  QVector<QPointF> mesuresHumidite;
122 
123  QLineSeries *ensoleillement;
124  QVector<QPointF> mesuresEnsoleillement;
125 
126  QLineSeries *pression;
127  QVector<QPointF> mesuresPression;
128 
129  QLineSeries *poids;
130  QVector<QPointF> mesuresPoids;
131 
132  QLineSeries *charge;
133  QVector<QPointF> mesuresCharge;
134 
135  void chargerIconesBoutons();
136  void changerApparenceBouton(PagesIHM);
137  void initialiserWidgets();
138  void initialiserEvenements();
139  void initialiserEntreeBarreEtatSysteme();
140 
141  void chargerConfiguration();
142  void demarrerTTN();
143  void connecterRuches();
144 
145  void afficherGraphiqueTemperatureInterieure();
146  void afficherGraphiqueTemperatureExterieure();
147  void afficherGraphiqueHumidite();
148  void actualiserGraphiqueEnsoleillement();
149  void afficherGraphiquePression();
150  void afficherGraphiquePoids();
151 
152 signals:
153  void sauvegarderConfigurationTTN(QString hostname, int port, QString username, QString password);
154 
155 };
156 
157 #endif // IHM_H
Configuration * configuration
association vers la classe Configuration
Definition: ihm.h:111
QVector< QPointF > mesuresPression
Les mesures pour la courbe de la pression.
Definition: ihm.h:127
Communication * communication
association vers la classe Communication
Definition: ihm.h:110
QLineSeries * poids
La courbe du poids.
Definition: ihm.h:129
Page des graphiques.
Definition: ihm.h:32
QLineSeries * charge
La courbe de la charge.
Definition: ihm.h:132
PagesIHM
Définit les numéros de page de l&#39;IHM.
Definition: ihm.h:28
Page des réglages de TTN.
Definition: ihm.h:34
Definition: ihm.h:42
QVector< QPointF > mesuresEnsoleillement
Les mesures pour la courbe de l&#39;ensoleillement.
Definition: ihm.h:124
QVector< Ruche > ruches
les ruches
Definition: ihm.h:112
Page principale.
Definition: ihm.h:30
La fenêtre pour changer les réglages de la ruche.
Definition: reglageruche.h:27
QLineSeries * temperatureInterieure
La courbe de la température intérieure.
Definition: ihm.h:114
Page des dernières alertes.
Definition: ihm.h:33
Déclaration de la structure Ruche.
QSystemTrayIcon * iconeEtatSysteme
entrée dans la barre d&#39;état du système
Definition: ihm.h:109
Structure qui définit une ruche.
Definition: ruche.h:17
QLineSeries * temperatureExterieure
La courbe de la température extérieure.
Definition: ihm.h:117
QVector< QPointF > mesuresPoids
Les mesures pour la courbe du poids.
Definition: ihm.h:130
IHMReglageRuche * ihmReglageRuche
association vers l&#39;IHM de réglage d&#39;une ruche
Definition: ihm.h:108
QLineSeries * humidite
La courbe de l&#39;humidite.
Definition: ihm.h:120
QLineSeries * ensoleillement
La courbe de l&#39;ensoleillement.
Definition: ihm.h:123
La fenêtre principale de l&#39;application.
Definition: ihm.h:53
Page de la vue globale.
Definition: ihm.h:31
Gère le fichier INI.
Definition: configuration.h:37
Permet de recevoir les données.
Definition: communication.h:24
QLineSeries * pression
La courbe de la pression.
Definition: ihm.h:126
Ui::ihm * ui
interface utilisateur
Definition: ihm.h:106
QVector< QPointF > mesuresTemperatureInterieure
Les mesures pour la courbe de la température intérieure.
Definition: ihm.h:115
IHMNouvelleRuche * ihmNouvelleRuche
association vers l&#39;IHM de création d&#39;une nouvelle ruche
Definition: ihm.h:107
La fenêtre pour créer une nouvelle ruche.
Definition: nouvelleruche.h:30
QVector< QPointF > mesuresHumidite
Les mesures pour la courbe de l&#39;humidité.
Definition: ihm.h:121
QVector< QPointF > mesuresTemperatureExterieure
Les mesures pour la courbe de la température extérieure.
Definition: ihm.h:118
QVector< QPointF > mesuresCharge
Les mesures pour la courbe de la charge.
Definition: ihm.h:133