8 #include <QGraphicsScene> 9 #include <QGraphicsRectItem> 10 #include <QGraphicsView> 33 indexRucheSelectionnee(-1)
35 qDebug() << Q_FUNC_INFO;
60 qDebug() << Q_FUNC_INFO;
72 ui->lcdTemperatureInterieure->display(temperatureInterieure);
73 ui->labelUniteTemperatureInterieure->setText(uniteTemperature);
85 ui->lcdTemperatureExterieure->display(temperatureExterieure);
86 ui->labelUniteTemperatureExterieure->setText(uniteTemperature);
98 ui->lcdHumiditeInterieure->display(humiditeInterieure);
99 ui->labelUniteHumiditeInterieure->setText(uniteHumidite);
111 ui->lcdHumiditeExterieure->display(humiditeExterieure);
112 ui->labelUniteHumiditeExterieure->setText(uniteHumidite);
124 ui->lcdPoids->display(poids);
125 ui->labelUnitePoids->setText(unitePoids);
137 ui->lcdPression->display(pression);
138 ui->labelUnitePression->setText(unitePression);
148 ui->boutonTTN->setText(
"Déconnecter");
149 ui->labelEtatConnexion->setPixmap(QPixmap(QDir::currentPath() +
"/images/boutton_vert.png"));
150 qDebug() << Q_FUNC_INFO <<
"Ruche sélectionnée (connectee)" <<
ui->listeRuches->currentText() <<
rucher[
ui->listeRuches->currentIndex()]->getDeviceID();
162 ui->boutonTTN->setText(
"Connecter");
163 ui->labelHorodatage->setText(
"");
164 ui->lcdTemperatureInterieure->display(0.);
165 ui->lcdTemperatureExterieure->display(0.);
166 ui->lcdHumiditeInterieure->display(0.);
167 ui->lcdHumiditeExterieure->display(0.);
168 ui->lcdPoids->display(0.);
169 ui->lcdPression->display(0.);
170 ui->labelAlerteTemperatureExterieure->setPixmap(QPixmap(QDir::currentPath() +
""));
171 ui->labelAlerteTemperatureInterieure->setPixmap(QPixmap(QDir::currentPath() +
""));
172 ui->labelAlerteHumiditeExterieure->setPixmap(QPixmap(QDir::currentPath() +
""));
173 ui->labelAlerteHumiditeInterieure->setPixmap(QPixmap(QDir::currentPath() +
""));
174 ui->labelAlertePoids->setPixmap(QPixmap(QDir::currentPath() +
""));
175 ui->labelAlertePression->setPixmap(QPixmap(QDir::currentPath() +
""));
177 ui->labelEtatConnexion->setPixmap(QPixmap(QDir::currentPath() +
"/images/boutton_rouge.png"));
178 qDebug() << Q_FUNC_INFO <<
"Ruche sélectionnée (deconnectee)" <<
ui->listeRuches->currentText() <<
rucher[
ui->listeRuches->currentIndex()]->getDeviceID();
203 ui->labelAlerteTemperatureExterieure->setPixmap(QPixmap(QDir::currentPath() +
""));
207 ui->labelAlerteTemperatureExterieure->setPixmap(QPixmap(QDir::currentPath() +
"/images/attention-rouge.png"));
219 ui->labelAlerteTemperatureInterieure->setPixmap(QPixmap(QDir::currentPath() +
""));
223 ui->labelAlerteTemperatureInterieure->setPixmap(QPixmap(QDir::currentPath() +
"/images/attention-rouge.png"));
235 ui->labelAlerteHumiditeExterieure->setPixmap(QPixmap(QDir::currentPath() +
""));
239 ui->labelAlerteHumiditeExterieure->setPixmap(QPixmap(QDir::currentPath() +
"/images/attention-rouge.png"));
251 ui->labelAlerteHumiditeInterieure->setPixmap(QPixmap(QDir::currentPath() +
""));
255 ui->labelAlerteHumiditeInterieure->setPixmap(QPixmap(QDir::currentPath() +
"/images/attention-rouge.png"));
267 ui->labelAlertePoids->setPixmap(QPixmap(QDir::currentPath() +
""));
271 ui->labelAlertePoids->setPixmap(QPixmap(QDir::currentPath() +
"/images/attention-rouge.png"));
283 ui->labelAlertePression->setPixmap(QPixmap(QDir::currentPath() +
""));
287 ui->labelAlertePression->setPixmap(QPixmap(QDir::currentPath() +
"/images/attention-rouge.png"));
314 rucher.push_back(
new Ruche(
"Ruche BeeHoneyT",
"bee-honeyt-1",
this));
315 rucher.push_back(
new Ruche(
"Ruche 1",
"ruche-1-sim",
this));
318 for(
int i=0;i<
rucher.size();++i)
320 ui->listeRuches->addItem(
rucher[i]->getNom());
325 ui->labelRucheSelectionnee->setText(
"Ruche sélectionnée : " +
ui->listeRuches->currentText());
335 qRegisterMetaType<MesureRuche>();
339 qRegisterMetaType<MesureRuche>();
345 connect(
ui->boutonSupprimer, SIGNAL(clicked(
bool)),
this, SLOT(
supprimerRuche()));
348 connect(
ui->listeRuches, SIGNAL(currentIndexChanged(
int)),
this, SLOT(
selectionnerRuche()));
381 QString nomNouvelleRuche = QInputDialog::getText(
this,
"Ajouter",
"Veuillez entrer le nom de la Ruche : ", QLineEdit::Normal, QString());
382 if (!nomNouvelleRuche.isEmpty())
384 QString deviceIDNouvelleRuche = QInputDialog::getText(
this,
"Ajouter",
"Veuillez entrer le deviceID de la Ruche : ", QLineEdit::Normal, QString());
385 if(!deviceIDNouvelleRuche.isEmpty())
387 rucher.push_back(
new Ruche(nomNouvelleRuche, deviceIDNouvelleRuche,
this));
389 qDebug() << Q_FUNC_INFO <<
"Ruche ajoutée" <<
rucher[
rucher.size() - 1]->getNom();
390 ui->listeRuches->setCurrentIndex(
rucher.size() - 1);
394 QMessageBox::critical(
this,
"Device ID",
"Champ de saisi vide !");
399 QMessageBox::critical(
this,
"Nom de la ruche",
"Champ de saisi vide !");
413 for(
int i=0;i<
rucher.size();++i)
415 if(
rucher[i]->getNom() ==
ui->listeRuches->currentText())
417 qDebug() << Q_FUNC_INFO <<
"Ruche supprimée" <<
rucher[i]->getNom();
422 ui->labelRucheSelectionnee->setText(
"Ruche sélectionnée : aucune");
423 ui->listeRuches->removeItem(
ui->listeRuches->currentIndex());
436 double temperatureExterieureMax = QInputDialog::getDouble(
this,
"Configurer les alertes",
"Temperature exterieure maximale : ", QLineEdit::Normal,
double());
438 QString messageTemperature =
"Seuils d'alertes changes : temperatures ext. max. = ";
439 messageTemperature.append(QString::number(temperatureExterieureMax));
441 double temperatureExterieureMin = QInputDialog::getDouble(
this,
"Configurer les alertes",
"Temperature exterieure minimale : ", QLineEdit::Normal,
double());
443 messageTemperature +=
", temperatures ext. min. = ";
444 messageTemperature.append(QString::number(temperatureExterieureMin));
446 double temperatureInterieureMax = QInputDialog::getDouble(
this,
"Configurer les alertes",
"Temperature interieure maximale : ", QLineEdit::Normal,
double());
448 messageTemperature +=
", temperatures int. max. = ";
449 messageTemperature.append(QString::number(temperatureInterieureMax));
451 double temperatureInterieureMin = QInputDialog::getDouble(
this,
"Configurer les alertes",
"Temperature interieure minimale : ", QLineEdit::Normal,
double());
453 messageTemperature +=
", temperatures int. min. = ";
454 messageTemperature.append(QString::number(temperatureInterieureMin));
458 double humiditeExterieureMax = QInputDialog::getDouble(
this,
"Configurer les alertes",
"Humidite exterieure maximale : ", QLineEdit::Normal,
double());
460 QString messageHumidite =
"Seuils d'alertes changes : humidite ext. max. = ";
461 messageHumidite.append(QString::number(humiditeExterieureMax));
463 double humiditeExterieureMin = QInputDialog::getDouble(
this,
"Configurer les alertes",
"Humidite exterieure minimale : ", QLineEdit::Normal,
double());
465 messageHumidite +=
", humidite ext. min. = ";
466 messageHumidite.append(QString::number(humiditeExterieureMin));
468 double humiditeInterieureMax = QInputDialog::getDouble(
this,
"Configurer les alertes",
"Humidite interieure maximale : ", QLineEdit::Normal,
double());
470 messageHumidite +=
", humidite int. max. = ";
471 messageHumidite.append(QString::number(humiditeInterieureMax));
473 double humiditeInterieureMin = QInputDialog::getDouble(
this,
"Configurer les alertes",
"Humidite interieure minimale : ", QLineEdit::Normal,
double());
475 messageHumidite +=
", humidite int. min. = ";
476 messageHumidite.append(QString::number(humiditeInterieureMin));
480 double pressionMax = QInputDialog::getDouble(
this,
"Configurer les alertes",
"Pression maximale : ", QLineEdit::Normal,
double());
482 QString messagePression =
"Seuils d'alertes changes : pression max. = ";
483 messagePression.append(QString::number(pressionMax));
485 double pressionMin = QInputDialog::getDouble(
this,
"Configurer les alertes",
"Pression minimale : ", QLineEdit::Normal,
double());
487 messagePression +=
", pression min. = ";
488 messagePression.append(QString::number(pressionMin));
492 double poidsMax = QInputDialog::getDouble(
this,
"Configurer les alertes",
"Poids maximale : ", QLineEdit::Normal,
double());
494 QString messagePoids =
"Seuils d'alertes changes : poids max. = ";
495 messagePoids.append(QString::number(poidsMax));
497 double poidsMin = QInputDialog::getDouble(
this,
"Configurer les alertes",
"Poids minimale : ", QLineEdit::Normal,
double());
499 messagePoids +=
", poids min. = ";
500 messagePoids.append(QString::number(poidsMin));
512 QString applicationID = QInputDialog::getText(
this,
"Configuration TTN",
"Veuillez entrer l'application ID : ", QLineEdit::Normal, QString());
513 if (!applicationID.isEmpty())
515 QString motDePasse = QInputDialog::getText(
this,
"Configuration TTN",
"Veuillez entrer la clé : ", QLineEdit::Normal, QString());
516 if(!motDePasse.isEmpty())
522 QMessageBox::critical(
this,
"Configuration TTN",
"Champ de mot de passe vide !");
527 QMessageBox::critical(
this,
"Configuration TTN",
"Champ de l'Application ID vide !");
538 ui->labelHorodatage->setText(horodatage);
569 if(
ui->listeRuches->count() > 0)
571 qDebug() << Q_FUNC_INFO <<
"Ruche sélectionnée" <<
ui->listeRuches->currentText();
574 ui->labelRucheSelectionnee->setText(
"Ruche sélectionnée : " +
ui->listeRuches->currentText());
575 ui->labelHorodatage->setText(
"");
576 ui->lcdTemperatureInterieure->display(0.);
577 ui->lcdTemperatureExterieure->display(0.);
578 ui->lcdHumiditeInterieure->display(0.);
579 ui->lcdHumiditeExterieure->display(0.);
580 ui->lcdPoids->display(0.);
581 ui->lcdPression->display(0.);
582 ui->labelAlerteTemperatureExterieure->setPixmap(QPixmap(QDir::currentPath() +
""));
583 ui->labelAlerteTemperatureInterieure->setPixmap(QPixmap(QDir::currentPath() +
""));
584 ui->labelAlerteHumiditeExterieure->setPixmap(QPixmap(QDir::currentPath() +
""));
585 ui->labelAlerteHumiditeInterieure->setPixmap(QPixmap(QDir::currentPath() +
""));
586 ui->labelAlertePoids->setPixmap(QPixmap(QDir::currentPath() +
""));
587 ui->labelAlertePression->setPixmap(QPixmap(QDir::currentPath() +
""));
614 QDateTime maintenant;
620 qDebug() << Q_FUNC_INFO <<
"ONGLET_GRAPHIQUES";
621 maintenant = QDateTime::currentDateTime();
638 ui->journal->append(message);
647 QHBoxLayout *layoutGraphePoids =
new QHBoxLayout;
657 graphique->setRenderHint(QPainter::Antialiasing);
659 ui->layoutGraphiques->addLayout(layoutGraphePoids);
671 courbePoids->setName(QString::fromUtf8(
"<font color=\"#FFFFFF\">Poids</font>"));
673 pen.setColor(QColor(0x99, 0x49, 0x2e));
682 QValueAxis *axeXPoids =
new QValueAxis;
683 axeXPoids->setRange(0, 23);
684 axeXPoids->setTickCount(24);
685 axeXPoids->setLabelFormat(
"%02dh");
686 axeXPoids->setTitleText(QString::fromUtf8(
"Heure"));
687 axeXPoids->setLabelsColor(0xFFFFFF);
688 axeXPoids->setTitleBrush(QColor(0xFFFFFF));
692 QValueAxis *axeYPoids =
new QValueAxis;
693 axeYPoids->setRange(0, 50);
694 axeYPoids->setLabelFormat(
"%.2f");
695 axeYPoids->setTitleText(QString::fromUtf8(
"Poids en Kg"));
696 axeYPoids->setLabelsColor(0xFFFFFF);
697 axeYPoids->setTitleBrush(QColor(0xFFFFFF));
715 courbePression->setName(QString::fromUtf8(
"<font color=\"#FFFFFF\">Pression</font>"));
717 pen.setColor(QColor(Qt::yellow));
726 QValueAxis *axeXPression =
new QValueAxis;
727 axeXPression->setRange(0, 23);
728 axeXPression->setTickCount(24);
729 axeXPression->setLabelFormat(
"%02dh");
730 axeXPression->setTitleText(QString::fromUtf8(
"Heure"));
731 axeXPression->setLabelsColor(0xFFFFFF);
732 axeXPression->setTitleBrush(QColor(0xFFFFFF));
736 QValueAxis *axeYPression =
new QValueAxis;
737 axeYPression->setRange(900, 1100);
738 axeYPression->setLabelFormat(
"%.2f");
739 axeYPression->setTitleText(QString::fromUtf8(
"Pression en hPa"));
740 axeYPression->setLabelsColor(0xFFFFFF);
741 axeYPression->setTitleBrush(QColor(0xFFFFFF));
759 courbeTemperatureExt->setName(QString::fromUtf8(
"<font color=\"#FFFFFF\">Temperature Exterieure</font>"));
761 pen.setColor(QColor(Qt::darkRed));
770 QValueAxis *axeXTemperatureExt =
new QValueAxis;
771 axeXTemperatureExt->setRange(0, 23);
772 axeXTemperatureExt->setTickCount(24);
773 axeXTemperatureExt->setLabelFormat(
"%02dh");
774 axeXTemperatureExt->setTitleText(QString::fromUtf8(
"Heure"));
775 axeXTemperatureExt->setLabelsColor(0xFFFFFF);
776 axeXTemperatureExt->setTitleBrush(QColor(0xFFFFFF));
780 QValueAxis *axeYTemperatureExt =
new QValueAxis;
781 axeYTemperatureExt->setRange(-20, 60);
782 axeYTemperatureExt->setLabelFormat(
"%.2f");
783 axeYTemperatureExt->setTitleText(QString::fromUtf8(
"Temperature Ext. en °C"));
784 axeYTemperatureExt->setLabelsColor(0xFFFFFF);
785 axeYTemperatureExt->setTitleBrush(QColor(0xFFFFFF));
803 courbeTemperatureInt->setName(QString::fromUtf8(
"<font color=\"#FFFFFF\">Temperature Interieure</font>"));
805 pen.setColor(QColor(Qt::red));
814 QValueAxis *axeXTemperatureInt =
new QValueAxis;
815 axeXTemperatureInt->setRange(0, 23);
816 axeXTemperatureInt->setTickCount(24);
817 axeXTemperatureInt->setLabelFormat(
"%02dh");
818 axeXTemperatureInt->setTitleText(QString::fromUtf8(
"Heure"));
819 axeXTemperatureInt->setLabelsColor(0xFFFFFF);
820 axeXTemperatureInt->setTitleBrush(QColor(0xFFFFFF));
824 QValueAxis *axeYTemperatureInt =
new QValueAxis;
825 axeYTemperatureInt->setRange(-20, 60);
826 axeYTemperatureInt->setLabelFormat(
"%.2f");
827 axeYTemperatureInt->setTitleText(QString::fromUtf8(
"Temperature Int. en °C"));
828 axeYTemperatureInt->setLabelsColor(0xFFFFFF);
829 axeYTemperatureInt->setTitleBrush(QColor(0xFFFFFF));
847 courbeHumiditeExt->setName(QString::fromUtf8(
"<font color=\"#FFFFFF\">Humidite Exterieure</font>"));
849 pen.setColor(QColor(Qt::darkBlue));
858 QValueAxis *axeXHumiditeExt =
new QValueAxis;
859 axeXHumiditeExt->setRange(0, 23);
860 axeXHumiditeExt->setTickCount(24);
861 axeXHumiditeExt->setLabelFormat(
"%02dh");
862 axeXHumiditeExt->setTitleText(QString::fromUtf8(
"Heure"));
863 axeXHumiditeExt->setLabelsColor(0xFFFFFF);
864 axeXHumiditeExt->setTitleBrush(QColor(0xFFFFFF));
868 QValueAxis *axeYHumiditeExt =
new QValueAxis;
869 axeYHumiditeExt->setRange(0, 100);
870 axeYHumiditeExt->setLabelFormat(
"%.2f");
871 axeYHumiditeExt->setTitleText(QString::fromUtf8(
"Humidite Ext. en %"));
872 axeYHumiditeExt->setLabelsColor(0xFFFFFF);
873 axeYHumiditeExt->setTitleBrush(QColor(0xFFFFFF));
891 courbeHumiditeInt->setName(QString::fromUtf8(
"<font color=\"#FFFFFF\">Humidite Interieure</font>"));
893 pen.setColor(QColor(Qt::blue));
902 QValueAxis *axeXHumiditeInt =
new QValueAxis;
903 axeXHumiditeInt->setRange(0, 23);
904 axeXHumiditeInt->setTickCount(24);
905 axeXHumiditeInt->setLabelFormat(
"%02dh");
906 axeXHumiditeInt->setTitleText(QString::fromUtf8(
"Heure"));
907 axeXHumiditeInt->setLabelsColor(0xFFFFFF);
908 axeXHumiditeInt->setTitleBrush(QColor(0xFFFFFF));
912 QValueAxis *axeYHumiditeInt =
new QValueAxis;
913 axeYHumiditeInt->setRange(0, 100);
914 axeYHumiditeInt->setLabelFormat(
"%.2f");
915 axeYHumiditeInt->setTitleText(QString::fromUtf8(
"Humidite Int. en %"));
916 axeYHumiditeInt->setLabelsColor(0xFFFFFF);
917 axeYHumiditeInt->setTitleBrush(QColor(0xFFFFFF));
933 qDebug() << Q_FUNC_INFO <<
"index" <<
ui->listeMesuresGraphiques->currentIndex();
962 QDateTime maintenant = QDateTime::currentDateTime();
972 qDebug() << Q_FUNC_INFO <<
"Nb mesures poids" << mesures.size();
973 qDebug() << Q_FUNC_INFO <<
"mesures poids" << mesures;
976 for(QVector<QStringList>::iterator it = mesures.begin(); it != mesures.end(); it++)
979 courbePoids->append((*it).at(0).toInt(), (*it).at(1).toDouble());
992 qDebug() << Q_FUNC_INFO <<
"Nb mesures pression" << mesures.size();
993 qDebug() << Q_FUNC_INFO <<
"mesures pression" << mesures;
996 for(QVector<QStringList>::iterator it = mesures.begin(); it != mesures.end(); it++)
999 courbePression->append((*it).at(0).toInt(), (*it).at(1).toDouble());
1012 qDebug() << Q_FUNC_INFO <<
"Nb mesures temperature exterieure" << mesures.size();
1013 qDebug() << Q_FUNC_INFO <<
"mesures termperature exterieure" << mesures;
1016 for(QVector<QStringList>::iterator it = mesures.begin(); it != mesures.end(); it++)
1032 qDebug() << Q_FUNC_INFO <<
"Nb mesures temperature interieure" << mesures.size();
1033 qDebug() << Q_FUNC_INFO <<
"mesures termperature interieure" << mesures;
1036 for(QVector<QStringList>::iterator it = mesures.begin(); it != mesures.end(); it++)
1052 qDebug() << Q_FUNC_INFO <<
"Nb mesures humidite exterieure" << mesures.size();
1053 qDebug() << Q_FUNC_INFO <<
"mesures humidite exterieure" << mesures;
1056 for(QVector<QStringList>::iterator it = mesures.begin(); it != mesures.end(); it++)
1072 qDebug() << Q_FUNC_INFO <<
"Nb mesures humidite interieure" << mesures.size();
1073 qDebug() << Q_FUNC_INFO <<
"mesures humidite interieure" << mesures;
1076 for(QVector<QStringList>::iterator it = mesures.begin(); it != mesures.end(); it++)
bool abonner(QString deviceID)
Méthode qui abonne le client Mqtt à un topic , à partir du deviceID.
#define HUMIDITE_INTERIEURE_MAX
void deconnecter()
Méthode qui déconnecte le client Mqtt.
#define TEMPERATURE_EXTERIEURE_MAX
La déclaration de la classe Historique.
QChart * graphePoids
la représentation du graphe
La déclaration de la classe Communication.
void setPressionMax(double pressionMax)
Methode qui change la pression maximale.
#define HUMIDITE_EXTERIEURE_MIN
IHMPc(QWidget *parent=nullptr)
Constructeur de la classe IHMPc.
Ui::IHMPc * ui
Association vers l'interface utilisateur (Qt Designer)
QString getPassword() const
Methode qui retourne le mot de passe.
QChart * grapheHumiditeExt
la représentation du graphe
Historique * historique
Pointeur sur l'objet Historique.
bool verifierHumiditeExterieure(double humidite) const
QChart * grapheTemperatureInt
la représentation du graphe
void gererConnexionTTN()
Methode qui permet la gestion de la connexion au TTN.
QChart * grapheTemperatureExt
la représentation du graphe
bool verifierPoids(double poids) const
Methode qui verifie le poids.
void selectionnerRuche()
Méthode qui selectionne la ruche (s'abonne) et se desabonne de l'ancienne : renitialisation des valeu...
void initialiserGraphiqueHumiditeInterieure()
Méthode qui initialise le graphique pour l'humidite interieure.
void setTemperatureInterieureMax(double temperatureInterieureMax)
Methode qui change la temperature interieure maximale.
QLineSeries * courbeTemperatureExt
Les données sous forme de courbe.
TypeGraphique
Définit les différents types de graphiques.
void configurerAlertes()
Methode qui permet la configuration des seuils d'alertes.
void afficherTemperatureInterieure(double temperatureInterieure=0., QString uniteTemperature=QString(" °C")) const
Méthode qui affiche la temperature interieure.
void initialiserGraphiquePoids()
Méthode qui initialise le graphique pour le poids.
QString getHorodatage() const
Methode qui retourne la valeur de l'horodatage.
void initialiserGraphiqueHumiditeExterieure()
Méthode qui initialise le graphique pour l'humidite exterieure.
QVector< QStringList > getMesuresHumiditeExterieure() const
Methode qui retourne un conteneur dynamique, contenant les mesures de l'humidite exterieure.
QVector< QStringList > getMesuresTemperatureExterieure() const
Methode qui retourne un conteneur dynamique, contenant les mesures de la temperature exterieure...
void desabonner(QString deviceID)
Méthode qui désabonne le client Mqtt , à partir du deviceID.
void initialiserGestionEvenements()
Méthode qui intialise les évenements.
void afficherHumiditeExterieure(double humiditeExterieure=0., QString uniteHumidite=QString(" %")) const
Méthode qui affiche l'humidite interieure.
QLineSeries * courbeHumiditeExt
Les données sous forme de courbe.
La déclaration de la classe IHMPc.
void afficherGraphiqueHumiditeInterieure()
Méthode qui affiche le graphique pour l'humidite interieure.
bool verifierTemperatureInterieure(double temperature) const
Methode qui verifie la temperature interieure.
double getTemperatureInterieure() const
Methode qui retourne la valeur de la temperature interieure.
void afficherNouvellesMesures(MesureRuche mesure)
Méthode qui affiche les nouvelles mesures.
void creerRucher()
Méthode qui créer un rucher.
QString getHostname() const
Methode qui retourne le nom d'hote.
void initialiserIHM()
Méthode qui initialise l'IHM.
L'onglet de visualisation des graphiques des ruches.
void afficherGraphiquePression()
Méthode qui affiche le graphique pour la pression.
void initialiserAlertes()
Methode qui initialise les seuils d'alertes.
QVector< QStringList > getMesuresTemperatureInterieure() const
Methode qui retourne un conteneur dynamique, contenant les mesures de la temperature interieure...
La déclaration de la classe Ruche.
void afficherPression(double pression=0., QString unitePression=QString(" hPa")) const
Méthode qui affiche la pression.
void ouvrirFenetreAjouter()
Méthode qui ouvre une fenetre de dialogue pour ajouter une ruche : nom et deviceID.
void connecter()
Méthode qui connecte le client Mqtt (par défaut) et permet la récupération du message (à l'aide de la...
void selectionnerGraphique()
Methode qui gere la selection du graphique.
void afficherAlerteTemperatureExterieure(double temperature)
Methode qui affiche (ou pas) un temoin lumineu d'alerte pour la temperature exterieure.
void afficherAlertePoids(double poids)
Methode qui affiche (ou pas) un temoin lumineu d'alerte pour le poids.
Déclaration de la classe Historique.
void setHumiditeExterieureMax(double humiditeExterieureMax)
Methode qui change l'humidite exterieure maximale.
void setPressionMin(double pressionMin)
Methode qui change la pression minimale.
void afficherEtatDeconnecte()
Méthode qui affiche l'état de la connexion (deconnecté), à partir d'une image en haut à droite...
void initialiserGraphiqueTemperatureInterieure()
Méthode qui initialise le graphique pour la temperature interieure.
bool estConnecte() const
Méthode qui retourne une valeur booléene true si le client Mqtt est connecté
void afficherGraphiqueTemperatureInterieure()
Méthode qui affiche le graphique pour la temperature interieure.
void setPoidsMin(double poidsMin)
Methode qui change le poids minimale.
void recupererDonnees(QString deviceID, QString duree="")
Methode qui recupère toutes les donnees (mesures des capteurs) de la ruche selectionnee (deviceID) ...
L'onglet de visualisation des mesures des ruches.
QVector< QStringList > getMesuresPoids() const
Methode qui retourne un conteneur dynamique, contenant les mesures du poids.
Communication * communicationTTN
Pointeur sur l'objet Communication.
double getHumiditeInterieure() const
Methode qui retourne la valeur de l'humidite interieure.
void initialiserGraphiqueTemperatureExterieure()
Méthode qui initialise le graphique pour la temperature exterieure.
void afficherAlerteHumiditeExterieure(double humidite)
Methode qui affiche (ou pas) un temoin lumineu d'alerte pour l'humidite exterieure.
void afficherTemperatureExterieure(double temperatureExterieure=0., QString uniteTemperature=QString(" °C")) const
Méthode qui affiche la temperature exterieure.
QLineSeries * courbeHumiditeInt
Les données sous forme de courbe.
void afficherPoids(double poids=0., QString unitePoids=QString(" Kg")) const
Méthode qui affiche le poids.
void initialiserGraphiquePression()
Méthode qui initialise le graphique pour la pression.
La déclaration de la classe Alertes.
Déclaration de la classe IHMPc.
void creerGraphique()
Méthode qui crée et initialise la vue pour les graphiques.
void afficherGraphiqueTemperatureExterieure()
Méthode qui affiche le graphique pour la temperature exterieure.
void afficherGraphiqueHumiditeExterieure()
Méthode qui affiche le graphique pour l'humidite exterieure.
#define HUMIDITE_EXTERIEURE_MAX
void setTemperatureInterieureMin(double temperatureInterieureMin)
Methode qui change la temperature interieure minimum.
double getTemperatureExterieure() const
Methode qui retourne la valeur de la temperature exterieure.
QVector< QStringList > getMesuresHumiditeInterieure() const
Methode qui retourne un conteneur dynamique, contenant les mesures de l'humidite interieure.
void setTemperatureExterieureMin(double temperatureExterieureMin)
Methode qui change la temperature exterieure minimale.
double getPression() const
Methode qui retourne la valeur de la pression.
void afficherAlertePression(double pression)
Methode qui affiche (ou pas) un temoin lumineu d'alerte pour la pression.
void setHumiditeInterieureMin(double humiditeInterieureMin)
Methode qui change l'humidite interieure minimale.
void setAuthentification(QString url, QString cle)
Methode qui modifie l'URL et la clé
void afficherAlerteTemperatureInterieure(double temperature)
Methode qui affiche (ou pas) un temoin lumineu d'alerte pour la temperature interieure.
void supprimerRuche()
Méthode qui supprime une ruche, dans la listedeRucheSelectionnee et dans le vector rucher<> ...
void afficherEtatConnecte()
Méthode qui affiche l'état de la connexion (connecté), à partir d'une image en haut à droite...
void afficherAlerteHumiditeInterieure(double humidite)
Methode qui affiche (ou pas) un temoin lumineu d'alerte pour l'humidite interieure.
QString getUsername() const
Methode qui retourne le nom d'utilisateur.
#define HUMIDITE_INTERIEURE_MIN
QVector< QStringList > getMesuresPression() const
Methode qui retourne un conteneur dynamique, contenant les mesures de la pression.
void afficherHorodatage(QString horodatage)
Méthode qui affiche l'horodatage.
void setHumiditeExterieureMin(double humiditeExterieureMin)
Methode qui change l'humidite exterieure minimale.
void configurerConnexionTTN()
Methode qui permet la configuration de l'acces TTN.
QChartView * graphique
widget pour afficher le graphe
int indexRucheSelectionnee
L'index courant de la ruche sélectionnée.
QLineSeries * courbeTemperatureInt
Les données sous forme de courbe.
L'onglet de visualisation du log.
void verifierAlertes(MesureRuche mesure)
Methode qui verifie si les seuils sont depasses.
QLineSeries * courbePression
Les données sous forme de courbe.
void setTemperatureExterieureMax(double temperatureExterieureMax)
Methode qui change la temperature exterieure maximale.
bool verifierPression(double pression) const
void setPoidsMax(double poidsMax)
Methode qui change le poids maximale.
~IHMPc()
Destructeur de la classe IHMPc.
#define TEMPERATURE_INTERIEURE_MAX
QChart * grapheHumiditeInt
la représentation du graphe
void afficherGraphiquePoids()
Méthode qui affiche le graphique pour le poids.
#define TEMPERATURE_EXTERIEURE_MIN
bool verifierTemperatureExterieure(double temperature) const
void reconnecter()
Méthode qui déconnecte puis connecte le client Mqtt.
void rechargerGraphique()
Methode qui recharge le graphique à l'heure actuelle.
void journaliser(QString message)
Methode qui ajoute le message dans l'onglet journal.
void afficherHumiditeInterieure(double humiditeInterieure=0., QString uniteHumidite=QString(" %")) const
Méthode qui affiche l'humidite interieure.
QLineSeries * courbePoids
Les données sous forme de courbe.
#define TEMPERATURE_INTERIEURE_MIN
bool verifierHumiditeInterieure(double humidite) const
Methode qui verifie l'humidite interieure.
double getPoids() const
Methode qui retourne la valeur du poids.
double getHumiditeExterieure() const
Methode qui retourne la valeur de l'humidite exterieure.
QChart * graphePression
la représentation du graphe
void gererChangementOnglet(int)
Methode qui gere le changement d'onglet selon l'index.
void setHumiditeInterieureMax(double humiditeInterieureMax)
Methode qui change l'humidite interieure maximale.
QVector< Ruche * > rucher
Les ruches de l'apiculteur.