Campus Serre  1.0
BTS SN-IR La Salle Avignon 2018
Connecteurs publics | Signaux | Fonctions membres publiques | Fonctions membres privées | Attributs privés
Référence de la classe Telemetrie

Communique avec la serre via un port série virtuel. Plus de détails...

#include <telemetrie.h>

Graphe de collaboration de Telemetrie:
Collaboration graph
[légende]

Liste de tous les membres

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< MesuregetMesures ()
void purgerMesures ()

Fonctions membres privées

bool convertirDonnees (QString trame)
 Convertit les trames afin d'avoir les valeurs des mesures.

Attributs privés

GestionPortgestionPort
 relation vers la classe GestionPort
QVector< Mesuremesures
 stockage des mesures
Mesure mesure
 mesure courante des données de la serre
bool etatErreur
 indique une erreur

Description détaillée

Auteur:
Di Sario
Version:
1.0
Date:
Jeudi 22 mars 2018

Documentation des constructeurs et destructeur

Telemetrie::Telemetrie ( GestionPort gestionPort = 0,
QObject *  parent = 0 
)
Paramètres:
gestionPortGestionPort* adresse de l'objet GestionPort
parentQObject 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)));
}
{

}

Documentation des fonctions membres

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.

Paramètres:
trameQString La trame a convertir
Renvoie:
true si les données ont été converties

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;
}
Renvoie:
bool

Références Mesure::chauffage, et mesure.

Référencé par IHMCampusSerre::afficherOngletTelemetrie(), et enregistrerMesure().

{
    return mesure.chauffage;
}
Renvoie:
bool

Références etatErreur.

{
    return etatErreur;
}
Renvoie:
int

Références mesure, et Mesure::ouvrant.

Référencé par IHMCampusSerre::afficherOngletTelemetrie(), et enregistrerMesure().

{
    return mesure.ouvrant;
}
Renvoie:
bool

Références mesure, et Mesure::vanne.

Référencé par IHMCampusSerre::afficherOngletTelemetrie(), et enregistrerMesure().

{
    return mesure.vanne;
}
Renvoie:
double

Références Mesure::hygrometrieAir, et mesure.

Référencé par IHMCampusSerre::afficherOngletTelemetrie(), et enregistrerMesure().

{
    return mesure.hygrometrieAir;
}
Renvoie:
double

Références Mesure::hygrometrieSol, et mesure.

Référencé par IHMCampusSerre::afficherOngletTelemetrie(), et enregistrerMesure().

{
    return mesure.hygrometrieSol;
}
Renvoie:
Mesure

Références mesure.

{
    return mesure;
}
Renvoie:
QVector<Mesure>

Références mesures.

Référencé par IHMCampusSerre::afficherOngletHistorique().

{
    return mesures;
}
Renvoie:
double

Références mesure, et Mesure::temperatureAir.

Référencé par IHMCampusSerre::afficherOngletTelemetrie(), et enregistrerMesure().

{
    return mesure.temperatureAir;
}
Renvoie:
double

Références mesure, et Mesure::temperatureSol.

Référencé par IHMCampusSerre::afficherOngletTelemetrie(), et enregistrerMesure().

{
    return mesure.temperatureSol;
}
Renvoie:
double

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().

Références mesures.

{
    mesures.clear();
}
void Telemetrie::traiterTrame ( QString  trame) [slot]
Paramètres:
trame

Références convertirDonnees(), enregistrerMesure(), et nouvellesDonnees().

Référencé par Telemetrie().

{
    qDebug() << Q_FUNC_INFO << trame;

    if(convertirDonnees(trame))
    {
        enregistrerMesure();

        emit nouvellesDonnees();
    }
}

Documentation des données membres

bool Telemetrie::etatErreur [private]

Référencé par convertirDonnees(), et getEtatErreur().

QVector<Mesure> Telemetrie::mesures [private]

La documentation de cette classe a été générée à partir des fichiers suivants :
 Tout Classes Fichiers Fonctions Variables Macros