lecture de carte RFID et vérification par code PIN
Dependencies: BSP_DISCO_F746NG
main.cpp@4:1e2613cedb60, 2022-06-15 (annotated)
- 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?
User | Revision | Line number | New 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 | } |