homologation gros robot et test avec les ack de la carte a tout faire

Fork of CRAC-Strat_2017_HOMOLOGATION_PETIT_ROBOT by CRAC Team

Revision:
21:7c60d6dfcab5
Parent:
20:de595e4ff01d
--- a/Strategie/Strategie.cpp	Wed May 24 21:09:59 2017 +0000
+++ b/Strategie/Strategie.cpp	Thu May 25 06:36:48 2017 +0000
@@ -25,8 +25,8 @@
 //unsigned short id_check[NOMBRE_CARTES]= {CHECK_BALISE,CHECK_MOTEUR,CHECK_ACTIONNEURS,CHECK_AX12,CHECK_POMPES};
 //unsigned short id_alive[NOMBRE_CARTES]= {ALIVE_BALISE,ALIVE_MOTEUR,ALIVE_ACTIONNEURS,ALIVE_AX12,ALIVE_POMPES};
 
-unsigned short id_check[NOMBRE_CARTES]= {CHECK_MOTEUR,CHECK_MOTEUR};
-unsigned short id_alive[NOMBRE_CARTES]= {ALIVE_MOTEUR,ALIVE_MOTEUR};
+unsigned short id_check[NOMBRE_CARTES]= {CHECK_MOTEUR,CHECK_BALISE,CHECK_POMPES,CHECK_ACTIONNEURS};
+unsigned short id_alive[NOMBRE_CARTES]= {ALIVE_MOTEUR,ALIVE_BALISE,ALIVE_POMPES,ALIVE_ACTIONNEURS};
 
 InterruptIn jack(p25); //  entrée analogique en interruption pour le jack
 #else
@@ -222,6 +222,7 @@
             Il est aussi possible d'envoyer les ordres de debug
             */
             modeTelemetre = 0;
+            telemetreDistance = 0;
         break;
         case ETAT_GAME_INIT:
             //On charge la liste des instructions
@@ -410,8 +411,9 @@
                             gameEtat = ETAT_GAME_LOAD_NEXT_INSTRUCTION;
                         #endif
                         return;
-                     #ifdef ROBOT_SMALL   
+                       
                     } else if (tempo == 2) {
+                    #ifdef ROBOT_SMALL 
                         // on est dans le cas de l'avance selon le telemetre
                         waitingAckID = ASSERVISSEMENT_RECALAGE;
                         waitingAckFrom = ACKNOWLEDGE_MOTEUR;
@@ -420,7 +422,7 @@
                         GoStraight(telemetreDistance, 0, 0, 0);
                         // on reset la distance du telemetre à 0
                         telemetreDistance = 5000;
-                        #endif
+                    #endif
                     }else{
                         //C'est un AX12 qu'il faut bouger
                         //AX12_setGoal(instruction.arg1,instruction.arg3/10,instruction.arg2);
@@ -652,8 +654,10 @@
         
         switch(msgRxBuffer[FIFO_lecture].id) {
             case DEBUG_FAKE_JAKE://Permet de lancer le match à distance
+            case GLOBAL_JACK:
                 if(gameEtat == ETAT_GAME_WAIT_FOR_JACK) {
                     gameEtat = ETAT_GAME_START;
+                    SendRawId(ACKNOWLEDGE_JACK);
                 }
             break;
             
@@ -775,7 +779,7 @@
                         if(gameEtat > ETAT_GAME_START && gameEtat != ETAT_WARNING_TIMEOUT)
                         {
                             SendRawId(ASSERVISSEMENT_STOP);
-                            //while(1);
+                            while(1);  // while(1) pour se stop avec la balise
                             gameEtat = ETAT_WARNING_TIMEOUT;
                             if(gameEtat != ETAT_WARING_END_BALISE_WAIT) {
                                 timeoutWarning.reset();