Assure l'acquisition des données télémétrique en Xbee. Plus de détails...

#include <acquisition.h>

Graphe de collaboration de Acquisition:

Liste de tous les membres

Signaux

void nouveauReleve (Releve releve)
 Signale et transmet un nouveau relevé de mesures télémétriques.

Fonctions membres publiques

 Acquisition ()
 Constructeur par défaut de la classe Acquisition.
 ~Acquisition ()
 Destructeur de la classe Acquisition.
QString getTension ()
 Assesseur getTension() permet de récuperer la tension et de retourner la valeur.
QString getCourant ()
 Assesseur getCourant() permet de récuperer le courant et de retourner la valeur.
QString getChargeBatterie ()
 Assesseur getChargeBatterie() permet de récuperer la charge de la batterie et de retourner la valeur.
QString getTemperatureMoteur ()
 Assesseur getTemperatureMoteur() permet de récuperer la temperature du moteur et de retourner la valeur.
QString getVitesse ()
 Assesseur getVitesse() permet de récuperer la vitesse et de retourner la valeur.
bool estDemarre ()
 retourne VRAI si l'acquisition est démarrée sinon FAUX
bool estArrete ()
 retourne VRAI si l'acquisition est arrêtée sinon FAUX
void demarrer (QString idKart)
 Démarre une acqauisition.
void arreter ()
 Arrête une acquisition.

Connecteurs privés

void acquerir (QString trame)
 Acquisition des données télémetriques à partir d'une trame reçue via le Xbee.

Fonctions membres privées

void extraireTension ()
 La méthode extraireTension() permet d'extraire les données de la tension dans la TrameData.
void extraireCourant ()
 La méthode extraireCourant() permet d'extraire les données du Courant dans la TrameData.
void extraireChargeBatterie ()
 La méthode extraireChargeBatterie() permet d'extraire les données qui concerne la Charge de la batterie dans la TrameData.
void extraireTemperatureMoteur ()
 La méthode extraireTemperatureMoteur() permet d'extraire les données de la temperature du moteur dans la TrameData.
void extraireVitesse ()
 La méthode extraireVitesse() permet d'extraire les données de la Vitesse dans la TrameData.
void horodater ()
 La méthode horodater() stocke la date et l'heure du relevé
bool decoupageTrame ()
 La méthode decoupageTrame() permet de découper les différent champs de la trame est de les stocker dans la structure releve.

Attributs privés

Releve releve
int nbReleves
QString phrase
QString ID_Kart
QString ID_Trame
QString Checksum
QString TrameData
Xbee xbee

Description détaillée

Auteur:
Tom Garcia
Version:
1.0
Date:
mercredi 15 mars 2017

Documentation des constructeurs et destructeur

Références nbReleves.

{
    nbReleves = 0;    
}

Documentation des fonctions membres

void Acquisition::acquerir ( QString  trame) [private, slot]
Paramètres:
trame

Découpe une trame

Décode la trame pour produire un relevé de mesures

A faire:
Horodater le relevé

Envoie un relevé des données décodées à l'affichage

Incrémente le nombre de relevés

Références decoupageTrame(), extraireChargeBatterie(), extraireCourant(), extraireTemperatureMoteur(), extraireTension(), extraireVitesse(), horodater(), nbReleves, nouveauReleve(), phrase, et releve.

Référencé par arreter(), et demarrer().

Références acquerir(), Xbee::deconnecter(), et xbee.

Référencé par IHMmaquette::Arreter(), IHMmaquette::Pause(), et IHMmaquette::~IHMmaquette().

{
    disconnect(&xbee, SIGNAL(envoyer(QString)), this, SLOT(acquerir(QString)));
    xbee.deconnecter();    
}
bool Acquisition::decoupageTrame ( ) [private]

Références Checksum, ID_Kart, ID_Trame, phrase, et TrameData.

Référencé par acquerir().

{
    QString id;
    QString delimiteurFin = "\r";

    // vérifier si la trame contient le délimiteur de début (#)
    if (!phrase.startsWith("#"))
        return false;

    phrase.remove(0,1); //on enleve le "#"

    // vérifier si la trame contient le délimiteur de fin (\r)
    if (!phrase.endsWith(delimiteurFin))
        return false;

    phrase.remove(phrase.indexOf(delimiteurFin), phrase.length()); //on enleve le "\r"

    // vérifier si la trame contient le délimiteur de checksum (*)
    if (!phrase.contains("*"))
        return false;

    // vérifier si la trame contient 6 délimiteurs de champs (;)
    if(phrase.count(";") != 6)
        return false;

    // extraire l'id kart
    id = phrase.section(';', 0, 0);
    qDebug() << Q_FUNC_INFO << "id kart" << id;

    // vérifier si l'id kart correspond au kart sélectionné
    if(id != ID_Kart)
        return false;
    phrase.remove(0, id.length()+1); //on enleve l'id kart

    // extraire le checksum
    Checksum = phrase.section('*', 1, 1);
    qDebug() << Q_FUNC_INFO << "Checksum" << Checksum;
    phrase.remove(phrase.indexOf("*"), phrase.length()); //on enleve le bloc cheksum

    // récupérer l'id trame
    ID_Trame = phrase.section(';', 0, 0);
    qDebug() << Q_FUNC_INFO << "ID_Trame" << ID_Trame;

    // extraire les données de la trame
    TrameData = phrase;
    qDebug() << Q_FUNC_INFO << "TrameData" << TrameData;

    return true;
}
void Acquisition::demarrer ( QString  idKart)

Références acquerir(), Xbee::connecter(), ID_Kart, nbReleves, et xbee.

Référencé par IHMmaquette::demarrer(), et IHMmaquette::Pause().

{
    ID_Kart = idKart;
    nbReleves = 0;
    xbee.connecter();
    connect(&xbee, SIGNAL(envoyer(QString)), this, SLOT(acquerir(QString)));
}
Renvoie:
bool

Références estDemarre().

Référencé par IHMmaquette::demarrer(), et IHMmaquette::Pause().

{
    return !estDemarre();
}

Références Releve::chargeBatterie, releve, et TrameData.

Référencé par acquerir().

{
    //découpe la trame avec le délimiteur

    releve.chargeBatterie = TrameData.section(';', 3, 3);
    qDebug() << Q_FUNC_INFO << "releve.chargeBatterie" << releve.chargeBatterie;
}
void Acquisition::extraireCourant ( ) [private]

Références Releve::courant, releve, et TrameData.

Référencé par acquerir().

{
    //découpe la trame avec le délimiteur

    releve.courant = TrameData.section(';', 2, 2);
    qDebug() << Q_FUNC_INFO << "releve.courant" << releve.courant;
}

Références releve, Releve::temperatureMoteur, et TrameData.

Référencé par acquerir().

{
    //découpe la trame avec le délimiteur

    releve.temperatureMoteur = TrameData.section(';', 4, 4);
    qDebug() << Q_FUNC_INFO << "releve.temperatureMoteur" << releve.temperatureMoteur;
}
void Acquisition::extraireTension ( ) [private]

Références releve, Releve::tension, et TrameData.

Référencé par acquerir().

{
    //découpe la trame avec le délimiteur

    releve.tension = TrameData.section(';', 1, 1);
    qDebug() << Q_FUNC_INFO << "releve.tension" << releve.tension;
}
void Acquisition::extraireVitesse ( ) [private]

Références releve, TrameData, et Releve::vitesse.

Référencé par acquerir().

{
    //découpe la trame avec le délimiteur

    releve.vitesse = TrameData.section(';', 5, 5);
    qDebug() << Q_FUNC_INFO << "releve.vitesse" << releve.vitesse;
}
Renvoie:
QString

Références Releve::chargeBatterie, et releve.

{
    return releve.chargeBatterie;
}
Renvoie:
QString

Références Releve::courant, et releve.

{
    return releve.courant;
}
Renvoie:
QString

Références releve, et Releve::temperatureMoteur.

Renvoie:
QString

Références releve, et Releve::tension.

{
    return releve.tension;
}
Renvoie:
QString

Références releve, et Releve::vitesse.

{
    return releve.vitesse;
}
void Acquisition::horodater ( ) [private]

Références Releve::date, Releve::heure, et releve.

Référencé par acquerir().

{
    QDateTime maintenant = QDateTime::currentDateTime();
    releve.date = maintenant.toString("dd/MM/yyyy");
    releve.heure = maintenant.toString("hh:mm:ss");
    qDebug() << Q_FUNC_INFO << "releve.date" << releve.date << "releve.heure" << releve.heure;
}
void Acquisition::nouveauReleve ( Releve  releve) [signal]
Paramètres:
releve

Référencé par acquerir().


Documentation des données membres

QString Acquisition::Checksum [private]

sert de vérification, permet de voir si la trame est valide

Référencé par decoupageTrame().

QString Acquisition::ID_Kart [private]

permet d'identifier le numéro du kart

Référencé par decoupageTrame(), et demarrer().

QString Acquisition::ID_Trame [private]

permet d'identidier la trame par un numéro

Référencé par decoupageTrame().

int Acquisition::nbReleves [private]

le nombre de relevés

Référencé par acquerir(), Acquisition(), et demarrer().

QString Acquisition::phrase [private]

la phrase correspond à la trame

Référencé par acquerir(), et decoupageTrame().

QString Acquisition::TrameData [private]

correspond à tout les champs de données de la trame (sans cheksum, ID_Kart et ID_Trame

Référencé par decoupageTrame(), extraireChargeBatterie(), extraireCourant(), extraireTemperatureMoteur(), extraireTension(), et extraireVitesse().

composition d'un objet Xbee pour communiquer avec le kart

Référencé par arreter(), demarrer(), et estDemarre().


La documentation de cette classe a été générée à partir des fichiers suivants :