Programme carte strategie (disco)
Dependencies: mbed SerialHalfDuplex SDFileSystem DISCO-F469NI_portrait liaison_Bluetooth ident_crac
Diff: Strategie/Strategie.cpp
- Revision:
- 42:657b6a573e11
- Parent:
- 41:b029ddc4d60e
- Child:
- 44:badcbe8766e9
diff -r b029ddc4d60e -r 657b6a573e11 Strategie/Strategie.cpp --- a/Strategie/Strategie.cpp Fri May 11 12:09:26 2018 +0000 +++ b/Strategie/Strategie.cpp Thu May 17 13:08:31 2018 +0000 @@ -287,6 +287,8 @@ flagSendCan = 1; } + +//Affiche une variable sur l'écran tactile// void affichage_var(double Var){ if(ligne==7) ligne=0; @@ -296,7 +298,12 @@ //ligne++; } - + + +/****************************************************************************************/ +/* FUNCTION NAME: affichage_debug */ +/* DESCRIPTION : Affiche l'état de gameEtat sur l'écran lcd */ +/****************************************************************************************/ void affichage_debug(int Var){ int i; int conv=(int)Var; @@ -310,7 +317,7 @@ lcd.SetBackColor(VERT); lcd.DisplayStringAt(0, LINE(20+i), (uint8_t *)tableau_aff[i], LEFT_MODE); } - /*while(!ack_bluetooth){ + /*while(!ack_bluetooth){ // mode pas à pas en bluetooth ou via écran //liaison_bluetooth(); } ack_bluetooth=0;*/ @@ -318,7 +325,10 @@ while(SUIVANT.Touched());*/ } - +/****************************************************************************************/ +/* FUNCTION NAME: automate_etat_ihm */ +/* DESCRIPTION : Automate de gestion de l'affichage */ +/****************************************************************************************/ void automate_etat_ihm(void) { int j; @@ -329,7 +339,7 @@ ts.GetState(&TS_State); switch (etat) { - case INIT : + case INIT : //intialise l'écran et passe à l'attente d'initialisation des cartes ts.GetState(&TS_State); canProcessRx(); @@ -357,7 +367,7 @@ etat=ATT; break; - case ATT : + case ATT : //Si les cartes sont présentes passe directement à choix sinon attente de force Launch (cette partie est encore buggée mais les cartes affichent bien leur présence donc faut juste force launch tout le temps...) if (flag==1){ etat = CHOIX; gameEtat = ETAT_CONFIG; @@ -371,7 +381,7 @@ break; - case CHOIX : + case CHOIX : //Match ou DEMO lcd.SetBackColor(LCD_COLOR_WHITE); lcd.SetTextColor(LCD_COLOR_BLACK); lcd.Clear (LCD_COLOR_WHITE); @@ -405,10 +415,10 @@ TEST_TIR_BALLE.Draw(VERT, 0); TEST_IMMEUBLE.Draw(VERT,0); TEST_TRIEUR.Draw(VERT,0); - if(gameEtat == ETAT_CONFIG) {//C'est bon on a le droit de modifier les config // - InversStrat = 0;//Pas d'inversion de la couleur // A changer , discussion avec l'ihm + if(gameEtat == ETAT_CONFIG) {//C'est bon on a le droit de modifier les config// + InversStrat = 0;//Pas d'inversion de la couleur } - while (etat == DEMO) + while (etat == DEMO) ////////////////////////////LISTE DES DIFFERENTES DEMOS POSSIBLES/////////////////////////////////////////// { canProcessRx(); if(TEST_HERKULEX.Touched()) @@ -426,20 +436,20 @@ etat = TEST_SERVO; lcd.Clear(LCD_COLOR_WHITE); ModeDemo=1; - } - + } else if(TEST_LASER.Touched()) { //Strat = 0x11; while(TEST_LASER.Touched()); TEST_LASER.Draw(0xFFF0F0F0, 0); etat = TEST_TELEMETRE; - } + } else if (TEST_COULEURS.Touched()){ while(TEST_COULEURS.Touched()); TEST_LASER.Draw(0xFFF0F0F0, 0); etat =TEST_CAPTEURS ; } + else if (TEST_TIR_BALLE.Touched()){ while(TEST_TIR_BALLE.Touched()); TEST_TIR_BALLE.Draw(0xFFF0F0F0, 0); @@ -453,7 +463,7 @@ trame_Tx.data[0]=0x2; can2.write(trame_Tx); ModeDemo=1; - } + } else if(TEST_IMMEUBLE.Touched()){ while(TEST_IMMEUBLE.Touched()); TEST_IMMEUBLE.Draw(0xFFF0F0F0, 0); @@ -464,9 +474,7 @@ while(TEST_TRIEUR.Touched()); etat=DEMO_TRIEUR; lcd.Clear(LCD_COLOR_WHITE); - } - - + } if(RETOUR.Touched()) { etat = CHOIX; @@ -474,20 +482,13 @@ } if(gameEtat == ETAT_CONFIG) {//C'est bon on a le droit de modifier les config - /*if (Strat< 0x10){ // Si la strat est une strat de match, on desactive le mode demo - ModeDemo = 0; - } - else { // sinon, on active le mode demo, utile pour la fin de la demo - ModeDemo = 1; - }*/ Ack_strat = 1; wait_ms(10); - //tactile_printf("Strat %d, Asser desactive",Strat); } - //SelectionStrat(Strategie); } break; - case DEMO_TRIEUR: + ///////////////////////////////TESTE LES SERVOS LIES AU TRI DES BALLES/////////////////////////////// + case DEMO_TRIEUR: lcd.SetBackColor(LCD_COLOR_WHITE); lcd.DisplayStringAt(20, LINE(2), (uint8_t *)"DEMONSTRATION COURS", LEFT_MODE); TRI.Draw(VERT, 0); @@ -535,7 +536,7 @@ } break; - case DEMO_IMMEUBLE: + case DEMO_IMMEUBLE: //TESTE LE MONTE IMMEUBLE SUIVANT UN CODE COULEUR CHOISI int color=0; lcd.SetBackColor(LCD_COLOR_WHITE); lcd.DisplayStringAt(20, LINE(2), (uint8_t *)"Choix du code couleur", LEFT_MODE); @@ -698,7 +699,7 @@ - case TEST_SERVO: + case TEST_SERVO: //TEST DU RESTE DES SERVOS DISPO HORS TIR lcd.SetBackColor(LCD_COLOR_WHITE); lcd.DisplayStringAt(20, LINE(2), (uint8_t *)"DEMONSTRATION COURS", LEFT_MODE); ABAISSE_BLOC.Draw(VERT, 0); @@ -747,7 +748,7 @@ } break; - case TEST_TIR: + case TEST_TIR: // TEST DES FONCTIONS LIEES AUX TIRS lcd.SetBackColor(LCD_COLOR_WHITE); lcd.DisplayStringAt(20, LINE(2), (uint8_t *)"DEMONSTRATION COURS", LEFT_MODE); TIR_CHATEAU.Draw(VERT, 0); @@ -793,7 +794,7 @@ - case TEST_TELEMETRE: + case TEST_TELEMETRE: //AFFICHAGE DE LA VALEUR LUE PAR LES 4 TELEMETRES ModeDemo=1; lcd.Clear(LCD_COLOR_WHITE); lcd.SetBackColor(LCD_COLOR_WHITE); @@ -809,10 +810,10 @@ lcd.Clear(LCD_COLOR_WHITE); } } - break; + break; ///////////////////////////////////////////FIN DES DEMOS///////////////////////////////////////////////// - case SELECT_SIDE : + case SELECT_SIDE : // CHOIX DU COTE DU TERRAIN + INVERSION DE LA STRAT SI COTE ORANGE+ ENVOI DU COTE A LA CARTE CAPTEUR/ACTIONNEURS lcd.Clear(LCD_COLOR_WHITE); lcd.SetBackColor(LCD_COLOR_WHITE); lcd.SetTextColor(LCD_COLOR_BLACK); @@ -866,7 +867,7 @@ break; - case TACTIQUE : + case TACTIQUE : //AFFICHE LA LISTE DES STRATS AFIN DE SELECTIONNER CELLE VOULUE if (Cote == 0){ lcd.Clear(VERT); lcd.SetBackColor(VERT); @@ -896,14 +897,14 @@ wait(0.1); break; - case DETAILS : + case DETAILS : //SECONDE VALIDATION DE LA STRAT lcd.Clear(LCD_COLOR_WHITE); lcd.SetBackColor(LCD_COLOR_WHITE); lcd.SetTextColor(LCD_COLOR_BLACK); CHECK.Draw(VERT); RETOUR.Draw(LCD_COLOR_RED); - SelectionStrat(Strategie); + SelectionStrat(Strategie); //affiche la stratégie selectionnée while (etat == DETAILS) { @@ -929,7 +930,7 @@ case LECTURE : break; - case AFF_WAIT_JACK : + case AFF_WAIT_JACK : //FONCTIONS D'AFFICHAGE DE L'ATTENTE DU JACK lcd.Clear(BLANC); lcd.SetBackColor(LCD_COLOR_WHITE); lcd.SetTextColor(LCD_COLOR_BLACK); @@ -951,10 +952,10 @@ etat=WAIT_JACK; break; - case WAIT_JACK: + case WAIT_JACK: //VERITABLE ATTENTE DU JACK break; - case COMPTEUR: + case COMPTEUR: //PEUT AFFICHER UN COMPTEUR DU TEMPS RESTANT AVANT LA FIN DE LA PARTIE OU BIEN TRES UTILE POUR PRINT DES VARIABLES CHAQUE SEC EX: gameEtat cptf=gameTimer.read(); lcd.SetTextColor(LCD_COLOR_BLACK); cpt=(int)cptf; @@ -983,7 +984,7 @@ break; - case FIN : + case FIN : //AFFICHAGE DE FIN AVEC LE SCORE FINAL lcd.Clear (LCD_COLOR_WHITE); lcd.SetBackColor(LCD_COLOR_WHITE); #ifdef ROBOT_BIG @@ -1149,12 +1150,12 @@ break; case ETAT_GAME_WAIT_FOR_JACK: if(instruction.order==POSITION_DEBUT){ - switch(etat_pos){ + switch(etat_pos){ // AUTOMATE PERMETTANT AU ROBOT DE SE POSITIONNER TOUT SEUL AU DEBUT DE LA PARTIE (Ne PAS RETIRER LE JACK PENDANT CE TEMPS !!!) case RECALAGE_1: waitingAckID = ASSERVISSEMENT_RECALAGE; waitingAckFrom = ACKNOWLEDGE_MOTEUR; #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 + GoStraight(3000, 1,MOITIEE_ROBOT-5, 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-5, 0); #endif @@ -1860,7 +1861,7 @@ if(FIFO_max_occupation<FIFO_occupation) FIFO_max_occupation=FIFO_occupation; if(FIFO_occupation!=0) { - int identifiant=msgRxBuffer[FIFO_lecture].id; + int identifiant=msgRxBuffer[FIFO_lecture].id; switch(identifiant) { case ALIVE_MOTEUR: @@ -1912,7 +1913,7 @@ /////////////////////////////////////Acknowledges de Reception de la demande d'action//////////////////////////////////////// case ACKNOWLEDGE_HERKULEX: - case ACKNOWLEDGE_BALISE: //pas de break donc passe directement dans INSTRUCTION_END_AX12 mais conserve l'ident initial + case ACKNOWLEDGE_BALISE: //pas de break donc passe directement dans ACK_FIN_ACTION mais conserve l'ident initial case ACKNOWLEDGE_TELEMETRE: /////////////////////////////////////////////Acknowledges de la fin d'action///////////////////////////////////////////////// @@ -2013,7 +2014,7 @@ } break; - case OBJET_SUR_TABLE: + /*case OBJET_SUR_TABLE: if (msgRxBuffer[FIFO_lecture].data[1] == 0xff){ gameEtat = ETAT_WARNING_END_LAST_INSTRUCTION; @@ -2027,7 +2028,7 @@ strat_instructions[actual_instruction+1].arg2 = returnY(strat_instructions[actual_instruction].arg2); } modeTelemetre = 0; - break; + break;*/ case RECEPTION_DATA: telemetreDistance=char_to_short_transformation(msgRxBuffer[FIFO_lecture].data[0], msgRxBuffer[FIFO_lecture].data[1]);