Code projet_gestion_de_commande_en_ligne

Dependencies:   TS_DISCO_F746NG LCD_DISCO_F746NG BSP_DISCO_F746NG BUTTON_GROUP

Revision:
3:5b6f580d3f3a
Parent:
2:e007f6b6e145
--- a/main.cpp	Mon Jun 22 15:41:23 2020 +0000
+++ b/main.cpp	Thu Jun 25 11:44:46 2020 +0000
@@ -14,6 +14,7 @@
 
 
 Serial pc(USBTX, USBRX); // tx, rx
+Serial bt(PC_6, PC_7);
 
 using namespace Mikami;
 TS_DISCO_F746NG ts_;
@@ -23,185 +24,172 @@
 //Pomme
 void drawImage_pomme(int offsetX, int offsetY)
 {
-        int x = 0;
-        int y = 0;
-        uint32_t* dataPtr = (uint32_t*)pomme.data;
-        while(y < pomme.height)
-        {
-            while(x < pomme.width)
-            {
-                BSP_LCD_DrawPixel(x + offsetX, y + offsetY, *dataPtr);
-                dataPtr++;
-                x++;
-            }
-            x = 0;
-            y++;
+    int x = 0;
+    int y = 0;
+    uint32_t* dataPtr = (uint32_t*)pomme.data;
+    while(y < pomme.height) {
+        while(x < pomme.width) {
+            BSP_LCD_DrawPixel(x + offsetX, y + offsetY, *dataPtr);
+            dataPtr++;
+            x++;
         }
+        x = 0;
+        y++;
+    }
 }
 
 
 //Poire
 void drawImage_poire(int offsetX, int offsetY)
 {
-        int x = 0;
-        int y = 0;
-        uint32_t* dataPtr = (uint32_t*)poire.data;
-        while(y < poire.height)
-        {
-            while(x < poire.width)
-            {
-                BSP_LCD_DrawPixel(x + offsetX, y + offsetY, *dataPtr);
-                dataPtr++;
-                x++;
-            }
-            x = 0;
-            y++;
+    int x = 0;
+    int y = 0;
+    uint32_t* dataPtr = (uint32_t*)poire.data;
+    while(y < poire.height) {
+        while(x < poire.width) {
+            BSP_LCD_DrawPixel(x + offsetX, y + offsetY, *dataPtr);
+            dataPtr++;
+            x++;
         }
+        x = 0;
+        y++;
+    }
 }
 
 //Orange
 void drawImage_orange(int offsetX, int offsetY)
 {
-        int x = 0;
-        int y = 0;
-        uint32_t* dataPtr = (uint32_t*)orange.data;
-        while(y < orange.height)
-        {
-            while(x < orange.width)
-            {
-                BSP_LCD_DrawPixel(x + offsetX, y + offsetY, *dataPtr);
-                dataPtr++;
-                x++;
-            }
-            x = 0;
-            y++;
+    int x = 0;
+    int y = 0;
+    uint32_t* dataPtr = (uint32_t*)orange.data;
+    while(y < orange.height) {
+        while(x < orange.width) {
+            BSP_LCD_DrawPixel(x + offsetX, y + offsetY, *dataPtr);
+            dataPtr++;
+            x++;
         }
+        x = 0;
+        y++;
+    }
 }
 
 //Banane
 void drawImage_banane(int offsetX, int offsetY)
 {
-        int x = 0;
-        int y = 0;
-        uint32_t* dataPtr = (uint32_t*)banane.data;
-        while(y < banane.height)
-        {
-            while(x < banane.width)
-            {
-                BSP_LCD_DrawPixel(x + offsetX, y + offsetY, *dataPtr);
-                dataPtr++;
-                x++;
-            }
-            x = 0;
-            y++;
+    int x = 0;
+    int y = 0;
+    uint32_t* dataPtr = (uint32_t*)banane.data;
+    while(y < banane.height) {
+        while(x < banane.width) {
+            BSP_LCD_DrawPixel(x + offsetX, y + offsetY, *dataPtr);
+            dataPtr++;
+            x++;
         }
+        x = 0;
+        y++;
+    }
 }
 
 //Tomate
 void drawImage_tomate(int offsetX, int offsetY)
 {
-        int x = 0;
-        int y = 0;
-        uint32_t* dataPtr = (uint32_t*)tomate.data;
-        while(y < tomate.height)
-        {
-            while(x < tomate.width)
-            {
-                BSP_LCD_DrawPixel(x + offsetX, y + offsetY, *dataPtr);
-                dataPtr++;
-                x++;
-            }
-            x = 0;
-            y++;
+    int x = 0;
+    int y = 0;
+    uint32_t* dataPtr = (uint32_t*)tomate.data;
+    while(y < tomate.height) {
+        while(x < tomate.width) {
+            BSP_LCD_DrawPixel(x + offsetX, y + offsetY, *dataPtr);
+            dataPtr++;
+            x++;
         }
+        x = 0;
+        y++;
+    }
 }
 
 //Fraise
 void drawImage_fraise(int offsetX, int offsetY)
 {
-        int x = 0;
-        int y = 0;
-        uint32_t* dataPtr = (uint32_t*)fraise.data;
-        while(y < fraise.height)
-        {
-            while(x < fraise.width)
-            {
-                BSP_LCD_DrawPixel(x + offsetX, y + offsetY, *dataPtr);
-                dataPtr++;
-                x++;
-            }
-            x = 0;
-            y++;
+    int x = 0;
+    int y = 0;
+    uint32_t* dataPtr = (uint32_t*)fraise.data;
+    while(y < fraise.height) {
+        while(x < fraise.width) {
+            BSP_LCD_DrawPixel(x + offsetX, y + offsetY, *dataPtr);
+            dataPtr++;
+            x++;
         }
+        x = 0;
+        y++;
+    }
 }
 
 //Raisin
 void drawImage_raisin(int offsetX, int offsetY)
 {
-        int x = 0;
-        int y = 0;
-        uint32_t* dataPtr = (uint32_t*)raisin.data;
-        while(y < raisin.height)
-        {
-            while(x < raisin.width)
-            {
-                BSP_LCD_DrawPixel(x + offsetX, y + offsetY, *dataPtr);
-                dataPtr++;
-                x++;
-            }
-            x = 0;
-            y++;
+    int x = 0;
+    int y = 0;
+    uint32_t* dataPtr = (uint32_t*)raisin.data;
+    while(y < raisin.height) {
+        while(x < raisin.width) {
+            BSP_LCD_DrawPixel(x + offsetX, y + offsetY, *dataPtr);
+            dataPtr++;
+            x++;
         }
+        x = 0;
+        y++;
+    }
 }
 
 //Kiwi
 void drawImage_kiwi(int offsetX, int offsetY)
 {
-        int x = 0;
-        int y = 0;
-        uint32_t* dataPtr = (uint32_t*)kiwi.data;
-        while(y < kiwi.height)
-        {
-            while(x < kiwi.width)
-            {
-                BSP_LCD_DrawPixel(x + offsetX, y + offsetY, *dataPtr);
-                dataPtr++;
-                x++;
-            }
-            x = 0;
-            y++;
+    int x = 0;
+    int y = 0;
+    uint32_t* dataPtr = (uint32_t*)kiwi.data;
+    while(y < kiwi.height) {
+        while(x < kiwi.width) {
+            BSP_LCD_DrawPixel(x + offsetX, y + offsetY, *dataPtr);
+            dataPtr++;
+            x++;
         }
+        x = 0;
+        y++;
+    }
 }
 
 //Haricot
 void drawImage_haricot(int offsetX, int offsetY)
 {
-        int x = 0;
-        int y = 0;
-        uint32_t* dataPtr = (uint32_t*)haricot.data;
-        while(y < haricot.height)
-        {
-            while(x < haricot.width)
-            {
-                BSP_LCD_DrawPixel(x + offsetX, y + offsetY, *dataPtr);
-                dataPtr++;
-                x++;
-            }
-            x = 0;
-            y++;
+    int x = 0;
+    int y = 0;
+    uint32_t* dataPtr = (uint32_t*)haricot.data;
+    while(y < haricot.height) {
+        while(x < haricot.width) {
+            BSP_LCD_DrawPixel(x + offsetX, y + offsetY, *dataPtr);
+            dataPtr++;
+            x++;
         }
+        x = 0;
+        y++;
+    }
 }
 
-
+//Fonction principale
 int main()
 {
+    char ch;
+    pc.baud(9600);
+    bt.baud(38400);
+
+    pc.printf("Test1\n\r");
+
     unsigned int boutton_commande = 0;
     unsigned int boutton_retour = 0;
     unsigned int boutton_scanner = 0;
     unsigned int boutton_panier = 0;
+    unsigned int boutton_valider = 0;
     unsigned int boutton_acceuil = 0;
-    unsigned int boutton_valider = 0;
-    
     unsigned int nb_pommes = 0;
     unsigned int nb_poires = 0;
     unsigned int nb_oranges = 0;
@@ -211,59 +199,73 @@
     unsigned int nb_raisins = 0;
     unsigned int nb_kiwis = 0;
     unsigned int nb_haricots = 0;
-    
+    float prix_total = 0;
     char buffer [50] ;
-    
+
     BSP_LCD_Init();
     BSP_LCD_LayerDefaultInit(LTDC_ACTIVE_LAYER, LCD_FB_START_ADDRESS);
     BSP_LCD_SelectLayer(LTDC_ACTIVE_LAYER);
- 
-    while(1)
-    {  
-       //Ecran d'acceuil
+
+    while(1) {
+        //*** Ecran d'acceuil ***
         BSP_LCD_Clear(LCD_COLOR_WHITE);
         BSP_LCD_SetFont(&LCD_DEFAULT_FONT);
         BSP_LCD_SetBackColor(LCD_COLOR_ORANGE);
         BSP_LCD_SetTextColor(LCD_COLOR_BLACK);
         HAL_Delay(1000);
-    
+
         BSP_LCD_DisplayStringAt(0, 70, (uint8_t *)"BIENVENUE SUR CEL", CENTER_MODE);
         HAL_Delay(1000);
-        
+
         //Bouton faire une commande
         Button commande(lcd_, ts_, 88, 160, 300, 50,
-                     LCD_COLOR_BLUE, LCD_COLOR_BLACK, "Faire une commande", Font20);
+                        LCD_COLOR_BLUE, LCD_COLOR_BLACK, "Faire une commande", Font20);
         commande.Draw(LCD_COLOR_GRAY, LCD_COLOR_BLACK);
-        
-        while(boutton_commande == 0)
-        {    
-            if(commande.Touched())
-            {
+
+        while(boutton_commande == 0) {
+            if(commande.Touched()) {
                 boutton_commande = 1;
             }
         }
         boutton_commande = 0;
-        
-        
-        //Ecran produits
+
+
+        //*** Ecran produits ***
         BSP_LCD_Clear(LCD_COLOR_WHITE);
         HAL_Delay(1000);
+            
+        //Bouton retour
+        Button retour(lcd_, ts_, 33, 5, 90, 30,
+                      LCD_COLOR_BLUE, LCD_COLOR_BLACK, "Retour", Font16);
+        retour.Draw(LCD_COLOR_GRAY, LCD_COLOR_BLACK);
         
+        //Bouton scanner
+        Button scanner(lcd_, ts_, 198, 5, 90, 30,
+                       LCD_COLOR_BLUE, LCD_COLOR_BLACK, "Scanner", Font16);
+        scanner.Draw(LCD_COLOR_GRAY, LCD_COLOR_BLACK);
+                       
+        //Bouton panier
+        Button panier(lcd_, ts_, 360, 5, 90, 30,
+                      LCD_COLOR_BLUE, LCD_COLOR_BLACK, "Panier", Font16);
+        panier.Draw(LCD_COLOR_GRAY, LCD_COLOR_BLACK);
+        
+        HAL_Delay(1000);
+            
         //Images produits
-        drawImage_pomme (10,45) ; 
-        drawImage_poire (10,130) ;
-        drawImage_orange (10,200) ;  
-        drawImage_banane (165,35) ;  
-        drawImage_tomate (165,122) ;  
-        drawImage_fraise (165,200) ;
-        drawImage_raisin (320,35) ;
-        drawImage_kiwi (330,125) ;
-        drawImage_haricot (330,205) ;
+        drawImage_pomme(10,45);
+        drawImage_poire(10,130);
+        drawImage_orange(10,200);
+        drawImage_banane(175,45);
+        drawImage_tomate(165,122);
+        drawImage_fraise(165,200);
+        drawImage_raisin (320,35);
+        drawImage_kiwi(330,125);
+        drawImage_haricot(330,205);
         HAL_Delay(1000);
-        
+    
         BSP_LCD_SetBackColor(LCD_COLOR_WHITE);
         BSP_LCD_SetTextColor(LCD_COLOR_BLACK);
-        
+    
         //Noms produits
         BSP_LCD_SetFont(&Font12);
         BSP_LCD_DisplayStringAt(350, 55, (uint8_t *)"Pommes", CENTER_MODE);
@@ -276,7 +278,7 @@
         BSP_LCD_DisplayStringAt(190, 140, (uint8_t *)"Kiwis", CENTER_MODE);
         BSP_LCD_DisplayStringAt(190, 210, (uint8_t *)"Haricots", CENTER_MODE);
         HAL_Delay(1000);
-        
+
         //Prix produits
         BSP_LCD_SetFont(&Font8);
         BSP_LCD_DisplayStringAt(350, 75, (uint8_t *)"2,20 Euros/kg", CENTER_MODE);
@@ -289,64 +291,47 @@
         BSP_LCD_DisplayStringAt(190, 160, (uint8_t *)"2,99 Euros/kg", CENTER_MODE);
         BSP_LCD_DisplayStringAt(190, 230, (uint8_t *)"1,50 Euros/kg", CENTER_MODE);
         HAL_Delay(1000);
-        
+
         //Boutons produits
         Button pommes(lcd_, ts_, 15, 93, 130, 20,
-                     LCD_COLOR_BLUE, LCD_COLOR_BLACK, "Ajouter au panier", Font12);
+                      LCD_COLOR_BLUE, LCD_COLOR_BLACK, "Ajouter au panier", Font12);
         pommes.Draw(LCD_COLOR_ORANGE, LCD_COLOR_BLACK);
-        
+
         Button poires(lcd_, ts_, 15, 175, 130, 20,
-                     LCD_COLOR_BLUE, LCD_COLOR_BLACK, "Ajouter au panier", Font12);
+                      LCD_COLOR_BLUE, LCD_COLOR_BLACK, "Ajouter au panier", Font12);
         poires.Draw(LCD_COLOR_ORANGE, LCD_COLOR_BLACK);
-        
+
         Button oranges(lcd_, ts_, 15, 248, 130, 20,
-                     LCD_COLOR_BLUE, LCD_COLOR_BLACK, "Ajouter au panier", Font12);
+                       LCD_COLOR_BLUE, LCD_COLOR_BLACK, "Ajouter au panier", Font12);
         oranges.Draw(LCD_COLOR_ORANGE, LCD_COLOR_BLACK);
-        
+
         Button bananes(lcd_, ts_, 175, 93, 130, 20,
-                     LCD_COLOR_BLUE, LCD_COLOR_BLACK, "Ajouter au panier", Font12);
+                       LCD_COLOR_BLUE, LCD_COLOR_BLACK, "Ajouter au panier", Font12);
         bananes.Draw(LCD_COLOR_ORANGE, LCD_COLOR_BLACK);
-        
+
         Button tomates(lcd_, ts_, 175, 175, 130, 20,
-                     LCD_COLOR_BLUE, LCD_COLOR_BLACK, "Ajouter au panier", Font12);
+                       LCD_COLOR_BLUE, LCD_COLOR_BLACK, "Ajouter au panier", Font12);
         tomates.Draw(LCD_COLOR_ORANGE, LCD_COLOR_BLACK);
-        
+
         Button fraises(lcd_, ts_, 175, 248, 130, 20,
-                     LCD_COLOR_BLUE, LCD_COLOR_BLACK, "Ajouter au panier", Font12);
+                       LCD_COLOR_BLUE, LCD_COLOR_BLACK, "Ajouter au panier", Font12);
         fraises.Draw(LCD_COLOR_ORANGE, LCD_COLOR_BLACK);
-        
+
         Button raisins(lcd_, ts_, 335, 93, 130, 20,
-                     LCD_COLOR_BLUE, LCD_COLOR_BLACK, "Ajouter au panier", Font12);
+                       LCD_COLOR_BLUE, LCD_COLOR_BLACK, "Ajouter au panier", Font12);
         raisins.Draw(LCD_COLOR_ORANGE, LCD_COLOR_BLACK);
-        
+
         Button kiwis(lcd_, ts_, 335, 175, 130, 20,
                      LCD_COLOR_BLUE, LCD_COLOR_BLACK, "Ajouter au panier", Font12);
         kiwis.Draw(LCD_COLOR_ORANGE, LCD_COLOR_BLACK);
-        
+
         Button haricots(lcd_, ts_, 335, 248, 130, 20,
-                     LCD_COLOR_BLUE, LCD_COLOR_BLACK, "Ajouter au panier", Font12);
+                        LCD_COLOR_BLUE, LCD_COLOR_BLACK, "Ajouter au panier", Font12);
         haricots.Draw(LCD_COLOR_ORANGE, LCD_COLOR_BLACK);
         HAL_Delay(1000);
-         
-        //Bouton retour
-        Button retour(lcd_, ts_, 33, 5, 90, 30,
-                     LCD_COLOR_BLUE, LCD_COLOR_BLACK, "Retour", Font16);
-        retour.Draw(LCD_COLOR_GRAY, LCD_COLOR_BLACK);
         
-        //Bouton scanner
-        Button scanner(lcd_, ts_, 198, 5, 90, 30,
-                     LCD_COLOR_BLUE, LCD_COLOR_BLACK, "Scanner", Font16);
-        scanner.Draw(LCD_COLOR_GRAY, LCD_COLOR_BLACK);
-        
-        //Bouton panier
-        Button panier(lcd_, ts_, 360, 5, 90, 30,
-                     LCD_COLOR_BLUE, LCD_COLOR_BLACK, "Panier", Font16);
-        panier.Draw(LCD_COLOR_GRAY, LCD_COLOR_BLACK);
-        
-        while(boutton_retour == 0 && boutton_scanner == 0 && boutton_panier == 0)
-        {    
-            if(retour.Touched())
-            {
+        while(boutton_retour == 0 && boutton_scanner == 0 && boutton_panier == 0) {
+            if(retour.Touched()) {
                 boutton_retour = 1;
                 nb_pommes = 0;
                 nb_poires = 0;
@@ -357,65 +342,201 @@
                 nb_raisins = 0;
                 nb_kiwis = 0;
                 nb_haricots = 0;
+                prix_total = 0;
             }
             
-            else if(scanner.Touched())
-            {
+            //*** Ecran scanner ***
+            else if(scanner.Touched()) {
                 boutton_scanner = 1;
                 
-                //Ecran scanner
                 BSP_LCD_Clear(LCD_COLOR_WHITE);
                 BSP_LCD_SetFont(&Font20);
                 BSP_LCD_SetBackColor(LCD_COLOR_ORANGE);
                 BSP_LCD_SetTextColor(LCD_COLOR_BLACK);
                 HAL_Delay(1000);
-                
+
                 BSP_LCD_DisplayStringAt(0, 40, (uint8_t *)"Scanner le code barre", CENTER_MODE);
                 BSP_LCD_DisplayStringAt(0, 60, (uint8_t *)"du produit", CENTER_MODE);
                 HAL_Delay(1000);
-                
-                BSP_LCD_SetBackColor(LCD_COLOR_RED);
-                BSP_LCD_DisplayStringAt(0, 100, (uint8_t *)"Le produit est :", CENTER_MODE);
-                HAL_Delay(1000);
-                
-                //Bouton retour vers la page d'acceuil       
+
+                //Bouton retour vers la page acceuil
                 Button acceuil(lcd_, ts_, 68, 215, 350, 40,
-                             LCD_COLOR_BLUE, LCD_COLOR_BLACK, "Retour vers la page d'acceuil", Font16);
+                                            LCD_COLOR_BLUE, LCD_COLOR_BLACK, "Retour vers la page d'acceuil", Font16);
                 acceuil.Draw(LCD_COLOR_GRAY, LCD_COLOR_BLACK);
-                
-                while(boutton_acceuil == 0)
-                {    
-                    if(acceuil.Touched())
-                    {
+
+                while(boutton_acceuil == 0) {
+                    if(acceuil.Touched()) {
                         boutton_acceuil = 1;
                     }
+                    //Lecture code-barres
+                    else if(bt.readable()) {
+                        ch=bt.getc();
+                        pc.printf("%c\n\r",ch);                    
+                        switch(ch)
+                        {
+                            case '1':
+                                BSP_LCD_SetTextColor(LCD_COLOR_WHITE);
+                                BSP_LCD_FillRect(135, 130, 200, 80);
+                                BSP_LCD_SetTextColor(LCD_COLOR_BLACK);   
+                                BSP_LCD_SetBackColor(LCD_COLOR_RED);
+                                BSP_LCD_SetFont(&Font16);
+                                BSP_LCD_DisplayStringAt(0, 110, (uint8_t *)"Le produit est :", CENTER_MODE);
+                                drawImage_pomme(165,135);
+                                BSP_LCD_SetBackColor(LCD_COLOR_WHITE);
+                                BSP_LCD_SetFont(&Font12);
+                                BSP_LCD_DisplayStringAt(30, 145, (uint8_t *)"Pommes", CENTER_MODE);
+                                BSP_LCD_SetFont(&Font8);
+                                BSP_LCD_DisplayStringAt(30, 165, (uint8_t *)"2,22 Euros/kg", CENTER_MODE);
+                                HAL_Delay(1000);
+                                break;    
+                            case '2':
+                                BSP_LCD_SetTextColor(LCD_COLOR_WHITE);
+                                BSP_LCD_FillRect(135, 130, 200, 80);
+                                BSP_LCD_SetTextColor(LCD_COLOR_BLACK);   
+                                BSP_LCD_SetBackColor(LCD_COLOR_RED);
+                                BSP_LCD_SetFont(&Font16);
+                                BSP_LCD_DisplayStringAt(0, 110, (uint8_t *)"Le produit est :", CENTER_MODE);
+                                drawImage_poire(165,140);
+                                BSP_LCD_SetBackColor(LCD_COLOR_WHITE);
+                                BSP_LCD_SetFont(&Font12);
+                                BSP_LCD_DisplayStringAt(30, 145, (uint8_t *)"Poires", CENTER_MODE);
+                                BSP_LCD_SetFont(&Font8);
+                                BSP_LCD_DisplayStringAt(30, 165, (uint8_t *)"3,50 Euros/kg", CENTER_MODE);
+                                HAL_Delay(1000);
+                                break;
+                            case '3':
+                                BSP_LCD_SetTextColor(LCD_COLOR_WHITE);
+                                BSP_LCD_FillRect(135, 130, 200, 80);
+                                BSP_LCD_SetTextColor(LCD_COLOR_BLACK);   
+                                BSP_LCD_SetBackColor(LCD_COLOR_RED);
+                                BSP_LCD_SetFont(&Font16);
+                                BSP_LCD_DisplayStringAt(0, 110, (uint8_t *)"Le produit est :", CENTER_MODE);
+                                drawImage_orange(165,135);
+                                BSP_LCD_SetBackColor(LCD_COLOR_WHITE);
+                                BSP_LCD_SetFont(&Font12);
+                                BSP_LCD_DisplayStringAt(30, 145, (uint8_t *)"Oranges", CENTER_MODE);
+                                BSP_LCD_SetFont(&Font8);
+                                BSP_LCD_DisplayStringAt(30, 165, (uint8_t *)"2,00 Euros/kg", CENTER_MODE);
+                                HAL_Delay(1000);
+                                break;
+                            case '4':
+                                BSP_LCD_SetTextColor(LCD_COLOR_WHITE);
+                                BSP_LCD_FillRect(135, 130, 200, 80);
+                                BSP_LCD_SetTextColor(LCD_COLOR_BLACK);   
+                                BSP_LCD_SetBackColor(LCD_COLOR_RED);
+                                BSP_LCD_SetFont(&Font16);
+                                BSP_LCD_DisplayStringAt(0, 110, (uint8_t *)"Le produit est :", CENTER_MODE);
+                                drawImage_banane(175,140);
+                                BSP_LCD_SetBackColor(LCD_COLOR_WHITE);
+                                BSP_LCD_SetFont(&Font12);
+                                BSP_LCD_DisplayStringAt(30, 145, (uint8_t *)"Bananes", CENTER_MODE);
+                                BSP_LCD_SetFont(&Font8);
+                                BSP_LCD_DisplayStringAt(30, 165, (uint8_t *)"3,00 Euros/kg", CENTER_MODE);
+                                HAL_Delay(1000);
+                                break;   
+                            case '5':
+                                BSP_LCD_SetTextColor(LCD_COLOR_WHITE);
+                                BSP_LCD_FillRect(135, 130, 200, 80);
+                                BSP_LCD_SetTextColor(LCD_COLOR_BLACK);   
+                                BSP_LCD_SetBackColor(LCD_COLOR_RED);
+                                BSP_LCD_SetFont(&Font16);
+                                BSP_LCD_DisplayStringAt(0, 110, (uint8_t *)"Le produit est :", CENTER_MODE);
+                                drawImage_tomate(165,135);
+                                BSP_LCD_SetBackColor(LCD_COLOR_WHITE);
+                                BSP_LCD_SetFont(&Font12);
+                                BSP_LCD_DisplayStringAt(30, 145, (uint8_t *)"Tomates", CENTER_MODE);
+                                BSP_LCD_SetFont(&Font8);
+                                BSP_LCD_DisplayStringAt(30, 165, (uint8_t *)"1,00 Euros/kg", CENTER_MODE);
+                                HAL_Delay(1000);
+                                break;   
+                            case '6':
+                                BSP_LCD_SetTextColor(LCD_COLOR_WHITE);
+                                BSP_LCD_FillRect(135, 130, 200, 80);
+                                BSP_LCD_SetTextColor(LCD_COLOR_BLACK);   
+                                BSP_LCD_SetBackColor(LCD_COLOR_RED);
+                                BSP_LCD_SetFont(&Font16);
+                                BSP_LCD_DisplayStringAt(0, 110, (uint8_t *)"Le produit est :", CENTER_MODE);
+                                drawImage_fraise(165,135);
+                                BSP_LCD_SetBackColor(LCD_COLOR_WHITE);
+                                BSP_LCD_SetFont(&Font12);
+                                BSP_LCD_DisplayStringAt(30, 145, (uint8_t *)"Fraises", CENTER_MODE);
+                                BSP_LCD_SetFont(&Font8);
+                                BSP_LCD_DisplayStringAt(30, 165, (uint8_t *)"4,00 Euros/kg", CENTER_MODE);
+                                HAL_Delay(1000);
+                                break;   
+                            case '7':
+                                BSP_LCD_SetTextColor(LCD_COLOR_WHITE);
+                                BSP_LCD_FillRect(135, 130, 200, 80);
+                                BSP_LCD_SetTextColor(LCD_COLOR_BLACK);   
+                                BSP_LCD_SetBackColor(LCD_COLOR_RED);
+                                BSP_LCD_SetFont(&Font16);
+                                BSP_LCD_DisplayStringAt(0, 110, (uint8_t *)"Le produit est :", CENTER_MODE);
+                                drawImage_raisin(150,128);
+                                BSP_LCD_SetBackColor(LCD_COLOR_WHITE);
+                                BSP_LCD_SetFont(&Font12);
+                                BSP_LCD_DisplayStringAt(30, 145, (uint8_t *)"Raisins", CENTER_MODE);
+                                BSP_LCD_SetFont(&Font8);
+                                BSP_LCD_DisplayStringAt(30, 165, (uint8_t *)"4,20 Euros/kg", CENTER_MODE);
+                                HAL_Delay(1000);
+                                break;   
+                            case '8':
+                                BSP_LCD_SetTextColor(LCD_COLOR_WHITE);
+                                BSP_LCD_FillRect(135, 130, 200, 80);
+                                BSP_LCD_SetTextColor(LCD_COLOR_BLACK);   
+                                BSP_LCD_SetBackColor(LCD_COLOR_RED);
+                                BSP_LCD_SetFont(&Font16);
+                                BSP_LCD_DisplayStringAt(0, 110, (uint8_t *)"Le produit est :", CENTER_MODE);
+                                drawImage_kiwi(165,135);
+                                BSP_LCD_SetBackColor(LCD_COLOR_WHITE);
+                                BSP_LCD_SetFont(&Font12);
+                                BSP_LCD_DisplayStringAt(30, 145, (uint8_t *)"Kiwis", CENTER_MODE);
+                                BSP_LCD_SetFont(&Font8);
+                                BSP_LCD_DisplayStringAt(30, 165, (uint8_t *)"2,99 Euros/kg", CENTER_MODE);
+                                HAL_Delay(1000);
+                                break;   
+                            case '9':
+                                BSP_LCD_SetTextColor(LCD_COLOR_WHITE);
+                                BSP_LCD_FillRect(135, 130, 200, 80);
+                                BSP_LCD_SetTextColor(LCD_COLOR_BLACK);   
+                                BSP_LCD_SetBackColor(LCD_COLOR_RED);
+                                BSP_LCD_SetFont(&Font16);
+                                BSP_LCD_DisplayStringAt(0, 110, (uint8_t *)"Le produit est :", CENTER_MODE);
+                                drawImage_haricot(165,140);
+                                BSP_LCD_SetBackColor(LCD_COLOR_WHITE);
+                                BSP_LCD_SetFont(&Font12);
+                                BSP_LCD_DisplayStringAt(30, 145, (uint8_t *)"Haricots", CENTER_MODE);
+                                BSP_LCD_SetFont(&Font8);
+                                BSP_LCD_DisplayStringAt(30, 165, (uint8_t *)"1,50 Euros/kg", CENTER_MODE);
+                                HAL_Delay(1000);
+                                break;    
+                        }
+                    }
                 }
                 boutton_acceuil = 0;
             }
             
-            else if(panier.Touched())
-            {
+            else if(panier.Touched()) {
                 boutton_panier = 1;
-                
-                //Ecran panier
+    
+                //*** Ecran panier ***
                 BSP_LCD_Clear(LCD_COLOR_WHITE);
                 HAL_Delay(1000);
-                
+    
                 //Images produits
-                drawImage_pomme (10,15) ; 
+                drawImage_pomme (10,15) ;
                 drawImage_poire (10,100) ;
-                drawImage_orange (10,170) ;  
-                drawImage_banane (165,5) ;  
-                drawImage_tomate (165,92) ;  
+                drawImage_orange (10,170) ;
+                drawImage_banane (165,5) ;
+                drawImage_tomate (165,92) ;
                 drawImage_fraise (165,170) ;
                 drawImage_raisin (320,5) ;
                 drawImage_kiwi (330,95) ;
                 drawImage_haricot (330,175) ;
                 HAL_Delay(1000);
-                
+    
                 BSP_LCD_SetBackColor(LCD_COLOR_WHITE);
                 BSP_LCD_SetTextColor(LCD_COLOR_BLACK);
-                
+    
                 //Noms produits
                 BSP_LCD_SetFont(&Font12);
                 BSP_LCD_DisplayStringAt(350, 25, (uint8_t *)"Pommes", CENTER_MODE);
@@ -428,7 +549,7 @@
                 BSP_LCD_DisplayStringAt(190, 110, (uint8_t *)"Kiwis", CENTER_MODE);
                 BSP_LCD_DisplayStringAt(190, 180, (uint8_t *)"Haricots", CENTER_MODE);
                 HAL_Delay(1000);
-                
+    
                 //Prix produits
                 BSP_LCD_SetFont(&Font8);
                 BSP_LCD_DisplayStringAt(350, 45, (uint8_t *)"2,20 Euros/kg", CENTER_MODE);
@@ -441,68 +562,67 @@
                 BSP_LCD_DisplayStringAt(190, 130, (uint8_t *)"2,99 Euros/kg", CENTER_MODE);
                 BSP_LCD_DisplayStringAt(190, 200, (uint8_t *)"1,50 Euros/kg", CENTER_MODE);
                 HAL_Delay(1000);
-                
+    
                 //Nombres produits dans panier
                 BSP_LCD_SetFont(&Font12);
+                BSP_LCD_SetBackColor(LCD_COLOR_ORANGE);
+                BSP_LCD_SetTextColor(LCD_COLOR_BLACK);
                 sprintf(buffer, "Nombre : %d", nb_pommes);
-                BSP_LCD_DisplayStringAt(350, 55, (uint8_t *)buffer, CENTER_MODE);
+                BSP_LCD_DisplayStringAt(325, 60, (uint8_t *)buffer, CENTER_MODE);
                 sprintf(buffer, "Nombre : %d", nb_poires);
-                BSP_LCD_DisplayStringAt(350, 140, (uint8_t *)buffer, CENTER_MODE);
+                BSP_LCD_DisplayStringAt(325, 145, (uint8_t *)buffer, CENTER_MODE);
                 sprintf(buffer, "Nombre : %d", nb_oranges);
-                BSP_LCD_DisplayStringAt(350, 210, (uint8_t *)buffer, CENTER_MODE);
+                BSP_LCD_DisplayStringAt(325, 215, (uint8_t *)buffer, CENTER_MODE);
                 sprintf(buffer, "Nombre : %d", nb_bananes);
-                BSP_LCD_DisplayStringAt(30, 55, (uint8_t *)buffer, CENTER_MODE);
+                BSP_LCD_DisplayStringAt(5, 60, (uint8_t *)buffer, CENTER_MODE);
                 sprintf(buffer, "Nombre : %d", nb_tomates);
-                BSP_LCD_DisplayStringAt(30, 140, (uint8_t *)buffer, CENTER_MODE);
+                BSP_LCD_DisplayStringAt(5, 145, (uint8_t *)buffer, CENTER_MODE);
                 sprintf(buffer, "Nombre : %d", nb_fraises);
-                BSP_LCD_DisplayStringAt(30, 210, (uint8_t *)buffer, CENTER_MODE);
+                BSP_LCD_DisplayStringAt(5, 215, (uint8_t *)buffer, CENTER_MODE);
                 sprintf(buffer, "Nombre : %d", nb_raisins);
-                BSP_LCD_DisplayStringAt(190, 55, (uint8_t *)buffer, CENTER_MODE);
+                BSP_LCD_DisplayStringAt(165, 60, (uint8_t *)buffer, CENTER_MODE);
                 sprintf(buffer, "Nombre : %d", nb_kiwis);
-                BSP_LCD_DisplayStringAt(190, 140, (uint8_t *)buffer, CENTER_MODE);
+                BSP_LCD_DisplayStringAt(165, 145, (uint8_t *)buffer, CENTER_MODE);
                 sprintf(buffer, "Nombre : %d", nb_haricots);
-                BSP_LCD_DisplayStringAt(190, 210, (uint8_t *)buffer, CENTER_MODE);
+                BSP_LCD_DisplayStringAt(165, 215, (uint8_t *)buffer, CENTER_MODE);
                 HAL_Delay(1000);
-                
+    
                 //Bouton valider la commande
-                Button valider(lcd_, ts_, 88, 225, 300, 40,
-                             LCD_COLOR_BLUE, LCD_COLOR_BLACK, "Valider la commande", Font16);
+                Button valider(lcd_, ts_, 88, 235, 300, 30,
+                               LCD_COLOR_BLUE, LCD_COLOR_BLACK, "Valider la commande", Font16);
                 valider.Draw(LCD_COLOR_GRAY, LCD_COLOR_BLACK);
-                
-                while(boutton_valider == 0)
-                {    
-                    if(valider.Touched())
-                    {
+    
+                while(boutton_valider == 0) {
+                    if(valider.Touched()) {
                         boutton_valider = 1;
                     }
                 }
                 boutton_valider = 0;
-                
-                
-                //Ecran prix total
+    
+    
+                //*** Ecran prix total ***
                 BSP_LCD_Clear(LCD_COLOR_WHITE);
                 BSP_LCD_SetFont(&LCD_DEFAULT_FONT);
                 BSP_LCD_SetBackColor(LCD_COLOR_ORANGE);
                 BSP_LCD_SetTextColor(LCD_COLOR_BLACK);
                 HAL_Delay(1000);
-                
+    
                 BSP_LCD_DisplayStringAt(0, 70, (uint8_t *)"Prix total", CENTER_MODE);
                 HAL_Delay(1000);
-                
+    
                 BSP_LCD_SetFont(&Font20);
                 BSP_LCD_SetBackColor(LCD_COLOR_RED);
-                BSP_LCD_DisplayStringAt(0, 120, (uint8_t *)"100,00 Euros", CENTER_MODE);
+                sprintf(buffer, "%0.2f Euros", prix_total);
+                BSP_LCD_DisplayStringAt(0, 120, (uint8_t *)buffer, CENTER_MODE);
                 HAL_Delay(1000);
-                
-                //Bouton retour vers la page d'acceuil       
+    
+                //Bouton retour vers la page d'acceuil
                 Button acceuil(lcd_, ts_, 68, 215, 350, 40,
-                             LCD_COLOR_BLUE, LCD_COLOR_BLACK, "Retour vers la page d'acceuil", Font16);
+                               LCD_COLOR_BLUE, LCD_COLOR_BLACK, "Retour vers la page d'acceuil", Font16);
                 acceuil.Draw(LCD_COLOR_GRAY, LCD_COLOR_BLACK);
-                
-                while(boutton_acceuil == 0)
-                {    
-                    if(acceuil.Touched())
-                    {
+    
+                while(boutton_acceuil == 0) {
+                    if(acceuil.Touched()) {
                         boutton_acceuil = 1;
                         nb_pommes = 0;
                         nb_poires = 0;
@@ -513,58 +633,69 @@
                         nb_raisins = 0;
                         nb_kiwis = 0;
                         nb_haricots = 0;
+                        prix_total = 0;
                     }
                 }
                 boutton_acceuil = 0;
             }
             
-            else if(pommes.Touched())
-            {
+            //Ajouts au panier
+            else if(pommes.Touched()) {
                 nb_pommes = nb_pommes + 1;
+                prix_total = prix_total + 2.20;
+                HAL_Delay(300);
             }
-            
-            else if(poires.Touched())
-            {
+    
+            else if(poires.Touched()) {
                 nb_poires = nb_poires + 1;
-            }  
-            
-            else if(oranges.Touched())
-            {
+                prix_total = prix_total + 3.50;
+                HAL_Delay(300);
+            }
+    
+            else if(oranges.Touched()) {
                 nb_oranges = nb_oranges + 1;
-            }   
-            
-            else if(bananes.Touched())
-            {
+                prix_total = prix_total + 2.00;
+                HAL_Delay(300);
+            }
+    
+            else if(bananes.Touched()) {
                 nb_bananes = nb_bananes + 1;
-            } 
-            
-            else if(tomates.Touched())
-            {
+                prix_total = prix_total + 3.00;
+                HAL_Delay(300);
+            }
+    
+            else if(tomates.Touched()) {
                 nb_tomates = nb_tomates + 1;
-            }   
-            
-            else if(fraises.Touched())
-            {
+                prix_total = prix_total + 1.00;
+                HAL_Delay(300);
+            }
+    
+            else if(fraises.Touched()) {
                 nb_fraises = nb_fraises + 1;
-            }     
-            
-            else if(raisins.Touched())
-            {
+                prix_total = prix_total + 4.00;
+                HAL_Delay(300);
+            }
+    
+            else if(raisins.Touched()) {
                 nb_raisins = nb_raisins + 1;
-            }   
-            
-            else if(kiwis.Touched())
-            {
+                prix_total = prix_total + 4.20;
+                HAL_Delay(300);
+            }
+    
+            else if(kiwis.Touched()) {
                 nb_kiwis = nb_kiwis + 1;
-            }   
-            
-            else if(haricots.Touched())
-            {
+                prix_total = prix_total + 2.99;
+                HAL_Delay(300);
+            }
+    
+            else if(haricots.Touched()) {
                 nb_haricots = nb_haricots + 1;
-            }         
+                prix_total = prix_total + 1.50;
+                HAL_Delay(300);
+            }
         }
         boutton_retour = 0;
         boutton_scanner = 0;
         boutton_panier = 0;
-    }
-}
+     }   
+}
\ No newline at end of file