Programme carte strategie (disco)
Dependencies: mbed SerialHalfDuplex SDFileSystem DISCO-F469NI_portrait liaison_Bluetooth ident_crac
Diff: Strategie/Strategie.cpp
- Revision:
- 40:21bb685b553b
- Parent:
- 38:76f886a1c8e6
- Child:
- 41:b029ddc4d60e
--- a/Strategie/Strategie.cpp Wed May 09 19:36:42 2018 +0000 +++ b/Strategie/Strategie.cpp Thu May 10 18:49:25 2018 +0000 @@ -67,8 +67,8 @@ char counter = 0; char check; char Jack = 1; -short SCORE_GLOBAL=10; -short SCORE_GR=0; +short SCORE_GLOBAL=0; +short SCORE_GR=20; short SCORE_PR=0; int flag = 0, flag_strat = 0, flag_timer; @@ -198,11 +198,6 @@ SendRawId(GLOBAL_GAME_END);//Indication fin de match etat=FIN; gameTimer.stop();//Arret du timer - -#ifdef ROBOT_BIG - wait_ms(2000); - doFunnyAction(); -#endif while(1);//On bloque la programme dans l'interruption } @@ -296,7 +291,7 @@ ligne=0; char aff[10]="toto"; sprintf(aff,"%lf ",Var); - lcd.DisplayStringAt(120, LINE(15+(ligne)), (uint8_t *)aff, LEFT_MODE); + lcd.DisplayStringAt(120, LINE(20+(ligne)), (uint8_t *)aff, LEFT_MODE); //ligne++; } @@ -965,7 +960,7 @@ if(cpt != cpt1){ lcd.Clear(VERT); // affichage_compteur(100-cpt); - affichage_compteur(SCORE_PR); + //affichage_compteur(SCORE_PR); #ifdef ROBOT_BIG affichage_var(SCORE_GR); #else @@ -991,10 +986,12 @@ lcd.Clear (LCD_COLOR_WHITE); lcd.SetBackColor(LCD_COLOR_WHITE); #ifdef ROBOT_BIG - affichage_compteur(SCORE_GR); - liaison_Tx.envoyer_short(PAQUET_IDENTIFIANT_FINMATCH,SCORE_GLOBAL); + // affichage_compteur(SCORE_GR); + affichage_var(SCORE_GR); + //liaison_Tx.envoyer_short(PAQUET_IDENTIFIANT_FINMATCH,SCORE_GLOBAL); #else - affichage_compteur(SCORE_PR); + //affichage_compteur(SCORE_PR); + affichage_var(SCORE_PR); #endif while(1); // force le redemarage du robot //break; @@ -1158,7 +1155,7 @@ #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 #else - GoStraight(-3000, 1,MOITIEE_ROBOT, 0); + GoStraight(-3000, 1,MOITIEE_ROBOT-5, 0); #endif while(waitingAckID !=0 && waitingAckFrom !=0) canProcessRx(); @@ -1209,7 +1206,7 @@ waitingAckID = ASSERVISSEMENT_RECALAGE; waitingAckFrom = ACKNOWLEDGE_MOTEUR; if(Cote==1) - localData3=3000-MOITIEE_ROBOT; + localData3=3000-(MOITIEE_ROBOT-5); else localData3=MOITIEE_ROBOT; #ifdef ROBOT_SMALL @@ -1546,9 +1543,16 @@ } } else if(instruction.nextActionType == WAIT) { ///Actualisation des waiting ack afin d'attendre la fin des actions - SetOdometrie(0x28, x_robot, y_robot, theta_robot); - gameEtat = ETAT_GAME_WAIT_END_INSTRUCTION; - switch(instruction.order) + wait_ms(200); + #ifdef ROBOT_BIG + SetOdometrie(ODOMETRIE_BIG_POSITION, x_robot, y_robot, theta_robot); + #else + SetOdometrie(ODOMETRIE_SMALL_POSITION, x_robot, y_robot, theta_robot); + #endif + wait_ms(200); + + gameEtat = ETAT_GAME_WAIT_END_INSTRUCTION; + switch(instruction.order) { case MV_COURBURE: waitingAckID_FIN = ASSERVISSEMENT_COURBURE; @@ -1671,9 +1675,7 @@ case ETAT_WARNING_TIMEOUT://Attente de la trame fin de danger ou du timeout de 2s if(timeoutWarning.read_ms() >= BALISE_TIMEOUT)//ça fait plus de 2s, il faut changer de stratégie { - if(instruction.nextLineOK == instruction.nextLineError) - gameEtat = ETAT_EVITEMENT; - else + if(instruction.nextLineOK != instruction.nextLineError) { actual_instruction = instruction.nextLineError; gameEtat = ETAT_GAME_LOAD_NEXT_INSTRUCTION; @@ -1697,6 +1699,14 @@ #endif gameEtat = ETAT_END;*/ + wait_ms(200); + #ifdef ROBOT_BIG + SetOdometrie(ODOMETRIE_BIG_POSITION, x_robot, y_robot, theta_robot); + #else + SetOdometrie(ODOMETRIE_SMALL_POSITION, x_robot, y_robot, theta_robot); + #endif + wait_ms(200); + switch(actionPrecedente){ case MV_LINE: @@ -2213,7 +2223,7 @@ dizaine = nombre/10; unite = nombre-(10*dizaine); print_segment(unite,-50); - print_segment(dizaine,125); + print_segment(dizaine,100); if(centaine!=0){ print_segment(centaine,350); }