fini

Dependencies:   F746_GUI mbed

Files at this revision

API Documentation at this revision

Comitter:
Pmpolo
Date:
Thu Jun 24 08:08:16 2021 +0000
Parent:
26:31abf8bdcddb
Commit message:
code avec commentaires

Changed in this revision

main.cpp Show annotated file Show diff for this revision Revisions of this file
--- a/main.cpp	Wed Jun 23 11:51:05 2021 +0000
+++ b/main.cpp	Thu Jun 24 08:08:16 2021 +0000
@@ -6,8 +6,9 @@
 Serial Communication(PC_6, PC_7,115200); //Declaration serial
 Timer timerEnvoieTrame; // Timer pour l'envoie de trame
 
-int tailleBuffer=100; 
+int tailleBuffer=100; // timer pour l'envoie de trame
 
+// fonction pour affichage de l'image 
 void drawImage_CCLogo(int offsetX, int offsetY)
 {
     int x = 0;
@@ -24,8 +25,8 @@
     }
 }
 
-
-int EmpDerVal(int *ptab){ //Recupere a quel emplacmeent il y a une valeur
+//Recupère à quel emplacement il y a une valeur dans le buffer
+int EmpDerVal(int *ptab){ 
     int Emplacement=-1;
   
 
@@ -42,14 +43,16 @@
     return Emplacement*2; // revoie l'emplacement *2 car tab 2 dimension
 }
 
-void AppendTableau(int *ptab, int index, int data){ //Ajouter valeur dans le buffer
+// Ajoute une valeur dans le buffer
+void AppendTableau(int *ptab, int index, int data){
     int LastEmplacment=EmpDerVal((int*) ptab);
     
     *(ptab+LastEmplacment)=index;
     *(ptab+LastEmplacment+1)=data;
 }
 
-void SendVal(int *ptab){ // Envoie une valeur
+// Envoie une valeur 
+void SendVal(int *ptab){
     int LastEmplacment=EmpDerVal((int*) ptab), index=-1, data=-1;
     if(LastEmplacment==0 || LastEmplacment==-1){
         //Buffer vide
@@ -68,20 +71,23 @@
     }
 }
 
+
 int main()
 {
-    int NumBoutonGroupMode=0, NumBoutonGroupeLeds=0;
+    // Variables d'état qui récupère le nombre du bouton appuyé pour switch cases
+    int NumBoutonGroupMode=0, NumBoutonGroupeLeds=0; 
+    
     int TabBuffer[tailleBuffer][2];
     int NivoBatt = 75,Vitesse=0, VitesseMax=25;
 
     
-    
-    for(int i=0; i<tailleBuffer-1; i++) { //initialisation du buffer
+    //initialisation du buffer
+    for(int i=0; i<tailleBuffer-1; i++) { 
         TabBuffer[i][0]=-1;
         TabBuffer[i][1]=-1;
     }
-    
-    
+      
+//////////////////////// Déclaration des groupes de boutons et mise en forme ////////////////////////
     Label Titre(240, 2, "Interface Trottinette", Label::CENTER, Font20); // titre
 
     SeekBar barVitesse(20, 230, 200, 0, 100, 0, "0", "Vitesse km/h",""); 
@@ -110,8 +116,9 @@
     }, 2, 2, 4, 1,
     Font12);
     boutonGroupeBatt.InactivateAll();
-    
-    drawImage_CCLogo(0,0);
+//////////////////////////////////////////////////////////////////////////////////////////////////
+
+    drawImage_CCLogo(0,0); // Appel de la fonction pour afficher l'image 
     
     timerEnvoieTrame.start();
     
@@ -131,106 +138,108 @@
             AppendTableau(*TabBuffer,0x02,NivoBatt);
 
             //Manipulation de la valeur du niveau de batterie
-            if (NivoBatt < 25 && NivoBatt > 0){
-                boutonGroupeBatt.Activate(0);
+            if (NivoBatt < 25 && NivoBatt > 0){ // si batterie < 25%
+                boutonGroupeBatt.Activate(0); // Affichage de la premiere barre 
                 boutonGroupeBatt.Inactivate(1);
                 boutonGroupeBatt.Inactivate(2);
                 boutonGroupeBatt.Inactivate(3);
-                boutonGroupeBatt.Draw(0, 0xFFFF0000, 0xFFFF0000);
+                boutonGroupeBatt.Draw(0, 0xFFFF0000, 0xFFFF0000); // Barre en couleur rouge
 
                 
             }
-            else if (NivoBatt < 50 && NivoBatt > 26){
-                boutonGroupeBatt.Activate(0);
+            else if (NivoBatt < 50 && NivoBatt > 26){ // si env 50% batterie
+                boutonGroupeBatt.Activate(0); // activer les deux premières barres
                 boutonGroupeBatt.Activate(1);
                 boutonGroupeBatt.Inactivate(2);
                 boutonGroupeBatt.Inactivate(3);
-                boutonGroupeBatt.Draw(0, 0xFFFFAA00, 0xFFFFAA00);
+                boutonGroupeBatt.Draw(0, 0xFFFFAA00, 0xFFFFAA00); // Barres en orange
                 boutonGroupeBatt.Draw(1, 0xFFFFAA00, 0xFFFFAA00);
             } 
             
-            else if (NivoBatt < 75 && NivoBatt > 51){         
-                boutonGroupeBatt.Activate(0);
+            else if (NivoBatt < 75 && NivoBatt > 51){ // Si env 75% batterie       
+                boutonGroupeBatt.Activate(0); // activer 3 barres
                 boutonGroupeBatt.Activate(1);
                 boutonGroupeBatt.Activate(2);
                 boutonGroupeBatt.Inactivate(3);
-                boutonGroupeBatt.Draw(0, 0xFFFCFF00, 0xFFFCFF00);
+                boutonGroupeBatt.Draw(0, 0xFFFCFF00, 0xFFFCFF00); // Barres en jaune
                 boutonGroupeBatt.Draw(1, 0xFFFCFF00, 0xFFFCFF00);
                 boutonGroupeBatt.Draw(2, 0xFFFCFF00, 0xFFFCFF00);
 
                 } 
-            else if (NivoBatt > 76){
-                boutonGroupeBatt.ActivateAll();
-                boutonGroupeBatt.Draw(0, 0xFF47FF00, 0xFF47FF00);
+            else if (NivoBatt > 76){ // si +75%
+                boutonGroupeBatt.ActivateAll(); // Activer toutes les barres 
+                boutonGroupeBatt.Draw(0, 0xFF47FF00, 0xFF47FF00); // Barres en vert
                 boutonGroupeBatt.Draw(1, 0xFF47FF00, 0xFF47FF00);
                 boutonGroupeBatt.Draw(2, 0xFF47FF00, 0xFF47FF00);
                 boutonGroupeBatt.Draw(3, 0xFF47FF00, 0xFF47FF00);
 
             } 
-            else if (NivoBatt < 0){
-                boutonGroupeBatt.InactivateAll();
+            else if (NivoBatt < 0){ // Si plus de batterie 
+                boutonGroupeBatt.InactivateAll(); // Ne pas afficher de barres
             }
         } 
 
-
-        NumBoutonGroupMode=boutonGroupeMode.GetTouchedNumber(); //actualisation groupe bouton mode
+        
+        NumBoutonGroupMode=boutonGroupeMode.GetTouchedNumber(); //lecture de la valeur du bouton appuyé
+        
+        // Switch case en fonction du bouton appuyé pour selection du mode de la trottinette
         if (boutonGroupeMode.GetTouchedNumber(NumBoutonGroupMode))
             switch (NumBoutonGroupMode) {
                 case 0: //mode Sport 25km/h Max
-                    VitesseMax=25;
-                    boutonGroupeMode.Inactivate(0); // activer et desactive les boutons
-                    boutonGroupeMode.Activate(1);
+                    VitesseMax=25; // mise à jour de la vmax possible avec ce mode
+                    boutonGroupeMode.Inactivate(0); // désactiver le bouton appuyé 
+                    boutonGroupeMode.Activate(1); // Activer les autres boutons 
                     boutonGroupeMode.Activate(2);
                     boutonGroupeMode.Activate(3);
-                    AppendTableau(*TabBuffer,0x03,0x01); // envoie l'info du bouton
+                    AppendTableau(*TabBuffer,0x03,0x01); // envoie de la trame liée à l'appuis de ce bouton
                     BSP_LCD_SetBackColor(LCD_COLOR_BLACK); 
                     
-                    ValMaxVitesse.Draw("%d",VitesseMax); //recalcul de la vitesse a partir de l'emplacement curseur du slide
+                    ValMaxVitesse.Draw("%d",VitesseMax); //recalcul de la vitesse à partir de l'emplacement curseur du slide
                     numLabeVitesse.Draw("%5.1f", (barVitesse.GetValue()*VitesseMax)/100);
                     Vitesse = (int) (barVitesse.GetValue()*VitesseMax)/100;
                     //AppendTableau(*TabBuffer,0x01,Vitesse);
                     break;
+                    
                 case 1: //mode Normal 20km/h Max
-                    VitesseMax=20;
-                    boutonGroupeMode.Inactivate(1);
-                    boutonGroupeMode.Activate(0);
+                    VitesseMax=20; // mise à jour de la vmax possible avec ce mode
+                    boutonGroupeMode.Inactivate(1); // désactiver le bouton appuyé 
+                    boutonGroupeMode.Activate(0); // Activer les autres boutons 
                     boutonGroupeMode.Activate(2);
                     boutonGroupeMode.Activate(3);
-                    AppendTableau(*TabBuffer,0x03,0x02);
+                    AppendTableau(*TabBuffer,0x03,0x02); // envoie de la trame liée à l'appuis de ce bouton
                     BSP_LCD_SetBackColor(LCD_COLOR_BLACK);
                     
-                    ValMaxVitesse.Draw("%d",VitesseMax);
+                    ValMaxVitesse.Draw("%d",VitesseMax); //recalcul de la vitesse à partir de l'emplacement curseur du slide
                     numLabeVitesse.Draw("%5.1f", (barVitesse.GetValue()*VitesseMax)/100);
                     Vitesse = (int) (barVitesse.GetValue()*VitesseMax)/100;
                     //AppendTableau(*TabBuffer,0x01,Vitesse);
-
                     break;
 
                 case 2: //mode Eco 15km/h Max
-                    VitesseMax=15;
-                    boutonGroupeMode.Inactivate(2);
-                    boutonGroupeMode.Activate(0);
+                    VitesseMax=15; // mise à jour de la vmax possible avec ce mode
+                    boutonGroupeMode.Inactivate(2); // désactiver le bouton appuyé 
+                    boutonGroupeMode.Activate(0); // Activer les autres boutons 
                     boutonGroupeMode.Activate(1);
                     boutonGroupeMode.Activate(3);
-                    AppendTableau(*TabBuffer,0x03,0x03);
+                    AppendTableau(*TabBuffer,0x03,0x03); // envoie de la trame liée à l'appuis de ce bouton
                     BSP_LCD_SetBackColor(LCD_COLOR_BLACK);
                     
-                    ValMaxVitesse.Draw("%d",VitesseMax);
+                    ValMaxVitesse.Draw("%d",VitesseMax); //recalcul de la vitesse à partir de l'emplacement curseur du slide
                     numLabeVitesse.Draw("%5.1f", (barVitesse.GetValue()*VitesseMax)/100);
                     Vitesse = (int) (barVitesse.GetValue()*VitesseMax)/100;
                     //AppendTableau(*TabBuffer,0x01,Vitesse);
                     break;
 
                 case 3: //mode Pieton 6km/h Max
-                    VitesseMax=6;
-                    boutonGroupeMode.Inactivate(3);
-                    boutonGroupeMode.Activate(0);
+                    VitesseMax=6; // mise à jour de la vmax possible avec ce mode
+                    boutonGroupeMode.Inactivate(3); // désactiver le bouton appuyé 
+                    boutonGroupeMode.Activate(0); // Activer les autres boutons 
                     boutonGroupeMode.Activate(1);
                     boutonGroupeMode.Activate(2);
-                    AppendTableau(*TabBuffer,0x03,0x04);
+                    AppendTableau(*TabBuffer,0x03,0x04); // envoie de la trame liée à l'appuis de ce bouton
                     BSP_LCD_SetBackColor(LCD_COLOR_BLACK);
                     
-                    ValMaxVitesse.Draw("%d",VitesseMax);
+                    ValMaxVitesse.Draw("%d",VitesseMax); //recalcul de la vitesse à partir de l'emplacement curseur du slide
                     numLabeVitesse.Draw("%5.1f", (barVitesse.GetValue()*VitesseMax)/100);
                     Vitesse = (int) (barVitesse.GetValue()*VitesseMax)/100;
                     //AppendTableau(*TabBuffer,0x01,Vitesse);
@@ -238,19 +247,21 @@
 
             }
 
-        NumBoutonGroupeLeds=boutonsGroupeLed.GetTouchedNumber();
+        NumBoutonGroupeLeds=boutonsGroupeLed.GetTouchedNumber(); //lecture de la valeur du bouton appuyé
+        
+        // Switch case en fonction du bouton appuyé pour activation ou non Led trott
         if (boutonsGroupeLed.GetTouchedNumber(NumBoutonGroupeLeds))
             switch (NumBoutonGroupeLeds) {
                 case 0: //Led ON
-                    boutonsGroupeLed.Inactivate(0);
-                    boutonsGroupeLed.Activate(1);
-                    AppendTableau(*TabBuffer,0x04,0x01);
+                    boutonsGroupeLed.Inactivate(0); // désactiver le bouton appuyé 
+                    boutonsGroupeLed.Activate(1); // Activer les autres boutons 
+                    AppendTableau(*TabBuffer,0x04,0x01); // envoie de la trame liée à l'appuis de ce bouton
                     break;
 
                 case 1: //Led OFF
-                    boutonsGroupeLed.Inactivate(1);
-                    boutonsGroupeLed.Activate(0);
-                    AppendTableau(*TabBuffer,0x04,0x0F);
+                    boutonsGroupeLed.Inactivate(1); // désactiver le bouton appuyé 
+                    boutonsGroupeLed.Activate(0); // Activer les autres boutons 
+                    AppendTableau(*TabBuffer,0x04,0x0F); // envoie de la trame liée à l'appuis de ce bouton
                     break;
             }