Chrono-Cross  0.8
BTS SN-IR La Salle Avignon 2017
ihm.h
Aller à la documentation de ce fichier.
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
 Tout Classes Fichiers Fonctions Variables Macros