Programme carte strategie (disco)
Dependencies: mbed SerialHalfDuplex SDFileSystem DISCO-F469NI_portrait liaison_Bluetooth ident_crac
Diff: Strategie/Strategie.cpp
- 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;