Programme carte strategie (disco)

Dependencies:   mbed SerialHalfDuplex SDFileSystem DISCO-F469NI_portrait liaison_Bluetooth ident_crac

Revision:
2:8d8e2cf798a3
Parent:
1:116040d14164
Child:
4:88431b537477
diff -r 116040d14164 -r 8d8e2cf798a3 Strategie/Strategie.cpp
--- a/Strategie/Strategie.cpp	Fri Apr 15 10:49:40 2016 +0000
+++ b/Strategie/Strategie.cpp	Fri Apr 15 16:43:35 2016 +0000
@@ -1,6 +1,6 @@
 #include "Strategie.h"
 
-E_stratGameEtat     gameEtat  = ETAT_CHECK_CARTE_SCREEN;
+E_stratGameEtat     gameEtat  = ETAT_GAME_INIT;//ETAT_CHECK_CARTE_SCREEN;
 E_stratGameEtat     lastEtat  = ETAT_CHECK_CARTE_SCREEN;
 unsigned char screenChecktry = 0;
 Timer cartesCheker;//Le timer pour le timeout de la vérification des cartes
@@ -21,7 +21,7 @@
 unsigned char checkCurrent = 0;
 unsigned char countAliveCard = 0; 
 
-unsigned char InversStrat = 0;//Si à 1, indique que l'on part de l'autre cote de la table(inversion des Y)
+unsigned char InversStrat = 1;//Si à 1, indique que l'on part de l'autre cote de la table(inversion des Y)
 
 
 void chronometre_ISR (void)
@@ -239,6 +239,9 @@
                             localData2 = instruction.arg3 - theta_robot;
                         }
                     }
+                    if(InversStrat == 1) {
+                        localData2 = -localData2;
+                    }
                     Rotate(localData2);
                     waitingAckID = ASSERVISSEMENT_ROTATION;
                     waitingAckFrom = ACKNOWLEDGE_MOTEUR;
@@ -249,7 +252,14 @@
                     } else {
                         localData1 = 1;
                     }
-                    GoToPosition(instruction.arg1,instruction.arg2,instruction.arg3,localData1);
+                    
+                    if(InversStrat == 1) {
+                        //localData2 = 360 - instruction.arg3
+                        localData3 = 3000 - instruction.arg2;//Inversion du Y
+                    } else {
+                        localData3 = instruction.arg2;
+                    }
+                    GoToPosition(instruction.arg1,localData3,instruction.arg3,localData1);
                     waitingAckID = ASSERVISSEMENT_XYT;
                     waitingAckFrom = ACKNOWLEDGE_MOTEUR;
                 break;
@@ -263,7 +273,7 @@
                         //L'action est spécifique
                     } else {
                         //C'est un AX12 qu'il faut bouger
-                        AX12_setGoal(instruction.arg1,instruction.arg3,instruction.arg2);
+                        AX12_setGoal(instruction.arg1,instruction.arg3/10,instruction.arg2);
                         AX12_enchainement++;
                     }
                     waitingAckFrom = 0;
@@ -454,6 +464,19 @@
             case SERVO_AX12_DONE:
                 AX12_notifyCANEnd(((unsigned short)(msgRxBuffer[FIFO_lecture].data[0])));
             break;
+            case ECRAN_CHOICE_COLOR://Choix de la couleur
+                if(gameEtat == ETAT_CONFIG) {
+                    if(msgRxBuffer[FIFO_lecture].data[0] == 0)
+                        InversStrat = 0;//Pas d'inversion de la couleur
+                    else
+                        InversStrat = 1;//Inversion de la couleur
+                }
+            break;
+            case ECRAN_CHOICE_STRAT://Choix du fichier de stratégie à utiliser
+                if(gameEtat == ETAT_CONFIG) {
+                    
+                }
+            break;
         }        
         
         FIFO_lecture=(FIFO_lecture+1)%SIZE_FIFO;