![]() |
Chrono-Cross
1.1
BTS SN-IR La Salle Avignon 2018
|
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