TTPA (Écran)  1.1
BTS SN-IR La Salle Avignon 2018
Connecteurs publics | Signaux | Fonctions membres publiques | Fonctions membres privées
Référence de la classe CTrame

#include <trame.h>

Liste de tous les membres

Connecteurs publics

bool traiterTrame (QString donneesRecues)
 voir quitter() de CIhm
bool gererTrame (QString donneesRecues)
 découpe les trames de la reception

Signaux

void setInfoConnect (QString nom)
void setLayerEcran (uint8_t layer)
 voir setInfoConnect(QString nom) de CIhm
void commencerSeance ()
 voir setLayerEcran(int layer) de CIhm
void pauserSeance ()
 voir commencerSeance() de CIhm
void reprendreSeance ()
 voir pauserSeance() de CIhm
void finirSeance ()
 voir reprendreSeance() de CIhm
void resetSeance ()
 voir finirSeance() de CIhm
void impacterZone (uint8_t zone)
 voir resetSeance() de CIhm
void balleEnJeu ()
 voir impacterZone(int zone) de CIhm
void setZoneRobot (uint8_t zone)
 voir balleEnJeu() de CIhm
void setZoneObjectif (uint8_t zone)
 voir setZoneRobot(int zone) de CIhm
void setBallesMaximum (int balles)
 voir setZoneObjectif(int zone) de CIhm
void setFrequenceRobot (float freq)
 voir setBalleMaximum(int balles) de CIhm
void rafraichirCSS ()
 voirsetFrequenceRobot(int freq) de CTable
void quitter ()
 voir rafraichirCSS() de CIhm

Fonctions membres publiques

 CTrame (QObject *parent=0)
 ~CTrame ()

Fonctions membres privées

QString extraireElement (QString donneesRecues, const int element)
 extrait les elements de la trame avec extraireElement(QString donneesRecues) puis effectue les signals en fonction
int getTrameLength (QString donneesRecues)
 Découpe la trame et retourne l'élement.
void messageNonReconnu (QString donneesRecues, int element)
 Retourne la longeur de la trame.
bool gererTramesSansParametre (QString donneesRecues)
 Affiche les chars dans l'element demandé par rapport a la liste d'elements de la trame.
bool gererTrames1Parametre (QString donneesRecues)
 verrifie, identifie et execute les trames ne possédant pas de parametre

Documentation des constructeurs et destructeur

CTrame::CTrame ( QObject *  parent = 0)
                              : QObject(parent)
{
}
{
}

Documentation des fonctions membres

void CTrame::balleEnJeu ( ) [signal]
void CTrame::commencerSeance ( ) [signal]

*

Référencé par gererTramesSansParametre().

QString CTrame::extraireElement ( QString  donneesRecues,
const int  element 
) [private]

*

Paramètres:
Trameen QString
Renvoie:
validité de la trame

Référencé par gererTrame(), gererTrames1Parametre(), gererTramesSansParametre(), et messageNonReconnu().

{
    if(donneesRecues.isEmpty())
        return QString();

    QStringList listeElements;
    listeElements = donneesRecues.split(":");

    return listeElements.at(iElement).trimmed();
}
void CTrame::finirSeance ( ) [signal]

*

Référencé par gererTramesSansParametre().

bool CTrame::gererTrame ( QString  donneesRecues) [slot]

*

Références extraireElement(), gererTrames1Parametre(), gererTramesSansParametre(), getTrameLength(), setBallesMaximum(), setZoneObjectif(), setZoneRobot(), et ZONE_AUCUNE.

Référencé par traiterTrame().

{
    qDebug() << Q_FUNC_INFO << QThread::currentThreadId() << this << QString::fromUtf8("Données reçues : ") << donneesRecues;

    bool trameValide = true;

    if (getTrameLength(donneesRecues) == 2)                 // sans arguments
        trameValide = gererTramesSansParametre(donneesRecues);

    else if (getTrameLength(donneesRecues) == 3)            // 1 arguments
        trameValide = gererTrames1Parametre(donneesRecues);

    //$TTPA:SETSEANCE:[POS_ROBOT]:[POS_OBJECTIF]:[NB_BALLES_MAX]:[FREQ_ENVOI]
    else if (getTrameLength(donneesRecues) == 5 && extraireElement(donneesRecues,1).startsWith("SETSEANCE"))
    {
        if ((extraireElement(donneesRecues,2)).toInt() <= 0)    // AUCUN dans le cas d'un negatif ou zero
            emit setZoneRobot(ZONE_AUCUNE);
        else
            emit setZoneRobot((extraireElement(donneesRecues,2)).toInt() - 1);

        if ((extraireElement(donneesRecues,3)).toInt() <= 0)    // AUCUN dans le cas d'un negatif ou zero
            emit setZoneObjectif(ZONE_AUCUNE);
        else
            emit setZoneObjectif((extraireElement(donneesRecues,3)).toInt() - 1);

        emit setBallesMaximum((extraireElement(donneesRecues,4)).toInt());
    }
    else
    {
        qDebug() << Q_FUNC_INFO << "/!\\ TRAME NON RECONNUE /!\\";
        trameValide = false;
    }
    return trameValide;
}
bool CTrame::gererTrames1Parametre ( QString  donneesRecues) [private]

*

Références balleEnJeu(), extraireElement(), impacterZone(), messageNonReconnu(), setBallesMaximum(), setInfoConnect(), setZoneObjectif(), setZoneRobot(), et ZONE_AUCUNE.

Référencé par gererTrame().

{
    bool trameValide = true;

    // $TTPA:CONNECT:[nom]
    if (extraireElement(donneesRecues,1).startsWith("CONNECT"))
    {
        emit setInfoConnect(extraireElement(donneesRecues,2));
    }
    //$TTPA:SETROBOT:[POS_ROBOT]
    else if (extraireElement(donneesRecues,1).startsWith("SETROBOT"))
    {
        if ((extraireElement(donneesRecues,2)).toInt() <= 0)    // Adaptation au systeme de la table
            emit setZoneRobot(ZONE_AUCUNE);
        else
            emit setZoneRobot((extraireElement(donneesRecues,2)).toInt() - 1);
    }
    //$TTPA:SETOBJECTIF:[POS_OBJECTIF]
    else if (extraireElement(donneesRecues,1).startsWith("SETOBJECTIF"))
    {
        if ((extraireElement(donneesRecues,2)).toInt() <= 0)    // Adaptation au systeme de la table
            emit setZoneObjectif(ZONE_AUCUNE);
        else
            emit setZoneObjectif((extraireElement(donneesRecues,2)).toInt() - 1);
    }
    //$TTPA:SETBALLESMAX:[BALLES]
    else if (extraireElement(donneesRecues,1).startsWith("SETBALLESMAX"))
    {
        emit setBallesMaximum((extraireElement(donneesRecues,2)).toInt());
    }
    //$TTPA:IMPACT:[X]
    else if (extraireElement(donneesRecues,1).startsWith("IMPACT"))
    {
        if ((extraireElement(donneesRecues,2)).toInt() <= 0)        // Adaptation au systeme de la table
            emit balleEnJeu();
        else
            emit impacterZone((extraireElement(donneesRecues,2)).toInt() - 1);
    }
    else
    {
        messageNonReconnu(donneesRecues,1);
        trameValide = false;
    }
    return trameValide;
}
bool CTrame::gererTramesSansParametre ( QString  donneesRecues) [private]

*

Paramètres:
Trameen QString, element en int

Références balleEnJeu(), commencerSeance(), extraireElement(), finirSeance(), messageNonReconnu(), pauserSeance(), quitter(), reprendreSeance(), et resetSeance().

Référencé par gererTrame().

{
    bool trameValide = true;
    //$TTPA:JOUEE
    if (extraireElement(donneesRecues,1).startsWith("JOUEE"))
    {
        emit balleEnJeu();
    }
    //$TTPA:START
    else if (extraireElement(donneesRecues,1).startsWith("START"))
    {
        emit commencerSeance();
    }
    //$TTPA:FINSEANCE
    else if (extraireElement(donneesRecues,1).startsWith("FINSEANCE"))
    {
        emit finirSeance();
    }
    //$TTPA:PAUSE
    else if (extraireElement(donneesRecues,1).startsWith("PAUSE"))
    {
        emit pauserSeance();
    }
    //$TTPA:RESUME
    else if (extraireElement(donneesRecues,1).startsWith("RESUME"))
    {
        emit reprendreSeance();
    }
    //$TTPA:RESET
    else if (extraireElement(donneesRecues,1).startsWith("RESET"))
    {
        emit resetSeance();
    }
    //$TTPA:QUIT
    else if (extraireElement(donneesRecues,1).startsWith("QUIT"))
    {
        emit quitter();
    }
    else
    {
        messageNonReconnu(donneesRecues,1);
        trameValide = false;
    }
    return trameValide;
}
int CTrame::getTrameLength ( QString  donneesRecues) [private]

*

Paramètres:
Trameen QString, index de l'élément

Référencé par gererTrame().

{
    if(donneesRecues.isEmpty())
        return 0;

    QStringList listeElements;
    listeElements = donneesRecues.split(":");

    return listeElements.length();
}
void CTrame::impacterZone ( uint8_t  zone) [signal]

*

Référencé par gererTrames1Parametre().

void CTrame::messageNonReconnu ( QString  donneesRecues,
int  element 
) [private]

*

Paramètres:
Trameen QString

Références extraireElement().

Référencé par gererTrames1Parametre(), et gererTramesSansParametre().

{
    qDebug() << Q_FUNC_INFO << "/!\\ TRAME NON RECONNUE /!\\";

    QString testChars = "  [Element " + QString::number(element) +"]:  [|";

    for(int i=0; i<extraireElement(donneesRecues,element).length();i++)
    {
        testChars += (extraireElement(donneesRecues,element)[i]) + "|";
    }
    testChars+="]";
    qDebug() << testChars;
}
void CTrame::pauserSeance ( ) [signal]

*

Référencé par gererTramesSansParametre().

void CTrame::quitter ( ) [signal]

*

Référencé par gererTramesSansParametre().

void CTrame::rafraichirCSS ( ) [signal]

*

void CTrame::reprendreSeance ( ) [signal]

*

Référencé par gererTramesSansParametre().

void CTrame::resetSeance ( ) [signal]

*

Référencé par gererTramesSansParametre().

void CTrame::setBallesMaximum ( int  balles) [signal]

*

Référencé par gererTrame(), et gererTrames1Parametre().

void CTrame::setFrequenceRobot ( float  freq) [signal]

*

void CTrame::setInfoConnect ( QString  nom) [signal]

Référencé par gererTrames1Parametre().

void CTrame::setLayerEcran ( uint8_t  layer) [signal]

*

void CTrame::setZoneObjectif ( uint8_t  zone) [signal]

*

Référencé par gererTrame(), et gererTrames1Parametre().

void CTrame::setZoneRobot ( uint8_t  zone) [signal]

*

Référencé par gererTrame(), et gererTrames1Parametre().

bool CTrame::traiterTrame ( QString  donneesRecues) [slot]

*

Références gererTrame().

Référencé par CIhm::envoyerCommande().

{
    if(donneesRecues.isEmpty())
        return false;

    bool retour = false;

    QStringList listeElements;
    listeElements = donneesRecues.split("$",QString::SkipEmptyParts);

    for(uint8_t i = 0; i < listeElements.length(); i++)
    {
        if (listeElements.at(i).startsWith("TTPA:"))
            retour = gererTrame("$" + listeElements.at(i));
    }
    return retour;
}

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