code de la carte IHM avant les bugs et avant le travail effectué avec Melchior

Dependencies:   mbed SerialHalfDuplex SDFileSystem liaison_Bluetooth ident_crac DISCO-F469NI_portrait

Revision:
36:c37dbe2be916
Parent:
35:2a745eeb7922
Child:
37:f1a8734c193d
Child:
38:9d6a3ccc0582
diff -r 2a745eeb7922 -r c37dbe2be916 Strategie/Strategie.cpp
--- a/Strategie/Strategie.cpp	Fri May 21 16:19:18 2021 +0000
+++ b/Strategie/Strategie.cpp	Mon May 31 13:36:03 2021 +0000
@@ -49,6 +49,7 @@
 //unsigned char FIFO_ecriture=0; //Position du fifo pour la reception CAN
 int flagSendCan=1;
 unsigned char Cote = 0; //0 -> JAUNE | 1 -> VIOLET
+unsigned char Hauteur = 0; 
 unsigned short angleRecalage = 0;
 unsigned char checkCurrent = 0;
 unsigned char countAliveCard = 0;
@@ -101,8 +102,8 @@
 
 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 (JackB1 sur la carte esclave)
-
+InterruptIn jackB1(PG_11); //  entrée numerique en interruption pour le jack (JackB1 sur la carte esclave)
+InterruptIn jackA1(PA_6);
 
 
 
@@ -264,8 +265,10 @@
             }
             //tactile_printf("Attente du JACK.");
             setAsservissementEtat(1);//On réactive l'asservissement
-            jack.mode(PullDown); // désactivation de la résistance interne du jack
-            jack.fall(&jack_ISR); // création de l'interrupt attachée au changement d'état (front descendant) sur le jack
+            jackB1.mode(PullDown); // désactivation de la résistance interne du jack
+            jackB1.fall(&jack_ISR); // création de l'interrupt attachée au changement d'état (front descendant) sur le jack
+            jackA1.mode(PullDown); // désactivation de la résistance interne du jack
+            jackA1.fall(&jack_ISR); // création de l'interrupt attachée au changement d'état (front descendant) sur le jack
 
             localData2 = POSITION_DEBUT_T;
             localData3 = POSITION_DEBUT_Y;
@@ -286,7 +289,11 @@
                         SendRawId(RECALAGE_START);
                         waitingAckID = ASSERVISSEMENT_RECALAGE;
                         waitingAckFrom = ACKNOWLEDGE_MOTEUR;
-                        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)
+                        if(Hauteur==0) 
+                            localData3=2000-(MOITIEE_ROBOT);
+                        else 
+                            localData3=MOITIEE_ROBOT;
+                        GoStraight(1000, 1, localData3, 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)
                         while(waitingAckID !=0 && waitingAckFrom !=0)
                             canProcessRx();
                         waitingAckID_FIN=ASSERVISSEMENT_RECALAGE;
@@ -312,11 +319,11 @@
                     case TOURNER:
                         waitingAckID = ASSERVISSEMENT_ROTATION;
                         waitingAckFrom = ACKNOWLEDGE_MOTEUR;
-                        if(Cote==0) {
-                            localData2 = 900;
-                        } else {
-                            localData2=-900;
-                        }
+                        if(Cote==0 && Hauteur==1) localData2 = 900;
+                        else if(Cote == 0 && Hauteur==0 )localData2=-900;
+                        else if(Cote==1 && Hauteur==1 )localData2=-900;
+                        else if(Cote==1 && Hauteur==0 )localData2=900;
+                        
                         Rotate(localData2);
                         while(waitingAckID !=0 && waitingAckFrom !=0)
                             canProcessRx();
@@ -335,7 +342,7 @@
                         } else {
                             localData3=MOITIEE_ROBOT;
                         }
-                        GoStraight(3000, 2,localData3, 0);  //on se recale contre le mur donc il faut donner la valeur du centre du robot
+                        GoStraight(1000, 2,localData3, 0);  //on se recale contre le mur donc il faut donner la valeur du centre du robot
                         while(waitingAckID !=0 && waitingAckFrom !=0)
                             canProcessRx();
                         waitingAckID_FIN=ASSERVISSEMENT_RECALAGE;
@@ -398,7 +405,8 @@
                 gameTimer.start();
             }
             gameTimer.reset();
-            jack.fall(NULL);//On désactive l'interruption du jack
+            jackB1.fall(NULL);//On désactive l'interruption du jack
+            jackA1.fall(NULL);//On désactive l'interruption du jack
             //SendRawId(GLOBAL_START);
             Jack=0;                                          //à envoyer sur le CAN et en direct pour l'automate de l'ihm ou sur CANV
             //tactile_printf("Start");//Pas vraiment utile mais bon
@@ -674,7 +682,7 @@
                         waitingAckID = ASSERVISSEMENT_RECALAGE;
                         waitingAckFrom = ACKNOWLEDGE_MOTEUR;
 
-                        localData2 = (((instruction.direction == FORWARD)?1:-1)*3000);//On indique une distance de 3000 pour etre sur que le robot va ce recaler
+                        localData2 = (((instruction.direction == FORWARD)?1:-1)*1000);//On indique une distance de 3000 pour etre sur que le robot va ce recaler
 
                         if(instruction.precision == RECALAGE_Y) {
                             localData5 = 2;