Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed SerialHalfDuplex SDFileSystem DISCO-F469NI_portrait liaison_Bluetooth ident_crac
Diff: Strategie/Strategie.cpp
- Revision:
- 42:657b6a573e11
- Parent:
- 41:b029ddc4d60e
- Child:
- 44:badcbe8766e9
--- 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]);