Programme carte strategie (disco)

Dependencies:   mbed SerialHalfDuplex SDFileSystem DISCO-F469NI_portrait liaison_Bluetooth ident_crac

Revision:
42:657b6a573e11
Parent:
41:b029ddc4d60e
Child:
44:badcbe8766e9
diff -r b029ddc4d60e -r 657b6a573e11 Strategie/Strategie.cpp
--- a/Strategie/Strategie.cpp	Fri May 11 12:09:26 2018 +0000
+++ b/Strategie/Strategie.cpp	Thu May 17 13:08:31 2018 +0000
@@ -287,6 +287,8 @@
     flagSendCan = 1;
 }
 
+
+//Affiche une variable sur l'écran tactile// 
 void affichage_var(double Var){
     if(ligne==7)
         ligne=0;
@@ -296,7 +298,12 @@
     //ligne++;
     
 }
-               
+
+
+/****************************************************************************************/
+/* FUNCTION NAME: affichage_debug                                                       */
+/* DESCRIPTION  : Affiche l'état de gameEtat sur l'écran lcd                            */
+/****************************************************************************************/             
 void affichage_debug(int Var){
     int i;
     int conv=(int)Var;
@@ -310,7 +317,7 @@
         lcd.SetBackColor(VERT);
         lcd.DisplayStringAt(0, LINE(20+i), (uint8_t *)tableau_aff[i], LEFT_MODE);
     }  
-    /*while(!ack_bluetooth){
+    /*while(!ack_bluetooth){    // mode pas à pas en bluetooth ou via écran
         //liaison_bluetooth();
     }
     ack_bluetooth=0;*/
@@ -318,7 +325,10 @@
     while(SUIVANT.Touched());*/
 } 
 
-
+/****************************************************************************************/
+/* FUNCTION NAME: automate_etat_ihm                                                     */
+/* DESCRIPTION  : Automate de gestion de l'affichage                                    */
+/****************************************************************************************/      
 void automate_etat_ihm(void)
 {
     int j;
@@ -329,7 +339,7 @@
     ts.GetState(&TS_State);       
     switch (etat)
     {
-        case INIT :
+        case INIT : //intialise l'écran et passe à l'attente d'initialisation des cartes
             ts.GetState(&TS_State); 
             canProcessRx();
             
@@ -357,7 +367,7 @@
             etat=ATT;
             break;
             
-        case ATT :
+        case ATT :  //Si les cartes sont présentes passe directement à choix sinon attente de force Launch (cette partie est encore buggée mais les cartes affichent bien leur présence donc faut juste force launch tout le temps...)
             if (flag==1){
                 etat = CHOIX;
                 gameEtat = ETAT_CONFIG;
@@ -371,7 +381,7 @@
             break;
          
             
-        case CHOIX :
+        case CHOIX :    //Match ou DEMO
             lcd.SetBackColor(LCD_COLOR_WHITE);
             lcd.SetTextColor(LCD_COLOR_BLACK);
             lcd.Clear (LCD_COLOR_WHITE);
@@ -405,10 +415,10 @@
             TEST_TIR_BALLE.Draw(VERT, 0);
             TEST_IMMEUBLE.Draw(VERT,0);
             TEST_TRIEUR.Draw(VERT,0);
-            if(gameEtat == ETAT_CONFIG) {//C'est bon on a le droit de modifier les config                                     //
-                InversStrat = 0;//Pas d'inversion de la couleur                                 // A changer , discussion avec l'ihm
+            if(gameEtat == ETAT_CONFIG) {//C'est bon on a le droit de modifier les config//
+                InversStrat = 0;//Pas d'inversion de la couleur 
             }
-            while (etat == DEMO)
+            while (etat == DEMO)        ////////////////////////////LISTE DES DIFFERENTES DEMOS POSSIBLES///////////////////////////////////////////
             {
                 canProcessRx();
                 if(TEST_HERKULEX.Touched())
@@ -426,20 +436,20 @@
                     etat = TEST_SERVO;
                     lcd.Clear(LCD_COLOR_WHITE); 
                     ModeDemo=1;
-                }
-                
+                }             
                 else if(TEST_LASER.Touched())
                 {
                     //Strat = 0x11;                        
                     while(TEST_LASER.Touched());                 
                     TEST_LASER.Draw(0xFFF0F0F0, 0);
                     etat = TEST_TELEMETRE;
-                }
+                }               
                 else if (TEST_COULEURS.Touched()){
                     while(TEST_COULEURS.Touched());
                     TEST_LASER.Draw(0xFFF0F0F0, 0);  
                     etat =TEST_CAPTEURS ;    
                 }
+                               
                 else if (TEST_TIR_BALLE.Touched()){
                     while(TEST_TIR_BALLE.Touched());
                     TEST_TIR_BALLE.Draw(0xFFF0F0F0, 0);  
@@ -453,7 +463,7 @@
                     trame_Tx.data[0]=0x2;
                     can2.write(trame_Tx);
                     ModeDemo=1;  
-                }
+                }               
                 else if(TEST_IMMEUBLE.Touched()){
                      while(TEST_IMMEUBLE.Touched());
                      TEST_IMMEUBLE.Draw(0xFFF0F0F0, 0);  
@@ -464,9 +474,7 @@
                     while(TEST_TRIEUR.Touched());
                     etat=DEMO_TRIEUR;
                     lcd.Clear(LCD_COLOR_WHITE);
-                }
-                    
-                    
+                }   
                 if(RETOUR.Touched())
                 {
                     etat = CHOIX;
@@ -474,20 +482,13 @@
                    
                 }
                 if(gameEtat == ETAT_CONFIG) {//C'est bon on a le droit de modifier les config
-                    /*if (Strat< 0x10){  // Si la strat est une strat de match, on desactive le mode demo
-                            ModeDemo = 0;
-                    }
-                    else {                                        // sinon, on active le mode demo, utile pour la fin de la demo
-                            ModeDemo = 1;
-                    }*/
                     Ack_strat = 1;
                     wait_ms(10);
-                    //tactile_printf("Strat %d, Asser desactive",Strat);
                 }
-                //SelectionStrat(Strategie);
             }
             break;
-        case DEMO_TRIEUR:
+        ///////////////////////////////TESTE LES SERVOS LIES AU TRI DES BALLES///////////////////////////////   
+        case DEMO_TRIEUR:       
             lcd.SetBackColor(LCD_COLOR_WHITE);
             lcd.DisplayStringAt(20, LINE(2), (uint8_t *)"DEMONSTRATION COURS", LEFT_MODE);
             TRI.Draw(VERT, 0);
@@ -535,7 +536,7 @@
                 
             }
             break;
-        case DEMO_IMMEUBLE:
+        case DEMO_IMMEUBLE: //TESTE LE MONTE IMMEUBLE SUIVANT UN CODE COULEUR CHOISI
             int color=0;
             lcd.SetBackColor(LCD_COLOR_WHITE);
             lcd.DisplayStringAt(20, LINE(2), (uint8_t *)"Choix du code couleur", LEFT_MODE);
@@ -698,7 +699,7 @@
                         
                     
             
-        case TEST_SERVO:
+        case TEST_SERVO:        //TEST DU RESTE DES SERVOS DISPO HORS TIR
             lcd.SetBackColor(LCD_COLOR_WHITE);
             lcd.DisplayStringAt(20, LINE(2), (uint8_t *)"DEMONSTRATION COURS", LEFT_MODE);
             ABAISSE_BLOC.Draw(VERT, 0);
@@ -747,7 +748,7 @@
             } 
             break;
         
-        case TEST_TIR:
+        case TEST_TIR:  // TEST DES FONCTIONS LIEES AUX TIRS
             lcd.SetBackColor(LCD_COLOR_WHITE);
             lcd.DisplayStringAt(20, LINE(2), (uint8_t *)"DEMONSTRATION COURS", LEFT_MODE);
             TIR_CHATEAU.Draw(VERT, 0);
@@ -793,7 +794,7 @@
                     
                 
             
-        case TEST_TELEMETRE:
+        case TEST_TELEMETRE:    //AFFICHAGE DE LA VALEUR LUE PAR LES 4 TELEMETRES
             ModeDemo=1;
             lcd.Clear(LCD_COLOR_WHITE);
             lcd.SetBackColor(LCD_COLOR_WHITE);
@@ -809,10 +810,10 @@
                    lcd.Clear(LCD_COLOR_WHITE);
                 }
             }
-            break;
+            break;      ///////////////////////////////////////////FIN DES DEMOS/////////////////////////////////////////////////
                  
            
-        case SELECT_SIDE :
+        case SELECT_SIDE :      // CHOIX DU COTE DU TERRAIN + INVERSION DE LA STRAT SI COTE ORANGE+ ENVOI DU COTE A LA CARTE CAPTEUR/ACTIONNEURS
             lcd.Clear(LCD_COLOR_WHITE);
             lcd.SetBackColor(LCD_COLOR_WHITE);
             lcd.SetTextColor(LCD_COLOR_BLACK);
@@ -866,7 +867,7 @@
             
             break;
                 
-        case TACTIQUE :
+        case TACTIQUE : //AFFICHE LA LISTE DES STRATS AFIN DE SELECTIONNER CELLE VOULUE
             if (Cote == 0){
                 lcd.Clear(VERT);
                 lcd.SetBackColor(VERT);
@@ -896,14 +897,14 @@
             wait(0.1);
             break;
         
-        case DETAILS :
+        case DETAILS :  //SECONDE VALIDATION DE LA STRAT
             lcd.Clear(LCD_COLOR_WHITE);
             lcd.SetBackColor(LCD_COLOR_WHITE);
             lcd.SetTextColor(LCD_COLOR_BLACK);
             CHECK.Draw(VERT);
             RETOUR.Draw(LCD_COLOR_RED);
             
-            SelectionStrat(Strategie);
+            SelectionStrat(Strategie); //affiche la stratégie selectionnée
              
             while (etat == DETAILS)
             { 
@@ -929,7 +930,7 @@
         
         case LECTURE :
             break;   
-        case AFF_WAIT_JACK : 
+        case AFF_WAIT_JACK : //FONCTIONS D'AFFICHAGE DE L'ATTENTE DU JACK
             lcd.Clear(BLANC);
             lcd.SetBackColor(LCD_COLOR_WHITE);
             lcd.SetTextColor(LCD_COLOR_BLACK);
@@ -951,10 +952,10 @@
             etat=WAIT_JACK;
             break;
             
-        case WAIT_JACK:
+        case WAIT_JACK: //VERITABLE ATTENTE DU JACK
             break;   
             
-        case COMPTEUR: 
+        case COMPTEUR:  //PEUT AFFICHER UN COMPTEUR DU TEMPS RESTANT AVANT LA FIN DE LA PARTIE OU BIEN TRES UTILE POUR PRINT DES VARIABLES CHAQUE SEC EX: gameEtat
             cptf=gameTimer.read();
             lcd.SetTextColor(LCD_COLOR_BLACK);
             cpt=(int)cptf;
@@ -983,7 +984,7 @@
             
             break;
             
-        case FIN :
+        case FIN :  //AFFICHAGE DE FIN AVEC LE SCORE FINAL
             lcd.Clear (LCD_COLOR_WHITE);
             lcd.SetBackColor(LCD_COLOR_WHITE);
             #ifdef ROBOT_BIG
@@ -1149,12 +1150,12 @@
         break;
         case ETAT_GAME_WAIT_FOR_JACK:
             if(instruction.order==POSITION_DEBUT){
-                switch(etat_pos){
+                switch(etat_pos){       // AUTOMATE PERMETTANT AU ROBOT DE SE POSITIONNER TOUT SEUL AU DEBUT DE LA PARTIE (Ne PAS RETIRER LE JACK PENDANT CE TEMPS !!!)
                     case RECALAGE_1:
                         waitingAckID = ASSERVISSEMENT_RECALAGE;
                         waitingAckFrom = ACKNOWLEDGE_MOTEUR; 
                         #ifdef ROBOT_SMALL
-                        GoStraight(3000, 1,MOITIEE_ROBOT-5, 0);  //on se recale contre le mur donc il faut donner la valeur du centre du robot
+                        GoStraight(3000, 1,MOITIEE_ROBOT-5, 0);  //on se recale contre le mur donc il faut donner la valeur du centre du robot (les -5 qui trainent sont dus au tables pourraves sur place)
                         #else
                         GoStraight(-3000, 1,MOITIEE_ROBOT-5, 0);
                         #endif
@@ -1860,7 +1861,7 @@
     if(FIFO_max_occupation<FIFO_occupation)
         FIFO_max_occupation=FIFO_occupation;
     if(FIFO_occupation!=0) {
-    int identifiant=msgRxBuffer[FIFO_lecture].id;
+        int identifiant=msgRxBuffer[FIFO_lecture].id;
         switch(identifiant) {
                 
             case ALIVE_MOTEUR:
@@ -1912,7 +1913,7 @@
                
             /////////////////////////////////////Acknowledges de Reception de la demande d'action////////////////////////////////////////   
             case ACKNOWLEDGE_HERKULEX: 
-            case ACKNOWLEDGE_BALISE:    //pas de break donc passe directement dans INSTRUCTION_END_AX12 mais conserve l'ident initial
+            case ACKNOWLEDGE_BALISE:    //pas de break donc passe directement dans ACK_FIN_ACTION mais conserve l'ident initial
             
             case ACKNOWLEDGE_TELEMETRE:    
             /////////////////////////////////////////////Acknowledges de la fin d'action/////////////////////////////////////////////////  
@@ -2013,7 +2014,7 @@
                 }
             break;
             
-            case OBJET_SUR_TABLE:
+            /*case OBJET_SUR_TABLE:
                 if (msgRxBuffer[FIFO_lecture].data[1] == 0xff){
                         
                         gameEtat = ETAT_WARNING_END_LAST_INSTRUCTION;
@@ -2027,7 +2028,7 @@
                         strat_instructions[actual_instruction+1].arg2 = returnY(strat_instructions[actual_instruction].arg2);
                     }
                 modeTelemetre = 0;
-            break;
+            break;*/
             
             case RECEPTION_DATA:
                 telemetreDistance=char_to_short_transformation(msgRxBuffer[FIFO_lecture].data[0], msgRxBuffer[FIFO_lecture].data[1]);