Projet Interfacage capteur de recul

Dependencies:   TS_DISCO_F746NG LCD_DISCO_F746NG SRF02 BSP_DISCO_F746NG BUTTON_GROUP

Revision:
5:8df147fe09cc
Parent:
4:fb942253d9e6
--- a/main.cpp	Thu Jun 03 12:02:20 2021 +0000
+++ b/main.cpp	Tue Jun 22 13:22:31 2021 +0000
@@ -2,68 +2,33 @@
 #include "stm32746g_discovery_lcd.h"
 #include "stm32746g_discovery_ts.h"
 #include "button_group.hpp"
-#include "bluetooth.h"
 #include "LogoParisSaclay.h"
-#include "market.h"
 #include "fleche.h"
-#include "badine.h"
-#include "balzac.h"
-#include "barjavel.h"
-#include "blacksad.h"
-#include "boule.h"
-#include "cahier.h"
-#include "cid.h"
-#include "cyrano.h"
-#include "domjuan.h"
-#include "eblouissements.h"
-#include "fleurs.h"
-#include "fourneaux.h"
-#include "gazette.h"
-#include "hernani.h"
-#include "passemiroir.h"
-#include "potter.h"
-#include "quijote.h"
-#include "saturniens.h"
-#include "talon.h"
-#include "vergers.h"
+#include "mbed.h"
+#include "SRF02.h"
 
-//using namespace Mikami;
-//TS_DISCO_F746NG ts_;
-//LCD_DISCO_F746NG lcd_;
+//declarations
 TS_StateTypeDef TS_State;
 
-void page_commande(void);
-void page_liste(void);
-void page_accueil(void);
-int page = 2;
 uint16_t x, y;
 uint8_t text[30];
 uint8_t status;
+
+void page_capteur(void); //0
+void page_alarme(void);  //1
+void page_accueil(void); //2
+
+int page = 2;
 uint8_t idx;
-uint8_t cleared = 0;
-uint8_t prev_nb_touches = 0;
-//float prix_total = 0;
-//char buffer [50];
+uint8_t dStd = 50;
+uint8_t dLim = 40;
+uint8_t dCrit = 30;
+
+SRF02 sensor(0xE0,PB_9,PB_8);  // address, SDA, SCL
+DigitalOut buzzer(PH_6);
 
 
-//market
-void drawImage_market(int offsetX, int offsetY)
-{
-    int x = 0;
-    int y = 0;
-    uint32_t* dataPtr = (uint32_t*)market.data;
-    while(y < market.height) {
-        while(x < market.width) {
-            BSP_LCD_DrawPixel(x + offsetX, y + offsetY, *dataPtr);
-            dataPtr++;
-            x++;
-        }
-        x = 0;
-        y++;
-    }
-}
-
-//fleche
+//fonction pour afficher l'image fleche
 void drawImage_fleche(int offsetX, int offsetY)
 {
     int x = 0;
@@ -80,25 +45,8 @@
     }
 }
 
-//LogoBT
-void drawImage_BT(int offsetX, int offsetY)
-{
-    int x = 0;
-    int y = 0;
-    uint32_t* dataPtr = (uint32_t*)bluetooth.data;
-    while(y < bluetooth.height) {
-        while(x < bluetooth.width) {
-            BSP_LCD_DrawPixel(x + offsetX, y + offsetY, *dataPtr);
-            dataPtr++;
-            x++;
-        }
-        x = 0;
-        y++;
-    }
-}
 
-
-//Logo
+//fonction pour afficher l'image logo
 void drawImage_LogoParisSaclay(int offsetX, int offsetY)
 {
     int x = 0;
@@ -115,28 +63,14 @@
     }
 }
 
-//blacksad
-void drawImage_blacksad(int offsetX, int offsetY)
-{
-    int x = 0;
-    int y = 0;
-    uint32_t* dataPtr = (uint32_t*)blacksad.data;
-    while(y < blacksad.height) {
-        while(x < blacksad.width) {
-            BSP_LCD_DrawPixel(x + offsetX, y + offsetY, *dataPtr);
-            dataPtr++;
-            x++;
-        }
-        x = 0;
-        y++;
-    }
-}
 
 
+/////////////////////
+///// PROGRAMME /////
+/////////////////////
 int main()
 {
-    int c[6]={0,0,0,0,0,0}; //0 = a traiter 1 = en cours 2 = fait
-    int commande = 6;
+    //initialisation de l'ecran
     BSP_LCD_Init();
     BSP_LCD_LayerDefaultInit(LTDC_ACTIVE_LAYER, LCD_FB_START_ADDRESS);
     BSP_LCD_SelectLayer(LTDC_ACTIVE_LAYER);
@@ -148,12 +82,12 @@
         BSP_LCD_SetBackColor(LCD_COLOR_WHITE);
         BSP_LCD_SetTextColor(LCD_COLOR_GREEN);
         BSP_LCD_DisplayStringAt(0, LINE(5), (uint8_t *)"TOUCHSCREEN INIT FAIL", CENTER_MODE);
-       
-    } else {
+    }
+    else {
         BSP_LCD_Clear(LCD_COLOR_WHITE);
-        BSP_LCD_SetBackColor(LCD_COLOR_WHITE);
-        BSP_LCD_SetTextColor(LCD_COLOR_GREEN);
-        BSP_LCD_DisplayStringAt(0, LINE(1), (uint8_t *)"Bienvenue chez Liroy Merlin", CENTER_MODE);
+        BSP_LCD_SetBackColor(LCD_COLOR_CYAN);
+        BSP_LCD_SetTextColor(LCD_COLOR_BLACK);
+        BSP_LCD_DisplayStringAt(0, LINE(5), (uint8_t *)"PROJET INTERFACAGE", CENTER_MODE);
     }
 
     HAL_Delay(2000);
@@ -163,539 +97,393 @@
     BSP_LCD_SetBackColor(LCD_COLOR_WHITE);
     BSP_LCD_SetTextColor(LCD_COLOR_BLACK);
 
+    //lancement du programme
     while(1) {
-      
-        // DETECTION CLICS
+    
+        //////////////////////////////
+        ///// DETECTION CLICS : //////
+        //////////////////////////////
+        
         BSP_TS_GetState(&TS_State);
         for (idx = 0; idx < TS_State.touchDetected; idx++) 
         {
-                x = TS_State.touchX[idx];
-                y = TS_State.touchY[idx];
-            }
-            
-            //////////////////CLICS//////////////
-            
-        // PAGE COMMANDE VERS PAGE D'ACCUEIL
-        if ((page == 0) && (x>= 458 && x<= 480) && (y>= 0 && y<= 22))
+            x = TS_State.touchX[idx];
+            y = TS_State.touchY[idx];
+        }
+        
+        
+        //////////////////////////////
+        ///// AFFICHAGE PAGES : //////
+        //////////////////////////////
+        
+        //PAGE ACCUEIL VERS PAGE CAPTEUR
+        //si page p et clic sur cadre correspondant
+        if ((page == 2) && (x>= 65 && x<= 215) && (y>= 55 && y<= 230))
+        {
+            //reset ecran et coordonnées
+            BSP_LCD_Clear(LCD_COLOR_WHITE);
+            x = 0;
+            y = 0;
+            //affichage page p
+            page = 0;
+            HAL_Delay(300);
+        }
+        
+        //PAGE ACCUEIL VERS PAGE ALARME
+        if ((page == 2) && (x>= 265 && x<= 415) && (y>= 55 && y<= 230))
+        {
+            BSP_LCD_Clear(LCD_COLOR_WHITE);
+            x = 0;
+            y = 0;
+            page = 1;
+            HAL_Delay(300);
+        }
+        
+        // PAGE CAPTEUR VERS PAGE D'ACCUEIL
+        if ((page == 0) && (x>= 455 && x<= 480) && (y>= 0 && y<= 25))
+        {
+            BSP_LCD_Clear(LCD_COLOR_WHITE);
+            x = 0;
+            y = 0;
+            page = 2;
+            HAL_Delay(300);
+        }
+        
+        // PAGE ALARME VERS PAGE D'ACCUEIL
+        if ((page == 1) && (x>= 455 && x<= 480) && (y>= 0 && y<= 25))
+        {
+            BSP_LCD_Clear(LCD_COLOR_WHITE);
+            x = 0;
+            y = 0;
+            page = 2;
+            HAL_Delay(300);
+        }
+        
+        // AFFICHAGE DE LA PAGE D'ACCUEIL
+        else if (page == 2)
         {
-             BSP_LCD_Clear(LCD_COLOR_WHITE);
-             x = 0;
-             y = 0;
-             page = 2;
-             HAL_Delay(300);
-            }
+            page_accueil();
+        }
+        
+        
+        /////////////////////////
+        ///// MODE CAPTEUR : ////
+        /////////////////////////
+        
+        //REGLAGE DES SEUILS D'ALARME :
         
-        //PAGE ACCUEIL VERS PAGE COMMANDE
-        if ((page == 2) && (x>= 65 && x<= 215) && (y>= 60 && y<= 240))
+        //dStd -1
+        //en page capteur, si clic sur cadre correspondant
+        else if ((page == 0) && (x>= 8 && x<= 55) && (y>= 33 && y<= 85))
+        {
+            x = 0;
+            y = 0;
+            //si seuil changeable
+            if (dStd >> (dLim+5) && dStd <= 80)
+            //modifier en conséquence
+            { dStd = dStd - 1; }
+            HAL_Delay(200);
+        }
+           
+        //dStd +1  
+        else if ((page == 0) && (x>= 188 && x<= 231) && (y>= 33 && y<= 85))
+        {
+            x = 0;
+            y = 0;
+            if (dStd >= (dLim+5) && dStd < 80)
+            { dStd = dStd + 1; }
+            HAL_Delay(200);
+        }
+            
+        //dLim -1
+        else if ((page == 0) && (x>= 8 && x<= 51) && (y>= 113 && y<= 160))
         {
-             BSP_LCD_Clear(LCD_COLOR_WHITE);
-             x = 0;
-             y = 0;
-             page = 0;
-             HAL_Delay(300);
-            }
+            x = 0;
+            y = 0;
+            if (dLim > (dCrit+5) && dLim <= (dStd-5))
+            { dLim = dLim - 1; }
+            HAL_Delay(200);
+        }
+
+        //dLim +1
+        else if ((page == 0) && (x>= 193 && x<= 236) && (y>= 113 && y<= 160))
+        {
+            x = 0;
+            y = 0;
+            if (dLim >= (dCrit+5) && dLim < (dStd-5))
+            { dLim = dLim + 1; }
+            HAL_Delay(200);
+        }
+            
+        //dCrit -1
+        else if ((page == 0) && (x>= 8 && x<= 51) && (y>= 193 && y<= 240))
+        {
+            x = 0;
+            y = 0;
+            if (dCrit > 20 && dCrit <= (dLim-5))
+            { dCrit = dCrit - 1; }
+            HAL_Delay(200);
+        }
             
             
-        // PAGE LISTE VERS PAGE COMMANDE 
-        if ((page == 1) && (x>= 458 && x<= 480) && (y>= 0 && y<= 22))
+        //dCrit +1
+        else if ((page == 0) && (x>= 193 && x<= 236) && (y>= 193 && y<= 240))
         {
-             BSP_LCD_Clear(LCD_COLOR_WHITE);
-             x = 0;
-             y = 0;
-             page = 0;
-             commande = 6;
-             HAL_Delay(300);
-            }     
+            x = 0;
+            y = 0;
+            if (dCrit >= 20 && dCrit < (dLim-5))
+            { dCrit = dCrit + 1; }
+            HAL_Delay(200);
+        }
         
-        //PAGE COMMANDE
-       // HAUT GAUCHE  
-        else if ((page == 0) && (x>= 8 && x<= 236) && (y>= 29 && y<= 103))
+        else if (page == 0) 
         {
-             x = 0;
-             y = 0;
-             page = 1;
-             BSP_LCD_Clear(LCD_COLOR_WHITE);
-             page_liste();
-             commande = 0;
-             HAL_Delay(200);
-            }
-           
-        // HAUT DROITE  
-        else if ((page == 0) && (x>= 244 && x<= 472) && (y>= 29 && y<= 103))
-        {
-             x = 0;
-             y = 0;
-             page = 1;
-             BSP_LCD_Clear(LCD_COLOR_WHITE);
-             page_liste();
-             commande = 1;
-             HAL_Delay(200);
+            // AFFICHAGE DE LA PAGE MODE CAPTEUR
+            page_capteur();
+            
+            
+            //LECTURE DU CAPTEUR ET AFFICHAGE DE LA DISTANCE MESUREE
+            int distance;
+            //lecture du capteur en cm
+            distance = sensor.GetCentimeters();
+            //affichage sur l'ecran
+            BSP_LCD_SetTextColor(LCD_COLOR_BLACK);
+            sprintf((char*)text, "Distance = %d cm",distance);
+            BSP_LCD_DisplayStringAt(80, LINE(3), (uint8_t *)&text, RIGHT_MODE);
+            HAL_Delay(20);
+            
+            
+            //AFFICHAGE DES ALARMES ET DECLENCHEMENT DES BIPS
+            if(distance >= dStd){   //distance > a tous les seuils d'alarme (ras)
+                buzzer = 0;
             }
             
-        // MILIEU GAUCHE 
-        else if ((page == 0) && (x>= 8 && x<= 236) && (y>= 110 && y<= 184))
-        {
-             x = 0;
-             y = 0;
-             page = 1;
-             BSP_LCD_Clear(LCD_COLOR_WHITE);
-             page_liste();
-             commande = 2;
-             HAL_Delay(200);
+            //premier seuil
+            if(distance < dStd){                //dStd triggered
+                //afficher rectangle vert
+                BSP_LCD_SetTextColor(LCD_COLOR_GREEN);
+                BSP_LCD_FillRect(347, 180, 40, 40);
             }
-
-        // MILIEU DROITE  
-        else if ((page == 0) && (x>= 244 && x<= 472) && (y>= 110 && y<= 184))
-        {
-             x = 0;
-             y = 0;
-             page = 1;
-             BSP_LCD_Clear(LCD_COLOR_WHITE);
-             page_liste();
-             commande = 3;
-             HAL_Delay(200);
+            else{                               //dStd ok
+                BSP_LCD_SetTextColor(LCD_COLOR_WHITE);
+                BSP_LCD_FillRect(347, 180, 40, 40);
             }
             
-        // BAS GAUCHE    
-        else if ((page == 0) && (x>= 8 && x<= 236) && (y>= 192 && y<= 266))
-        {
-             x = 0;
-             y = 0;
-             page = 1;
-             BSP_LCD_Clear(LCD_COLOR_WHITE);
-             page_liste();
-             commande = 4;
-             HAL_Delay(200);
+            //deuxième seuil
+            if(distance < dLim){                //dLim triggered
+                //afficher rectangle orange
+                BSP_LCD_SetTextColor(LCD_COLOR_ORANGE);
+                BSP_LCD_FillRect(338, 115, 60, 50);
+                //faire bipper buzzer
+                if(distance > dCrit){
+                    buzzer = 1;
+                    HAL_Delay(250);
+                    buzzer = 0;
+                    HAL_Delay(750);
+                }
+            }
+            else{                               //dLim ok
+                BSP_LCD_SetTextColor(LCD_COLOR_WHITE);
+                BSP_LCD_FillRect(338, 115, 60, 50);
+                buzzer = 0;
             }
             
-            
-        // BAS DROITE
-        else if ((page == 0) && (x>= 244 && x<= 472) && (y>= 192 && y<= 266))
-        {
-             x = 0;
-             y = 0;
-             page = 1;
-             BSP_LCD_Clear(LCD_COLOR_WHITE);
-             page_liste();
-             commande = 5;
-             HAL_Delay(200);
+            //seuil max
+            if(distance < dCrit){               //dCrit triggered
+                //afficher rectangle rouge
+                BSP_LCD_SetTextColor(LCD_COLOR_RED);
+                BSP_LCD_FillRect(330, 45, 80, 55);
+                //faire sonner buzzer en continu
+                buzzer = 1;
+            }
+            else{                               //dCrit ok
+                BSP_LCD_SetTextColor(LCD_COLOR_WHITE);
+                BSP_LCD_FillRect(330, 45, 80, 55);
+                buzzer = 0;
             }
             
-        else if (page == 0) 
-        {
-             page_commande();
-             // AFFICHAGE DES PASTILLES DE COULEURS
-            for (int i=0;i<6;i++)
-            {
-                if(c[i] == 0){
-                    BSP_LCD_SetTextColor(LCD_COLOR_BLACK);
-                    BSP_LCD_FillRect(211+(236*(i%2)), 80+(80*(i/2)), 25, 24);
-                    }
-                else if(c[i] == 1){
-                    BSP_LCD_SetTextColor(LCD_COLOR_RED);
-                   BSP_LCD_FillRect(211+(236*(i%2)), 80+(80*(i/2)), 25, 24);  
-                    }
-                else if(c[i] == 2){
-                    BSP_LCD_SetTextColor(LCD_COLOR_GREEN);
-                    BSP_LCD_FillRect(211+(236*(i%2)), 80+(80*(i/2)), 25, 24);
-                    }
-            }
-        }
+        }//fin mode capteur
+        
+        
+        /////////////////////////
+        ///// MODE ALARME : /////
+        /////////////////////////
         
         else if (page == 1)
         {
-             page_liste();
-            }
+            // AFFICHAGE DE LA PAGE MODE ALARME
+            page_alarme();
+            
             
-        else if (page == 2)
-        {
-             page_accueil();
-            }
-       
-    
-    
-    switch (commande)  {
-
-    case 0:
-        if ( c[0] == 0 ){
-                BSP_LCD_DrawRect(8, 220, 228, 45);
-                sprintf((char*)text, "CHOISIR LA COMMANDE");
-                BSP_LCD_DisplayStringAt(52, 242, (uint8_t *)&text, LEFT_MODE);
-                
-                if ( (x>= 8 && x<= 236) && (y>= 220 && y<= 265) ){
-                    x=0;
-                    y=0;
-                    c[0]= 1 ;
-                    HAL_Delay(200);
-                    BSP_LCD_Clear(LCD_COLOR_WHITE);
-                    }
-            }
+            //LECTURE DU CAPTEUR ET AFFICHAGE DE LA DISTANCE MESUREE
+            int distance;
+            //lecture du capteur en cm
+            distance = sensor.GetCentimeters();
+            sprintf((char*)text, "Distance = %d cm",distance);
+            BSP_LCD_DisplayStringAt(80, LINE(3), (uint8_t *)&text, RIGHT_MODE);
+            HAL_Delay(20);
             
-         if ( c[0] == 1 ){
-                sprintf((char*)text, "COMMANDE EN COURS");
-                BSP_LCD_DisplayStringAt(52, 242, (uint8_t *)&text, LEFT_MODE);
-                BSP_LCD_DrawRect(244, 220, 228, 45);
-                sprintf((char*)text, "FIN DE COMMANDE");
-                BSP_LCD_DisplayStringAt(300, 242, (uint8_t *)&text, LEFT_MODE);
-                
-               if ( (x>= 244 && x<= 472) && (y>= 220 && y<= 265) ){
-                    x=0;
-                    y=0;
-                    c[0]= 2 ;
-                    x=475;
-                    y=5;
-                    HAL_Delay(200);
-                    BSP_LCD_Clear(LCD_COLOR_WHITE);
-                    }
-            }
             
-        if ( c[0] == 2 ){
-                sprintf((char*)text, "COMMANDE TRAITEE");
-                BSP_LCD_DisplayStringAt(0,260, (uint8_t *)&text, CENTER_MODE);
+            // ALERTE
+            if(distance < 40){                  //alarme triggered
+                //afficher rectangle
+                BSP_LCD_SetTextColor(LCD_COLOR_RED);
+                BSP_LCD_FillRect(165,70,150,150);
+                //faire sonner buzzer en continu
+                buzzer = 1;
             }
-        break;
-        
-    case 1 :
-        if ( c[1] == 0 ){
-                BSP_LCD_DrawRect(8, 191, 228, 74);
-                sprintf((char*)text, "CHOISIR LA COMMANDE");
-                BSP_LCD_DisplayStringAt(60, LINE(18), (uint8_t *)&text, LEFT_MODE);
-                
-                if ( (x>= 8 && x<= 236) && (y>= 192 && y<= 266) ){
-                    x=0;
-                    y=0;
-                    c[1]= 1 ;
-                    HAL_Delay(200);
-                    }
-            }
-            
-         if ( c[1] == 1 ){
-                sprintf((char*)text, "COMMANDE EN COURS");
-                BSP_LCD_DisplayStringAt(80, LINE(9), (uint8_t *)&text, CENTER_MODE);
-                BSP_LCD_DrawRect(244, 200, 228, 65);
-                sprintf((char*)text, "FIN DE COMMANDE");
-                BSP_LCD_DisplayStringAt(80, LINE(19), (uint8_t *)&text, LEFT_MODE);
-                
-                if ( (x>= 244 && x<= 472) && (y>= 200 && y<= 265) ){
-                    x=0;
-                    y=0;
-                    c[1]= 2 ;
-                    x=475;
-                    y=5;
-                    HAL_Delay(200);
-                    }
-            }
-          if ( c[1] == 2 ){
-                sprintf((char*)text, "COMMANDE TRAITEE");
-                BSP_LCD_DisplayStringAt(80, LINE(9), (uint8_t *)&text, CENTER_MODE);
-            }
-        break;
-        
-    case 2 :
-        if ( c[2] == 0 ){
-                BSP_LCD_DrawRect(8, 191, 228, 74);
-                sprintf((char*)text, "CHOISIR LA COMMANDE");
-                BSP_LCD_DisplayStringAt(60, LINE(18), (uint8_t *)&text, LEFT_MODE);
-                
-                if ( (x>= 8 && x<= 236) && (y>= 192 && y<= 266) ){
-                    x=0;
-                    y=0;
-                    c[2]= 1 ;
-                    HAL_Delay(200);
-                    }
+            else{                               //alarme ok
+                BSP_LCD_SetTextColor(LCD_COLOR_WHITE);
+                BSP_LCD_FillRect(165,70,150,150);
+                buzzer = 0;
             }
             
-         if ( c[2] == 1 ){
-                sprintf((char*)text, "COMMANDE EN COURS");
-                BSP_LCD_DisplayStringAt(80, LINE(9), (uint8_t *)&text, CENTER_MODE);
-                BSP_LCD_DrawRect(244, 200, 228, 65);
-                sprintf((char*)text, "FIN DE COMMANDE");
-                BSP_LCD_DisplayStringAt(80, LINE(19), (uint8_t *)&text, LEFT_MODE);
-                
-                if ( (x>= 244 && x<= 472) && (y>= 200 && y<= 265) ){
-                    x=0;
-                    y=0;
-                    c[2]= 2 ;
-                    x=475;
-                    y=5;
-                    HAL_Delay(200);
-                    }
-            }
-          if ( c[2] == 2 ){
-                sprintf((char*)text, "COMMANDE TRAITEE");
-                BSP_LCD_DisplayStringAt(80, LINE(9), (uint8_t *)&text, CENTER_MODE);
-            }
-        break;
-        
-    case 3 :
-        if ( c[3] == 0 ){
-                BSP_LCD_DrawRect(8, 191, 228, 74);
-                sprintf((char*)text, "CHOISIR LA COMMANDE");
-                BSP_LCD_DisplayStringAt(60, LINE(18), (uint8_t *)&text, LEFT_MODE);
-                
-                if ( (x>= 8 && x<= 236) && (y>= 192 && y<= 266) ){
-                    x=0;
-                    y=0;
-                    c[3]= 1 ;
-                    HAL_Delay(200);
-                    }
-            }
+            //afficher message detection
+            sprintf((char*)text, "INTRUSION");
+            BSP_LCD_DisplayStringAt(0, LINE(4), (uint8_t *)&text, CENTER_MODE);
             
-         if ( c[3] == 1 ){
-                sprintf((char*)text, "COMMANDE EN COURS");
-                BSP_LCD_DisplayStringAt(80, LINE(9), (uint8_t *)&text, CENTER_MODE);
-                BSP_LCD_DrawRect(244, 200, 228, 65);
-                sprintf((char*)text, "FIN DE COMMANDE");
-                BSP_LCD_DisplayStringAt(80, LINE(19), (uint8_t *)&text, LEFT_MODE);
-                
-                if ( (x>= 244 && x<= 472) && (y>= 200 && y<= 265) ){
-                    x=0;
-                    y=0;
-                    c[3]= 2 ;
-                    x=475;
-                    y=5;
-                    HAL_Delay(200);
-                    }
-            }
-          if ( c[3] == 2 ){
-                sprintf((char*)text, "COMMANDE TRAITEE");
-                BSP_LCD_DisplayStringAt(80, LINE(9), (uint8_t *)&text, CENTER_MODE);
-            }
-        
-        break;
-        
-    case 4 :
-        if ( c[4] == 0 ){
-                BSP_LCD_DrawRect(8, 191, 228, 74);
-                sprintf((char*)text, "CHOISIR LA COMMANDE");
-                BSP_LCD_DisplayStringAt(60, LINE(18), (uint8_t *)&text, LEFT_MODE);
-                
-                if ( (x>= 8 && x<= 236) && (y>= 192 && y<= 266) ){
-                    x=0;
-                    y=0;
-                    c[4]= 1 ;
-                    HAL_Delay(200);
-                    }
-            }
-            
-         if ( c[4] == 1 ){
-                sprintf((char*)text, "COMMANDE EN COURS");
-                BSP_LCD_DisplayStringAt(80, LINE(9), (uint8_t *)&text, CENTER_MODE);
-                BSP_LCD_DrawRect(244, 200, 228, 65);
-                sprintf((char*)text, "FIN DE COMMANDE");
-                BSP_LCD_DisplayStringAt(80, LINE(19), (uint8_t *)&text, LEFT_MODE);
-                
-               if ( (x>= 244 && x<= 472) && (y>= 200 && y<= 265) ){
-                    x=0;
-                    y=0;
-                    c[4]= 2 ;
-                    x=475;
-                    y=5;
-                    HAL_Delay(200);
-                    }
-            }
-          if ( c[4] == 2 ){
-                sprintf((char*)text, "COMMANDE TRAITEE");
-                BSP_LCD_DisplayStringAt(80, LINE(9), (uint8_t *)&text, CENTER_MODE);
-            }
-        
-        break;
+        }//fin mode alarme
+       
+    }//fin while
+    
+}//fin main
+
+
+
+/////////////////////////
+///// PAGE CAPTEUR //////
+/////////////////////////  
+void page_capteur ()
+{
+    page = 0;
+    BSP_LCD_SetTextColor(LCD_COLOR_BLACK);
+    
+    //afficher logo
+    drawImage_LogoParisSaclay(0,0);
+    
+    //afficher titre page
+    sprintf((char*)text, "Mode Capteur de recul");
+    BSP_LCD_DisplayStringAt(0, LINE(1), (uint8_t *)&text, CENTER_MODE);
+    
+    //afficher fleche
+    drawImage_fleche(447,0);
+    
+    //ligne de "cadre"
+    BSP_LCD_DrawHLine(0,24,480);
+    
     
-    case 5 :
-        if ( c[5] == 0 ){
-                BSP_LCD_DrawRect(8, 191, 228, 74);
-                sprintf((char*)text, "CHOISIR LA COMMANDE");
-                BSP_LCD_DisplayStringAt(60, LINE(18), (uint8_t *)&text, LEFT_MODE);
-                
-                if ( (x>= 8 && x<= 236) && (y>= 192 && y<= 266) ){
-                    x=0;
-                    y=0;
-                    c[5]= 1 ;
-                    HAL_Delay(200);
-                    }
-            }
-            
-         if ( c[5] == 1 ){
-                sprintf((char*)text, "COMMANDE EN COURS");
-                BSP_LCD_DisplayStringAt(80, LINE(9), (uint8_t *)&text, CENTER_MODE);
-                BSP_LCD_DrawRect(244, 200, 228, 65);
-                sprintf((char*)text, "FIN DE COMMANDE");
-                BSP_LCD_DisplayStringAt(80, LINE(19), (uint8_t *)&text, LEFT_MODE);
-                
-                if ( (x>= 244 && x<= 472) && (y>= 200 && y<= 265) ){
-                    x=0;
-                    y=0;
-                    c[5]= 2 ;
-                    x=475;
-                    y=5;
-                    HAL_Delay(200);
-                    }
-            }
-          if ( c[5] == 2 ){
-                sprintf((char*)text, "COMMANDE TRAITEE");
-                BSP_LCD_DisplayStringAt(80, LINE(9), (uint8_t *)&text, CENTER_MODE);
-            }
-        
-        break;
-        
-    case 6 :
-        break;
-        
-    default:
-        break;
-}   
-    } 
-                    
-   
+    //ZONE REGLAGE dStd
+    //afficher rectangle cadre
+    BSP_LCD_DrawRect(8, 33, 228, 74);
+    //afficher seuil
+    sprintf ((char*)text, "%d", dStd);
+    BSP_LCD_DisplayStringAt(110, 51, (uint8_t *)&text, LEFT_MODE);
+    //ligne "cadre" -
+    BSP_LCD_DrawVLine(51,33,47);
+    //afficher -
+    sprintf((char*)text, "-");
+    BSP_LCD_DisplayStringAt(26, 51, (uint8_t *)&text, LEFT_MODE);
+    //ligne "cadre" +
+    BSP_LCD_DrawVLine(193,33,47);
+    //afficher +
+    sprintf((char*)text, "+");
+    BSP_LCD_DisplayStringAt(212, 51, (uint8_t *)&text, LEFT_MODE);
+    //ligne "cadre" nom du seuil
+    BSP_LCD_DrawHLine(8,80,228);
+    //afficher nom du seuil
+    sprintf((char*)text, "Distance acceptable");
+    BSP_LCD_DisplayStringAt(57,87, (uint8_t *)&text, LEFT_MODE);
+    
+    
+    //ZONE REGLAGE dLim
+    BSP_LCD_DrawRect(8, 113, 228, 74);
+    sprintf((char*)text, "%d", dLim);
+    BSP_LCD_DisplayStringAt(110, 131, (uint8_t *)&text, LEFT_MODE);
+    BSP_LCD_DrawVLine(51,113,47);
+    sprintf((char*)text, "-");
+    BSP_LCD_DisplayStringAt(27, 131, (uint8_t *)&text, LEFT_MODE);
+    BSP_LCD_DrawVLine(193,113,47);
+    sprintf((char*)text, "+");
+    BSP_LCD_DisplayStringAt(212, 131, (uint8_t *)&text, LEFT_MODE);
+    BSP_LCD_DrawHLine(8,160,228);
+    sprintf((char*)text, "Distance limite");
+    BSP_LCD_DisplayStringAt(70, 167, (uint8_t *)&text, LEFT_MODE);
+    
+    //ZONE REGLAGE dCrit
+    BSP_LCD_DrawRect(8, 193, 228, 73);
+    sprintf((char*)text, "%d", dCrit);
+    BSP_LCD_DisplayStringAt(110, 212, (uint8_t *)&text, LEFT_MODE);
+    BSP_LCD_DrawVLine(50,193,47);
+    sprintf((char*)text, "-");
+    BSP_LCD_DisplayStringAt(27, 212, (uint8_t *)&text, LEFT_MODE);
+    BSP_LCD_DrawVLine(193,193,47);
+    sprintf((char*)text, "+");
+    BSP_LCD_DisplayStringAt(212, 212, (uint8_t *)&text, LEFT_MODE);
+    BSP_LCD_DrawHLine(8,240,228);
+    sprintf((char*)text, "Distance critique");
+    BSP_LCD_DisplayStringAt(63, 247, (uint8_t *)&text, LEFT_MODE);
+    
+    
+    //PASTILLE DE BASE
+    BSP_LCD_SetTextColor(LCD_COLOR_GREEN);
+    BSP_LCD_FillRect(350, 237, 30, 30);
 }
 
 
 
-    //////////////////////////////////////
-    ////////////PAGE COMMANDE/////////////
-    //////////////////////////////////////
-    void page_commande (){
-    page = 0;
-    BSP_LCD_SetTextColor(LCD_COLOR_BLACK);
-    drawImage_LogoParisSaclay(0,0);
-    sprintf((char*)text, "Page commandes");
-    BSP_LCD_DisplayStringAt(0, LINE(0), (uint8_t *)&text, CENTER_MODE);
-    
-    BSP_LCD_DrawHLine(0,22,480);
-    
-    drawImage_fleche(447,0);
-    
-    // LES COMMANDES
-   
-                                         // Au dessus 22px de la barre + 7//
-   /* 8px */ BSP_LCD_DrawRect(8, 29, 228, 74);    /* 8px */    BSP_LCD_DrawRect(244, 29, 228, 74);  /* 8px */
-                                                  /* 7px */
-   /* 8px */ BSP_LCD_DrawRect(8, 110, 228, 74);   /* 8px */    BSP_LCD_DrawRect(244, 110, 228, 74); /* 8px */
-                                                  /* 7px */
-   /* 8px */ BSP_LCD_DrawRect(8, 191, 228, 73);   /* 8px */    BSP_LCD_DrawRect(244, 191, 228, 73); /* 8px */
-                                              // Au dessous 7px//
-    
-    //SEGMENTATION DES CASES COMMANDES
-    BSP_LCD_DrawHLine(8,80,228);     BSP_LCD_DrawHLine(244,80,228);
-    BSP_LCD_DrawHLine(8,160,228);    BSP_LCD_DrawHLine(244,159,228);
-    BSP_LCD_DrawHLine(8,240,228);    BSP_LCD_DrawHLine(244,240,228);
-     sprintf((char*)text, "Commande #0001");
-    BSP_LCD_DisplayStringAt(20,87, (uint8_t *)&text, LEFT_MODE);
-     sprintf((char*)text, "Commande #0002");
-    BSP_LCD_DisplayStringAt(257, 87, (uint8_t *)&text, LEFT_MODE);
-     sprintf((char*)text, "Commande #0003");
-    BSP_LCD_DisplayStringAt(20, 167, (uint8_t *)&text, LEFT_MODE);
-     sprintf((char*)text, "Commande #0004");
-    BSP_LCD_DisplayStringAt(257, 167, (uint8_t *)&text, LEFT_MODE);
-     sprintf((char*)text, "Commande #0005");
-    BSP_LCD_DisplayStringAt(20, 247, (uint8_t *)&text, LEFT_MODE);
-     sprintf((char*)text, "Commande #0006");
-    BSP_LCD_DisplayStringAt(257, 247, (uint8_t *)&text, LEFT_MODE);
-    
-    // CONTENU COMMANDE
-    //1
-    sprintf((char*)text, "1 THEATRE(S)");
-    BSP_LCD_DisplayStringAt(20, 40, (uint8_t *)&text, LEFT_MODE);
-    sprintf((char*)text, "2 POESIE(S)");
-    BSP_LCD_DisplayStringAt(20, 60, (uint8_t *)&text, LEFT_MODE);
-    sprintf((char*)text, "1 ROMAN(S)");
-    BSP_LCD_DisplayStringAt(140, 40, (uint8_t *)&text, LEFT_MODE);
-    sprintf((char*)text, "2 BD");
-    BSP_LCD_DisplayStringAt(140, 60, (uint8_t *)&text, LEFT_MODE);
-    //2
-    sprintf((char*)text, "3 THEATRE(S)");
-    BSP_LCD_DisplayStringAt(257, 40, (uint8_t *)&text, LEFT_MODE);
-    sprintf((char*)text, "0 POESIE(S)");
-    BSP_LCD_DisplayStringAt(257, 60, (uint8_t *)&text, LEFT_MODE);
-    sprintf((char*)text, "1 ROMAN(S)");
-    BSP_LCD_DisplayStringAt(377, 40, (uint8_t *)&text, LEFT_MODE);
-    sprintf((char*)text, "0 BD");
-    BSP_LCD_DisplayStringAt(377, 60, (uint8_t *)&text, LEFT_MODE);
-    //3
-    sprintf((char*)text, "0 THEATRE(S)");
-    BSP_LCD_DisplayStringAt(20, 120, (uint8_t *)&text, LEFT_MODE);
-    sprintf((char*)text, "0 POESIE(S)");
-    BSP_LCD_DisplayStringAt(20, 140, (uint8_t *)&text, LEFT_MODE);
-    sprintf((char*)text, "3 ROMAN(S)");
-    BSP_LCD_DisplayStringAt(140, 120, (uint8_t *)&text, LEFT_MODE);
-    sprintf((char*)text, "2 BD");
-    BSP_LCD_DisplayStringAt(140, 140, (uint8_t *)&text, LEFT_MODE);
-    //4
-    sprintf((char*)text, "1 THEATRE(S)");
-    BSP_LCD_DisplayStringAt(257, 120, (uint8_t *)&text, LEFT_MODE);
-    sprintf((char*)text, "1 POESIE(S)");
-    BSP_LCD_DisplayStringAt(257, 140, (uint8_t *)&text, LEFT_MODE);
-    sprintf((char*)text, "1 ROMAN(S)");
-    BSP_LCD_DisplayStringAt(377, 120, (uint8_t *)&text, LEFT_MODE);
-    sprintf((char*)text, "1 BD");
-    BSP_LCD_DisplayStringAt(377, 140, (uint8_t *)&text, LEFT_MODE);
-    //5
-    sprintf((char*)text, "0 THEATRE(S)");
-    BSP_LCD_DisplayStringAt(20, 200, (uint8_t *)&text, LEFT_MODE);
-    sprintf((char*)text, "3 POESIE(S)");
-    BSP_LCD_DisplayStringAt(20, 220, (uint8_t *)&text, LEFT_MODE);
-    sprintf((char*)text, "1 ROMAN(S)");
-    BSP_LCD_DisplayStringAt(140, 200, (uint8_t *)&text, LEFT_MODE);
-    sprintf((char*)text, "2 BD");
-    BSP_LCD_DisplayStringAt(140, 220, (uint8_t *)&text, LEFT_MODE);
-    //6
-    sprintf((char*)text, "1 THEATRE(S)");
-    BSP_LCD_DisplayStringAt(257, 200, (uint8_t *)&text, LEFT_MODE);
-    sprintf((char*)text, "1 POESIE(S)");
-    BSP_LCD_DisplayStringAt(257, 220, (uint8_t *)&text, LEFT_MODE);
-    sprintf((char*)text, "2 ROMAN(S)");
-    BSP_LCD_DisplayStringAt(377, 200, (uint8_t *)&text, LEFT_MODE);
-    sprintf((char*)text, "1 BD");
-    BSP_LCD_DisplayStringAt(377, 220, (uint8_t *)&text, LEFT_MODE);
-   
-    
-    }
-    ///////////////////////////////////////////////////////////////////////////
-    
-    
-    ////////////////////////////////////
-    //////////PAGE LISTE////////////////
-    ////////////////////////////////////
-    void page_liste(){
+///////////////////////
+///// PAGE ALARME /////
+///////////////////////
+void page_alarme()
+{
     page = 1;
     
+    //afficher logo
     drawImage_LogoParisSaclay(0,0);
+    
+    //afficher fleche
     drawImage_fleche(447,0);
     BSP_LCD_SetTextColor(LCD_COLOR_BLACK);
-    BSP_LCD_DrawHLine(0,22,480);
+    
+    //ligne de "cadre"
+    BSP_LCD_DrawHLine(0,24,480);
     
-    sprintf((char*)text, "Page liste");
-    BSP_LCD_DisplayStringAt(0, LINE(0), (uint8_t *)&text, CENTER_MODE);
-    }
-    ///////////////////////////////////////////////////////////////////////////
+    //afficher titre page
+    sprintf((char*)text, "Mode Alarme de securite");
+    BSP_LCD_DisplayStringAt(0, LINE(1), (uint8_t *)&text, CENTER_MODE);
+}
+
+
+////////////////////////
+///// PAGE ACCUEIL /////
+////////////////////////
     
-    
-    ////////////////////////////////////
-    ///////////PAGE ACCUEIL/////////////
-    ////////////////////////////////////
-    void page_accueil(){
+void page_accueil()
+{
     page = 2;
     BSP_LCD_SetTextColor(LCD_COLOR_BLACK);
     
+    //afficher logo
     drawImage_LogoParisSaclay(0,0);
-    drawImage_BT(268,60);
-    drawImage_market(70,57);
     
+    //afficher titre page
     sprintf((char*)text, "Page d'accueil");
     BSP_LCD_DisplayStringAt(0, LINE(2), (uint8_t *)&text, CENTER_MODE);
     
-    BSP_LCD_DrawRect(65, 55, 150, 175);   //Bouton commande
+    //Mode recul
+    //afficher rectangle cadre
+    BSP_LCD_DrawRect(65, 55, 150, 175);
+    //ligne "cadre" nom du mode
     BSP_LCD_DrawHLine(65,210,150);
-    sprintf((char*)text, "PAGE COMMANDE");
-    BSP_LCD_DisplayStringAt(95, LINE(18), (uint8_t *)&text, LEFT_MODE);
+    //afficher nom du mode
+    sprintf((char*)text, "Capteur de recul");
+    BSP_LCD_DisplayStringAt(85, LINE(18), (uint8_t *)&text, LEFT_MODE);
     
     
-    BSP_LCD_DrawRect(265, 55, 150, 175);   //Bouton BT
+    //Mode alarme
+    BSP_LCD_DrawRect(265, 55, 150, 175);
     BSP_LCD_DrawHLine(265,210,150);
     BSP_LCD_SetTextColor(LCD_COLOR_BLUE);
-    sprintf((char*)text, "BLUETOOTH");
+    sprintf((char*)text, "Alarme de securite");
     BSP_LCD_DisplayStringAt(102, LINE(18), (uint8_t *)&text, CENTER_MODE);
-    }
-    ///////////////////////////////////////////////////////////////////////////
-    
-  
\ No newline at end of file
+}