|
Campus Serre
1.0
BTS SN-IR La Salle Avignon 2018
|
Communique avec la serre via un port série virtuel. Plus de détails...
#include <telemetrie.h>

Connecteurs publics | |
| void | traiterTrame (QString trame) |
| Récupère la trame et la passe à la méthode convertirDonnees() | |
Signaux | |
| void | nouvellesDonnees () |
Fonctions membres publiques | |
| Telemetrie (GestionPort *gestionPort=0, QObject *parent=0) | |
| Constructeur. | |
| ~Telemetrie () | |
| Destructeur. | |
| bool | getEtatErreur () |
| Récupère la valeur l'état de l'erreur. | |
| double | getTemperatureAir () |
| Récupère la valeur de la température de l'air. | |
| double | getTemperatureSol () |
| Récupère la valeur de la température du sol. | |
| double | getHygrometrieSol () |
| Récupère la valeur de la l'hygrométrie du sol. | |
| double | getHygrometrieAir () |
| Récupère la valeur de la l'hygrométrie de l'air. | |
| double | getVitesseVent () |
| Récupère la valeur de la vitesse du vent. | |
| int | getDirectionVent () |
| Récupère la valeur de la direction du vent. | |
| int | getEtatOuvrant () |
| Récupère la valeur de l'ouverture de l'ouvrant. | |
| bool | getEtatVanne () |
| Récupère la valeur de l'état de la vanne. | |
| bool | getEtatChauffage () |
| Récupère la valeur de l'état du chauffage. | |
| void | enregistrerMesure () |
| Stock les valeurs dans un conteneur. | |
| Mesure | getMesure () |
| QVector< Mesure > | getMesures () |
| void | purgerMesures () |
Fonctions membres privées | |
| bool | convertirDonnees (QString trame) |
| Convertit les trames afin d'avoir les valeurs des mesures. | |
Attributs privés | |
| GestionPort * | gestionPort |
| relation vers la classe GestionPort | |
| QVector< Mesure > | mesures |
| stockage des mesures | |
| Mesure | mesure |
| mesure courante des données de la serre | |
| bool | etatErreur |
| indique une erreur | |
| Telemetrie::Telemetrie | ( | GestionPort * | gestionPort = 0, |
| QObject * | parent = 0 |
||
| ) |
| gestionPort | GestionPort* adresse de l'objet GestionPort |
| parent | QObject Adresse de l'objet parent (sinon 0) |
Références traiterTrame().
: QObject(parent)
{
if(gestionPort != 0)
connect(gestionPort, SIGNAL(nouvelleTrame(QString)), this, SLOT(traiterTrame(QString)));
}
{
}
| bool Telemetrie::convertirDonnees | ( | QString | trame | ) | [private] |
Convertit les trames afin d'avoir les valeurs de la température de l'air et du sol ainsi que l'hygrometrie de l'air et du sol, la vitesse du vent ainsi que sa direction, l'état de l'ouvrant, la vanne et si il y a une erreur.
| trame | QString La trame a convertir |
Références Mesure::chauffage, Mesure::directionVent, etatErreur, Mesure::hygrometrieAir, Mesure::hygrometrieSol, mesure, Mesure::ouvrant, Mesure::temperatureAir, Mesure::temperatureSol, Mesure::vanne, et Mesure::vitesseVent.
Référencé par traiterTrame().
{
qDebug() << Q_FUNC_INFO << trame;
// trame -> $PCS.000.235.220.080.060.020.001.025.000.001*
/* champErreur -> 000 (Après le 1er ".")
champTemperatureAir -> 235 (Après le 2eme ".")
champTemperatureSol -> 220 (Après le 3eme ".")
champHygrometrieSol -> 080 (Après le 4eme ".")
champHygrometrieAir -> 050 (Après le 5eme ".")
champVitesseVent -> 020 (Après le 6eme ".")
champDirectionVent -> 050 (Après le 7eme ".")
champOuvrant -> 025 (Après le 8eme ".")
champVanne -> 000 (Après le 9eme ".")
champChauffage -> 001 (après le 10eme ".")
*/
QString champErreur = trame.section('.',1,1);
if(champErreur == "000")
{
etatErreur = false;
}
else etatErreur = true;
//qDebug() << "champErreur : " << champErreur;
//qDebug() << "etatErreur : " << etatErreur;
QString champTemperatureAir = trame.section('.',2,2);
QString nombreEntier = champTemperatureAir;
QString decimale = champTemperatureAir;
nombreEntier.remove(2,3);
decimale.remove(0,2);
QString temperatureAir = nombreEntier + "," + decimale;
mesure.temperatureAir = temperatureAir.toDouble();
//qDebug() << "champTemperatureAir : " << champTemperatureAir;
//qDebug() << "temperatureAir : " << temperatureAir.toDouble();
QString champTemperatureSol = trame.section('.',3,3);
nombreEntier = champTemperatureSol;
decimale = champTemperatureSol;
nombreEntier.remove(2,3);
decimale.remove(0,2);
QString temperatureSol = nombreEntier + "," + decimale;
mesure.temperatureSol = temperatureSol.toDouble();
//qDebug() << "champTemperatureSol : " << champTemperatureSol;
//qDebug() << "temperatureSol : " << temperatureSol.toDouble();
QString champHygrometrieSol = trame.section('.',4,4);
QString verification1 = champHygrometrieSol;
QString verification2 = champHygrometrieSol;
QString hygrometrieSol;
verification1.remove(2,2);
verification2.remove(1,2);
if(verification1 == "00")
{
champHygrometrieSol.remove(0,2);
hygrometrieSol = champHygrometrieSol;
}
else if (verification2 == "0")
{
champHygrometrieSol.remove(0,1);
hygrometrieSol = champHygrometrieSol;
}
else hygrometrieSol = champHygrometrieSol;
mesure.hygrometrieSol = hygrometrieSol.toDouble();
//qDebug() << "champHygrometrieSol : " << champHygrometrieSol;
//qDebug() << "hygrometrieSol : " << hygrometrieSol.toDouble();
QString champHygrometrieAir = trame.section('.',5,5);
verification1 = champHygrometrieAir;
verification2 = champHygrometrieAir;
QString hygrometrieAir;
verification1.remove(2,2);
verification2.remove(1,2);
if(verification1 == "00")
{
champHygrometrieAir.remove(0,2);
hygrometrieAir = champHygrometrieAir;
}
else if (verification2 == "0")
{
champHygrometrieAir.remove(0,1);
hygrometrieAir = champHygrometrieAir;
}
else hygrometrieAir = champHygrometrieAir;
mesure.hygrometrieAir = hygrometrieAir.toDouble();
//qDebug() << "champHygrometrieAir : " << champHygrometrieAir;
//qDebug() << "hygrometrieAir : " << hygrometrieAir.toDouble();
QString champVitesseVent = trame.section('.',6,6);
//qDebug() << "champVitesseVent : " << champVitesseVent;
verification1 = champVitesseVent;
verification2 = champVitesseVent;
QString vitesseVent;
verification1.remove(2,2);
verification2.remove(1,2);
if(verification1 == "00")
{
champVitesseVent.remove(0,2);
vitesseVent = champVitesseVent;
}
else if (verification2 == "0")
{
champVitesseVent.remove(0,1);
vitesseVent = champVitesseVent;
}
else vitesseVent = champVitesseVent;
mesure.vitesseVent = vitesseVent.toDouble();
//qDebug() << "verification1 et 2 : " << verification1 << "," << verification2;
//qDebug() << "vitesseVent : " << vitesseVent;
QString champDirectionVent = trame.section('.',7,7);
QString directionVent = champDirectionVent;
mesure.directionVent = directionVent.toInt();
//qDebug() << "champDirectionVent : " << champDirectionVent;
//qDebug() << "directionVent : " << directionVent;
QString champOuvrant = trame.section('.',8,8);
QString etatOuvrant = champOuvrant;
mesure.ouvrant = etatOuvrant.toInt();
//qDebug() << "champOuvrant : " << champOuvrant;
//qDebug() << "etatOuvrant : " << etatOuvrant;
QString champVanne = trame.section('.',9,9);
if(champVanne == "000")
{
mesure.vanne = false;
}
else mesure.vanne = true;
//qDebug() << "champVanne : " << champVanne;
//qDebug() << "etatVanne : " << mesure.vanne;
QString champChauffage = trame.section('.',10,10);
if(champChauffage == "000")
{
mesure.chauffage = false;
}
else mesure.chauffage = true;
return true;
}
Références Mesure::chauffage, Mesure::date, Mesure::directionVent, getDirectionVent(), getEtatChauffage(), getEtatOuvrant(), getEtatVanne(), getHygrometrieAir(), getHygrometrieSol(), getTemperatureAir(), getTemperatureSol(), getVitesseVent(), Mesure::heure, Mesure::hygrometrieAir, Mesure::hygrometrieSol, mesure, mesures, Mesure::ouvrant, Mesure::temperatureAir, Mesure::temperatureSol, Mesure::vanne, et Mesure::vitesseVent.
Référencé par traiterTrame().
{
Mesure mesure;
QDateTime horodatage = QDateTime::currentDateTime();
mesure.date = horodatage.toString("dd/MM/yyyy");
mesure.heure = horodatage.toString("hh:mm:ss");
mesure.temperatureAir = getTemperatureAir();
mesure.temperatureSol = getTemperatureSol();
mesure.hygrometrieAir = getHygrometrieAir();
mesure.hygrometrieSol = getHygrometrieSol();
mesure.vitesseVent = getVitesseVent();
mesure.directionVent = getDirectionVent();
mesure.ouvrant = getEtatOuvrant();
mesure.vanne = getEtatVanne();
mesure.chauffage = getEtatChauffage();
mesures.push_back(mesure);
}
| int Telemetrie::getDirectionVent | ( | ) |
Références Mesure::directionVent, et mesure.
Référencé par IHMCampusSerre::afficherOngletTelemetrie(), et enregistrerMesure().
{
return mesure.directionVent;
}
| bool Telemetrie::getEtatChauffage | ( | ) |
Références Mesure::chauffage, et mesure.
Référencé par IHMCampusSerre::afficherOngletTelemetrie(), et enregistrerMesure().
| bool Telemetrie::getEtatErreur | ( | ) |
| int Telemetrie::getEtatOuvrant | ( | ) |
Références mesure, et Mesure::ouvrant.
Référencé par IHMCampusSerre::afficherOngletTelemetrie(), et enregistrerMesure().
| bool Telemetrie::getEtatVanne | ( | ) |
Références mesure, et Mesure::vanne.
Référencé par IHMCampusSerre::afficherOngletTelemetrie(), et enregistrerMesure().
| double Telemetrie::getHygrometrieAir | ( | ) |
Références Mesure::hygrometrieAir, et mesure.
Référencé par IHMCampusSerre::afficherOngletTelemetrie(), et enregistrerMesure().
{
return mesure.hygrometrieAir;
}
| double Telemetrie::getHygrometrieSol | ( | ) |
Références Mesure::hygrometrieSol, et mesure.
Référencé par IHMCampusSerre::afficherOngletTelemetrie(), et enregistrerMesure().
{
return mesure.hygrometrieSol;
}
Références mesures.
Référencé par IHMCampusSerre::afficherOngletHistorique().
{
return mesures;
}
| double Telemetrie::getTemperatureAir | ( | ) |
Références mesure, et Mesure::temperatureAir.
Référencé par IHMCampusSerre::afficherOngletTelemetrie(), et enregistrerMesure().
{
return mesure.temperatureAir;
}
| double Telemetrie::getTemperatureSol | ( | ) |
Références mesure, et Mesure::temperatureSol.
Référencé par IHMCampusSerre::afficherOngletTelemetrie(), et enregistrerMesure().
{
return mesure.temperatureSol;
}
| double Telemetrie::getVitesseVent | ( | ) |
Références mesure, et Mesure::vitesseVent.
Référencé par IHMCampusSerre::afficherOngletTelemetrie(), et enregistrerMesure().
{
return mesure.vitesseVent;
}
| void Telemetrie::nouvellesDonnees | ( | ) | [signal] |
Référencé par traiterTrame().
| void Telemetrie::traiterTrame | ( | QString | trame | ) | [slot] |
| trame |
Références convertirDonnees(), enregistrerMesure(), et nouvellesDonnees().
Référencé par Telemetrie().
{
qDebug() << Q_FUNC_INFO << trame;
if(convertirDonnees(trame))
{
enregistrerMesure();
emit nouvellesDonnees();
}
}
bool Telemetrie::etatErreur [private] |
Référencé par convertirDonnees(), et getEtatErreur().
GestionPort* Telemetrie::gestionPort [private] |
Mesure Telemetrie::mesure [private] |
QVector<Mesure> Telemetrie::mesures [private] |
Référencé par enregistrerMesure(), getMesures(), et purgerMesures().
1.7.6.1