Carte esclave gros robot

Dependencies:   mbed Herkulex_Library_2019 ident_crac actions_Pr

Revision:
52:c019890fbc59
Parent:
51:ecbdff4587ce
Child:
53:b7d2682fba44
--- a/main.cpp	Mon May 10 09:12:00 2021 +0000
+++ b/main.cpp	Tue May 18 10:05:06 2021 +0000
@@ -13,6 +13,7 @@
 unsigned char EtatGameEnd=0, EtatGameStart = 0, EtatGameRecalage = 0;
 unsigned short ackFinAction = 0;
 char bras_choix=0;
+void initialisation_CAN (void) ;
 
 
 void canProcessRx(void);
@@ -32,6 +33,7 @@
 int main()
 {
     can.attach(&canRx_ISR); // création de l'interrupt attachée à la réception sur le CAN
+    SendRawId(ALIVE_ACTIONNEURS_AVANT);
     servo_interrupt_en(); //permettre les interuptions
     wait_ms(200);
     deverouillage_torque();
@@ -44,17 +46,24 @@
     gabarit_robot_manche();
     wait(1);
     //DigitalIn cap2(PC_14);
+    SendRawId(CHECK_ACTIONNEURS_AVANT);
     while(1) 
     {
         canProcessRx();
         f_mesure();//dt35
         
+        selection_bras_attraper();
+        selection_bras_relacher();
+        automate_manche_air_haut() ;
+        automate_manche_air_bas() ;
+        /*
         automate_bras_attraper_1();
         automate_bras_relacher_1();
         automate_bras_attraper_2();
         automate_bras_relacher_2();
         automate_bras_attraper_3();
         automate_bras_relacher_3();
+        */
         //automate_manche_air() ;
         /*automate_position_lidar();*/
     }
@@ -199,6 +208,18 @@
             case TEST_BRAS_6:  
                 break;
 ////////////////////////////////////////////CASE DE COMPETITIONS/////////////////////////////////////////////   
+            case BRAS_AT:
+                SendAck(ACKNOWLEDGE_HERKULEX, ACK_ACTION);
+                bras_choix = msgRxBuffer[FIFO_lecture].data[0];
+                aut_bras_av_at = 1; 
+                break;
+            
+            case BRAS_RE:
+                SendAck(ACKNOWLEDGE_HERKULEX, ACK_ACTION);
+                bras_choix = msgRxBuffer[FIFO_lecture].data[0];
+                aut_bras_av_re = 1;
+                break;
+/*            
             case BRAS_AT_1:
                 SendAck(ACKNOWLEDGE_HERKULEX, ACK_ACTION);
                 bras_choix = msgRxBuffer[FIFO_lecture].data[0];
@@ -234,7 +255,7 @@
                 bras_choix = msgRxBuffer[FIFO_lecture].data[0];
                 aut_bras_av_3_re = 1;
                 break;
-                
+*/                
             case GABARIT_ROBOT:
                 SendAck(ACKNOWLEDGE_HERKULEX, ACK_ACTION);
                 gabarit_robot_droit();
@@ -242,14 +263,16 @@
                 SendAck(ACKNOWLEDGE_HERKULEX, ACK_FIN_ACTION);
                 break;
             
-            case AUTOMATE_MANCHE_LEVER:
+            case AUTOMATE_MANCHE_HAUT:
                 SendAck(ACKNOWLEDGE_HERKULEX, ACK_ACTION);
-                flag_manche_a_air = 1;
+                bras_choix = msgRxBuffer[FIFO_lecture].data[0];
+                aut_manche_haut = 1;
                 break;  
             
-            case AUTOMATE_MANCHE_BAISSER:
+            case AUTOMATE_MANCHE_BAS:
                 SendAck(ACKNOWLEDGE_HERKULEX, ACK_ACTION);
-                flag_manche_a_air = 0;
+                bras_choix = msgRxBuffer[FIFO_lecture].data[0];
+                aut_manche_bas = 1;
                 break;
                  
             default:
@@ -257,4 +280,16 @@
         }
         FIFO_lecture=(FIFO_lecture+1)%SIZE_FIFO;
     }
+}
+
+void initialisation_CAN(void) 
+{
+    CANMessage msg_init;
+    msg_init.id = CHECK_ACTIONNEURS_AVANT;    
+    msg_init.len=1;
+    msg_init.format=CANStandard;
+    msg_init.type=CANData;
+    msg_init.data[0]= 0 ;
+
+    can.write(msg_init);
 }
\ No newline at end of file