![](/media/cache/group/default_image.jpg.50x50_q85.jpg)
code avec la sortie d'évitement en plus géré par un ticker, ce code et le code "avec_modifs" buggent en match avec seulement la stratégie agressive.
Dependencies: mbed SerialHalfDuplex SDFileSystem liaison_Bluetooth ident_crac DISCO-F469NI_portrait
Diff: Strategie/Strategie.cpp
- Revision:
- 5:81aac085516f
- Parent:
- 1:7e925468f9d9
- Child:
- 7:44eec996a76e
--- a/Strategie/Strategie.cpp Fri Jan 31 07:12:17 2020 +0000 +++ b/Strategie/Strategie.cpp Fri Jan 31 14:37:29 2020 +0000 @@ -187,24 +187,12 @@ unsigned char DT_ARG_interrupt=0; -#ifdef ROBOT_BIG - - -unsigned short id_check[NOMBRE_CARTES]= {CHECK_MOTEUR,CHECK_BALISE}; -unsigned short id_alive[NOMBRE_CARTES]= {ALIVE_MOTEUR,ALIVE_BALISE}; - -InterruptIn jack(PG_11); // entrée numerique en interruption pour le jack -#else - unsigned short id_check[NOMBRE_CARTES]= {CHECK_MOTEUR,CHECK_BALISE}; unsigned short id_alive[NOMBRE_CARTES]= {ALIVE_MOTEUR,ALIVE_BALISE}; InterruptIn jack(PG_11); // entrée numerique en interruption pour le jack -#endif - - @@ -462,23 +450,9 @@ while(1) { TEST_TIR_BALLE.Draw(0xFFF0F0F0, 0); // rn42_Tx.printf("A");//experience -#ifdef ROBOT_SMALL liaison_Tx.envoyer_short(0x30,666); pc.printf("data\r"); -#else - // lire(); - /* if (bluetooth.readable()) - pc.putc(bluetooth.getc()); - - if (pc.readable()) { - char c = pc.getc(); - if (c == 'A') { - liaison.envoyer_short(PAQUET_IDENTIFIANT_RAFRAICHIRSCORE, 20); - pc.printf("rafraichir\n"); - } - }*/ -#endif } //ModeDemo=1; } else if(TEST_IMMEUBLE.Touched()) { @@ -718,11 +692,7 @@ lcd.Clear(VERT); // affichage_compteur(100-cpt); //affichage_compteur(SCORE_PR); -#ifdef ROBOT_BIG - affichage_var(SCORE_GR); -#else affichage_var(SCORE_PR); -#endif if(liaison_pr.paquet_en_attente()) { PaquetDomotique *paquet=liaison_pr.lire(); if(paquet->identifiant==PAQUET_IDENTIFIANT_AJOUTERSCORE) { @@ -742,14 +712,10 @@ case FIN : //AFFICHAGE DE FIN AVEC LE SCORE FINAL lcd.Clear (LCD_COLOR_WHITE); lcd.SetBackColor(LCD_COLOR_WHITE); -#ifdef ROBOT_BIG - // affichage_compteur(SCORE_GR); - affichage_var(SCORE_GR); - //liaison_Tx.envoyer_short(PAQUET_IDENTIFIANT_FINMATCH,SCORE_GLOBAL); -#else + //affichage_compteur(SCORE_PR); affichage_var(SCORE_PR); -#endif + while(1); // force le redemarage du robot //break; @@ -904,11 +870,7 @@ SendRawId(RECALAGE_START); waitingAckID = ASSERVISSEMENT_RECALAGE; waitingAckFrom = ACKNOWLEDGE_MOTEUR; -#ifdef ROBOT_SMALL GoStraight(3000, 1,MOITIEE_ROBOT, 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, 0); -#endif while(waitingAckID !=0 && waitingAckFrom !=0) canProcessRx(); waitingAckID_FIN=ASSERVISSEMENT_RECALAGE; @@ -921,11 +883,7 @@ case RECULER_1: waitingAckID = ASSERVISSEMENT_RECALAGE; waitingAckFrom = ACKNOWLEDGE_MOTEUR; -#ifdef ROBOT_SMALL GoStraight(-100, 0, 0, 0);//-450 -#else - GoStraight(250, 0, 0, 0); -#endif while(waitingAckID !=0 && waitingAckFrom !=0) canProcessRx(); waitingAckID_FIN=ASSERVISSEMENT_RECALAGE; @@ -961,11 +919,7 @@ } else { localData3=MOITIEE_ROBOT; } -#ifdef ROBOT_SMALL GoStraight(3000, 2,localData3, 0); //on se recale contre le mur donc il faut donner la valeur du centre du robot -#else - GoStraight(-3000, 2,localData3, 0); -#endif while(waitingAckID !=0 && waitingAckFrom !=0) canProcessRx(); waitingAckID_FIN=ASSERVISSEMENT_RECALAGE; @@ -978,11 +932,7 @@ case RECULER_2: waitingAckID = ASSERVISSEMENT_RECALAGE; waitingAckFrom = ACKNOWLEDGE_MOTEUR; -#ifdef ROBOT_SMALL GoStraight(-100, 0, 0, 0); -#else - GoStraight(250, 0, 0, 0); -#endif while(waitingAckID !=0 && waitingAckFrom !=0) canProcessRx(); waitingAckID_FIN=ASSERVISSEMENT_RECALAGE; @@ -1163,19 +1113,11 @@ }*/ BendRadius(instruction.arg1, localData2, localData1, localData5); -#ifdef ROBOT_SMALL if(localData2>0) { direction=1; } else { direction=-1; } -#else - if(localData2>0) { - direction=-1; - } else { - direction=1; - } -#endif if(localData2>0)alph=localData2; else alph=-localData2; alpha = localData2*M_PI/1800.0f; @@ -1428,12 +1370,7 @@ } else { gameEtat = ETAT_GAME_WAIT_ACK; } -#ifdef ROBOT_SMALL - /*actual_instruction = instruction.nextLineOK;//On indique que l'on va charger l'instruction suivante - gameEtat = ETAT_GAME_LOAD_NEXT_INSTRUCTION;*/ -#endif return; -#ifdef ROBOT_SMALL } else if (tempo == 2) { // on est dans le cas de l'avance selon le telemetre waitingAckID = ASSERVISSEMENT_RECALAGE; @@ -1443,7 +1380,6 @@ GoStraight(telemetreDistance, 0, 0, 0); // on reset la distance du telemetre à 0 telemetreDistance = 5000; -#endif } else { //C'est un AX12 qu'il faut bouger //AX12_setGoal(instruction.arg1,instruction.arg3/10,instruction.arg2); @@ -1789,25 +1725,6 @@ } */ break; - - -#ifdef ROBOT_BIG -#define point_balance 12 -#define point_accelerateur 10 - case NB_PALETS_BLEU: //nb de palets bleu mis dans l'accelerateur - unsigned short palets_bleu=(unsigned short)msgRxBuffer[FIFO_lecture].data[0]; - SCORE_GR+=palets_bleu*point_balance; - //SCORE_GLOBAL=SCORE_GR+SCORE_PR; - //liaison_Tx.envoyer_short(0x30,SCORE_GLOBAL); - break; - - case NB_PALETS_VERTS://nb de palets vert/rouge mis dans l'accelerateur - unsigned short palets_verts=(unsigned short)msgRxBuffer[FIFO_lecture].data[0]; - SCORE_GR+=palets_verts*point_accelerateur; - //SCORE_GLOBAL=SCORE_GR+SCORE_PR; - //liaison_Tx.envoyer_short(0x30,SCORE_GLOBAL); - break; -#endif case ODOMETRIE_BIG_POSITION: case ODOMETRIE_SMALL_POSITION: