Classes et code de la partie pompe du Robot 2021

Dependencies:   mbed ident_crac

Revision:
8:ba95705cf7d4
Parent:
7:b7dc6201b520
Child:
9:6869e3869638
--- a/main.cpp	Fri Mar 05 18:46:42 2021 +0000
+++ b/main.cpp	Wed May 19 09:53:33 2021 +0000
@@ -9,6 +9,7 @@
 void interruption_reception(void) ;
 void gestion_Message_CAN(void) ;
 void Envoi_msg_CAN(char donnee);
+void initialisation_CAN(void) ;
 
 //Fin de jeu
 char end_game = 0;
@@ -25,7 +26,9 @@
 int main()
 {    
     bus_CAN.attach(&interruption_reception) ;
- 
+    
+    initialisation_CAN() ;
+    
     while(1)
     {
             //bus_CAN(envoie); 
@@ -63,12 +66,124 @@
     {
         case VENT_AT:
                 num_groupe = commande_carte.data[0];
-                classe_pompe.aspirer(num_groupe) ;
+                if(num_groupe<6)
+                {
+                    if(num_groupe == 0) num_groupe = 3;
+                    else if (num_groupe == 1) num_groupe = 2;
+                    else if (num_groupe == 2) num_groupe = 1;
+                    else if (num_groupe == 3) num_groupe = 5;
+                    else if (num_groupe == 4) num_groupe = 6;
+                    else if (num_groupe == 5) num_groupe = 7;
+                    classe_pompe.aspirer(num_groupe);
+                }
+                else if(num_groupe>5)
+                {
+                    switch(num_groupe)
+                    {
+                    case 10:
+                        classe_pompe.aspirer(2);
+                        classe_pompe.aspirer(3);
+                    break;
+
+                    case 20:
+                        classe_pompe.aspirer(1);
+                        classe_pompe.aspirer(3);
+                    break;
+
+                    case 21:
+                        classe_pompe.aspirer(2);
+                        classe_pompe.aspirer(1);
+                    break;
+
+                    case 210:
+                        classe_pompe.aspirer(3);
+                        classe_pompe.aspirer(2);
+                        classe_pompe.aspirer(1);
+                    break;
+
+                    case 43:
+                        classe_pompe.aspirer(5);
+                        classe_pompe.aspirer(6);
+                    break;
+
+                    case 53:
+                        classe_pompe.aspirer(5);
+                        classe_pompe.aspirer(7);
+                    break;
+
+                    case 54:
+                        classe_pompe.aspirer(7);
+                        classe_pompe.aspirer(6);
+                    break;
+
+                    case 66:
+                        classe_pompe.aspirer(7);
+                        classe_pompe.aspirer(6);
+                        classe_pompe.aspirer(5);
+                    break;
+                    }
+                }
                 break;
                 
         case VENT_RE:
                 num_groupe = commande_carte.data[0];
-                classe_pompe.relacher(num_groupe) ;
+                if(num_groupe<6)
+                {
+                    if(num_groupe == 0) num_groupe = 3;
+                    else if (num_groupe == 1) num_groupe = 2;
+                    else if (num_groupe == 2) num_groupe = 1;
+                    else if (num_groupe == 3) num_groupe = 5;
+                    else if (num_groupe == 4) num_groupe = 6;
+                    else if (num_groupe == 5) num_groupe = 7;
+                    classe_pompe.relacher(num_groupe);
+                }
+                else if(num_groupe>5)
+                {
+                    switch(num_groupe)
+                    {
+                    case 10:
+                        classe_pompe.relacher(2);
+                        classe_pompe.relacher(3);
+                    break;
+
+                    case 20:
+                        classe_pompe.relacher(1);
+                        classe_pompe.relacher(3);
+                    break;
+
+                    case 21:
+                        classe_pompe.relacher(2);
+                        classe_pompe.relacher(1);
+                    break;
+
+                    case 210:
+                        classe_pompe.relacher(3);
+                        classe_pompe.relacher(2);
+                        classe_pompe.relacher(1);
+                    break;
+
+                    case 43:
+                        classe_pompe.relacher(5);
+                        classe_pompe.relacher(6);
+                    break;
+
+                    case 53:
+                        classe_pompe.relacher(7);
+                        classe_pompe.relacher(5);
+                    break;
+
+                    case 54:
+                        classe_pompe.relacher(7);
+                        classe_pompe.relacher(6);
+                    break;
+
+                    case 66:
+                        classe_pompe.relacher(7);
+                        classe_pompe.relacher(6);
+                        classe_pompe.relacher(5);
+                    break;
+                    }
+                }
                 break;   
             
         case VENT_ETAT:
@@ -127,4 +242,13 @@
     etat_ventouses.data[0]=donnee;
 
     bus_CAN.write(etat_ventouses);
+}
+
+void initialisation_CAN(void) 
+{
+    CANMessage msg_init;
+    msg_init.id = ALIVE_ACTIONNEURS_ARRIERE;    
+    msg_init.len=0;
+
+    bus_CAN.write(msg_init);
 }
\ No newline at end of file