Classes et code de la partie pompe du Robot 2021

Dependencies:   mbed ident_crac

Revision:
6:b06c430a7e14
Parent:
4:4bae30d48662
Child:
7:b7dc6201b520
diff -r 4bae30d48662 -r b06c430a7e14 main.cpp
--- a/main.cpp	Mon Jan 18 15:24:35 2021 +0000
+++ b/main.cpp	Tue Jan 19 10:06:36 2021 +0000
@@ -4,10 +4,11 @@
 //initialisations relatives au Bus CAN
 CAN bus_CAN(PB_8, PB_9, 1000000) ;
 CANMessage commande_carte ;
+CANMessage envoie ;
 int flag_reception_CAN = 0 ;
 void interruption_reception(void) ;
 void gestion_Message_CAN(void) ;
-void Envoi_msg_test(void);
+void Envoi_msg_CAN(char donnee);
 
 //Fin de jeu
 char end_game = 0;
@@ -24,37 +25,24 @@
 int main()
 {    
     bus_CAN.attach(&interruption_reception) ;
-
-    
-     
+ 
     while(1)
     {
-        bus_CAN(envoie);
-        //if(flag_reception_CAN)
-//        {
-//            gestion_Message_CAN() ;
-//        }
-//        
-//        if(end_game)
-//        {
-//            for (int i=0 ; i<8 ; i++)
-//            {
-//                classe_pompe.stop_pompe(i);
-//                wait_ms(10) ;
-//            }
-//        }
-        //for(int i=1 ; i<9 ; i++)
-//        {
-            classe_pompe.aspirer(2) ;
-            wait(1) ;
-            classe_pompe.relacher(2) ;
-            wait_ms(100) ;
-                //detrompeur_possession = classe_pompe.possession(2) ;
-            
-            //detrompeur_possession = classe_pompe.possession(2) ;
-            wait_ms(1000) ;
-//        }
+            //bus_CAN(envoie); 
+            if(flag_reception_CAN)
+            {
+            gestion_Message_CAN() ;
+        }
         
+        if(end_game)
+        {
+            for (int i=0 ; i<8 ; i++)
+            {
+                classe_pompe.stop_pompe(i);
+                wait_ms(10) ;
+            }
+        }
+        //Envoi_msg_test(); //envoie un msg pour tester la liaison can
     }
         
 }
@@ -69,6 +57,7 @@
 {
     int identifiant = commande_carte.id ;
     char num_groupe = 1 ;
+    char etat_groupe = 0 ;
     
     switch (identifiant) 
     {
@@ -83,13 +72,25 @@
                 break;   
             
         case VENT_ETAT:
-                classe_pompe.etat_actuel(num_groupe) ;
+                num_groupe = commande_carte.data[0];
+                etat_groupe = classe_pompe.etat_actuel(num_groupe) ;
+                
+                if(etat_groupe == 0x07)
+                {
+                    classe_pompe.aspirer(num_groupe) ;
+                    etat_groupe = classe_pompe.etat_actuel(num_groupe) ;
+                }
+                
+                
+                Envoi_msg_CAN(etat_groupe);
+                
                 break;
             
         case GLOBAL_GAME_END:
                 end_game = 1;
+                break;
                 
-                break;
+
         /*        
                 
         case TEST_VENT_1_ON:
@@ -111,18 +112,19 @@
                 break;*/
         default:
                 break;        
-            }
+    }
+    flag_reception_CAN = 0 ;
                 
 }
 
-void Envoi_msg_test(void)
+void Envoi_msg_CAN(char donnee)
 {   
-    CANMessage etat_ventouses;      
-    etat_ventouses.len=2;
+    CANMessage etat_ventouses;
+    etat_ventouses.id = 0x220;    
+    etat_ventouses.len=1;
     etat_ventouses.format=CANStandard;
     etat_ventouses.type=CANData;
-    etat_ventouses.data[0]=0;
-    etat_ventouses.data[1]=1;
-     
-    can.write(etat_ventouses);
+    etat_ventouses.data[0]=donnee;
+
+    bus_CAN.write(etat_ventouses);
 }
\ No newline at end of file