version qui corrige tous les beugs
Dependents: Projet_client_serveur EX5 ex10 ex11 ... more
IHM.h@0:cd0f9e8c609b, 2016-10-01 (annotated)
- Committer:
- gr66
- Date:
- Sat Oct 01 12:23:41 2016 +0000
- Revision:
- 0:cd0f9e8c609b
- Child:
- 1:663cbe5baac4
v1.0
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
gr66 | 0:cd0f9e8c609b | 1 | /// @file IHM.h Bibliothéque de classe pour la carte Zboard |
gr66 | 0:cd0f9e8c609b | 2 | /// @mainpage |
gr66 | 0:cd0f9e8c609b | 3 | /// |
gr66 | 0:cd0f9e8c609b | 4 | /// |
gr66 | 0:cd0f9e8c609b | 5 | /// |
gr66 | 0:cd0f9e8c609b | 6 | /// @author Gilles Raynaud, IUT Cachan |
gr66 | 0:cd0f9e8c609b | 7 | /// |
gr66 | 0:cd0f9e8c609b | 8 | /// @note |
gr66 | 0:cd0f9e8c609b | 9 | /// History |
gr66 | 0:cd0f9e8c609b | 10 | /// v1.00 01/10/2016 |
gr66 | 0:cd0f9e8c609b | 11 | #include "all_includes.h" |
gr66 | 0:cd0f9e8c609b | 12 | #define SIZE_FIFO 32 |
gr66 | 0:cd0f9e8c609b | 13 | #define MESSAGE_BUFFER_SIZE 20 |
gr66 | 0:cd0f9e8c609b | 14 | #define JOG_MSK_PUSH (1<<2) // valeur renvoyée si le Jog est enfoncé (en position de repos) |
gr66 | 0:cd0f9e8c609b | 15 | #define JOG_MSK_RIGHT (1<<4) // valeur renvoyée si le Jog est poussé vers la droite (non enfoncé). |
gr66 | 0:cd0f9e8c609b | 16 | #define JOG_MSK_UP (1<<3) // valeur renvoyée si le Jog est poussé vers le haut (non enfoncé). |
gr66 | 0:cd0f9e8c609b | 17 | #define JOG_MSK_LEFT (1<<1) // valeur renvoyée si le Jog est poussé vers la gauche (non enfoncé). |
gr66 | 0:cd0f9e8c609b | 18 | #define JOG_MSK_DOWN 1 // valeur renvoyée si le Jog est poussé vers le bas (non enfoncé). |
gr66 | 0:cd0f9e8c609b | 19 | |
gr66 | 0:cd0f9e8c609b | 20 | //static char tableau_ecran[32]= {32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32}; |
gr66 | 0:cd0f9e8c609b | 21 | |
gr66 | 0:cd0f9e8c609b | 22 | // |
gr66 | 0:cd0f9e8c609b | 23 | /// |
gr66 | 0:cd0f9e8c609b | 24 | /// Example: |
gr66 | 0:cd0f9e8c609b | 25 | /// @code |
gr66 | 0:cd0f9e8c609b | 26 | ///#include "IHM.h" |
gr66 | 0:cd0f9e8c609b | 27 | ///IHM ihm; |
gr66 | 0:cd0f9e8c609b | 28 | ///Serial pc(SERIAL_TX, SERIAL_RX); |
gr66 | 0:cd0f9e8c609b | 29 | ///int main() |
gr66 | 0:cd0f9e8c609b | 30 | ///{ |
gr66 | 0:cd0f9e8c609b | 31 | /// unsigned char i=0,j; |
gr66 | 0:cd0f9e8c609b | 32 | /// float pi=4*atan(1.0); |
gr66 | 0:cd0f9e8c609b | 33 | /// pc.printf("debut"); |
gr66 | 0:cd0f9e8c609b | 34 | /// ihm.LCD_printf("Hello World "); |
gr66 | 0:cd0f9e8c609b | 35 | /// ihm.LCD_gotoxy(1,0); |
gr66 | 0:cd0f9e8c609b | 36 | /// ihm.LCD_printf("PI= %f",pi); // test affichage float |
gr66 | 0:cd0f9e8c609b | 37 | /// ihm.BAR_set(0x3FF); |
gr66 | 0:cd0f9e8c609b | 38 | /// wait(2); |
gr66 | 0:cd0f9e8c609b | 39 | /// ihm.BAR_set(0x2AA); |
gr66 | 0:cd0f9e8c609b | 40 | /// wait(2); |
gr66 | 0:cd0f9e8c609b | 41 | /// ihm.BAR_set(0x155); |
gr66 | 0:cd0f9e8c609b | 42 | /// wait(2); |
gr66 | 0:cd0f9e8c609b | 43 | /// ihm.LCD_clear(); |
gr66 | 0:cd0f9e8c609b | 44 | /// while(1) { |
gr66 | 0:cd0f9e8c609b | 45 | /// wait(0.1); |
gr66 | 0:cd0f9e8c609b | 46 | /// printf("cod"); |
gr66 | 0:cd0f9e8c609b | 47 | /// i=ihm.COD_read(); |
gr66 | 0:cd0f9e8c609b | 48 | /// j=ihm.JOG_read(); |
gr66 | 0:cd0f9e8c609b | 49 | /// ihm.BAR_set((UINT16)(i)); |
gr66 | 0:cd0f9e8c609b | 50 | /// ihm.LCD_gotoxy(0,0); |
gr66 | 0:cd0f9e8c609b | 51 | /// ihm.LCD_printf("Jog=%02d",j); |
gr66 | 0:cd0f9e8c609b | 52 | /// ihm.LCD_gotoxy(1,0); |
gr66 | 0:cd0f9e8c609b | 53 | /// ihm.LCD_printf("Cod=%03d",i); |
gr66 | 0:cd0f9e8c609b | 54 | /// } |
gr66 | 0:cd0f9e8c609b | 55 | ///} |
gr66 | 0:cd0f9e8c609b | 56 | /// @endcode |
gr66 | 0:cd0f9e8c609b | 57 | /// |
gr66 | 0:cd0f9e8c609b | 58 | class IHM |
gr66 | 0:cd0f9e8c609b | 59 | { |
gr66 | 0:cd0f9e8c609b | 60 | public: |
gr66 | 0:cd0f9e8c609b | 61 | /// Constructeur pour l'interface Zboard, normalement placé à l'extérieur de main |
gr66 | 0:cd0f9e8c609b | 62 | /// Les paramètres peuvent être omis (ils ont tous une valeur par défaut) |
gr66 | 0:cd0f9e8c609b | 63 | /// |
gr66 | 0:cd0f9e8c609b | 64 | IHM(PinName CANRx=PA_11, PinName CANTx=PA_12); |
gr66 | 0:cd0f9e8c609b | 65 | /// commande des 10 leds du bargraph |
gr66 | 0:cd0f9e8c609b | 66 | /// |
gr66 | 0:cd0f9e8c609b | 67 | /// Affiche la valeur passée en argument sur le bargraph |
gr66 | 0:cd0f9e8c609b | 68 | /// @param valeur à afficher sur le bargraph |
gr66 | 0:cd0f9e8c609b | 69 | /// @returns void |
gr66 | 0:cd0f9e8c609b | 70 | /// |
gr66 | 0:cd0f9e8c609b | 71 | void BAR_set(UINT16 valeur); |
gr66 | 0:cd0f9e8c609b | 72 | /// lecteur du codeur |
gr66 | 0:cd0f9e8c609b | 73 | /// |
gr66 | 0:cd0f9e8c609b | 74 | /// Retourne la valeur du codeur (0-255) |
gr66 | 0:cd0f9e8c609b | 75 | /// @param void |
gr66 | 0:cd0f9e8c609b | 76 | /// @returns valeur du codeur |
gr66 | 0:cd0f9e8c609b | 77 | /// |
gr66 | 0:cd0f9e8c609b | 78 | UINT8 COD_read(void); |
gr66 | 0:cd0f9e8c609b | 79 | /// positionne le curseur de l'afficheur LCD |
gr66 | 0:cd0f9e8c609b | 80 | /// |
gr66 | 0:cd0f9e8c609b | 81 | /// @param x colonne |
gr66 | 0:cd0f9e8c609b | 82 | /// @param y ligne |
gr66 | 0:cd0f9e8c609b | 83 | /// @returns void |
gr66 | 0:cd0f9e8c609b | 84 | /// |
gr66 | 0:cd0f9e8c609b | 85 | void LCD_gotoxy(UINT8,UINT8); |
gr66 | 0:cd0f9e8c609b | 86 | |
gr66 | 0:cd0f9e8c609b | 87 | /// écriture formatée sur l'afficheur LCD |
gr66 | 0:cd0f9e8c609b | 88 | /// |
gr66 | 0:cd0f9e8c609b | 89 | /// @param format... |
gr66 | 0:cd0f9e8c609b | 90 | /// @returns void |
gr66 | 0:cd0f9e8c609b | 91 | /// |
gr66 | 0:cd0f9e8c609b | 92 | void LCD_printf(const char* format, ...); |
gr66 | 0:cd0f9e8c609b | 93 | /// effacement de l'afficheur LCD |
gr66 | 0:cd0f9e8c609b | 94 | /// |
gr66 | 0:cd0f9e8c609b | 95 | /// @param void |
gr66 | 0:cd0f9e8c609b | 96 | /// @returns void |
gr66 | 0:cd0f9e8c609b | 97 | /// |
gr66 | 0:cd0f9e8c609b | 98 | void LCD_clear(void); |
gr66 | 0:cd0f9e8c609b | 99 | /// lecture du JOG |
gr66 | 0:cd0f9e8c609b | 100 | /// retourne la position (8 possibilités) et l'enfoncement du Jog |
gr66 | 0:cd0f9e8c609b | 101 | /// @param void |
gr66 | 0:cd0f9e8c609b | 102 | /// @returns void |
gr66 | 0:cd0f9e8c609b | 103 | /// |
gr66 | 0:cd0f9e8c609b | 104 | UINT8 JOG_read(void); |
gr66 | 0:cd0f9e8c609b | 105 | private: |
gr66 | 0:cd0f9e8c609b | 106 | int COD_valeur; |
gr66 | 0:cd0f9e8c609b | 107 | unsigned char JOG_valeur,mise_a_jour_JOG,mise_a_jour_COD; |
gr66 | 0:cd0f9e8c609b | 108 | unsigned char FIFO_ecriture; |
gr66 | 0:cd0f9e8c609b | 109 | // CANMessage can_MsgRx[SIZE_FIFO]; |
gr66 | 0:cd0f9e8c609b | 110 | UINT8 curseur; |
gr66 | 0:cd0f9e8c609b | 111 | UINT8 IHM_is_running; |
gr66 | 0:cd0f9e8c609b | 112 | CANMessage can_MsgRx[SIZE_FIFO], can_MsgTx; |
gr66 | 0:cd0f9e8c609b | 113 | //extern unsigned char Reception_CAN; |
gr66 | 0:cd0f9e8c609b | 114 | CANMessage trame_Tx; |
gr66 | 0:cd0f9e8c609b | 115 | //static char tableau_ecran[32]= {32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32}; |
gr66 | 0:cd0f9e8c609b | 116 | char tableau_ecran[32]; |
gr66 | 0:cd0f9e8c609b | 117 | CAN can; |
gr66 | 0:cd0f9e8c609b | 118 | void can_ISR_Reader(void); |
gr66 | 0:cd0f9e8c609b | 119 | void CAN_automate_reception(void); |
gr66 | 0:cd0f9e8c609b | 120 | void IHM_sendchar (char data); |
gr66 | 0:cd0f9e8c609b | 121 | void IHM_printf(const char* format, ...); |
gr66 | 0:cd0f9e8c609b | 122 | void IHM_vprintf(const char* format, va_list args); |
gr66 | 0:cd0f9e8c609b | 123 | void IHM_sendstring (char* message); |
gr66 | 0:cd0f9e8c609b | 124 | }; |