Chrono-Cross  1.1
BTS SN-IR La Salle Avignon 2018
chronocrossclassement.h
Aller à la documentation de ce fichier.
00001 #ifndef CHRONOCROSSCLASSEMENT_H
00002 #define CHRONOCROSSCLASSEMENT_H
00003 
00016 #include <QMainWindow>
00017 
00018 #include "qextserialenumerator.h"
00019 #include "qextserialport.h"
00020 
00021 #ifdef Q_OS_WIN
00022 #define NOM_PORT QString("COM10")
00023 #else
00024 #define NOM_PORT QString("/dev/ttyUSB0")
00025 #endif
00026 
00027 
00028 #define TIMEOUT 1500 // en ms
00029 #define PERIODE 1000 // en ms
00030 
00031 // Pour la table Course
00032 #define COURSE_ID              0
00033 #define COURSE_NOM             2
00034 #define COURSE_DISTANCE        3
00035 #define COURSE_HEUREDEPART     4
00036 
00037 // Messages from Device to Host
00038 #define AK  "AK" // acknowledge
00039 #define ID  "ID" // id
00040 #define SN  "SN" // serial number
00041 #define OP  "OP" // open run
00042 #define CL  "CL" // close run
00043 #define DS  "DS" // start download
00044 #define DE  "DE" // end of download
00045 #define VE  "VE" // speed
00046 #define RR  "RR" // result
00047 
00048 #define SYNCHRO         "!T" // synchro time
00049 #define PARAMETER       "&P" // parameter
00050 #define SYSTEM_EVENT    "&S" //
00051 #define DISPLAY_EVENT   "&D" //
00052 
00053 // Messages from Host to Device
00054 // TODO
00055 
00056 class BaseDeDonnees;
00057 
00058 namespace Ui {
00059 class ChronoCrossClassement;
00060 }
00061 
00067 class ChronoCrossClassement : public QMainWindow
00068 {
00069     Q_OBJECT
00070     
00071 public:
00072     explicit ChronoCrossClassement(QWidget *parent = 0);
00073     ~ChronoCrossClassement();
00074     
00075 private:
00076     Ui::ChronoCrossClassement *ui; 
00077     BaseDeDonnees *bd; 
00078     //QVector<QStringList> listeCourses; /**< \brief la liste des courses pour une manifestation */
00079     QextSerialPort *port;
00080     QByteArray donnees;
00081     bool displayEvent;
00082     QStringList manifestation;
00083     QVector<QStringList> courses;
00084     QVector<QStringList> inscrits;
00085     QVector<QString> arrivees;
00086     QVector<QString> dossards;
00087     QString numeroCourse;
00094     void chargerListeManifestation();
00095 
00101     void chargerListeCourses();
00102 
00108     void initialiserBD();
00109 
00115     void initialiserPort();
00116 
00122     char verifierAcquittement(QString trame);
00123 
00129     unsigned short calculerChecksum(QString data);
00130 
00136     void envoyer(QString &trame);
00137 
00143     void effacerTableTemps();
00144 
00150     void afficherTableTemps();
00151 
00157     QString getIdInscrit(QString dossard);
00158 
00164     bool estInscrit(QString dossard);
00165 
00166 signals:
00167     void courseTerminee(QString numero);
00168     void courseDemarree(QString numero);
00169     void tempsArrivee(QString ordre, QString temps);
00170 
00171 private slots:
00172 
00178     void quitter();
00179 
00185     void chargerInscritsCourse();
00186 
00192     void demarrerCourse();
00193 
00199     void topDepart();
00200 
00206     void finaliserDepartCourse(QString numero);
00207 
00213     void finaliserFinCourse(QString numero);
00214 
00220     void terminerCourse();
00221 
00226     void enregistrerResultat();
00227 
00233     void enregistrerArriveeCoureur(QString ordre, QString temps);
00234 
00240     void onReadyRead();
00241 
00247     void actualiserMessage(QString message);
00248 
00254     void numeroterDossard(int l, int c);
00255 
00261     void selectionnerCourse();
00262 
00263 };
00264 
00265 #endif // CHRONOCROSSCLASSEMENT_H
 Tout Classes Fichiers Fonctions Variables Macros