lecture de carte RFID et vérification par code PIN

Dependencies:   BSP_DISCO_F746NG

Committer:
maximej
Date:
Wed Jun 15 15:20:50 2022 +0000
Revision:
4:1e2613cedb60
Parent:
3:9f66aabe7b3b
Child:
5:03d1097de75e
JANEZ

Who changed what in which revision?

UserRevisionLine numberNew contents of line
bcostm 0:9933f7db9a9b 1 #include "mbed.h"
Jerome Coutant 3:9f66aabe7b3b 2 #include "stm32746g_discovery_lcd.h"
Jerome Coutant 3:9f66aabe7b3b 3 #include "stm32746g_discovery_ts.h"
bcostm 0:9933f7db9a9b 4
maximej 4:1e2613cedb60 5
maximej 4:1e2613cedb60 6 BufferedSerial RFID(D1, D0, 9600); // initialisation de la liaison TX RX
maximej 4:1e2613cedb60 7
bcostm 0:9933f7db9a9b 8 int main()
bcostm 0:9933f7db9a9b 9 {
maximej 4:1e2613cedb60 10
bcostm 0:9933f7db9a9b 11 TS_StateTypeDef TS_State;
bcostm 0:9933f7db9a9b 12 uint16_t x, y;
maximej 4:1e2613cedb60 13 uint16_t X, Y;
bcostm 0:9933f7db9a9b 14 uint8_t text[30];
bcostm 0:9933f7db9a9b 15 uint8_t status;
bcostm 0:9933f7db9a9b 16 uint8_t idx;
bcostm 0:9933f7db9a9b 17 uint8_t cleared = 0;
bcostm 0:9933f7db9a9b 18 uint8_t prev_nb_touches = 0;
maximej 4:1e2613cedb60 19
bcostm 0:9933f7db9a9b 20
Jerome Coutant 3:9f66aabe7b3b 21 BSP_LCD_Init();
Jerome Coutant 3:9f66aabe7b3b 22 BSP_LCD_LayerDefaultInit(LTDC_ACTIVE_LAYER, LCD_FB_START_ADDRESS);
Jerome Coutant 3:9f66aabe7b3b 23 BSP_LCD_SelectLayer(LTDC_ACTIVE_LAYER);
bcostm 0:9933f7db9a9b 24
Jerome Coutant 3:9f66aabe7b3b 25 BSP_LCD_DisplayStringAt(0, LINE(5), (uint8_t *)"TOUCHSCREEN DEMO", CENTER_MODE);
Jerome Coutant 3:9f66aabe7b3b 26 HAL_Delay(1000);
Jerome Coutant 3:9f66aabe7b3b 27
Jerome Coutant 3:9f66aabe7b3b 28 status = BSP_TS_Init(BSP_LCD_GetXSize(), BSP_LCD_GetYSize());
maximej 4:1e2613cedb60 29 if (status != TS_OK)
maximej 4:1e2613cedb60 30 {
Jerome Coutant 3:9f66aabe7b3b 31 BSP_LCD_Clear(LCD_COLOR_RED);
Jerome Coutant 3:9f66aabe7b3b 32 BSP_LCD_SetBackColor(LCD_COLOR_RED);
Jerome Coutant 3:9f66aabe7b3b 33 BSP_LCD_SetTextColor(LCD_COLOR_WHITE);
Jerome Coutant 3:9f66aabe7b3b 34 BSP_LCD_DisplayStringAt(0, LINE(5), (uint8_t *)"TOUCHSCREEN INIT FAIL", CENTER_MODE);
maximej 4:1e2613cedb60 35 }
maximej 4:1e2613cedb60 36 else
maximej 4:1e2613cedb60 37 {
Jerome Coutant 3:9f66aabe7b3b 38 BSP_LCD_Clear(LCD_COLOR_GREEN);
Jerome Coutant 3:9f66aabe7b3b 39 BSP_LCD_SetBackColor(LCD_COLOR_GREEN);
Jerome Coutant 3:9f66aabe7b3b 40 BSP_LCD_SetTextColor(LCD_COLOR_WHITE);
Jerome Coutant 3:9f66aabe7b3b 41 BSP_LCD_DisplayStringAt(0, LINE(5), (uint8_t *)"TOUCHSCREEN INIT OK", CENTER_MODE);
bcostm 0:9933f7db9a9b 42 }
bcostm 0:9933f7db9a9b 43
Jerome Coutant 3:9f66aabe7b3b 44 HAL_Delay(1000);
Jerome Coutant 3:9f66aabe7b3b 45 BSP_LCD_SetFont(&Font12);
maximej 4:1e2613cedb60 46 BSP_LCD_Clear(LCD_COLOR_BLACK);
maximej 4:1e2613cedb60 47 BSP_LCD_SetBackColor(LCD_COLOR_BLACK);
Jerome Coutant 3:9f66aabe7b3b 48 BSP_LCD_SetTextColor(LCD_COLOR_WHITE);
maximej 4:1e2613cedb60 49
maximej 4:1e2613cedb60 50 // déclaration des variables
maximej 4:1e2613cedb60 51
maximej 4:1e2613cedb60 52 int cara1 = 0;
maximej 4:1e2613cedb60 53 int cara2 = 0;
maximej 4:1e2613cedb60 54
maximej 4:1e2613cedb60 55 uint8_t tab1[5];
maximej 4:1e2613cedb60 56 uint8_t tab2[5];
maximej 4:1e2613cedb60 57
maximej 4:1e2613cedb60 58 int code = 0;
maximej 4:1e2613cedb60 59 int carteRFID = 0;
bcostm 0:9933f7db9a9b 60
maximej 4:1e2613cedb60 61 while(1)
maximej 4:1e2613cedb60 62 {
maximej 4:1e2613cedb60 63 // écriture des texte sur l'écran situer dans les bouttons
maximej 4:1e2613cedb60 64
maximej 4:1e2613cedb60 65 BSP_LCD_DisplayStringAt(40,170 ,(uint8_t *)" 1 ", LEFT_MODE);
maximej 4:1e2613cedb60 66 BSP_LCD_DisplayStringAt(115,170 ,(uint8_t *)" 2 ", LEFT_MODE);
maximej 4:1e2613cedb60 67 BSP_LCD_DisplayStringAt(190,170 ,(uint8_t *)" 3 ", LEFT_MODE);
maximej 4:1e2613cedb60 68 BSP_LCD_DisplayStringAt(265,170 ,(uint8_t *)" 4 ", LEFT_MODE);
maximej 4:1e2613cedb60 69 BSP_LCD_DisplayStringAt(340,170 ,(uint8_t *)" 5 ", LEFT_MODE);
maximej 4:1e2613cedb60 70 BSP_LCD_DisplayStringAt(40,230 ,(uint8_t *)" 6 ", LEFT_MODE);
maximej 4:1e2613cedb60 71 BSP_LCD_DisplayStringAt(115,230 ,(uint8_t *)" 7 ", LEFT_MODE);
maximej 4:1e2613cedb60 72 BSP_LCD_DisplayStringAt(190,230 ,(uint8_t *)" 8 ", LEFT_MODE);
maximej 4:1e2613cedb60 73 BSP_LCD_DisplayStringAt(265,230 ,(uint8_t *)" 9 ", LEFT_MODE);
maximej 4:1e2613cedb60 74 BSP_LCD_DisplayStringAt(326,230 ,(uint8_t *)" CLEAR ", LEFT_MODE);
maximej 4:1e2613cedb60 75
maximej 4:1e2613cedb60 76 //Creation des 2 zone du code pin
maximej 4:1e2613cedb60 77
maximej 4:1e2613cedb60 78 BSP_LCD_DrawRect(80,75,40,40);// zone 1
maximej 4:1e2613cedb60 79 BSP_LCD_DrawRect(150,75,40,40);// zone 2
maximej 4:1e2613cedb60 80
maximej 4:1e2613cedb60 81 //Creation des bouttons 1 à 9 + clear
maximej 4:1e2613cedb60 82
maximej 4:1e2613cedb60 83 BSP_LCD_DrawRect(25,150,50,50); // 1
maximej 4:1e2613cedb60 84 BSP_LCD_DrawRect(100,150,50,50);// 2
maximej 4:1e2613cedb60 85 BSP_LCD_DrawRect(175,150,50,50);// 3
maximej 4:1e2613cedb60 86 BSP_LCD_DrawRect(250,150,50,50);// 4
maximej 4:1e2613cedb60 87 BSP_LCD_DrawRect(325,150,50,50);// 5
maximej 4:1e2613cedb60 88 BSP_LCD_DrawRect(25,210,50,50);// 6
maximej 4:1e2613cedb60 89 BSP_LCD_DrawRect(100,210,50,50);// 7
maximej 4:1e2613cedb60 90 BSP_LCD_DrawRect(175,210,50,50);// 8
maximej 4:1e2613cedb60 91 BSP_LCD_DrawRect(250,210,50,50);// 9
maximej 4:1e2613cedb60 92 BSP_LCD_DrawRect(325,210,50,50);// clear
maximej 4:1e2613cedb60 93
maximej 4:1e2613cedb60 94 BSP_LCD_DisplayStringAt(0,LINE(1),(uint8_t *)"PROJET GACHE, JANEZ MAXIME", CENTER_MODE);
maximej 4:1e2613cedb60 95
maximej 4:1e2613cedb60 96 if(RFID.readable())
maximej 4:1e2613cedb60 97 {
maximej 4:1e2613cedb60 98 char buffer[100];
maximej 4:1e2613cedb60 99 RFID.read(buffer,100);
maximej 4:1e2613cedb60 100 printf("%s\r\n", buffer);
maximej 4:1e2613cedb60 101 BSP_LCD_DisplayStringAt(40,50 ,(uint8_t *)buffer, LEFT_MODE);
maximej 4:1e2613cedb60 102
maximej 4:1e2613cedb60 103 if ( buffer[0] == '0' && buffer[1] == 'D' && buffer[2] == '0' && buffer [3] == '0')
maximej 4:1e2613cedb60 104 {
maximej 4:1e2613cedb60 105 carteRFID = 1;
maximej 4:1e2613cedb60 106 }
maximej 4:1e2613cedb60 107 }
maximej 4:1e2613cedb60 108
maximej 4:1e2613cedb60 109 // choix du 1er caractère
maximej 4:1e2613cedb60 110
maximej 4:1e2613cedb60 111 if(cara1 == 0 && carteRFID == 1)
maximej 4:1e2613cedb60 112 {
maximej 4:1e2613cedb60 113 if (TS_State.touchDetected)
maximej 4:1e2613cedb60 114 {
maximej 4:1e2613cedb60 115 if(X > 25 && X < 75)
maximej 4:1e2613cedb60 116 {
maximej 4:1e2613cedb60 117 if(Y > 150 && Y < 200)
maximej 4:1e2613cedb60 118 {
maximej 4:1e2613cedb60 119 cara1 = 1;
maximej 4:1e2613cedb60 120 }
maximej 4:1e2613cedb60 121 }
maximej 4:1e2613cedb60 122 }
maximej 4:1e2613cedb60 123
maximej 4:1e2613cedb60 124 if (TS_State.touchDetected)
maximej 4:1e2613cedb60 125 {
maximej 4:1e2613cedb60 126 if(X > 100 && X < 150)
maximej 4:1e2613cedb60 127 {
maximej 4:1e2613cedb60 128 if(Y > 150 && Y < 200)
maximej 4:1e2613cedb60 129 {
maximej 4:1e2613cedb60 130 cara1 = 2;
maximej 4:1e2613cedb60 131 }
maximej 4:1e2613cedb60 132 }
maximej 4:1e2613cedb60 133 }
maximej 4:1e2613cedb60 134
maximej 4:1e2613cedb60 135 if (TS_State.touchDetected)
maximej 4:1e2613cedb60 136 {
maximej 4:1e2613cedb60 137 if(X > 175 && X < 225)
maximej 4:1e2613cedb60 138 {
maximej 4:1e2613cedb60 139 if(Y > 150 && Y < 200)
maximej 4:1e2613cedb60 140 {
maximej 4:1e2613cedb60 141 cara1 = 3;
maximej 4:1e2613cedb60 142 }
maximej 4:1e2613cedb60 143 }
maximej 4:1e2613cedb60 144 }
maximej 4:1e2613cedb60 145
maximej 4:1e2613cedb60 146 if (TS_State.touchDetected)
maximej 4:1e2613cedb60 147 {
maximej 4:1e2613cedb60 148 if(X > 250 && X < 300)
maximej 4:1e2613cedb60 149 {
maximej 4:1e2613cedb60 150 if(Y > 150 && Y < 200)
maximej 4:1e2613cedb60 151 {
maximej 4:1e2613cedb60 152 cara1 = 4;
maximej 4:1e2613cedb60 153 }
maximej 4:1e2613cedb60 154 }
maximej 4:1e2613cedb60 155 }
maximej 4:1e2613cedb60 156
maximej 4:1e2613cedb60 157 if (TS_State.touchDetected)
maximej 4:1e2613cedb60 158 {
maximej 4:1e2613cedb60 159 if(X > 325 && X < 375)
maximej 4:1e2613cedb60 160 {
maximej 4:1e2613cedb60 161 if(Y > 150 && Y < 200)
maximej 4:1e2613cedb60 162 {
maximej 4:1e2613cedb60 163 cara1 = 5;
maximej 4:1e2613cedb60 164 }
maximej 4:1e2613cedb60 165 }
maximej 4:1e2613cedb60 166 }
maximej 4:1e2613cedb60 167
maximej 4:1e2613cedb60 168 if (TS_State.touchDetected)
maximej 4:1e2613cedb60 169 {
maximej 4:1e2613cedb60 170 if(X > 25 && X < 75)
maximej 4:1e2613cedb60 171 {
maximej 4:1e2613cedb60 172 if(Y > 210 && Y < 260)
maximej 4:1e2613cedb60 173 {
maximej 4:1e2613cedb60 174 cara1 = 6;
maximej 4:1e2613cedb60 175 }
maximej 4:1e2613cedb60 176 }
maximej 4:1e2613cedb60 177 }
maximej 4:1e2613cedb60 178
maximej 4:1e2613cedb60 179 if (TS_State.touchDetected)
maximej 4:1e2613cedb60 180 {
maximej 4:1e2613cedb60 181 if(X > 100 && X < 150)
maximej 4:1e2613cedb60 182 {
maximej 4:1e2613cedb60 183 if(Y > 210 && Y < 260)
maximej 4:1e2613cedb60 184 {
maximej 4:1e2613cedb60 185 cara1 = 7;
maximej 4:1e2613cedb60 186 }
maximej 4:1e2613cedb60 187 }
maximej 4:1e2613cedb60 188 }
bcostm 0:9933f7db9a9b 189
maximej 4:1e2613cedb60 190 if (TS_State.touchDetected)
maximej 4:1e2613cedb60 191 {
maximej 4:1e2613cedb60 192 if(X > 175 && X < 225)
maximej 4:1e2613cedb60 193 {
maximej 4:1e2613cedb60 194 if(Y > 210 && Y < 260)
maximej 4:1e2613cedb60 195 {
maximej 4:1e2613cedb60 196 cara1 = 8;
maximej 4:1e2613cedb60 197 }
maximej 4:1e2613cedb60 198 }
maximej 4:1e2613cedb60 199 }
maximej 4:1e2613cedb60 200
maximej 4:1e2613cedb60 201 if (TS_State.touchDetected)
maximej 4:1e2613cedb60 202 {
maximej 4:1e2613cedb60 203 if(X > 250 && X < 300)
maximej 4:1e2613cedb60 204 {
maximej 4:1e2613cedb60 205 if(Y > 210 && Y < 260)
maximej 4:1e2613cedb60 206 {
maximej 4:1e2613cedb60 207 cara1 = 9;
maximej 4:1e2613cedb60 208 }
maximej 4:1e2613cedb60 209 }
maximej 4:1e2613cedb60 210 }
maximej 4:1e2613cedb60 211
maximej 4:1e2613cedb60 212 if (TS_State.touchDetected)
maximej 4:1e2613cedb60 213 {
maximej 4:1e2613cedb60 214 if(X > 325 && X < 375)
maximej 4:1e2613cedb60 215 {
maximej 4:1e2613cedb60 216 if(Y > 210 && Y < 260)
maximej 4:1e2613cedb60 217 {
maximej 4:1e2613cedb60 218 // clear des 4 caratères
maximej 4:1e2613cedb60 219 cara1 = 0;
maximej 4:1e2613cedb60 220 cara2 = 0;
maximej 4:1e2613cedb60 221 }
maximej 4:1e2613cedb60 222 }
maximej 4:1e2613cedb60 223 }
maximej 4:1e2613cedb60 224 }
maximej 4:1e2613cedb60 225
maximej 4:1e2613cedb60 226 // écriture du 1er caractère dans la case 1
maximej 4:1e2613cedb60 227 sprintf((char*)tab1, "%d" , cara1);
maximej 4:1e2613cedb60 228 BSP_LCD_DisplayStringAt(95,95 ,(uint8_t *)&tab1, LEFT_MODE);
maximej 4:1e2613cedb60 229
maximej 4:1e2613cedb60 230
maximej 4:1e2613cedb60 231 // écriture du 2nd caractère
maximej 4:1e2613cedb60 232
maximej 4:1e2613cedb60 233 if(cara1 != 0)
maximej 4:1e2613cedb60 234 {
maximej 4:1e2613cedb60 235 if (TS_State.touchDetected)
maximej 4:1e2613cedb60 236 {
maximej 4:1e2613cedb60 237 if(X > 25 && X < 75)
maximej 4:1e2613cedb60 238 {
maximej 4:1e2613cedb60 239 if(Y > 150 && Y < 200)
maximej 4:1e2613cedb60 240 {
maximej 4:1e2613cedb60 241 cara2 = 1;
maximej 4:1e2613cedb60 242 }
maximej 4:1e2613cedb60 243 }
maximej 4:1e2613cedb60 244 }
maximej 4:1e2613cedb60 245
maximej 4:1e2613cedb60 246 if (TS_State.touchDetected)
maximej 4:1e2613cedb60 247 {
maximej 4:1e2613cedb60 248 if(X > 100 && X < 150)
maximej 4:1e2613cedb60 249 {
maximej 4:1e2613cedb60 250 if(Y > 150 && Y < 200)
maximej 4:1e2613cedb60 251 {
maximej 4:1e2613cedb60 252 cara2 = 2;
maximej 4:1e2613cedb60 253 }
maximej 4:1e2613cedb60 254 }
maximej 4:1e2613cedb60 255 }
maximej 4:1e2613cedb60 256
maximej 4:1e2613cedb60 257 if (TS_State.touchDetected)
maximej 4:1e2613cedb60 258 {
maximej 4:1e2613cedb60 259 if(X > 175 && X < 225)
maximej 4:1e2613cedb60 260 {
maximej 4:1e2613cedb60 261 if(Y > 150 && Y < 200)
maximej 4:1e2613cedb60 262 {
maximej 4:1e2613cedb60 263 cara2 = 3;
maximej 4:1e2613cedb60 264 }
maximej 4:1e2613cedb60 265 }
maximej 4:1e2613cedb60 266 }
maximej 4:1e2613cedb60 267
maximej 4:1e2613cedb60 268 if (TS_State.touchDetected)
maximej 4:1e2613cedb60 269 {
maximej 4:1e2613cedb60 270 if(X > 250 && X < 300)
maximej 4:1e2613cedb60 271 {
maximej 4:1e2613cedb60 272 if(Y > 150 && Y < 200)
maximej 4:1e2613cedb60 273 {
maximej 4:1e2613cedb60 274 cara2 = 4;
maximej 4:1e2613cedb60 275 }
maximej 4:1e2613cedb60 276 }
maximej 4:1e2613cedb60 277 }
maximej 4:1e2613cedb60 278
maximej 4:1e2613cedb60 279 if (TS_State.touchDetected)
maximej 4:1e2613cedb60 280 {
maximej 4:1e2613cedb60 281 if(X > 325 && X < 375)
maximej 4:1e2613cedb60 282 {
maximej 4:1e2613cedb60 283 if(Y > 150 && Y < 200)
maximej 4:1e2613cedb60 284 {
maximej 4:1e2613cedb60 285 cara2 = 5;
maximej 4:1e2613cedb60 286 }
maximej 4:1e2613cedb60 287 }
maximej 4:1e2613cedb60 288 }
maximej 4:1e2613cedb60 289
maximej 4:1e2613cedb60 290 if (TS_State.touchDetected)
maximej 4:1e2613cedb60 291 {
maximej 4:1e2613cedb60 292 if(X > 25 && X < 75)
maximej 4:1e2613cedb60 293 {
maximej 4:1e2613cedb60 294 if(Y > 210 && Y < 260)
maximej 4:1e2613cedb60 295 {
maximej 4:1e2613cedb60 296 cara2 = 6;
maximej 4:1e2613cedb60 297 }
maximej 4:1e2613cedb60 298 }
maximej 4:1e2613cedb60 299 }
maximej 4:1e2613cedb60 300
maximej 4:1e2613cedb60 301 if (TS_State.touchDetected)
maximej 4:1e2613cedb60 302 {
maximej 4:1e2613cedb60 303 if(X > 100 && X < 150)
maximej 4:1e2613cedb60 304 {
maximej 4:1e2613cedb60 305 if(Y > 210 && Y < 260)
maximej 4:1e2613cedb60 306 {
maximej 4:1e2613cedb60 307 cara2 = 7;
maximej 4:1e2613cedb60 308 }
maximej 4:1e2613cedb60 309 }
maximej 4:1e2613cedb60 310 }
maximej 4:1e2613cedb60 311
maximej 4:1e2613cedb60 312 if (TS_State.touchDetected)
maximej 4:1e2613cedb60 313 {
maximej 4:1e2613cedb60 314 if(X > 175 && X < 225)
maximej 4:1e2613cedb60 315 {
maximej 4:1e2613cedb60 316 if(Y > 210 && Y < 260)
maximej 4:1e2613cedb60 317 {
maximej 4:1e2613cedb60 318 cara2 = 8;
maximej 4:1e2613cedb60 319 }
maximej 4:1e2613cedb60 320 }
maximej 4:1e2613cedb60 321 }
maximej 4:1e2613cedb60 322
maximej 4:1e2613cedb60 323 if (TS_State.touchDetected)
maximej 4:1e2613cedb60 324 {
maximej 4:1e2613cedb60 325 if(X > 250 && X < 300)
maximej 4:1e2613cedb60 326 {
maximej 4:1e2613cedb60 327 if(Y > 210 && Y < 260)
maximej 4:1e2613cedb60 328 {
maximej 4:1e2613cedb60 329 cara2 = 9;
maximej 4:1e2613cedb60 330 }
maximej 4:1e2613cedb60 331 }
maximej 4:1e2613cedb60 332 }
maximej 4:1e2613cedb60 333
maximej 4:1e2613cedb60 334 if (TS_State.touchDetected)
maximej 4:1e2613cedb60 335 {
maximej 4:1e2613cedb60 336 if(X > 325 && X < 375)
maximej 4:1e2613cedb60 337 {
maximej 4:1e2613cedb60 338 if(Y > 210 && Y < 260)
maximej 4:1e2613cedb60 339 {
maximej 4:1e2613cedb60 340 cara1 = 0;
maximej 4:1e2613cedb60 341 cara2 = 0;
maximej 4:1e2613cedb60 342 }
maximej 4:1e2613cedb60 343 }
maximej 4:1e2613cedb60 344 }
maximej 4:1e2613cedb60 345 }
maximej 4:1e2613cedb60 346
maximej 4:1e2613cedb60 347 // écriture du 1er caractère dans la case 2
maximej 4:1e2613cedb60 348 sprintf((char*)tab2, "%d" , cara2);
maximej 4:1e2613cedb60 349 BSP_LCD_DisplayStringAt(170,95 ,(uint8_t *)&tab2, LEFT_MODE);
maximej 4:1e2613cedb60 350
maximej 4:1e2613cedb60 351 if (cara1 == 3 && cara2 == 9)
maximej 4:1e2613cedb60 352 {
maximej 4:1e2613cedb60 353 code = 1;
maximej 4:1e2613cedb60 354 }
maximej 4:1e2613cedb60 355 else
maximej 4:1e2613cedb60 356 {
maximej 4:1e2613cedb60 357 BSP_LCD_DisplayStringAt(0, LINE(2) ,(uint8_t *)"Code incorrect", CENTER_MODE);
maximej 4:1e2613cedb60 358 }
maximej 4:1e2613cedb60 359
maximej 4:1e2613cedb60 360 if ( carteRFID == 1 && code == 1)
maximej 4:1e2613cedb60 361 {
maximej 4:1e2613cedb60 362 BSP_LCD_DisplayStringAt(0, LINE(3), (uint8_t *)"CODE BON, ACCES AUTORISER", CENTER_MODE);
maximej 4:1e2613cedb60 363 }
maximej 4:1e2613cedb60 364
Jerome Coutant 3:9f66aabe7b3b 365 BSP_TS_GetState(&TS_State);
maximej 4:1e2613cedb60 366
maximej 4:1e2613cedb60 367 if (TS_State.touchDetected)
maximej 4:1e2613cedb60 368 {
bcostm 0:9933f7db9a9b 369 // Clear lines corresponding to old touches coordinates
maximej 4:1e2613cedb60 370 if (TS_State.touchDetected < prev_nb_touches)
maximej 4:1e2613cedb60 371 {
maximej 4:1e2613cedb60 372 for (idx = (TS_State.touchDetected + 1); idx <= 5; idx++)
maximej 4:1e2613cedb60 373 {
Jerome Coutant 3:9f66aabe7b3b 374 BSP_LCD_ClearStringLine(idx);
bcostm 0:9933f7db9a9b 375 }
bcostm 0:9933f7db9a9b 376 }
bcostm 0:9933f7db9a9b 377 prev_nb_touches = TS_State.touchDetected;
bcostm 0:9933f7db9a9b 378
bcostm 0:9933f7db9a9b 379 cleared = 0;
bcostm 0:9933f7db9a9b 380
bcostm 0:9933f7db9a9b 381 sprintf((char*)text, "Touches: %d", TS_State.touchDetected);
Jerome Coutant 3:9f66aabe7b3b 382 BSP_LCD_DisplayStringAt(0, LINE(0), (uint8_t *)&text, LEFT_MODE);
bcostm 0:9933f7db9a9b 383
maximej 4:1e2613cedb60 384 for (idx = 0; idx < TS_State.touchDetected; idx++)
maximej 4:1e2613cedb60 385 {
bcostm 0:9933f7db9a9b 386 x = TS_State.touchX[idx];
bcostm 0:9933f7db9a9b 387 y = TS_State.touchY[idx];
bcostm 0:9933f7db9a9b 388 sprintf((char*)text, "Touch %d: x=%d y=%d ", idx+1, x, y);
Jerome Coutant 3:9f66aabe7b3b 389 BSP_LCD_DisplayStringAt(0, LINE(idx+1), (uint8_t *)&text, LEFT_MODE);
bcostm 0:9933f7db9a9b 390 }
bcostm 0:9933f7db9a9b 391
maximej 4:1e2613cedb60 392
maximej 4:1e2613cedb60 393 //BSP_LCD_DrawPixel(TS_State.touchX[0], TS_State.touchY[0], LCD_COLOR_ORANGE);
maximej 4:1e2613cedb60 394 }
maximej 4:1e2613cedb60 395 else
maximej 4:1e2613cedb60 396 {
maximej 4:1e2613cedb60 397 if (!cleared)
maximej 4:1e2613cedb60 398 {
maximej 4:1e2613cedb60 399 BSP_LCD_Clear(LCD_COLOR_BLACK);
bcostm 0:9933f7db9a9b 400 sprintf((char*)text, "Touches: 0");
Jerome Coutant 3:9f66aabe7b3b 401 BSP_LCD_DisplayStringAt(0, LINE(0), (uint8_t *)&text, LEFT_MODE);
bcostm 0:9933f7db9a9b 402 cleared = 1;
bcostm 0:9933f7db9a9b 403 }
bcostm 0:9933f7db9a9b 404 }
maximej 4:1e2613cedb60 405 X = TS_State.touchX[0];
maximej 4:1e2613cedb60 406 Y = TS_State.touchY[0];
bcostm 0:9933f7db9a9b 407 }
bcostm 0:9933f7db9a9b 408 }