![]() |
Chrono-Cross
0.8
BTS SN-IR La Salle Avignon 2017
|
00001 #ifndef IHM_H 00002 #define IHM_H 00003 00004 #include <QtGui> /* tous les widgets de Qt5 */ 00005 #include <QtSql/QtSql> 00006 #include <QFileInfo> 00007 #include <QSettings> 00008 #include <QMessageBox> 00009 #include <QDebug> 00010 00011 #include "qextserialenumerator.h" 00012 #include "qextserialport.h" 00013 00014 #define TIMEOUT 1500 // en ms 00015 #define PERIODE 1000 // en ms 00016 00017 #define T_AUCUNE 0 00018 #define T_RS232 1 00019 00020 // Messages from Device to Host 00021 #define AK "AK" // acknowledge 00022 #define ID "ID" // id 00023 #define SN "SN" // serial number 00024 #define OP "OP" // open run 00025 #define CL "CL" // close run 00026 #define DS "DS" // start download 00027 #define DE "DE" // end of download 00028 #define VE "VE" // speed 00029 #define RR "RR" // result 00030 00031 #define SYNCHRO "!T" // synchro time 00032 #define PARAMETER "&P" // parameter 00033 #define SYSTEM_EVENT "&S" // 00034 #define DISPLAY_EVENT "&D" // 00035 00036 // Messages from Host to Device 00037 00038 00039 class IHM : public QWidget 00040 { 00041 Q_OBJECT 00042 00043 public: 00044 IHM( QWidget *parent = 0 ); 00045 ~IHM(); 00046 00047 private: 00048 QextSerialPort *port; 00049 QByteArray donnees; 00050 QLabel *labelLigne; 00051 QComboBox *choixLigne; 00052 QLabel *labelType; 00053 QComboBox *leType; 00054 QLabel *labelCommande; 00055 QLineEdit *leCommande; 00056 QCheckBox *cbDisplayEvent; 00057 QTextEdit *messagesTTE; 00058 00059 QPushButton *bEnvoyer; 00060 QPushButton *bQuitter; 00061 QPushButton *boutonOuvrir; 00062 00063 QSqlDatabase db; 00064 QString nomPort; 00065 00066 void lireParametresINI(); 00067 void ecrireParametresINI(); 00068 void initialiserBD(); 00069 void demarrer(); 00070 void arreter(); 00071 int emettre(const QString &trame); 00072 bool ouvrirPort(const QString &portName); 00073 char verifierAcquittement(QString trame); 00074 unsigned short calculerChecksum(QString data); 00075 bool recevoir(QString &message, unsigned int timeout = TIMEOUT); 00076 00077 signals: 00078 void terminer(); 00079 void quit(); 00080 00081 private slots: 00082 void quitter(); 00083 void selectionnerLigne(int index); 00084 void actualiserMessage(const QString &message); 00085 void envoyerCommande(); 00086 void envoyer(QString &trame); 00087 void ouvrir(); 00088 void onReadyRead(); 00089 }; 00090 00091 #endif