
Identification_GT-521F52
Dependencies: BSP_DISCO_F746NG GT511C3
main.cpp@2:baaccd9cb124, 2020-06-24 (annotated)
- Committer:
- ROUCHDI
- Date:
- Wed Jun 24 15:58:57 2020 +0000
- Revision:
- 2:baaccd9cb124
- Parent:
- 0:e0918584a802
bonne version
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
ROUCHDI | 0:e0918584a802 | 1 | #include "mbed.h" |
ROUCHDI | 0:e0918584a802 | 2 | #include "logo.h" |
ROUCHDI | 0:e0918584a802 | 3 | #include "GT511C3.hpp" |
ROUCHDI | 0:e0918584a802 | 4 | #include "stm32746g_discovery_lcd.h" |
ROUCHDI | 0:e0918584a802 | 5 | #include "stm32746g_discovery_ts.h" |
ROUCHDI | 0:e0918584a802 | 6 | |
ROUCHDI | 0:e0918584a802 | 7 | // init la com serie et du capteur |
ROUCHDI | 0:e0918584a802 | 8 | Serial pc(USBTX, USBRX,9600); // tx, rx |
ROUCHDI | 0:e0918584a802 | 9 | GT511C3 finger(D1,D0); |
ROUCHDI | 0:e0918584a802 | 10 | |
ROUCHDI | 0:e0918584a802 | 11 | int pass = 2606; |
ROUCHDI | 0:e0918584a802 | 12 | int code = 0; |
ROUCHDI | 0:e0918584a802 | 13 | int multi = 1; |
ROUCHDI | 0:e0918584a802 | 14 | int id; |
ROUCHDI | 0:e0918584a802 | 15 | uint8_t text[30]; |
ROUCHDI | 0:e0918584a802 | 16 | int EnrollID = -1; |
ROUCHDI | 0:e0918584a802 | 17 | unsigned char data[498]; |
ROUCHDI | 0:e0918584a802 | 18 | int identificateur; |
ROUCHDI | 0:e0918584a802 | 19 | //variable |
ROUCHDI | 0:e0918584a802 | 20 | |
ROUCHDI | 0:e0918584a802 | 21 | void touch_screen(); |
ROUCHDI | 0:e0918584a802 | 22 | void init_lcd(); |
ROUCHDI | 0:e0918584a802 | 23 | void font_clavier(int on_off); |
ROUCHDI | 0:e0918584a802 | 24 | void font_menu_principal_simple(int on_off); |
ROUCHDI | 0:e0918584a802 | 25 | void font_menu_principal_add(int on_off); |
ROUCHDI | 0:e0918584a802 | 26 | void font_menu_principal(int on_off); |
ROUCHDI | 0:e0918584a802 | 27 | void touch_screen_simple(); |
ROUCHDI | 0:e0918584a802 | 28 | void touch_screen_add(); |
ROUCHDI | 0:e0918584a802 | 29 | void menu_principal(); |
ROUCHDI | 0:e0918584a802 | 30 | void identifier(); |
ROUCHDI | 0:e0918584a802 | 31 | void identifier_add(); |
ROUCHDI | 0:e0918584a802 | 32 | void ajouter_finger(); |
ROUCHDI | 0:e0918584a802 | 33 | void init_finger(); |
ROUCHDI | 0:e0918584a802 | 34 | void drawImageLogo(int offsetX, int offsetY); |
ROUCHDI | 0:e0918584a802 | 35 | void codetouche(int touche,int multi); |
ROUCHDI | 0:e0918584a802 | 36 | int menu_clavier(); |
ROUCHDI | 0:e0918584a802 | 37 | int progress(int status,char *msg); |
ROUCHDI | 0:e0918584a802 | 38 | //fonction |
ROUCHDI | 0:e0918584a802 | 39 | |
ROUCHDI | 0:e0918584a802 | 40 | |
ROUCHDI | 0:e0918584a802 | 41 | //affichage de message |
ROUCHDI | 0:e0918584a802 | 42 | int progress(int status,char *msg) |
ROUCHDI | 0:e0918584a802 | 43 | { |
ROUCHDI | 0:e0918584a802 | 44 | pc.printf("%s\r\n",msg); |
ROUCHDI | 0:e0918584a802 | 45 | BSP_LCD_ClearStringLine(1); |
ROUCHDI | 0:e0918584a802 | 46 | sprintf((char*)text,"%s",msg); |
ROUCHDI | 0:e0918584a802 | 47 | BSP_LCD_DisplayStringAt(0, LINE(1), (uint8_t *)&text, CENTER_MODE ); |
ROUCHDI | 0:e0918584a802 | 48 | return 0; |
ROUCHDI | 0:e0918584a802 | 49 | } |
ROUCHDI | 0:e0918584a802 | 50 | // recuperation du code taper |
ROUCHDI | 0:e0918584a802 | 51 | void codetouche(int touche,int multi) |
ROUCHDI | 0:e0918584a802 | 52 | { |
ROUCHDI | 0:e0918584a802 | 53 | if (code == 0) { |
ROUCHDI | 0:e0918584a802 | 54 | code = touche; |
ROUCHDI | 0:e0918584a802 | 55 | pc.printf("code: %d",code); |
ROUCHDI | 0:e0918584a802 | 56 | sprintf((char*)text,"code: %d",code);//valider |
ROUCHDI | 0:e0918584a802 | 57 | BSP_LCD_DisplayStringAt(0, LINE(2), (uint8_t *)&text, RIGHT_MODE); |
ROUCHDI | 0:e0918584a802 | 58 | } else { |
ROUCHDI | 0:e0918584a802 | 59 | code *= multi; |
ROUCHDI | 0:e0918584a802 | 60 | code += touche; |
ROUCHDI | 0:e0918584a802 | 61 | pc.printf("code: %d",code); |
ROUCHDI | 0:e0918584a802 | 62 | sprintf((char*)text,"code: %d ",code);//valider |
ROUCHDI | 0:e0918584a802 | 63 | BSP_LCD_DisplayStringAt(0, LINE(2), (uint8_t *)&text, RIGHT_MODE); |
ROUCHDI | 0:e0918584a802 | 64 | } |
ROUCHDI | 0:e0918584a802 | 65 | if(code == pass) { |
ROUCHDI | 0:e0918584a802 | 66 | code = 0; |
ROUCHDI | 0:e0918584a802 | 67 | identificateur = 1; |
ROUCHDI | 0:e0918584a802 | 68 | } |
ROUCHDI | 0:e0918584a802 | 69 | } |
ROUCHDI | 0:e0918584a802 | 70 | // affiche le logo de l'IUT |
ROUCHDI | 0:e0918584a802 | 71 | void drawImageLogo(int offsetX, int offsetY) |
ROUCHDI | 0:e0918584a802 | 72 | { |
ROUCHDI | 0:e0918584a802 | 73 | int x = 0; |
ROUCHDI | 0:e0918584a802 | 74 | int y = 0; |
ROUCHDI | 0:e0918584a802 | 75 | uint32_t* dataPtr = (uint32_t*)logo.data; |
ROUCHDI | 0:e0918584a802 | 76 | while(y < logo.height) { |
ROUCHDI | 0:e0918584a802 | 77 | while(x < logo.width) { |
ROUCHDI | 0:e0918584a802 | 78 | BSP_LCD_DrawPixel(x + offsetX, y + offsetY, *dataPtr); |
ROUCHDI | 0:e0918584a802 | 79 | dataPtr++; |
ROUCHDI | 0:e0918584a802 | 80 | x++; |
ROUCHDI | 0:e0918584a802 | 81 | } |
ROUCHDI | 0:e0918584a802 | 82 | x = 0; |
ROUCHDI | 0:e0918584a802 | 83 | y++; |
ROUCHDI | 0:e0918584a802 | 84 | } |
ROUCHDI | 0:e0918584a802 | 85 | } |
ROUCHDI | 0:e0918584a802 | 86 | // initialisation du capteur |
ROUCHDI | 0:e0918584a802 | 87 | void init_finger() |
ROUCHDI | 0:e0918584a802 | 88 | { |
ROUCHDI | 0:e0918584a802 | 89 | int sts = 0; |
ROUCHDI | 0:e0918584a802 | 90 | //int EnrollID = -1; |
ROUCHDI | 0:e0918584a802 | 91 | unsigned char data[498]; |
ROUCHDI | 0:e0918584a802 | 92 | |
ROUCHDI | 0:e0918584a802 | 93 | pc.format(8,Serial::None,1); |
ROUCHDI | 0:e0918584a802 | 94 | pc.printf("Hello World\n\r"); |
ROUCHDI | 0:e0918584a802 | 95 | pc.printf("Fingerprint reader module \"GT-511C3 / GT-511C31\" test program.\n\r"); |
ROUCHDI | 0:e0918584a802 | 96 | pc.printf("Build: %s %s\n\r",__DATE__,__TIME__); |
ROUCHDI | 0:e0918584a802 | 97 | pc.printf("Open\n\r"); |
ROUCHDI | 0:e0918584a802 | 98 | sts = finger.Open(); |
ROUCHDI | 0:e0918584a802 | 99 | pc.printf("sts = %d\n\r",sts); |
ROUCHDI | 0:e0918584a802 | 100 | |
ROUCHDI | 0:e0918584a802 | 101 | if(sts == 0) { |
ROUCHDI | 0:e0918584a802 | 102 | int i; |
ROUCHDI | 0:e0918584a802 | 103 | pc.printf("FirmwareVersion = %lx\n\r",finger.FirmwareVersion); |
ROUCHDI | 0:e0918584a802 | 104 | pc.printf("IsoAreaMaxSize = %ld\n\r",finger.IsoAreaMaxSize); |
ROUCHDI | 0:e0918584a802 | 105 | pc.printf("DeviceSerialNumber = "); |
ROUCHDI | 0:e0918584a802 | 106 | for(i = 0; i < sizeof(finger.DeviceSerialNumber); i++) { |
ROUCHDI | 0:e0918584a802 | 107 | pc.printf("%02X",finger.DeviceSerialNumber[i]); |
ROUCHDI | 0:e0918584a802 | 108 | } |
ROUCHDI | 0:e0918584a802 | 109 | pc.printf("\n\r"); |
ROUCHDI | 0:e0918584a802 | 110 | } |
ROUCHDI | 0:e0918584a802 | 111 | } |
ROUCHDI | 0:e0918584a802 | 112 | // ajout d'empreinte |
ROUCHDI | 0:e0918584a802 | 113 | void ajouter_finger() |
ROUCHDI | 0:e0918584a802 | 114 | { |
ROUCHDI | 0:e0918584a802 | 115 | EnrollID++; |
ROUCHDI | 0:e0918584a802 | 116 | finger.CmosLed( 1); |
ROUCHDI | 0:e0918584a802 | 117 | finger.Enroll(EnrollID, progress); |
ROUCHDI | 0:e0918584a802 | 118 | pc.printf("SetTemplate = %d\n", finger.SetTemplate(11,data,498)); |
ROUCHDI | 0:e0918584a802 | 119 | finger.CmosLed(0); |
ROUCHDI | 0:e0918584a802 | 120 | } |
ROUCHDI | 0:e0918584a802 | 121 | // fond pour le menu ajouter empreinte |
ROUCHDI | 0:e0918584a802 | 122 | void font_menu_principal_add(int on_off) |
ROUCHDI | 0:e0918584a802 | 123 | { |
ROUCHDI | 0:e0918584a802 | 124 | uint8_t text[30]; |
ROUCHDI | 0:e0918584a802 | 125 | int touche = 0; |
ROUCHDI | 0:e0918584a802 | 126 | |
ROUCHDI | 0:e0918584a802 | 127 | if (on_off == 1) { |
ROUCHDI | 0:e0918584a802 | 128 | sprintf((char*)text, "|"); |
ROUCHDI | 0:e0918584a802 | 129 | BSP_LCD_DisplayStringAt(0, LINE(0), (uint8_t *)&text, CENTER_MODE ); |
ROUCHDI | 0:e0918584a802 | 130 | sprintf((char*)text, "|"); |
ROUCHDI | 0:e0918584a802 | 131 | BSP_LCD_DisplayStringAt(0, LINE(1), (uint8_t *)&text, CENTER_MODE ); |
ROUCHDI | 0:e0918584a802 | 132 | sprintf((char*)text, "|"); |
ROUCHDI | 0:e0918584a802 | 133 | BSP_LCD_DisplayStringAt(0, LINE(2), (uint8_t *)&text, CENTER_MODE ); |
ROUCHDI | 0:e0918584a802 | 134 | sprintf((char*)text, "|"); |
ROUCHDI | 0:e0918584a802 | 135 | BSP_LCD_DisplayStringAt(0, LINE(3), (uint8_t *)&text, CENTER_MODE ); |
ROUCHDI | 0:e0918584a802 | 136 | sprintf((char*)text, "|"); |
ROUCHDI | 0:e0918584a802 | 137 | BSP_LCD_DisplayStringAt(0, LINE(4), (uint8_t *)&text, CENTER_MODE ); |
ROUCHDI | 0:e0918584a802 | 138 | sprintf((char*)text, "|"); |
ROUCHDI | 0:e0918584a802 | 139 | BSP_LCD_DisplayStringAt(0, LINE(5), (uint8_t *)&text, CENTER_MODE ); |
ROUCHDI | 0:e0918584a802 | 140 | sprintf((char*)text, "|"); |
ROUCHDI | 0:e0918584a802 | 141 | BSP_LCD_DisplayStringAt(0, LINE(6), (uint8_t *)&text, CENTER_MODE ); |
ROUCHDI | 0:e0918584a802 | 142 | sprintf((char*)text, "|"); |
ROUCHDI | 0:e0918584a802 | 143 | BSP_LCD_DisplayStringAt(0, LINE(7), (uint8_t *)&text, CENTER_MODE ); |
ROUCHDI | 0:e0918584a802 | 144 | sprintf((char*)text, "|"); |
ROUCHDI | 0:e0918584a802 | 145 | BSP_LCD_DisplayStringAt(0, LINE(8), (uint8_t *)&text, CENTER_MODE ); |
ROUCHDI | 0:e0918584a802 | 146 | sprintf((char*)text, "|"); |
ROUCHDI | 0:e0918584a802 | 147 | BSP_LCD_DisplayStringAt(0, LINE(9), (uint8_t *)&text, CENTER_MODE ); |
ROUCHDI | 0:e0918584a802 | 148 | sprintf((char*)text, "|"); |
ROUCHDI | 0:e0918584a802 | 149 | BSP_LCD_DisplayStringAt(0, LINE(10), (uint8_t *)&text, CENTER_MODE ); |
ROUCHDI | 0:e0918584a802 | 150 | sprintf((char*)text, "|"); |
ROUCHDI | 0:e0918584a802 | 151 | BSP_LCD_DisplayStringAt(0, LINE(11), (uint8_t *)&text, CENTER_MODE ); |
ROUCHDI | 0:e0918584a802 | 152 | sprintf((char*)text, "|"); |
ROUCHDI | 0:e0918584a802 | 153 | BSP_LCD_DisplayStringAt(0, LINE(12), (uint8_t *)&text, CENTER_MODE ); |
ROUCHDI | 0:e0918584a802 | 154 | sprintf((char*)text, "|"); |
ROUCHDI | 0:e0918584a802 | 155 | BSP_LCD_DisplayStringAt(0, LINE(13), (uint8_t *)&text, CENTER_MODE ); |
ROUCHDI | 0:e0918584a802 | 156 | sprintf((char*)text, "|"); |
ROUCHDI | 0:e0918584a802 | 157 | BSP_LCD_DisplayStringAt(0, LINE(14), (uint8_t *)&text, CENTER_MODE ); |
ROUCHDI | 0:e0918584a802 | 158 | sprintf((char*)text, "|"); |
ROUCHDI | 0:e0918584a802 | 159 | BSP_LCD_DisplayStringAt(0, LINE(15), (uint8_t *)&text, CENTER_MODE ); |
ROUCHDI | 0:e0918584a802 | 160 | sprintf((char*)text, "|"); |
ROUCHDI | 0:e0918584a802 | 161 | BSP_LCD_DisplayStringAt(0, LINE(16), (uint8_t *)&text, CENTER_MODE ); |
ROUCHDI | 0:e0918584a802 | 162 | sprintf((char*)text, "|"); |
ROUCHDI | 0:e0918584a802 | 163 | BSP_LCD_DisplayStringAt(0, LINE(17), (uint8_t *)&text, CENTER_MODE ); |
ROUCHDI | 0:e0918584a802 | 164 | sprintf((char*)text, "|"); |
ROUCHDI | 0:e0918584a802 | 165 | BSP_LCD_DisplayStringAt(0, LINE(18), (uint8_t *)&text, CENTER_MODE ); |
ROUCHDI | 0:e0918584a802 | 166 | sprintf((char*)text, "|"); |
ROUCHDI | 0:e0918584a802 | 167 | BSP_LCD_DisplayStringAt(0, LINE(19), (uint8_t *)&text, CENTER_MODE ); |
ROUCHDI | 0:e0918584a802 | 168 | sprintf((char*)text, "|"); |
ROUCHDI | 0:e0918584a802 | 169 | BSP_LCD_DisplayStringAt(0, LINE(20), (uint8_t *)&text, CENTER_MODE ); |
ROUCHDI | 0:e0918584a802 | 170 | sprintf((char*)text, "|"); |
ROUCHDI | 0:e0918584a802 | 171 | BSP_LCD_DisplayStringAt(0, LINE(21), (uint8_t *)&text, CENTER_MODE ); |
ROUCHDI | 0:e0918584a802 | 172 | sprintf((char*)text, "|"); |
ROUCHDI | 0:e0918584a802 | 173 | BSP_LCD_DisplayStringAt(0, LINE(20), (uint8_t *)&text, CENTER_MODE ); |
ROUCHDI | 0:e0918584a802 | 174 | sprintf((char*)text, "|"); |
ROUCHDI | 0:e0918584a802 | 175 | BSP_LCD_DisplayStringAt(0, LINE(21), (uint8_t *)&text, CENTER_MODE ); |
ROUCHDI | 0:e0918584a802 | 176 | |
ROUCHDI | 0:e0918584a802 | 177 | sprintf((char*)text, " AJOUTER "); |
ROUCHDI | 0:e0918584a802 | 178 | BSP_LCD_DisplayStringAt(0, LINE(10), (uint8_t *)&text, LEFT_MODE ); |
ROUCHDI | 0:e0918584a802 | 179 | sprintf((char*)text, " SUPPRIMER "); |
ROUCHDI | 0:e0918584a802 | 180 | BSP_LCD_DisplayStringAt(0, LINE(10), (uint8_t *)&text, RIGHT_MODE); |
ROUCHDI | 0:e0918584a802 | 181 | sprintf((char*)text, "| BACK |"); |
ROUCHDI | 0:e0918584a802 | 182 | BSP_LCD_DisplayStringAt(0, LINE(1), (uint8_t *)&text, RIGHT_MODE ); |
ROUCHDI | 0:e0918584a802 | 183 | } |
ROUCHDI | 0:e0918584a802 | 184 | } |
ROUCHDI | 0:e0918584a802 | 185 | // permet de detecter les touches appuyer dans le menu ajouter |
ROUCHDI | 0:e0918584a802 | 186 | void touch_screen_add() |
ROUCHDI | 0:e0918584a802 | 187 | { |
ROUCHDI | 0:e0918584a802 | 188 | TS_StateTypeDef TS_State; |
ROUCHDI | 0:e0918584a802 | 189 | int touche= -1; |
ROUCHDI | 0:e0918584a802 | 190 | uint16_t x, y; |
ROUCHDI | 0:e0918584a802 | 191 | uint8_t text[30]; |
ROUCHDI | 0:e0918584a802 | 192 | uint8_t status; |
ROUCHDI | 0:e0918584a802 | 193 | uint8_t idx; |
ROUCHDI | 0:e0918584a802 | 194 | uint8_t cleared = 0; |
ROUCHDI | 0:e0918584a802 | 195 | uint8_t prev_nb_touches = 0; |
ROUCHDI | 0:e0918584a802 | 196 | |
ROUCHDI | 0:e0918584a802 | 197 | BSP_LCD_Init(); |
ROUCHDI | 0:e0918584a802 | 198 | BSP_LCD_LayerDefaultInit(LTDC_ACTIVE_LAYER, LCD_FB_START_ADDRESS); |
ROUCHDI | 0:e0918584a802 | 199 | BSP_LCD_SelectLayer(LTDC_ACTIVE_LAYER); |
ROUCHDI | 0:e0918584a802 | 200 | status = BSP_TS_Init(BSP_LCD_GetXSize(), BSP_LCD_GetYSize()); |
ROUCHDI | 0:e0918584a802 | 201 | BSP_LCD_SetFont(&Font12); |
ROUCHDI | 0:e0918584a802 | 202 | BSP_LCD_SetBackColor(LCD_COLOR_BLUE); |
ROUCHDI | 0:e0918584a802 | 203 | BSP_LCD_SetTextColor(LCD_COLOR_WHITE); |
ROUCHDI | 0:e0918584a802 | 204 | BSP_LCD_Clear(LCD_COLOR_BLUE); |
ROUCHDI | 0:e0918584a802 | 205 | while(1) { |
ROUCHDI | 0:e0918584a802 | 206 | BSP_TS_GetState(&TS_State); |
ROUCHDI | 0:e0918584a802 | 207 | font_menu_principal_add(1); |
ROUCHDI | 0:e0918584a802 | 208 | if (TS_State.touchDetected) { |
ROUCHDI | 0:e0918584a802 | 209 | if (TS_State.touchDetected < prev_nb_touches) { |
ROUCHDI | 0:e0918584a802 | 210 | for (idx = (TS_State.touchDetected + 1); idx <= 5; idx++) { |
ROUCHDI | 0:e0918584a802 | 211 | BSP_LCD_ClearStringLine(idx); |
ROUCHDI | 0:e0918584a802 | 212 | } |
ROUCHDI | 0:e0918584a802 | 213 | } |
ROUCHDI | 0:e0918584a802 | 214 | prev_nb_touches = TS_State.touchDetected; |
ROUCHDI | 0:e0918584a802 | 215 | |
ROUCHDI | 0:e0918584a802 | 216 | cleared = 0; |
ROUCHDI | 0:e0918584a802 | 217 | |
ROUCHDI | 0:e0918584a802 | 218 | //sprintf((char*)text, "Touches: %d", TS_State.touchDetected); |
ROUCHDI | 0:e0918584a802 | 219 | //BSP_LCD_DisplayStringAt(0, LINE(0), (uint8_t *)&text, LEFT_MODE); |
ROUCHDI | 0:e0918584a802 | 220 | |
ROUCHDI | 0:e0918584a802 | 221 | for (idx = 0; idx < TS_State.touchDetected; idx++) { |
ROUCHDI | 0:e0918584a802 | 222 | x = TS_State.touchX[idx]; |
ROUCHDI | 0:e0918584a802 | 223 | y = TS_State.touchY[idx]; |
ROUCHDI | 0:e0918584a802 | 224 | //sprintf((char*)text, "Touch %d: x=%d y=%d ", touche, x, y); |
ROUCHDI | 0:e0918584a802 | 225 | //BSP_LCD_DisplayStringAt(0, LINE(0)/*LINE(idx+1)*/, (uint8_t *)&text, LEFT_MODE); |
ROUCHDI | 0:e0918584a802 | 226 | } |
ROUCHDI | 0:e0918584a802 | 227 | |
ROUCHDI | 0:e0918584a802 | 228 | if((x>=1 &&x<=70)&&(y>=120&&y<=140)) { |
ROUCHDI | 0:e0918584a802 | 229 | |
ROUCHDI | 0:e0918584a802 | 230 | sprintf((char*)text, "ajouter ");//1 |
ROUCHDI | 0:e0918584a802 | 231 | BSP_LCD_DisplayStringAt(0, LINE(0), (uint8_t *)&text, RIGHT_MODE); |
ROUCHDI | 0:e0918584a802 | 232 | ajouter_finger(); |
ROUCHDI | 0:e0918584a802 | 233 | BSP_LCD_Clear(LCD_COLOR_BLUE); |
ROUCHDI | 0:e0918584a802 | 234 | } else if((x>=380 &&x<=500)&&(y>=120&&y<=140)) { |
ROUCHDI | 0:e0918584a802 | 235 | sprintf((char*)text,"Suprimer id"); |
ROUCHDI | 0:e0918584a802 | 236 | BSP_LCD_DisplayStringAt(0, LINE(0), (uint8_t *)&text, RIGHT_MODE); |
ROUCHDI | 0:e0918584a802 | 237 | finger.DeleteID(id); |
ROUCHDI | 0:e0918584a802 | 238 | EnrollID = -1; |
ROUCHDI | 0:e0918584a802 | 239 | touch_screen_simple(); |
ROUCHDI | 0:e0918584a802 | 240 | } else if((x>=410 &&x<=500)&&(y>=20&&y<=40)) { |
ROUCHDI | 0:e0918584a802 | 241 | sprintf((char*)text,"Back"); |
ROUCHDI | 0:e0918584a802 | 242 | BSP_LCD_DisplayStringAt(0, LINE(0), (uint8_t *)&text, CENTER_MODE); |
ROUCHDI | 0:e0918584a802 | 243 | touch_screen_simple(); |
ROUCHDI | 0:e0918584a802 | 244 | } |
ROUCHDI | 0:e0918584a802 | 245 | } else { |
ROUCHDI | 0:e0918584a802 | 246 | //sprintf((char*)text,"code: %d",0);//valider |
ROUCHDI | 0:e0918584a802 | 247 | //BSP_LCD_DisplayStringAt(0, LINE(2), (uint8_t *)&text, RIGHT_MODE); |
ROUCHDI | 0:e0918584a802 | 248 | } |
ROUCHDI | 0:e0918584a802 | 249 | } |
ROUCHDI | 0:e0918584a802 | 250 | } |
ROUCHDI | 0:e0918584a802 | 251 | |
ROUCHDI | 0:e0918584a802 | 252 | void touch_screen_2() |
ROUCHDI | 0:e0918584a802 | 253 | { |
ROUCHDI | 0:e0918584a802 | 254 | TS_StateTypeDef TS_State; |
ROUCHDI | 0:e0918584a802 | 255 | int touche= -1; |
ROUCHDI | 0:e0918584a802 | 256 | uint16_t x, y; |
ROUCHDI | 0:e0918584a802 | 257 | uint8_t text[30]; |
ROUCHDI | 0:e0918584a802 | 258 | uint8_t status; |
ROUCHDI | 0:e0918584a802 | 259 | uint8_t idx; |
ROUCHDI | 0:e0918584a802 | 260 | uint8_t cleared = 0; |
ROUCHDI | 0:e0918584a802 | 261 | uint8_t prev_nb_touches = 0; |
ROUCHDI | 0:e0918584a802 | 262 | |
ROUCHDI | 0:e0918584a802 | 263 | BSP_LCD_Init(); |
ROUCHDI | 0:e0918584a802 | 264 | BSP_LCD_LayerDefaultInit(LTDC_ACTIVE_LAYER, LCD_FB_START_ADDRESS); |
ROUCHDI | 0:e0918584a802 | 265 | BSP_LCD_SelectLayer(LTDC_ACTIVE_LAYER); |
ROUCHDI | 0:e0918584a802 | 266 | status = BSP_TS_Init(BSP_LCD_GetXSize(), BSP_LCD_GetYSize()); |
ROUCHDI | 0:e0918584a802 | 267 | BSP_LCD_SetFont(&Font12); |
ROUCHDI | 0:e0918584a802 | 268 | BSP_LCD_SetBackColor(LCD_COLOR_BLUE); |
ROUCHDI | 0:e0918584a802 | 269 | BSP_LCD_SetTextColor(LCD_COLOR_WHITE); |
ROUCHDI | 0:e0918584a802 | 270 | BSP_LCD_Clear(LCD_COLOR_BLUE); |
ROUCHDI | 0:e0918584a802 | 271 | while(1) { |
ROUCHDI | 0:e0918584a802 | 272 | BSP_TS_GetState(&TS_State); |
ROUCHDI | 0:e0918584a802 | 273 | font_menu_principal_add(1); |
ROUCHDI | 0:e0918584a802 | 274 | if (TS_State.touchDetected) { |
ROUCHDI | 0:e0918584a802 | 275 | if (TS_State.touchDetected < prev_nb_touches) { |
ROUCHDI | 0:e0918584a802 | 276 | for (idx = (TS_State.touchDetected + 1); idx <= 5; idx++) { |
ROUCHDI | 0:e0918584a802 | 277 | BSP_LCD_ClearStringLine(idx); |
ROUCHDI | 0:e0918584a802 | 278 | } |
ROUCHDI | 0:e0918584a802 | 279 | } |
ROUCHDI | 0:e0918584a802 | 280 | prev_nb_touches = TS_State.touchDetected; |
ROUCHDI | 0:e0918584a802 | 281 | |
ROUCHDI | 0:e0918584a802 | 282 | cleared = 0; |
ROUCHDI | 0:e0918584a802 | 283 | |
ROUCHDI | 0:e0918584a802 | 284 | //sprintf((char*)text, "Touches: %d", TS_State.touchDetected); |
ROUCHDI | 0:e0918584a802 | 285 | //BSP_LCD_DisplayStringAt(0, LINE(0), (uint8_t *)&text, LEFT_MODE); |
ROUCHDI | 0:e0918584a802 | 286 | |
ROUCHDI | 0:e0918584a802 | 287 | for (idx = 0; idx < TS_State.touchDetected; idx++) { |
ROUCHDI | 0:e0918584a802 | 288 | x = TS_State.touchX[idx]; |
ROUCHDI | 0:e0918584a802 | 289 | y = TS_State.touchY[idx]; |
ROUCHDI | 0:e0918584a802 | 290 | //sprintf((char*)text, "Touch %d: x=%d y=%d ", touche, x, y); |
ROUCHDI | 0:e0918584a802 | 291 | //BSP_LCD_DisplayStringAt(0, LINE(0)/*LINE(idx+1)*/, (uint8_t *)&text, LEFT_MODE); |
ROUCHDI | 0:e0918584a802 | 292 | } |
ROUCHDI | 0:e0918584a802 | 293 | |
ROUCHDI | 0:e0918584a802 | 294 | if((x>=1 &&x<=70)&&(y>=120&&y<=140)) { |
ROUCHDI | 0:e0918584a802 | 295 | |
ROUCHDI | 0:e0918584a802 | 296 | sprintf((char*)text, "ajouter ");//1 |
ROUCHDI | 0:e0918584a802 | 297 | BSP_LCD_DisplayStringAt(0, LINE(0), (uint8_t *)&text, RIGHT_MODE); |
ROUCHDI | 0:e0918584a802 | 298 | ajouter_finger(); |
ROUCHDI | 0:e0918584a802 | 299 | BSP_LCD_Clear(LCD_COLOR_BLUE); |
ROUCHDI | 0:e0918584a802 | 300 | } else if((x>=380 &&x<=500)&&(y>=120&&y<=140)) { |
ROUCHDI | 0:e0918584a802 | 301 | sprintf((char*)text,"Suprimer id"); |
ROUCHDI | 0:e0918584a802 | 302 | BSP_LCD_DisplayStringAt(0, LINE(0), (uint8_t *)&text, RIGHT_MODE); |
ROUCHDI | 0:e0918584a802 | 303 | finger.DeleteID(id); |
ROUCHDI | 0:e0918584a802 | 304 | EnrollID = -1; |
ROUCHDI | 0:e0918584a802 | 305 | touch_screen(); |
ROUCHDI | 0:e0918584a802 | 306 | } else if((x>=410 &&x<=500)&&(y>=20&&y<=40)) { |
ROUCHDI | 0:e0918584a802 | 307 | sprintf((char*)text,"Back"); |
ROUCHDI | 0:e0918584a802 | 308 | BSP_LCD_DisplayStringAt(0, LINE(0), (uint8_t *)&text, CENTER_MODE); |
ROUCHDI | 0:e0918584a802 | 309 | touch_screen(); |
ROUCHDI | 0:e0918584a802 | 310 | } |
ROUCHDI | 0:e0918584a802 | 311 | } else { |
ROUCHDI | 0:e0918584a802 | 312 | //sprintf((char*)text,"code: %d",0);//valider |
ROUCHDI | 0:e0918584a802 | 313 | //BSP_LCD_DisplayStringAt(0, LINE(2), (uint8_t *)&text, RIGHT_MODE); |
ROUCHDI | 0:e0918584a802 | 314 | } |
ROUCHDI | 0:e0918584a802 | 315 | } |
ROUCHDI | 0:e0918584a802 | 316 | } |
ROUCHDI | 0:e0918584a802 | 317 | |
ROUCHDI | 0:e0918584a802 | 318 | //permet d'identifier si l'empreinte est bien enregistre ou pas pour le menu ajouter |
ROUCHDI | 0:e0918584a802 | 319 | void identifier_add() |
ROUCHDI | 0:e0918584a802 | 320 | { |
ROUCHDI | 0:e0918584a802 | 321 | finger.CmosLed(1); |
ROUCHDI | 0:e0918584a802 | 322 | finger.WaitPress(1); |
ROUCHDI | 0:e0918584a802 | 323 | if (finger.IsPress()!= 0) { |
ROUCHDI | 0:e0918584a802 | 324 | finger.Capture(false); |
ROUCHDI | 0:e0918584a802 | 325 | id = finger.Identify(); |
ROUCHDI | 0:e0918584a802 | 326 | if(id!=-1) { |
ROUCHDI | 0:e0918584a802 | 327 | pc.printf("Student found!"); |
ROUCHDI | 0:e0918584a802 | 328 | BSP_LCD_SetFont(&Font24); |
ROUCHDI | 0:e0918584a802 | 329 | BSP_LCD_SetBackColor(LCD_COLOR_GREEN); |
ROUCHDI | 0:e0918584a802 | 330 | BSP_LCD_SetTextColor(LCD_COLOR_BLACK); |
ROUCHDI | 0:e0918584a802 | 331 | BSP_LCD_Clear(LCD_COLOR_GREEN); |
ROUCHDI | 0:e0918584a802 | 332 | sprintf((char*)text, "VALIDER"); |
ROUCHDI | 0:e0918584a802 | 333 | BSP_LCD_DisplayStringAt(0, LINE(5), (uint8_t *)&text, CENTER_MODE ); |
ROUCHDI | 0:e0918584a802 | 334 | HAL_Delay(1000); |
ROUCHDI | 0:e0918584a802 | 335 | BSP_LCD_SetFont(&Font12); |
ROUCHDI | 0:e0918584a802 | 336 | BSP_LCD_SetBackColor(LCD_COLOR_BLUE); |
ROUCHDI | 0:e0918584a802 | 337 | BSP_LCD_SetTextColor(LCD_COLOR_WHITE); |
ROUCHDI | 0:e0918584a802 | 338 | finger.CmosLed(0); |
ROUCHDI | 0:e0918584a802 | 339 | touch_screen_add(); |
ROUCHDI | 0:e0918584a802 | 340 | } else { |
ROUCHDI | 0:e0918584a802 | 341 | pc.printf("Student not found"); |
ROUCHDI | 0:e0918584a802 | 342 | BSP_LCD_SetFont(&Font24); |
ROUCHDI | 0:e0918584a802 | 343 | BSP_LCD_SetBackColor(LCD_COLOR_RED); |
ROUCHDI | 0:e0918584a802 | 344 | BSP_LCD_SetTextColor(LCD_COLOR_BLACK); |
ROUCHDI | 0:e0918584a802 | 345 | BSP_LCD_Clear(LCD_COLOR_RED); |
ROUCHDI | 0:e0918584a802 | 346 | sprintf((char*)text, "REFUSER"); |
ROUCHDI | 0:e0918584a802 | 347 | BSP_LCD_DisplayStringAt(0, LINE(5), (uint8_t *)&text, CENTER_MODE ); |
ROUCHDI | 0:e0918584a802 | 348 | HAL_Delay(1000); |
ROUCHDI | 0:e0918584a802 | 349 | BSP_LCD_SetFont(&Font12); |
ROUCHDI | 0:e0918584a802 | 350 | BSP_LCD_SetBackColor(LCD_COLOR_BLUE); |
ROUCHDI | 0:e0918584a802 | 351 | BSP_LCD_SetTextColor(LCD_COLOR_WHITE); |
ROUCHDI | 0:e0918584a802 | 352 | } |
ROUCHDI | 0:e0918584a802 | 353 | if (id <300) { |
ROUCHDI | 0:e0918584a802 | 354 | pc.printf("Verified ID:%d",id); |
ROUCHDI | 0:e0918584a802 | 355 | } else { |
ROUCHDI | 0:e0918584a802 | 356 | pc.printf("Finger not found"); |
ROUCHDI | 0:e0918584a802 | 357 | } |
ROUCHDI | 0:e0918584a802 | 358 | } |
ROUCHDI | 0:e0918584a802 | 359 | finger.CmosLed(0); |
ROUCHDI | 0:e0918584a802 | 360 | } |
ROUCHDI | 0:e0918584a802 | 361 | //permet d'identifier si l'empreinte est bien enregistre ou pas |
ROUCHDI | 0:e0918584a802 | 362 | void identifier() |
ROUCHDI | 0:e0918584a802 | 363 | { |
ROUCHDI | 0:e0918584a802 | 364 | finger.CmosLed(1); |
ROUCHDI | 0:e0918584a802 | 365 | finger.WaitPress(1); |
ROUCHDI | 0:e0918584a802 | 366 | if (finger.IsPress()!= 0) { |
ROUCHDI | 0:e0918584a802 | 367 | finger.Capture(false); |
ROUCHDI | 0:e0918584a802 | 368 | int id = finger.Identify(); |
ROUCHDI | 0:e0918584a802 | 369 | if(id!=-1) { |
ROUCHDI | 0:e0918584a802 | 370 | pc.printf("Student found!"); |
ROUCHDI | 0:e0918584a802 | 371 | BSP_LCD_SetFont(&Font24); |
ROUCHDI | 0:e0918584a802 | 372 | BSP_LCD_SetBackColor(LCD_COLOR_GREEN); |
ROUCHDI | 0:e0918584a802 | 373 | BSP_LCD_SetTextColor(LCD_COLOR_BLACK); |
ROUCHDI | 0:e0918584a802 | 374 | BSP_LCD_Clear(LCD_COLOR_GREEN); |
ROUCHDI | 0:e0918584a802 | 375 | sprintf((char*)text, "VALIDER"); |
ROUCHDI | 0:e0918584a802 | 376 | BSP_LCD_DisplayStringAt(0, LINE(5), (uint8_t *)&text, CENTER_MODE ); |
ROUCHDI | 0:e0918584a802 | 377 | HAL_Delay(1000); |
ROUCHDI | 0:e0918584a802 | 378 | BSP_LCD_SetFont(&Font12); |
ROUCHDI | 0:e0918584a802 | 379 | BSP_LCD_SetBackColor(LCD_COLOR_BLUE); |
ROUCHDI | 0:e0918584a802 | 380 | BSP_LCD_SetTextColor(LCD_COLOR_WHITE); |
ROUCHDI | 0:e0918584a802 | 381 | identificateur = 2; |
ROUCHDI | 0:e0918584a802 | 382 | } else { |
ROUCHDI | 0:e0918584a802 | 383 | pc.printf("Student not found"); |
ROUCHDI | 0:e0918584a802 | 384 | BSP_LCD_SetFont(&Font24); |
ROUCHDI | 0:e0918584a802 | 385 | BSP_LCD_SetBackColor(LCD_COLOR_RED); |
ROUCHDI | 0:e0918584a802 | 386 | BSP_LCD_SetTextColor(LCD_COLOR_BLACK); |
ROUCHDI | 0:e0918584a802 | 387 | BSP_LCD_Clear(LCD_COLOR_RED); |
ROUCHDI | 0:e0918584a802 | 388 | sprintf((char*)text, "REFUSER"); |
ROUCHDI | 0:e0918584a802 | 389 | BSP_LCD_DisplayStringAt(0, LINE(5), (uint8_t *)&text, CENTER_MODE ); |
ROUCHDI | 0:e0918584a802 | 390 | HAL_Delay(1000); |
ROUCHDI | 0:e0918584a802 | 391 | BSP_LCD_SetFont(&Font12); |
ROUCHDI | 0:e0918584a802 | 392 | BSP_LCD_SetBackColor(LCD_COLOR_BLUE); |
ROUCHDI | 0:e0918584a802 | 393 | BSP_LCD_SetTextColor(LCD_COLOR_WHITE); |
ROUCHDI | 0:e0918584a802 | 394 | } |
ROUCHDI | 0:e0918584a802 | 395 | if ((id <300)&& (id > -1)) { |
ROUCHDI | 0:e0918584a802 | 396 | pc.printf("Verified ID:%d",id); |
ROUCHDI | 0:e0918584a802 | 397 | BSP_LCD_SetFont(&Font24); |
ROUCHDI | 0:e0918584a802 | 398 | BSP_LCD_SetBackColor(LCD_COLOR_GREEN); |
ROUCHDI | 0:e0918584a802 | 399 | BSP_LCD_SetTextColor(LCD_COLOR_BLACK); |
ROUCHDI | 0:e0918584a802 | 400 | BSP_LCD_Clear(LCD_COLOR_GREEN); |
ROUCHDI | 0:e0918584a802 | 401 | sprintf((char*)text, "Verified ID:%d",id); |
ROUCHDI | 0:e0918584a802 | 402 | BSP_LCD_DisplayStringAt(0, LINE(0), (uint8_t *)&text, CENTER_MODE ); |
ROUCHDI | 0:e0918584a802 | 403 | HAL_Delay(1000); |
ROUCHDI | 0:e0918584a802 | 404 | BSP_LCD_SetFont(&Font12); |
ROUCHDI | 0:e0918584a802 | 405 | BSP_LCD_SetBackColor(LCD_COLOR_BLUE); |
ROUCHDI | 0:e0918584a802 | 406 | BSP_LCD_SetTextColor(LCD_COLOR_WHITE); |
ROUCHDI | 0:e0918584a802 | 407 | identificateur = 2; |
ROUCHDI | 0:e0918584a802 | 408 | } else { |
ROUCHDI | 0:e0918584a802 | 409 | pc.printf("Finger not found"); |
ROUCHDI | 0:e0918584a802 | 410 | BSP_LCD_SetFont(&Font24); |
ROUCHDI | 0:e0918584a802 | 411 | BSP_LCD_SetBackColor(LCD_COLOR_RED); |
ROUCHDI | 0:e0918584a802 | 412 | BSP_LCD_SetTextColor(LCD_COLOR_BLACK); |
ROUCHDI | 0:e0918584a802 | 413 | BSP_LCD_Clear(LCD_COLOR_RED); |
ROUCHDI | 0:e0918584a802 | 414 | sprintf((char*)text, "Finger not found"); |
ROUCHDI | 0:e0918584a802 | 415 | BSP_LCD_DisplayStringAt(0, LINE(0), (uint8_t *)&text, CENTER_MODE ); |
ROUCHDI | 0:e0918584a802 | 416 | HAL_Delay(1000); |
ROUCHDI | 0:e0918584a802 | 417 | BSP_LCD_SetFont(&Font12); |
ROUCHDI | 0:e0918584a802 | 418 | BSP_LCD_SetBackColor(LCD_COLOR_BLUE); |
ROUCHDI | 0:e0918584a802 | 419 | BSP_LCD_SetTextColor(LCD_COLOR_WHITE); |
ROUCHDI | 0:e0918584a802 | 420 | } |
ROUCHDI | 0:e0918584a802 | 421 | } |
ROUCHDI | 0:e0918584a802 | 422 | finger.CmosLed(0); |
ROUCHDI | 0:e0918584a802 | 423 | } |
ROUCHDI | 0:e0918584a802 | 424 | //fond pour le menu simple identification |
ROUCHDI | 0:e0918584a802 | 425 | void font_menu_principal_simple(int on_off) |
ROUCHDI | 0:e0918584a802 | 426 | { |
ROUCHDI | 0:e0918584a802 | 427 | uint8_t text[30]; |
ROUCHDI | 0:e0918584a802 | 428 | int touche = 0; |
ROUCHDI | 0:e0918584a802 | 429 | |
ROUCHDI | 0:e0918584a802 | 430 | if (on_off == 1) { |
ROUCHDI | 0:e0918584a802 | 431 | sprintf((char*)text, "|"); |
ROUCHDI | 0:e0918584a802 | 432 | BSP_LCD_DisplayStringAt(0, LINE(0), (uint8_t *)&text, CENTER_MODE ); |
ROUCHDI | 0:e0918584a802 | 433 | sprintf((char*)text, "|"); |
ROUCHDI | 0:e0918584a802 | 434 | BSP_LCD_DisplayStringAt(0, LINE(1), (uint8_t *)&text, CENTER_MODE ); |
ROUCHDI | 0:e0918584a802 | 435 | sprintf((char*)text, "|"); |
ROUCHDI | 0:e0918584a802 | 436 | BSP_LCD_DisplayStringAt(0, LINE(2), (uint8_t *)&text, CENTER_MODE ); |
ROUCHDI | 0:e0918584a802 | 437 | sprintf((char*)text, "|"); |
ROUCHDI | 0:e0918584a802 | 438 | BSP_LCD_DisplayStringAt(0, LINE(3), (uint8_t *)&text, CENTER_MODE ); |
ROUCHDI | 0:e0918584a802 | 439 | sprintf((char*)text, "|"); |
ROUCHDI | 0:e0918584a802 | 440 | BSP_LCD_DisplayStringAt(0, LINE(4), (uint8_t *)&text, CENTER_MODE ); |
ROUCHDI | 0:e0918584a802 | 441 | sprintf((char*)text, "|"); |
ROUCHDI | 0:e0918584a802 | 442 | BSP_LCD_DisplayStringAt(0, LINE(5), (uint8_t *)&text, CENTER_MODE ); |
ROUCHDI | 0:e0918584a802 | 443 | sprintf((char*)text, "|"); |
ROUCHDI | 0:e0918584a802 | 444 | BSP_LCD_DisplayStringAt(0, LINE(6), (uint8_t *)&text, CENTER_MODE ); |
ROUCHDI | 0:e0918584a802 | 445 | sprintf((char*)text, "|"); |
ROUCHDI | 0:e0918584a802 | 446 | BSP_LCD_DisplayStringAt(0, LINE(7), (uint8_t *)&text, CENTER_MODE ); |
ROUCHDI | 0:e0918584a802 | 447 | sprintf((char*)text, "|"); |
ROUCHDI | 0:e0918584a802 | 448 | BSP_LCD_DisplayStringAt(0, LINE(8), (uint8_t *)&text, CENTER_MODE ); |
ROUCHDI | 0:e0918584a802 | 449 | sprintf((char*)text, "|"); |
ROUCHDI | 0:e0918584a802 | 450 | BSP_LCD_DisplayStringAt(0, LINE(9), (uint8_t *)&text, CENTER_MODE ); |
ROUCHDI | 0:e0918584a802 | 451 | sprintf((char*)text, "|"); |
ROUCHDI | 0:e0918584a802 | 452 | BSP_LCD_DisplayStringAt(0, LINE(10), (uint8_t *)&text, CENTER_MODE ); |
ROUCHDI | 0:e0918584a802 | 453 | sprintf((char*)text, "|"); |
ROUCHDI | 0:e0918584a802 | 454 | BSP_LCD_DisplayStringAt(0, LINE(11), (uint8_t *)&text, CENTER_MODE ); |
ROUCHDI | 0:e0918584a802 | 455 | sprintf((char*)text, "|"); |
ROUCHDI | 0:e0918584a802 | 456 | BSP_LCD_DisplayStringAt(0, LINE(12), (uint8_t *)&text, CENTER_MODE ); |
ROUCHDI | 0:e0918584a802 | 457 | sprintf((char*)text, "|"); |
ROUCHDI | 0:e0918584a802 | 458 | BSP_LCD_DisplayStringAt(0, LINE(13), (uint8_t *)&text, CENTER_MODE ); |
ROUCHDI | 0:e0918584a802 | 459 | sprintf((char*)text, "|"); |
ROUCHDI | 0:e0918584a802 | 460 | BSP_LCD_DisplayStringAt(0, LINE(14), (uint8_t *)&text, CENTER_MODE ); |
ROUCHDI | 0:e0918584a802 | 461 | sprintf((char*)text, "|"); |
ROUCHDI | 0:e0918584a802 | 462 | BSP_LCD_DisplayStringAt(0, LINE(15), (uint8_t *)&text, CENTER_MODE ); |
ROUCHDI | 0:e0918584a802 | 463 | sprintf((char*)text, "|"); |
ROUCHDI | 0:e0918584a802 | 464 | BSP_LCD_DisplayStringAt(0, LINE(16), (uint8_t *)&text, CENTER_MODE ); |
ROUCHDI | 0:e0918584a802 | 465 | sprintf((char*)text, "|"); |
ROUCHDI | 0:e0918584a802 | 466 | BSP_LCD_DisplayStringAt(0, LINE(17), (uint8_t *)&text, CENTER_MODE ); |
ROUCHDI | 0:e0918584a802 | 467 | sprintf((char*)text, "|"); |
ROUCHDI | 0:e0918584a802 | 468 | BSP_LCD_DisplayStringAt(0, LINE(18), (uint8_t *)&text, CENTER_MODE ); |
ROUCHDI | 0:e0918584a802 | 469 | sprintf((char*)text, "|"); |
ROUCHDI | 0:e0918584a802 | 470 | BSP_LCD_DisplayStringAt(0, LINE(19), (uint8_t *)&text, CENTER_MODE ); |
ROUCHDI | 0:e0918584a802 | 471 | sprintf((char*)text, "|"); |
ROUCHDI | 0:e0918584a802 | 472 | BSP_LCD_DisplayStringAt(0, LINE(20), (uint8_t *)&text, CENTER_MODE ); |
ROUCHDI | 0:e0918584a802 | 473 | sprintf((char*)text, "|"); |
ROUCHDI | 0:e0918584a802 | 474 | BSP_LCD_DisplayStringAt(0, LINE(21), (uint8_t *)&text, CENTER_MODE ); |
ROUCHDI | 0:e0918584a802 | 475 | sprintf((char*)text, "|"); |
ROUCHDI | 0:e0918584a802 | 476 | BSP_LCD_DisplayStringAt(0, LINE(20), (uint8_t *)&text, CENTER_MODE ); |
ROUCHDI | 0:e0918584a802 | 477 | sprintf((char*)text, "|"); |
ROUCHDI | 0:e0918584a802 | 478 | BSP_LCD_DisplayStringAt(0, LINE(21), (uint8_t *)&text, CENTER_MODE ); |
ROUCHDI | 0:e0918584a802 | 479 | |
ROUCHDI | 0:e0918584a802 | 480 | sprintf((char*)text, " IDENTIFICATION "); |
ROUCHDI | 0:e0918584a802 | 481 | BSP_LCD_DisplayStringAt(0, LINE(10), (uint8_t *)&text, LEFT_MODE ); |
ROUCHDI | 0:e0918584a802 | 482 | sprintf((char*)text, " BACK "); |
ROUCHDI | 0:e0918584a802 | 483 | BSP_LCD_DisplayStringAt(0, LINE(10), (uint8_t *)&text, RIGHT_MODE ); |
ROUCHDI | 0:e0918584a802 | 484 | } |
ROUCHDI | 0:e0918584a802 | 485 | } |
ROUCHDI | 0:e0918584a802 | 486 | //fond pour le menu ajouter empreinte |
ROUCHDI | 0:e0918584a802 | 487 | void font_menu_add(int on_off) |
ROUCHDI | 0:e0918584a802 | 488 | { |
ROUCHDI | 0:e0918584a802 | 489 | uint8_t text[30]; |
ROUCHDI | 0:e0918584a802 | 490 | int touche = 0; |
ROUCHDI | 0:e0918584a802 | 491 | |
ROUCHDI | 0:e0918584a802 | 492 | if (on_off == 1) { |
ROUCHDI | 0:e0918584a802 | 493 | sprintf((char*)text, "|"); |
ROUCHDI | 0:e0918584a802 | 494 | BSP_LCD_DisplayStringAt(0, LINE(0), (uint8_t *)&text, CENTER_MODE ); |
ROUCHDI | 0:e0918584a802 | 495 | sprintf((char*)text, "|"); |
ROUCHDI | 0:e0918584a802 | 496 | BSP_LCD_DisplayStringAt(0, LINE(1), (uint8_t *)&text, CENTER_MODE ); |
ROUCHDI | 0:e0918584a802 | 497 | sprintf((char*)text, "|"); |
ROUCHDI | 0:e0918584a802 | 498 | BSP_LCD_DisplayStringAt(0, LINE(2), (uint8_t *)&text, CENTER_MODE ); |
ROUCHDI | 0:e0918584a802 | 499 | sprintf((char*)text, "|"); |
ROUCHDI | 0:e0918584a802 | 500 | BSP_LCD_DisplayStringAt(0, LINE(3), (uint8_t *)&text, CENTER_MODE ); |
ROUCHDI | 0:e0918584a802 | 501 | sprintf((char*)text, "|"); |
ROUCHDI | 0:e0918584a802 | 502 | BSP_LCD_DisplayStringAt(0, LINE(4), (uint8_t *)&text, CENTER_MODE ); |
ROUCHDI | 0:e0918584a802 | 503 | sprintf((char*)text, "|"); |
ROUCHDI | 0:e0918584a802 | 504 | BSP_LCD_DisplayStringAt(0, LINE(5), (uint8_t *)&text, CENTER_MODE ); |
ROUCHDI | 0:e0918584a802 | 505 | sprintf((char*)text, "|"); |
ROUCHDI | 0:e0918584a802 | 506 | BSP_LCD_DisplayStringAt(0, LINE(6), (uint8_t *)&text, CENTER_MODE ); |
ROUCHDI | 0:e0918584a802 | 507 | sprintf((char*)text, "|"); |
ROUCHDI | 0:e0918584a802 | 508 | BSP_LCD_DisplayStringAt(0, LINE(7), (uint8_t *)&text, CENTER_MODE ); |
ROUCHDI | 0:e0918584a802 | 509 | sprintf((char*)text, "|"); |
ROUCHDI | 0:e0918584a802 | 510 | BSP_LCD_DisplayStringAt(0, LINE(8), (uint8_t *)&text, CENTER_MODE ); |
ROUCHDI | 0:e0918584a802 | 511 | sprintf((char*)text, "|"); |
ROUCHDI | 0:e0918584a802 | 512 | BSP_LCD_DisplayStringAt(0, LINE(9), (uint8_t *)&text, CENTER_MODE ); |
ROUCHDI | 0:e0918584a802 | 513 | sprintf((char*)text, "|"); |
ROUCHDI | 0:e0918584a802 | 514 | BSP_LCD_DisplayStringAt(0, LINE(10), (uint8_t *)&text, CENTER_MODE ); |
ROUCHDI | 0:e0918584a802 | 515 | sprintf((char*)text, "|"); |
ROUCHDI | 0:e0918584a802 | 516 | BSP_LCD_DisplayStringAt(0, LINE(11), (uint8_t *)&text, CENTER_MODE ); |
ROUCHDI | 0:e0918584a802 | 517 | sprintf((char*)text, "|"); |
ROUCHDI | 0:e0918584a802 | 518 | BSP_LCD_DisplayStringAt(0, LINE(12), (uint8_t *)&text, CENTER_MODE ); |
ROUCHDI | 0:e0918584a802 | 519 | sprintf((char*)text, "|"); |
ROUCHDI | 0:e0918584a802 | 520 | BSP_LCD_DisplayStringAt(0, LINE(13), (uint8_t *)&text, CENTER_MODE ); |
ROUCHDI | 0:e0918584a802 | 521 | sprintf((char*)text, "|"); |
ROUCHDI | 0:e0918584a802 | 522 | BSP_LCD_DisplayStringAt(0, LINE(14), (uint8_t *)&text, CENTER_MODE ); |
ROUCHDI | 0:e0918584a802 | 523 | sprintf((char*)text, "|"); |
ROUCHDI | 0:e0918584a802 | 524 | BSP_LCD_DisplayStringAt(0, LINE(15), (uint8_t *)&text, CENTER_MODE ); |
ROUCHDI | 0:e0918584a802 | 525 | sprintf((char*)text, "|"); |
ROUCHDI | 0:e0918584a802 | 526 | BSP_LCD_DisplayStringAt(0, LINE(16), (uint8_t *)&text, CENTER_MODE ); |
ROUCHDI | 0:e0918584a802 | 527 | sprintf((char*)text, "|"); |
ROUCHDI | 0:e0918584a802 | 528 | BSP_LCD_DisplayStringAt(0, LINE(17), (uint8_t *)&text, CENTER_MODE ); |
ROUCHDI | 0:e0918584a802 | 529 | sprintf((char*)text, "|"); |
ROUCHDI | 0:e0918584a802 | 530 | BSP_LCD_DisplayStringAt(0, LINE(18), (uint8_t *)&text, CENTER_MODE ); |
ROUCHDI | 0:e0918584a802 | 531 | sprintf((char*)text, "|"); |
ROUCHDI | 0:e0918584a802 | 532 | BSP_LCD_DisplayStringAt(0, LINE(19), (uint8_t *)&text, CENTER_MODE ); |
ROUCHDI | 0:e0918584a802 | 533 | sprintf((char*)text, "|"); |
ROUCHDI | 0:e0918584a802 | 534 | BSP_LCD_DisplayStringAt(0, LINE(20), (uint8_t *)&text, CENTER_MODE ); |
ROUCHDI | 0:e0918584a802 | 535 | sprintf((char*)text, "|"); |
ROUCHDI | 0:e0918584a802 | 536 | BSP_LCD_DisplayStringAt(0, LINE(21), (uint8_t *)&text, CENTER_MODE ); |
ROUCHDI | 0:e0918584a802 | 537 | sprintf((char*)text, "|"); |
ROUCHDI | 0:e0918584a802 | 538 | BSP_LCD_DisplayStringAt(0, LINE(20), (uint8_t *)&text, CENTER_MODE ); |
ROUCHDI | 0:e0918584a802 | 539 | sprintf((char*)text, "|"); |
ROUCHDI | 0:e0918584a802 | 540 | BSP_LCD_DisplayStringAt(0, LINE(21), (uint8_t *)&text, CENTER_MODE ); |
ROUCHDI | 0:e0918584a802 | 541 | |
ROUCHDI | 0:e0918584a802 | 542 | sprintf((char*)text, " IDENTIFICATION SIMPLE "); |
ROUCHDI | 0:e0918584a802 | 543 | BSP_LCD_DisplayStringAt(0, LINE(10), (uint8_t *)&text, RIGHT_MODE ); |
ROUCHDI | 0:e0918584a802 | 544 | sprintf((char*)text, " DOUBLE IDENTIFICATION "); |
ROUCHDI | 0:e0918584a802 | 545 | BSP_LCD_DisplayStringAt(0, LINE(10), (uint8_t *)&text, LEFT_MODE ); |
ROUCHDI | 0:e0918584a802 | 546 | } |
ROUCHDI | 0:e0918584a802 | 547 | } |
ROUCHDI | 0:e0918584a802 | 548 | //fond pour le menu principal |
ROUCHDI | 0:e0918584a802 | 549 | void font_menu_principal(int on_off) |
ROUCHDI | 0:e0918584a802 | 550 | { |
ROUCHDI | 0:e0918584a802 | 551 | uint8_t text[30]; |
ROUCHDI | 0:e0918584a802 | 552 | int touche = 0; |
ROUCHDI | 0:e0918584a802 | 553 | |
ROUCHDI | 0:e0918584a802 | 554 | if (on_off == 1) { |
ROUCHDI | 0:e0918584a802 | 555 | sprintf((char*)text, "|"); |
ROUCHDI | 0:e0918584a802 | 556 | BSP_LCD_DisplayStringAt(0, LINE(0), (uint8_t *)&text, CENTER_MODE ); |
ROUCHDI | 0:e0918584a802 | 557 | sprintf((char*)text, "|"); |
ROUCHDI | 0:e0918584a802 | 558 | BSP_LCD_DisplayStringAt(0, LINE(1), (uint8_t *)&text, CENTER_MODE ); |
ROUCHDI | 0:e0918584a802 | 559 | sprintf((char*)text, "|"); |
ROUCHDI | 0:e0918584a802 | 560 | BSP_LCD_DisplayStringAt(0, LINE(2), (uint8_t *)&text, CENTER_MODE ); |
ROUCHDI | 0:e0918584a802 | 561 | sprintf((char*)text, "|"); |
ROUCHDI | 0:e0918584a802 | 562 | BSP_LCD_DisplayStringAt(0, LINE(3), (uint8_t *)&text, CENTER_MODE ); |
ROUCHDI | 0:e0918584a802 | 563 | sprintf((char*)text, "|"); |
ROUCHDI | 0:e0918584a802 | 564 | BSP_LCD_DisplayStringAt(0, LINE(4), (uint8_t *)&text, CENTER_MODE ); |
ROUCHDI | 0:e0918584a802 | 565 | sprintf((char*)text, "|"); |
ROUCHDI | 0:e0918584a802 | 566 | BSP_LCD_DisplayStringAt(0, LINE(5), (uint8_t *)&text, CENTER_MODE ); |
ROUCHDI | 0:e0918584a802 | 567 | sprintf((char*)text, "|"); |
ROUCHDI | 0:e0918584a802 | 568 | BSP_LCD_DisplayStringAt(0, LINE(6), (uint8_t *)&text, CENTER_MODE ); |
ROUCHDI | 0:e0918584a802 | 569 | sprintf((char*)text, "|"); |
ROUCHDI | 0:e0918584a802 | 570 | BSP_LCD_DisplayStringAt(0, LINE(7), (uint8_t *)&text, CENTER_MODE ); |
ROUCHDI | 0:e0918584a802 | 571 | sprintf((char*)text, "|"); |
ROUCHDI | 0:e0918584a802 | 572 | BSP_LCD_DisplayStringAt(0, LINE(8), (uint8_t *)&text, CENTER_MODE ); |
ROUCHDI | 0:e0918584a802 | 573 | sprintf((char*)text, "|"); |
ROUCHDI | 0:e0918584a802 | 574 | BSP_LCD_DisplayStringAt(0, LINE(9), (uint8_t *)&text, CENTER_MODE ); |
ROUCHDI | 0:e0918584a802 | 575 | sprintf((char*)text, "|"); |
ROUCHDI | 0:e0918584a802 | 576 | BSP_LCD_DisplayStringAt(0, LINE(10), (uint8_t *)&text, CENTER_MODE ); |
ROUCHDI | 0:e0918584a802 | 577 | sprintf((char*)text, "|"); |
ROUCHDI | 0:e0918584a802 | 578 | BSP_LCD_DisplayStringAt(0, LINE(11), (uint8_t *)&text, CENTER_MODE ); |
ROUCHDI | 0:e0918584a802 | 579 | sprintf((char*)text, "|"); |
ROUCHDI | 0:e0918584a802 | 580 | BSP_LCD_DisplayStringAt(0, LINE(12), (uint8_t *)&text, CENTER_MODE ); |
ROUCHDI | 0:e0918584a802 | 581 | sprintf((char*)text, "|"); |
ROUCHDI | 0:e0918584a802 | 582 | BSP_LCD_DisplayStringAt(0, LINE(13), (uint8_t *)&text, CENTER_MODE ); |
ROUCHDI | 0:e0918584a802 | 583 | sprintf((char*)text, "|"); |
ROUCHDI | 0:e0918584a802 | 584 | BSP_LCD_DisplayStringAt(0, LINE(14), (uint8_t *)&text, CENTER_MODE ); |
ROUCHDI | 0:e0918584a802 | 585 | sprintf((char*)text, "|"); |
ROUCHDI | 0:e0918584a802 | 586 | BSP_LCD_DisplayStringAt(0, LINE(15), (uint8_t *)&text, CENTER_MODE ); |
ROUCHDI | 0:e0918584a802 | 587 | sprintf((char*)text, "|"); |
ROUCHDI | 0:e0918584a802 | 588 | BSP_LCD_DisplayStringAt(0, LINE(16), (uint8_t *)&text, CENTER_MODE ); |
ROUCHDI | 0:e0918584a802 | 589 | sprintf((char*)text, "|"); |
ROUCHDI | 0:e0918584a802 | 590 | BSP_LCD_DisplayStringAt(0, LINE(17), (uint8_t *)&text, CENTER_MODE ); |
ROUCHDI | 0:e0918584a802 | 591 | sprintf((char*)text, "|"); |
ROUCHDI | 0:e0918584a802 | 592 | BSP_LCD_DisplayStringAt(0, LINE(18), (uint8_t *)&text, CENTER_MODE ); |
ROUCHDI | 0:e0918584a802 | 593 | sprintf((char*)text, "|"); |
ROUCHDI | 0:e0918584a802 | 594 | BSP_LCD_DisplayStringAt(0, LINE(19), (uint8_t *)&text, CENTER_MODE ); |
ROUCHDI | 0:e0918584a802 | 595 | sprintf((char*)text, "|"); |
ROUCHDI | 0:e0918584a802 | 596 | BSP_LCD_DisplayStringAt(0, LINE(20), (uint8_t *)&text, CENTER_MODE ); |
ROUCHDI | 0:e0918584a802 | 597 | sprintf((char*)text, "|"); |
ROUCHDI | 0:e0918584a802 | 598 | BSP_LCD_DisplayStringAt(0, LINE(21), (uint8_t *)&text, CENTER_MODE ); |
ROUCHDI | 0:e0918584a802 | 599 | sprintf((char*)text, "|"); |
ROUCHDI | 0:e0918584a802 | 600 | BSP_LCD_DisplayStringAt(0, LINE(20), (uint8_t *)&text, CENTER_MODE ); |
ROUCHDI | 0:e0918584a802 | 601 | sprintf((char*)text, "|"); |
ROUCHDI | 0:e0918584a802 | 602 | BSP_LCD_DisplayStringAt(0, LINE(21), (uint8_t *)&text, CENTER_MODE ); |
ROUCHDI | 0:e0918584a802 | 603 | |
ROUCHDI | 0:e0918584a802 | 604 | sprintf((char*)text, " IDENTIFICATION SIMPLE "); |
ROUCHDI | 0:e0918584a802 | 605 | BSP_LCD_DisplayStringAt(0, LINE(10), (uint8_t *)&text, RIGHT_MODE ); |
ROUCHDI | 0:e0918584a802 | 606 | sprintf((char*)text, " DOUBLE IDENTIFICATION "); |
ROUCHDI | 0:e0918584a802 | 607 | BSP_LCD_DisplayStringAt(0, LINE(10), (uint8_t *)&text, LEFT_MODE ); |
ROUCHDI | 0:e0918584a802 | 608 | } |
ROUCHDI | 0:e0918584a802 | 609 | } |
ROUCHDI | 0:e0918584a802 | 610 | //fond pour le clavier |
ROUCHDI | 0:e0918584a802 | 611 | void font_clavier(int on_off) |
ROUCHDI | 0:e0918584a802 | 612 | { |
ROUCHDI | 0:e0918584a802 | 613 | uint8_t text[30]; |
ROUCHDI | 0:e0918584a802 | 614 | int touche = 0; |
ROUCHDI | 0:e0918584a802 | 615 | |
ROUCHDI | 0:e0918584a802 | 616 | if (on_off == 1) { |
ROUCHDI | 0:e0918584a802 | 617 | sprintf((char*)text, "| DEL |"); |
ROUCHDI | 0:e0918584a802 | 618 | BSP_LCD_DisplayStringAt(0, LINE(1), (uint8_t *)&text, LEFT_MODE ); |
ROUCHDI | 0:e0918584a802 | 619 | |
ROUCHDI | 0:e0918584a802 | 620 | sprintf((char*)text, "| Back |"); |
ROUCHDI | 0:e0918584a802 | 621 | BSP_LCD_DisplayStringAt(0, LINE(1), (uint8_t *)&text, RIGHT_MODE ); |
ROUCHDI | 0:e0918584a802 | 622 | |
ROUCHDI | 0:e0918584a802 | 623 | sprintf((char*)text, "| 1 |"); |
ROUCHDI | 0:e0918584a802 | 624 | BSP_LCD_DisplayStringAt(0, LINE(5), (uint8_t *)&text, LEFT_MODE ); |
ROUCHDI | 0:e0918584a802 | 625 | |
ROUCHDI | 0:e0918584a802 | 626 | sprintf((char*)text, "| 2 |"); |
ROUCHDI | 0:e0918584a802 | 627 | BSP_LCD_DisplayStringAt(0, LINE(5), (uint8_t *)&text, CENTER_MODE ); |
ROUCHDI | 0:e0918584a802 | 628 | |
ROUCHDI | 0:e0918584a802 | 629 | sprintf((char*)text, "| 3 |"); |
ROUCHDI | 0:e0918584a802 | 630 | BSP_LCD_DisplayStringAt(0, LINE(5), (uint8_t *)&text, RIGHT_MODE ); |
ROUCHDI | 0:e0918584a802 | 631 | |
ROUCHDI | 0:e0918584a802 | 632 | sprintf((char*)text, "| 4 |"); |
ROUCHDI | 0:e0918584a802 | 633 | BSP_LCD_DisplayStringAt(0, LINE(10), (uint8_t *)&text, LEFT_MODE ); |
ROUCHDI | 0:e0918584a802 | 634 | |
ROUCHDI | 0:e0918584a802 | 635 | sprintf((char*)text, "| 5 |"); |
ROUCHDI | 0:e0918584a802 | 636 | BSP_LCD_DisplayStringAt(0, LINE(10), (uint8_t *)&text, CENTER_MODE ); |
ROUCHDI | 0:e0918584a802 | 637 | |
ROUCHDI | 0:e0918584a802 | 638 | sprintf((char*)text, "| 6 |"); |
ROUCHDI | 0:e0918584a802 | 639 | BSP_LCD_DisplayStringAt(0, LINE(10), (uint8_t *)&text, RIGHT_MODE ); |
ROUCHDI | 0:e0918584a802 | 640 | |
ROUCHDI | 0:e0918584a802 | 641 | sprintf((char*)text, "| 7 |"); |
ROUCHDI | 0:e0918584a802 | 642 | BSP_LCD_DisplayStringAt(0, LINE(15), (uint8_t *)&text, LEFT_MODE ); |
ROUCHDI | 0:e0918584a802 | 643 | |
ROUCHDI | 0:e0918584a802 | 644 | sprintf((char*)text, "| 8 |"); |
ROUCHDI | 0:e0918584a802 | 645 | BSP_LCD_DisplayStringAt(0, LINE(15), (uint8_t *)&text, CENTER_MODE ); |
ROUCHDI | 0:e0918584a802 | 646 | |
ROUCHDI | 0:e0918584a802 | 647 | sprintf((char*)text, "| 9 |"); |
ROUCHDI | 0:e0918584a802 | 648 | BSP_LCD_DisplayStringAt(0, LINE(15), (uint8_t *)&text, RIGHT_MODE ); |
ROUCHDI | 0:e0918584a802 | 649 | |
ROUCHDI | 0:e0918584a802 | 650 | sprintf((char*)text, "| 0 |"); |
ROUCHDI | 0:e0918584a802 | 651 | BSP_LCD_DisplayStringAt(0, LINE(20), (uint8_t *)&text, CENTER_MODE ); |
ROUCHDI | 0:e0918584a802 | 652 | |
ROUCHDI | 0:e0918584a802 | 653 | sprintf((char*)text, "| Valider |"); |
ROUCHDI | 0:e0918584a802 | 654 | BSP_LCD_DisplayStringAt(0, LINE(20), (uint8_t *)&text, RIGHT_MODE ); |
ROUCHDI | 0:e0918584a802 | 655 | |
ROUCHDI | 0:e0918584a802 | 656 | //sprintf((char*)text, "| Finger |"); |
ROUCHDI | 0:e0918584a802 | 657 | sprintf((char*)text, "| Annuler |"); |
ROUCHDI | 0:e0918584a802 | 658 | BSP_LCD_DisplayStringAt(0, LINE(20), (uint8_t *)&text, LEFT_MODE ); |
ROUCHDI | 0:e0918584a802 | 659 | } |
ROUCHDI | 0:e0918584a802 | 660 | } |
ROUCHDI | 0:e0918584a802 | 661 | //permet de detecter les touches appuyer dans le menu principal |
ROUCHDI | 0:e0918584a802 | 662 | void menu_principal() |
ROUCHDI | 0:e0918584a802 | 663 | { |
ROUCHDI | 0:e0918584a802 | 664 | TS_StateTypeDef TS_State; |
ROUCHDI | 0:e0918584a802 | 665 | int touche; |
ROUCHDI | 0:e0918584a802 | 666 | uint16_t x, y; |
ROUCHDI | 0:e0918584a802 | 667 | uint8_t text[30]; |
ROUCHDI | 0:e0918584a802 | 668 | uint8_t status; |
ROUCHDI | 0:e0918584a802 | 669 | uint8_t idx; |
ROUCHDI | 0:e0918584a802 | 670 | uint8_t cleared = 0; |
ROUCHDI | 0:e0918584a802 | 671 | uint8_t prev_nb_touches = 0; |
ROUCHDI | 0:e0918584a802 | 672 | |
ROUCHDI | 0:e0918584a802 | 673 | BSP_LCD_Init(); |
ROUCHDI | 0:e0918584a802 | 674 | BSP_LCD_LayerDefaultInit(LTDC_ACTIVE_LAYER, LCD_FB_START_ADDRESS); |
ROUCHDI | 0:e0918584a802 | 675 | BSP_LCD_SelectLayer(LTDC_ACTIVE_LAYER); |
ROUCHDI | 0:e0918584a802 | 676 | |
ROUCHDI | 0:e0918584a802 | 677 | status = BSP_TS_Init(BSP_LCD_GetXSize(), BSP_LCD_GetYSize()); |
ROUCHDI | 0:e0918584a802 | 678 | BSP_LCD_SetFont(&Font12); |
ROUCHDI | 0:e0918584a802 | 679 | BSP_LCD_SetBackColor(LCD_COLOR_BLUE); |
ROUCHDI | 0:e0918584a802 | 680 | BSP_LCD_SetTextColor(LCD_COLOR_WHITE); |
ROUCHDI | 0:e0918584a802 | 681 | BSP_LCD_Clear(LCD_COLOR_BLUE); |
ROUCHDI | 0:e0918584a802 | 682 | |
ROUCHDI | 0:e0918584a802 | 683 | drawImageLogo(320,0); |
ROUCHDI | 0:e0918584a802 | 684 | |
ROUCHDI | 0:e0918584a802 | 685 | while(1) { |
ROUCHDI | 0:e0918584a802 | 686 | BSP_TS_GetState(&TS_State); |
ROUCHDI | 0:e0918584a802 | 687 | font_menu_principal(1); |
ROUCHDI | 0:e0918584a802 | 688 | if (TS_State.touchDetected) { |
ROUCHDI | 0:e0918584a802 | 689 | if (TS_State.touchDetected < prev_nb_touches) { |
ROUCHDI | 0:e0918584a802 | 690 | for (idx = (TS_State.touchDetected + 1); idx <= 5; idx++) { |
ROUCHDI | 0:e0918584a802 | 691 | BSP_LCD_ClearStringLine(idx); |
ROUCHDI | 0:e0918584a802 | 692 | } |
ROUCHDI | 0:e0918584a802 | 693 | } |
ROUCHDI | 0:e0918584a802 | 694 | prev_nb_touches = TS_State.touchDetected; |
ROUCHDI | 0:e0918584a802 | 695 | |
ROUCHDI | 0:e0918584a802 | 696 | cleared = 0; |
ROUCHDI | 0:e0918584a802 | 697 | |
ROUCHDI | 0:e0918584a802 | 698 | //sprintf((char*)text, "Touches: %d", TS_State.touchDetected); |
ROUCHDI | 0:e0918584a802 | 699 | //BSP_LCD_DisplayStringAt(0, LINE(0), (uint8_t *)&text, LEFT_MODE); |
ROUCHDI | 0:e0918584a802 | 700 | |
ROUCHDI | 0:e0918584a802 | 701 | for (idx = 0; idx < TS_State.touchDetected; idx++) { |
ROUCHDI | 0:e0918584a802 | 702 | x = TS_State.touchX[idx]; |
ROUCHDI | 0:e0918584a802 | 703 | y = TS_State.touchY[idx]; |
ROUCHDI | 0:e0918584a802 | 704 | //sprintf((char*)text, "Touch %d: x=%d y=%d ", touche, x, y); |
ROUCHDI | 0:e0918584a802 | 705 | //BSP_LCD_DisplayStringAt(0, LINE(0)/*LINE(idx+1)*/, (uint8_t *)&text, LEFT_MODE); |
ROUCHDI | 0:e0918584a802 | 706 | } |
ROUCHDI | 0:e0918584a802 | 707 | |
ROUCHDI | 0:e0918584a802 | 708 | if(x<=200) { |
ROUCHDI | 0:e0918584a802 | 709 | touch_screen(); |
ROUCHDI | 0:e0918584a802 | 710 | } else if(x>=210) { |
ROUCHDI | 0:e0918584a802 | 711 | touch_screen_simple(); |
ROUCHDI | 0:e0918584a802 | 712 | } |
ROUCHDI | 0:e0918584a802 | 713 | } else { |
ROUCHDI | 0:e0918584a802 | 714 | //sprintf((char*)text,"code: %d",0);//valider |
ROUCHDI | 0:e0918584a802 | 715 | //BSP_LCD_DisplayStringAt(0, LINE(2), (uint8_t *)&text, RIGHT_MODE); |
ROUCHDI | 0:e0918584a802 | 716 | } |
ROUCHDI | 0:e0918584a802 | 717 | } |
ROUCHDI | 0:e0918584a802 | 718 | } |
ROUCHDI | 0:e0918584a802 | 719 | // permet de detecter les touches appuyer dans le menu simple identification |
ROUCHDI | 0:e0918584a802 | 720 | void touch_screen_simple() |
ROUCHDI | 0:e0918584a802 | 721 | { |
ROUCHDI | 0:e0918584a802 | 722 | TS_StateTypeDef TS_State; |
ROUCHDI | 0:e0918584a802 | 723 | int touche= -1; |
ROUCHDI | 0:e0918584a802 | 724 | uint16_t x, y; |
ROUCHDI | 0:e0918584a802 | 725 | uint8_t text[30]; |
ROUCHDI | 0:e0918584a802 | 726 | uint8_t status; |
ROUCHDI | 0:e0918584a802 | 727 | uint8_t idx; |
ROUCHDI | 0:e0918584a802 | 728 | uint8_t cleared = 0; |
ROUCHDI | 0:e0918584a802 | 729 | uint8_t prev_nb_touches = 0; |
ROUCHDI | 0:e0918584a802 | 730 | |
ROUCHDI | 0:e0918584a802 | 731 | BSP_LCD_Init(); |
ROUCHDI | 0:e0918584a802 | 732 | BSP_LCD_LayerDefaultInit(LTDC_ACTIVE_LAYER, LCD_FB_START_ADDRESS); |
ROUCHDI | 0:e0918584a802 | 733 | BSP_LCD_SelectLayer(LTDC_ACTIVE_LAYER); |
ROUCHDI | 0:e0918584a802 | 734 | status = BSP_TS_Init(BSP_LCD_GetXSize(), BSP_LCD_GetYSize()); |
ROUCHDI | 0:e0918584a802 | 735 | BSP_LCD_SetFont(&Font12); |
ROUCHDI | 0:e0918584a802 | 736 | BSP_LCD_SetBackColor(LCD_COLOR_BLUE); |
ROUCHDI | 0:e0918584a802 | 737 | BSP_LCD_SetTextColor(LCD_COLOR_WHITE); |
ROUCHDI | 0:e0918584a802 | 738 | BSP_LCD_Clear(LCD_COLOR_BLUE); |
ROUCHDI | 0:e0918584a802 | 739 | while(1) { |
ROUCHDI | 0:e0918584a802 | 740 | BSP_TS_GetState(&TS_State); |
ROUCHDI | 0:e0918584a802 | 741 | font_menu_principal_simple(1); |
ROUCHDI | 0:e0918584a802 | 742 | if (TS_State.touchDetected) { |
ROUCHDI | 0:e0918584a802 | 743 | if (TS_State.touchDetected < prev_nb_touches) { |
ROUCHDI | 0:e0918584a802 | 744 | for (idx = (TS_State.touchDetected + 1); idx <= 5; idx++) { |
ROUCHDI | 0:e0918584a802 | 745 | BSP_LCD_ClearStringLine(idx); |
ROUCHDI | 0:e0918584a802 | 746 | } |
ROUCHDI | 0:e0918584a802 | 747 | } |
ROUCHDI | 0:e0918584a802 | 748 | prev_nb_touches = TS_State.touchDetected; |
ROUCHDI | 0:e0918584a802 | 749 | |
ROUCHDI | 0:e0918584a802 | 750 | cleared = 0; |
ROUCHDI | 0:e0918584a802 | 751 | |
ROUCHDI | 0:e0918584a802 | 752 | //sprintf((char*)text, "Touches: %d", TS_State.touchDetected); |
ROUCHDI | 0:e0918584a802 | 753 | //BSP_LCD_DisplayStringAt(0, LINE(0), (uint8_t *)&text, LEFT_MODE); |
ROUCHDI | 0:e0918584a802 | 754 | |
ROUCHDI | 0:e0918584a802 | 755 | for (idx = 0; idx < TS_State.touchDetected; idx++) { |
ROUCHDI | 0:e0918584a802 | 756 | x = TS_State.touchX[idx]; |
ROUCHDI | 0:e0918584a802 | 757 | y = TS_State.touchY[idx]; |
ROUCHDI | 0:e0918584a802 | 758 | //sprintf((char*)text, "Touch %d: x=%d y=%d ", touche, x, y); |
ROUCHDI | 0:e0918584a802 | 759 | //BSP_LCD_DisplayStringAt(0, LINE(0)/*LINE(idx+1)*/, (uint8_t *)&text, LEFT_MODE); |
ROUCHDI | 0:e0918584a802 | 760 | } |
ROUCHDI | 0:e0918584a802 | 761 | |
ROUCHDI | 0:e0918584a802 | 762 | if(x<=200) { |
ROUCHDI | 0:e0918584a802 | 763 | //finger.DeleteAllIDs(); |
ROUCHDI | 0:e0918584a802 | 764 | sprintf((char*)text, "Identification ");//1 |
ROUCHDI | 0:e0918584a802 | 765 | BSP_LCD_DisplayStringAt(0, LINE(0), (uint8_t *)&text, RIGHT_MODE); |
ROUCHDI | 0:e0918584a802 | 766 | identifier_add(); |
ROUCHDI | 0:e0918584a802 | 767 | BSP_LCD_Clear(LCD_COLOR_BLUE); |
ROUCHDI | 0:e0918584a802 | 768 | |
ROUCHDI | 0:e0918584a802 | 769 | } else if(x>=210) { |
ROUCHDI | 0:e0918584a802 | 770 | sprintf((char*)text,"Back"); |
ROUCHDI | 0:e0918584a802 | 771 | BSP_LCD_DisplayStringAt(0, LINE(0), (uint8_t *)&text, RIGHT_MODE); |
ROUCHDI | 0:e0918584a802 | 772 | menu_principal(); |
ROUCHDI | 0:e0918584a802 | 773 | } |
ROUCHDI | 0:e0918584a802 | 774 | } else { |
ROUCHDI | 0:e0918584a802 | 775 | //sprintf((char*)text,"code: %d",0);//valider |
ROUCHDI | 0:e0918584a802 | 776 | //BSP_LCD_DisplayStringAt(0, LINE(2), (uint8_t *)&text, RIGHT_MODE); |
ROUCHDI | 0:e0918584a802 | 777 | } |
ROUCHDI | 0:e0918584a802 | 778 | } |
ROUCHDI | 0:e0918584a802 | 779 | } |
ROUCHDI | 0:e0918584a802 | 780 | |
ROUCHDI | 0:e0918584a802 | 781 | // mise en place de la detection des touches |
ROUCHDI | 0:e0918584a802 | 782 | void touch_screen() |
ROUCHDI | 0:e0918584a802 | 783 | { |
ROUCHDI | 0:e0918584a802 | 784 | TS_StateTypeDef TS_State; |
ROUCHDI | 0:e0918584a802 | 785 | int touche= -1; |
ROUCHDI | 0:e0918584a802 | 786 | uint16_t x, y; |
ROUCHDI | 0:e0918584a802 | 787 | uint8_t text[30]; |
ROUCHDI | 0:e0918584a802 | 788 | uint8_t status; |
ROUCHDI | 0:e0918584a802 | 789 | uint8_t idx; |
ROUCHDI | 0:e0918584a802 | 790 | uint8_t cleared = 0; |
ROUCHDI | 0:e0918584a802 | 791 | uint8_t prev_nb_touches = 0; |
ROUCHDI | 0:e0918584a802 | 792 | |
ROUCHDI | 0:e0918584a802 | 793 | BSP_LCD_Init(); |
ROUCHDI | 0:e0918584a802 | 794 | BSP_LCD_LayerDefaultInit(LTDC_ACTIVE_LAYER, LCD_FB_START_ADDRESS); |
ROUCHDI | 0:e0918584a802 | 795 | BSP_LCD_SelectLayer(LTDC_ACTIVE_LAYER); |
ROUCHDI | 0:e0918584a802 | 796 | status = BSP_TS_Init(BSP_LCD_GetXSize(), BSP_LCD_GetYSize()); |
ROUCHDI | 0:e0918584a802 | 797 | BSP_LCD_SetFont(&Font12); |
ROUCHDI | 0:e0918584a802 | 798 | BSP_LCD_SetBackColor(LCD_COLOR_BLUE); |
ROUCHDI | 0:e0918584a802 | 799 | BSP_LCD_SetTextColor(LCD_COLOR_WHITE); |
ROUCHDI | 0:e0918584a802 | 800 | BSP_LCD_Clear(LCD_COLOR_BLUE); |
ROUCHDI | 0:e0918584a802 | 801 | while(1) { |
ROUCHDI | 0:e0918584a802 | 802 | BSP_TS_GetState(&TS_State); |
ROUCHDI | 0:e0918584a802 | 803 | font_clavier(1); |
ROUCHDI | 0:e0918584a802 | 804 | if (TS_State.touchDetected) { |
ROUCHDI | 0:e0918584a802 | 805 | if (TS_State.touchDetected < prev_nb_touches) { |
ROUCHDI | 0:e0918584a802 | 806 | for (idx = (TS_State.touchDetected + 1); idx <= 5; idx++) { |
ROUCHDI | 0:e0918584a802 | 807 | BSP_LCD_ClearStringLine(idx); |
ROUCHDI | 0:e0918584a802 | 808 | } |
ROUCHDI | 0:e0918584a802 | 809 | } |
ROUCHDI | 0:e0918584a802 | 810 | prev_nb_touches = TS_State.touchDetected; |
ROUCHDI | 0:e0918584a802 | 811 | |
ROUCHDI | 0:e0918584a802 | 812 | cleared = 0; |
ROUCHDI | 0:e0918584a802 | 813 | touche = -1; |
ROUCHDI | 0:e0918584a802 | 814 | //sprintf((char*)text, "Touches: %d", TS_State.touchDetected); |
ROUCHDI | 0:e0918584a802 | 815 | //BSP_LCD_DisplayStringAt(0, LINE(0), (uint8_t *)&text, LEFT_MODE); |
ROUCHDI | 0:e0918584a802 | 816 | |
ROUCHDI | 0:e0918584a802 | 817 | for (idx = 0; idx < TS_State.touchDetected; idx++) { |
ROUCHDI | 0:e0918584a802 | 818 | x = TS_State.touchX[idx]; |
ROUCHDI | 0:e0918584a802 | 819 | y = TS_State.touchY[idx]; |
ROUCHDI | 0:e0918584a802 | 820 | //sprintf((char*)text, "Touch %d: x=%d y=%d ", touche, x, y); |
ROUCHDI | 0:e0918584a802 | 821 | // BSP_LCD_DisplayStringAt(0, LINE(0)/*LINE(idx+1)*/, (uint8_t *)&text, LEFT_MODE); |
ROUCHDI | 0:e0918584a802 | 822 | } |
ROUCHDI | 0:e0918584a802 | 823 | |
ROUCHDI | 0:e0918584a802 | 824 | if((x>=1 &&x<=60)&&(y>=20&&y<=40)) { |
ROUCHDI | 0:e0918584a802 | 825 | finger.DeleteAllIDs(); |
ROUCHDI | 0:e0918584a802 | 826 | BSP_LCD_ClearStringLine(0); |
ROUCHDI | 0:e0918584a802 | 827 | sprintf((char*)text, "Delete all id "); |
ROUCHDI | 0:e0918584a802 | 828 | BSP_LCD_DisplayStringAt(0, LINE(0), (uint8_t *)&text, CENTER_MODE); |
ROUCHDI | 0:e0918584a802 | 829 | //BSP_LCD_ClearStringLine(0); |
ROUCHDI | 0:e0918584a802 | 830 | code = 0; |
ROUCHDI | 0:e0918584a802 | 831 | } else if((x>=410 &&x<=500)&&(y>=20&&y<=40)) { |
ROUCHDI | 0:e0918584a802 | 832 | sprintf((char*)text,"BACK"); |
ROUCHDI | 0:e0918584a802 | 833 | BSP_LCD_ClearStringLine(0); |
ROUCHDI | 0:e0918584a802 | 834 | BSP_LCD_DisplayStringAt(0, LINE(0), (uint8_t *)&text, CENTER_MODE); |
ROUCHDI | 0:e0918584a802 | 835 | menu_principal(); |
ROUCHDI | 0:e0918584a802 | 836 | code = 0; |
ROUCHDI | 0:e0918584a802 | 837 | } else if((x>=1 &&x<=60)&&(y>=60&&y<=80)) { |
ROUCHDI | 0:e0918584a802 | 838 | touche=1; |
ROUCHDI | 0:e0918584a802 | 839 | BSP_LCD_ClearStringLine(0); |
ROUCHDI | 0:e0918584a802 | 840 | sprintf((char*)text, "Touches: %d",touche);//1 |
ROUCHDI | 0:e0918584a802 | 841 | BSP_LCD_DisplayStringAt(0, LINE(0), (uint8_t *)&text, CENTER_MODE); |
ROUCHDI | 0:e0918584a802 | 842 | do {} while (!TS_State.touchDetected); |
ROUCHDI | 0:e0918584a802 | 843 | } else if((x>=200 &&x<=260)&&(y>=60&&y<=80)) { |
ROUCHDI | 0:e0918584a802 | 844 | touche=2; |
ROUCHDI | 0:e0918584a802 | 845 | BSP_LCD_ClearStringLine(0); |
ROUCHDI | 0:e0918584a802 | 846 | sprintf((char*)text,"Touches: %d",touche);//2 |
ROUCHDI | 0:e0918584a802 | 847 | BSP_LCD_DisplayStringAt(0, LINE(0), (uint8_t *)&text, CENTER_MODE); |
ROUCHDI | 0:e0918584a802 | 848 | do {} while (!TS_State.touchDetected); |
ROUCHDI | 0:e0918584a802 | 849 | } else if((x>=410 &&x<=500)&&(y>=60&&y<=80)) { |
ROUCHDI | 0:e0918584a802 | 850 | touche=3; |
ROUCHDI | 0:e0918584a802 | 851 | BSP_LCD_ClearStringLine(0); |
ROUCHDI | 0:e0918584a802 | 852 | sprintf((char*)text,"Touches: %d",touche);//3 |
ROUCHDI | 0:e0918584a802 | 853 | BSP_LCD_DisplayStringAt(0, LINE(0), (uint8_t *)&text, CENTER_MODE); |
ROUCHDI | 0:e0918584a802 | 854 | do {} while (!TS_State.touchDetected); |
ROUCHDI | 0:e0918584a802 | 855 | } else if((x>=1 &&x<=60)&&(y>=120&&y<=140)) { |
ROUCHDI | 0:e0918584a802 | 856 | touche=4; |
ROUCHDI | 0:e0918584a802 | 857 | BSP_LCD_ClearStringLine(0); |
ROUCHDI | 0:e0918584a802 | 858 | sprintf((char*)text,"Touches: %d",touche);//4 |
ROUCHDI | 0:e0918584a802 | 859 | BSP_LCD_DisplayStringAt(0, LINE(0), (uint8_t *)&text, CENTER_MODE); |
ROUCHDI | 0:e0918584a802 | 860 | do {} while (!TS_State.touchDetected); |
ROUCHDI | 0:e0918584a802 | 861 | } else if((x>=200 &&x<=260)&&(y>=115&&y<=135)) { |
ROUCHDI | 0:e0918584a802 | 862 | touche=5; |
ROUCHDI | 0:e0918584a802 | 863 | BSP_LCD_ClearStringLine(0); |
ROUCHDI | 0:e0918584a802 | 864 | sprintf((char*)text,"Touches: %d",touche);//5 |
ROUCHDI | 0:e0918584a802 | 865 | BSP_LCD_DisplayStringAt(0, LINE(0), (uint8_t *)&text, CENTER_MODE); |
ROUCHDI | 0:e0918584a802 | 866 | do {} while (!TS_State.touchDetected); |
ROUCHDI | 0:e0918584a802 | 867 | } else if((x>=410 &&x<=500)&&(y>=115&&y<=130)) { |
ROUCHDI | 0:e0918584a802 | 868 | touche=6; |
ROUCHDI | 0:e0918584a802 | 869 | BSP_LCD_ClearStringLine(0); |
ROUCHDI | 0:e0918584a802 | 870 | sprintf((char*)text,"Touches: %d",touche);//6 |
ROUCHDI | 0:e0918584a802 | 871 | BSP_LCD_DisplayStringAt(0, LINE(0), (uint8_t *)&text, CENTER_MODE); |
ROUCHDI | 0:e0918584a802 | 872 | do {} while (!TS_State.touchDetected); |
ROUCHDI | 0:e0918584a802 | 873 | } else if((x>=1 &&x<=60)&&(y>=170&&y<=190)) { |
ROUCHDI | 0:e0918584a802 | 874 | touche=7; |
ROUCHDI | 0:e0918584a802 | 875 | BSP_LCD_ClearStringLine(0); |
ROUCHDI | 0:e0918584a802 | 876 | sprintf((char*)text,"Touches: %d",touche);//7 |
ROUCHDI | 0:e0918584a802 | 877 | BSP_LCD_DisplayStringAt(0, LINE(0), (uint8_t *)&text, CENTER_MODE); |
ROUCHDI | 0:e0918584a802 | 878 | do {} while (!TS_State.touchDetected); |
ROUCHDI | 0:e0918584a802 | 879 | } else if((x>=200 &&x<=260)&&(y>=180&&y<=200)) { |
ROUCHDI | 0:e0918584a802 | 880 | touche=8; |
ROUCHDI | 0:e0918584a802 | 881 | BSP_LCD_ClearStringLine(0); |
ROUCHDI | 0:e0918584a802 | 882 | sprintf((char*)text,"Touches: %d",touche);//8 |
ROUCHDI | 0:e0918584a802 | 883 | BSP_LCD_DisplayStringAt(0, LINE(0), (uint8_t *)&text, CENTER_MODE); |
ROUCHDI | 0:e0918584a802 | 884 | do {} while (!TS_State.touchDetected); |
ROUCHDI | 0:e0918584a802 | 885 | } else if((x>=410 &&x<=500)&&(y>=180&&y<=210)) { |
ROUCHDI | 0:e0918584a802 | 886 | touche=9; |
ROUCHDI | 0:e0918584a802 | 887 | BSP_LCD_ClearStringLine(0); |
ROUCHDI | 0:e0918584a802 | 888 | sprintf((char*)text,"Touches: %d",touche);//9 |
ROUCHDI | 0:e0918584a802 | 889 | BSP_LCD_DisplayStringAt(0, LINE(0), (uint8_t *)&text, CENTER_MODE); |
ROUCHDI | 0:e0918584a802 | 890 | do {} while (!TS_State.touchDetected); |
ROUCHDI | 0:e0918584a802 | 891 | } else if((x>=190 &&x<=260)&&(y>=230&&y<=260)) { |
ROUCHDI | 0:e0918584a802 | 892 | touche=0; |
ROUCHDI | 0:e0918584a802 | 893 | BSP_LCD_ClearStringLine(0); |
ROUCHDI | 0:e0918584a802 | 894 | sprintf((char*)text,"Touches: %d",touche);//0 |
ROUCHDI | 0:e0918584a802 | 895 | BSP_LCD_DisplayStringAt(0, LINE(0), (uint8_t *)&text, CENTER_MODE); |
ROUCHDI | 0:e0918584a802 | 896 | do {} while (!TS_State.touchDetected); |
ROUCHDI | 0:e0918584a802 | 897 | } else if((x>=1 &&x<=60)&&(y>=230&&y<=260)) { |
ROUCHDI | 0:e0918584a802 | 898 | sprintf((char*)text,"Touches: Annuler");//finger |
ROUCHDI | 0:e0918584a802 | 899 | BSP_LCD_DisplayStringAt(0, LINE(0), (uint8_t *)&text, CENTER_MODE); |
ROUCHDI | 0:e0918584a802 | 900 | BSP_LCD_ClearStringLine(2); |
ROUCHDI | 0:e0918584a802 | 901 | code = 0; |
ROUCHDI | 0:e0918584a802 | 902 | } else if((x>=370 &&x<=500)&&(y>=230&&y<=260)) { |
ROUCHDI | 0:e0918584a802 | 903 | sprintf((char*)text,"Touches: valider");//valider |
ROUCHDI | 0:e0918584a802 | 904 | BSP_LCD_DisplayStringAt(0, LINE(0), (uint8_t *)&text, CENTER_MODE); |
ROUCHDI | 2:baaccd9cb124 | 905 | BSP_LCD_ClearStringLine(2); |
ROUCHDI | 0:e0918584a802 | 906 | if(identificateur == 0) { |
ROUCHDI | 0:e0918584a802 | 907 | sprintf((char*)text,"Saisir Code SVP");//valider |
ROUCHDI | 0:e0918584a802 | 908 | BSP_LCD_DisplayStringAt(0, LINE(0), (uint8_t *)&text, CENTER_MODE); |
ROUCHDI | 0:e0918584a802 | 909 | } else if(identificateur == 1) { |
ROUCHDI | 0:e0918584a802 | 910 | if(EnrollID == -1) { |
ROUCHDI | 0:e0918584a802 | 911 | sprintf((char*)text,"Ajouter empreinte SVP");//valider |
ROUCHDI | 0:e0918584a802 | 912 | BSP_LCD_DisplayStringAt(0, LINE(0), (uint8_t *)&text, CENTER_MODE); |
ROUCHDI | 0:e0918584a802 | 913 | ajouter_finger(); |
ROUCHDI | 0:e0918584a802 | 914 | } |
ROUCHDI | 0:e0918584a802 | 915 | sprintf((char*)text,"Saisir empreinte SVP");//valider |
ROUCHDI | 0:e0918584a802 | 916 | BSP_LCD_DisplayStringAt(0, LINE(0), (uint8_t *)&text, CENTER_MODE); |
ROUCHDI | 0:e0918584a802 | 917 | identifier(); |
ROUCHDI | 0:e0918584a802 | 918 | } |
ROUCHDI | 2:baaccd9cb124 | 919 | if(identificateur == 2) { |
ROUCHDI | 0:e0918584a802 | 920 | sprintf((char*)text,"Bienvenue");//valider |
ROUCHDI | 0:e0918584a802 | 921 | BSP_LCD_DisplayStringAt(0, LINE(0), (uint8_t *)&text, CENTER_MODE); |
ROUCHDI | 0:e0918584a802 | 922 | code = 0; |
ROUCHDI | 0:e0918584a802 | 923 | identificateur=0; |
ROUCHDI | 0:e0918584a802 | 924 | touch_screen_2(); |
ROUCHDI | 0:e0918584a802 | 925 | } else { |
ROUCHDI | 0:e0918584a802 | 926 | code = 0; |
ROUCHDI | 0:e0918584a802 | 927 | } |
ROUCHDI | 0:e0918584a802 | 928 | } |
ROUCHDI | 0:e0918584a802 | 929 | if(code == pass) { |
ROUCHDI | 0:e0918584a802 | 930 | code = 0; |
ROUCHDI | 0:e0918584a802 | 931 | identificateur = 1; |
ROUCHDI | 0:e0918584a802 | 932 | } |
ROUCHDI | 0:e0918584a802 | 933 | } else { |
ROUCHDI | 0:e0918584a802 | 934 | //code = code*multi + touche; |
ROUCHDI | 0:e0918584a802 | 935 | if (touche != -1) { |
ROUCHDI | 0:e0918584a802 | 936 | codetouche(touche,multi); |
ROUCHDI | 0:e0918584a802 | 937 | } |
ROUCHDI | 0:e0918584a802 | 938 | if(multi < 10) { |
ROUCHDI | 0:e0918584a802 | 939 | multi *= 10; |
ROUCHDI | 0:e0918584a802 | 940 | } |
ROUCHDI | 0:e0918584a802 | 941 | touche =-1; |
ROUCHDI | 0:e0918584a802 | 942 | } |
ROUCHDI | 0:e0918584a802 | 943 | } |
ROUCHDI | 0:e0918584a802 | 944 | } |
ROUCHDI | 0:e0918584a802 | 945 | // initialisation du LCD |
ROUCHDI | 0:e0918584a802 | 946 | void init_lcd() |
ROUCHDI | 0:e0918584a802 | 947 | { |
ROUCHDI | 0:e0918584a802 | 948 | uint8_t status; |
ROUCHDI | 0:e0918584a802 | 949 | int touche = -1; |
ROUCHDI | 0:e0918584a802 | 950 | |
ROUCHDI | 0:e0918584a802 | 951 | BSP_LCD_Init(); |
ROUCHDI | 0:e0918584a802 | 952 | finger.CmosLed(0); |
ROUCHDI | 0:e0918584a802 | 953 | BSP_LCD_LayerDefaultInit(LTDC_ACTIVE_LAYER, LCD_FB_START_ADDRESS); |
ROUCHDI | 0:e0918584a802 | 954 | BSP_LCD_SelectLayer(LTDC_ACTIVE_LAYER); |
ROUCHDI | 0:e0918584a802 | 955 | status = BSP_TS_Init(BSP_LCD_GetXSize(), BSP_LCD_GetYSize()); |
ROUCHDI | 0:e0918584a802 | 956 | HAL_Delay(1000); |
ROUCHDI | 0:e0918584a802 | 957 | BSP_LCD_SetFont(&Font12); |
ROUCHDI | 0:e0918584a802 | 958 | BSP_LCD_SetBackColor(LCD_COLOR_BLACK); |
ROUCHDI | 0:e0918584a802 | 959 | BSP_LCD_SetTextColor(LCD_COLOR_WHITE); |
ROUCHDI | 0:e0918584a802 | 960 | } |
ROUCHDI | 0:e0918584a802 | 961 | // main principal |
ROUCHDI | 0:e0918584a802 | 962 | int main() |
ROUCHDI | 0:e0918584a802 | 963 | { |
ROUCHDI | 0:e0918584a802 | 964 | init_lcd(); |
ROUCHDI | 0:e0918584a802 | 965 | init_finger(); |
ROUCHDI | 0:e0918584a802 | 966 | menu_principal(); |
ROUCHDI | 0:e0918584a802 | 967 | } |