![]() |
TTPA (Écran)
1.1
BTS SN-IR La Salle Avignon 2018
|
#include <trame.h>
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 |
CTrame::CTrame | ( | QObject * | parent = 0 | ) |
: QObject(parent) { }
CTrame::~CTrame | ( | ) |
{ }
void CTrame::balleEnJeu | ( | ) | [signal] |
*
Référencé par gererTrames1Parametre(), et gererTramesSansParametre().
void CTrame::commencerSeance | ( | ) | [signal] |
*
Référencé par gererTramesSansParametre().
QString CTrame::extraireElement | ( | QString | donneesRecues, |
const int | element | ||
) | [private] |
*
Trame | en QString |
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] |
*
Trame | en 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] |
*
Trame | en 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] |
*
Trame | en 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; }