Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: BSP_DISCO_F746NG
Revision 5:03d1097de75e, committed 2022-06-16
- Comitter:
- maximej
- Date:
- Thu Jun 16 09:20:02 2022 +0000
- Parent:
- 4:1e2613cedb60
- Commit message:
- JANEZ_Maxime_rendu_final
Changed in this revision
| main.cpp | Show annotated file Show diff for this revision Revisions of this file |
--- a/main.cpp Wed Jun 15 15:20:50 2022 +0000
+++ b/main.cpp Thu Jun 16 09:20:02 2022 +0000
@@ -4,20 +4,17 @@
BufferedSerial RFID(D1, D0, 9600); // initialisation de la liaison TX RX
+//AnalogOut gache(A0);
int main()
{
-
+ // variable de detection tactile
TS_StateTypeDef TS_State;
uint16_t x, y;
uint16_t X, Y;
- uint8_t text[30];
uint8_t status;
- uint8_t idx;
- uint8_t cleared = 0;
- uint8_t prev_nb_touches = 0;
-
+ // init de la carte
BSP_LCD_Init();
BSP_LCD_LayerDefaultInit(LTDC_ACTIVE_LAYER, LCD_FB_START_ADDRESS);
BSP_LCD_SelectLayer(LTDC_ACTIVE_LAYER);
@@ -47,16 +44,16 @@
BSP_LCD_SetBackColor(LCD_COLOR_BLACK);
BSP_LCD_SetTextColor(LCD_COLOR_WHITE);
- // déclaration des variables
+ // déclaration des variables
- int cara1 = 0;
+ int cara1 = 0; // caractère du code pin
int cara2 = 0;
- uint8_t tab1[5];
+ uint8_t tab1[5]; // stokage des caractères pour les cases
uint8_t tab2[5];
- int code = 0;
- int carteRFID = 0;
+ int code = 0; // si code pin bon = 1
+ int carteRFID = 0; // si pass bon = 1
while(1)
{
@@ -73,7 +70,7 @@
BSP_LCD_DisplayStringAt(265,230 ,(uint8_t *)" 9 ", LEFT_MODE);
BSP_LCD_DisplayStringAt(326,230 ,(uint8_t *)" CLEAR ", LEFT_MODE);
- //Creation des 2 zone du code pin
+ //Creation des 2 zones du code pin
BSP_LCD_DrawRect(80,75,40,40);// zone 1
BSP_LCD_DrawRect(150,75,40,40);// zone 2
@@ -93,20 +90,26 @@
BSP_LCD_DisplayStringAt(0,LINE(1),(uint8_t *)"PROJET GACHE, JANEZ MAXIME", CENTER_MODE);
- if(RFID.readable())
+ if(RFID.readable()) // lecture de la carte RFID
{
char buffer[100];
RFID.read(buffer,100);
printf("%s\r\n", buffer);
- BSP_LCD_DisplayStringAt(40,50 ,(uint8_t *)buffer, LEFT_MODE);
+ //BSP_LCD_DisplayStringAt(40,50 ,(uint8_t *)buffer, LEFT_MODE);
if ( buffer[0] == '0' && buffer[1] == 'D' && buffer[2] == '0' && buffer [3] == '0')
{
carteRFID = 1;
- }
+ BSP_LCD_DisplayStringAt(0, LINE(3), (uint8_t *)" PASS CORRECT ", CENTER_MODE);
+ }
+ else
+ {
+ carteRFID = 0;
+ BSP_LCD_DisplayStringAt(0, LINE(3), (uint8_t *)"PASS INCORRECT", CENTER_MODE);
+ }
}
- // choix du 1er caractère
+ // choix du 1er caractère du code pin
if(cara1 == 0 && carteRFID == 1)
{
@@ -215,7 +218,7 @@
{
if(Y > 210 && Y < 260)
{
- // clear des 4 caratères
+ // clear des 2 caratères
cara1 = 0;
cara2 = 0;
}
@@ -227,8 +230,8 @@
sprintf((char*)tab1, "%d" , cara1);
BSP_LCD_DisplayStringAt(95,95 ,(uint8_t *)&tab1, LEFT_MODE);
-
- // écriture du 2nd caractère
+
+ // choix du 2nd caractère du code pin
if(cara1 != 0)
{
@@ -348,60 +351,26 @@
sprintf((char*)tab2, "%d" , cara2);
BSP_LCD_DisplayStringAt(170,95 ,(uint8_t *)&tab2, LEFT_MODE);
- if (cara1 == 3 && cara2 == 9)
+ if (cara1 == 3 && cara2 == 9) // vérification du bon code pin
{
- code = 1;
+ code = 1;
+ if ( carteRFID == 1 && code == 1) // si le pass + code bon
+ {
+ //BSP_LCD_DisplayStringAt(0, LINE(3), (uint8_t *)"CODE BON, ACCES AUTORISER", CENTER_MODE);
+ BSP_LCD_SetTextColor(LCD_COLOR_GREEN);
+ BSP_LCD_DisplayStringAt(0, LINE(5), (uint8_t *)" CODE CORRECT ", CENTER_MODE);
+ //gache = 1;
+ //HAL_Delay(1000);
+
+ }
}
else
{
- BSP_LCD_DisplayStringAt(0, LINE(2) ,(uint8_t *)"Code incorrect", CENTER_MODE);
+ BSP_LCD_SetTextColor(LCD_COLOR_WHITE);
+ BSP_LCD_DisplayStringAt(0, LINE(5), (uint8_t *)"CODE INCORRECT", CENTER_MODE);
}
-
- if ( carteRFID == 1 && code == 1)
- {
- BSP_LCD_DisplayStringAt(0, LINE(3), (uint8_t *)"CODE BON, ACCES AUTORISER", CENTER_MODE);
- }
-
+ // détection des cordonnées tactile
BSP_TS_GetState(&TS_State);
-
- if (TS_State.touchDetected)
- {
- // Clear lines corresponding to old touches coordinates
- if (TS_State.touchDetected < prev_nb_touches)
- {
- for (idx = (TS_State.touchDetected + 1); idx <= 5; idx++)
- {
- BSP_LCD_ClearStringLine(idx);
- }
- }
- prev_nb_touches = TS_State.touchDetected;
-
- cleared = 0;
-
- sprintf((char*)text, "Touches: %d", TS_State.touchDetected);
- BSP_LCD_DisplayStringAt(0, LINE(0), (uint8_t *)&text, LEFT_MODE);
-
- for (idx = 0; idx < TS_State.touchDetected; idx++)
- {
- x = TS_State.touchX[idx];
- y = TS_State.touchY[idx];
- sprintf((char*)text, "Touch %d: x=%d y=%d ", idx+1, x, y);
- BSP_LCD_DisplayStringAt(0, LINE(idx+1), (uint8_t *)&text, LEFT_MODE);
- }
-
-
- //BSP_LCD_DrawPixel(TS_State.touchX[0], TS_State.touchY[0], LCD_COLOR_ORANGE);
- }
- else
- {
- if (!cleared)
- {
- BSP_LCD_Clear(LCD_COLOR_BLACK);
- sprintf((char*)text, "Touches: 0");
- BSP_LCD_DisplayStringAt(0, LINE(0), (uint8_t *)&text, LEFT_MODE);
- cleared = 1;
- }
- }
X = TS_State.touchX[0];
Y = TS_State.touchY[0];
}