Classes et code de la partie pompe du Robot 2021

Dependencies:   mbed ident_crac

Revision:
4:4bae30d48662
Parent:
3:ac32a4abb2cc
Child:
5:88ab89ab12ad
Child:
6:b06c430a7e14
--- a/main.cpp	Fri Jan 15 07:59:57 2021 +0000
+++ b/main.cpp	Mon Jan 18 15:24:35 2021 +0000
@@ -1,20 +1,18 @@
 #include "bloc_8_pompe.h"
-
-#define VENT_AT 0x266
-#define VENT_RE 0x267
- 
-#define TEST_VENT_1_ON 0x268
-#define TEST_VENT_1_OFF 0x269
-#define VENT_ETAT 0x27A
+#include "ident_crac.h"
 
 //initialisations relatives au Bus CAN
-CAN bus_CAN(PB_8, PB_9) ;
+CAN bus_CAN(PB_8, PB_9, 1000000) ;
+CANMessage commande_carte ;
 int flag_reception_CAN = 0 ;
 void interruption_reception(void) ;
+void gestion_Message_CAN(void) ;
+void Envoi_msg_test(void);
 
-int main()
-{
-    bloc_8_pompe::bloc_8_pompe classe_pompe    (PC_9, PA_8, PB_0,       //bloc 1
+//Fin de jeu
+char end_game = 0;
+
+bloc_8_pompe::bloc_8_pompe classe_pompe    (PC_9, PA_8, PB_0,       //bloc 1
                                                 PA_9, PA_10, PB_1,      //bloc 2
                                                 PA_11, PA_15, PC_1,     //bloc 3
                                                 PB_7, PB_6, PC_0,       //bloc 4
@@ -22,27 +20,109 @@
                                                 PB_10, PB_2, PC_4,      //bloc 6
                                                 PA_6, PA_5, PA_7,       //bloc 7
                                                 PA_0, PA_1, PA_4);      //bloc 8
-                                      
-    bool possession_gobelet[7] ;
+
+int main()
+{    
+    bus_CAN.attach(&interruption_reception) ;
+
     
-    bus_CAN.attach(&interruption_reception, RxIrq) ;
      
     while(1)
     {
-        for(int i=1 ; i<9 ; i++)
-        {
-            possession_gobelet[i-1] = classe_pompe.aspirer(i) ;
-            wait_ms(500) ;
-            if(possession_gobelet)
-            {
-                possession_gobelet[i-1] = classe_pompe.relacher(i) ;
-                wait_ms(100) ;
+        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) ;
-        }
+//        }
         
     }
         
+}
+
+void interruption_reception(void) 
+{
+    if (bus_CAN.read(commande_carte))
+        flag_reception_CAN = 1 ;
+}
+
+void gestion_Message_CAN(void) 
+{
+    int identifiant = commande_carte.id ;
+    char num_groupe = 1 ;
+    
+    switch (identifiant) 
+    {
+        case VENT_AT:
+                num_groupe = commande_carte.data[0];
+                classe_pompe.aspirer(num_groupe) ;
+                break;
+                
+        case VENT_RE:
+                num_groupe = commande_carte.data[0];
+                classe_pompe.relacher(num_groupe) ;
+                break;   
+            
+        case VENT_ETAT:
+                classe_pompe.etat_actuel(num_groupe) ;
+                break;
+            
+        case GLOBAL_GAME_END:
+                end_game = 1;
+                
+                break;
+        /*        
+                
+        case TEST_VENT_1_ON:
+                classe_pompe[AV_DROIT]->action(1);
+                classe_pompe[AV_CENTRE]->action(1);
+                classe_pompe[AV_GAUCHE]->action(1);
+                classe_pompe[AR_DROIT]->action(1);
+                classe_pompe[AR_CENTRE]->action(1);
+                classe_pompe[AR_GAUCHE]->action(1);
+                break;
+            
+        case TEST_VENT_1_OFF:
+                classe_pompe[AV_CENTRE]->action(0);
+                classe_pompe[AV_GAUCHE]->action(0);
+                classe_pompe[AR_DROIT]->action(0);
+                classe_pompe[AR_CENTRE]->action(0);
+                classe_pompe[AR_GAUCHE]->action(0);
+                classe_pompe[AV_DROIT]->action(0);
+                break;*/
+        default:
+                break;        
+            }
+                
+}
+
+void Envoi_msg_test(void)
+{   
+    CANMessage etat_ventouses;      
+    etat_ventouses.len=2;
+    etat_ventouses.format=CANStandard;
+    etat_ventouses.type=CANData;
+    etat_ventouses.data[0]=0;
+    etat_ventouses.data[1]=1;
+     
+    can.write(etat_ventouses);
 }
\ No newline at end of file