Carte esclave gros robot

Dependencies:   mbed Herkulex_Library_2019 ident_crac actions_Pr

Revision:
49:af201920161a
Parent:
48:ef0dc0df8c77
Child:
50:85b7a7c57d21
--- a/main.cpp	Mon May 11 18:28:58 2020 +0000
+++ b/main.cpp	Thu Jul 09 18:31:15 2020 +0000
@@ -12,14 +12,11 @@
 signed char FIFO_lecture=0;//Position du fifo de lecture des messages CAN
 unsigned char EtatGameEnd=0, EtatGameStart = 0, EtatGameRecalage = 0;
 unsigned short ackFinAction = 0;
-unsigned char var_ecueil_avant_at=0, var_ecueil_arriere_at=0;
 char bras_choix=0;
 
 
-
 void canProcessRx(void);
 
-
 /*********************************************************************************************/
 /* FUNCTION NAME: canRx_ISR                                                                  */
 /* DESCRIPTION  : lit les messages sur le can et les stocke dans la FIFO                     */
@@ -44,18 +41,28 @@
     wait(1);
     gabarit_robot_gauche();
     wait(1);
-    
+    //DigitalIn cap2(PC_14);
     while(1) 
-    {                       
+    {  
+        Get_Led(0,1);
+        wait(1);
+    
+        /*uint8_t test_color = Get_Led(0,1);
+        SendMsgCan(0xAA,&test_color,2);*/
+       /* if(cap2.read())
+        {
+        }else{
+        }*/
         canProcessRx();
         f_mesure();//dt35
         
-        //automates//
-        automate_bras_attraper();
-        automate_bras_relacher();
-        automate_bras_ecueil_attraper();
-        automate_bras_ecueil_relacher();
-        }
+        automate_bras_attraper_1();
+        automate_bras_relacher_1();
+        automate_bras_attraper_2();
+        automate_bras_relacher_2();
+        automate_bras_attraper_3();
+        automate_bras_relacher_3();
+    }
 }
 //fin du main
 
@@ -67,20 +74,19 @@
 {
     static signed char FIFO_occupation=0,FIFO_max_occupation=0;
     CANMessage msgTx=CANMessage();
-    
+
     FIFO_occupation=FIFO_ecriture-FIFO_lecture;
     if(FIFO_occupation<0)
         FIFO_occupation=FIFO_occupation+SIZE_FIFO;
-        
+
     if(FIFO_max_occupation<FIFO_occupation)
         FIFO_max_occupation=FIFO_occupation;
-        
+
     if(FIFO_occupation!=0) {
         int identifiant=msgRxBuffer[FIFO_lecture].id;
 
         switch(identifiant) 
         {
-            
             case GLOBAL_START:
                 EtatGameStart = 1;
                 EtatGameEnd = 0;
@@ -149,38 +155,43 @@
                 can.write(msgTx);
                 SendAck(ACKNOWLEDGE_TELEMETRE,RECEPTION_TELEMETRE_LOGIQUE);
                 break;
-                
-//----------------------------------------------------------------nouveaux case-----------------------------------------------------------------//
+
+//----------------------------------------------------------------cases test-----------------------------------------------------------------//
                 
             case TEST_BRAS_A:
-                aut_bras_av_at = 1;
-                bras_choix = 6;
+                aut_bras_av_3_at = 1;
+                bras_choix = 0;
                 break;
                 
             case TEST_BRAS_B:
-                aut_bras_av_re = 1;
-                bras_choix = 6;
+                aut_bras_av_3_re = 1;
+                bras_choix = 0;
                 break;
                 
             case TEST_BRAS_C:
-                aut_bras_av_ec_at = 1;
+                aut_bras_av_3_at = 1;
+                bras_choix = 1;
                 break;
                 
             case TEST_BRAS_D:
-                aut_bras_av_ec_re = 1;
+                aut_bras_av_3_re = 1;
+                bras_choix = 1;
                 break;
-                  
-            case TEST_BRAS_1:                
-                test_BRAS_2();
-                break;
-                 
-            case TEST_BRAS_2:   
+                
+            case TEST_BRAS_1:
+                test_BRAS_1();
                 break;
                 
-            case TEST_BRAS_3:   
+            case TEST_BRAS_2:
+                test_BRAS_2();  
                 break;
                 
-            case TEST_BRAS_4:   
+            case TEST_BRAS_3:
+                test_BRAS_3();  
+                break;
+                
+            case TEST_BRAS_4:  
+                test_BRAS_4(); 
                 break;
                 
             case TEST_BRAS_5:   
@@ -188,46 +199,53 @@
                 
             case TEST_BRAS_6:  
                 break;
-////////////////////////////////////////////CASE DE COMPETITIONS(à optimiser)////////////////////////////////////////   
-            case BRAS_AT:
+////////////////////////////////////////////CASE DE COMPETITIONS/////////////////////////////////////////////   
+            case BRAS_AT_1:
                 SendAck(ACKNOWLEDGE_HERKULEX, ACK_ACTION);
                 bras_choix = msgRxBuffer[FIFO_lecture].data[0];
-                //var_bras_at = 1;
-                pc.printf("%d\n",bras_choix);
-                competition_bras_at(bras_choix);
-                verification();
+                aut_bras_av_1_at = 1;
+                SendAck(ACKNOWLEDGE_HERKULEX, ACK_FIN_ACTION);    
+                break;
+                
+            case BRAS_RE_1:
+                SendAck(ACKNOWLEDGE_HERKULEX, ACK_ACTION);
+                bras_choix = msgRxBuffer[FIFO_lecture].data[0];
+                aut_bras_av_1_re = 1;
+                SendAck(ACKNOWLEDGE_HERKULEX, ACK_FIN_ACTION);  
+                break;
+                
+            case BRAS_AT_2:
+                SendAck(ACKNOWLEDGE_HERKULEX, ACK_ACTION);
+                bras_choix = msgRxBuffer[FIFO_lecture].data[0];
+                aut_bras_av_2_at = 1;
                 SendAck(ACKNOWLEDGE_HERKULEX, ACK_FIN_ACTION);    
                 break;
                 
-            case BRAS_RE:
+            case BRAS_RE_2:
+                SendAck(ACKNOWLEDGE_HERKULEX, ACK_ACTION);
+                bras_choix = msgRxBuffer[FIFO_lecture].data[0];
+                aut_bras_av_2_re = 1;
+                SendAck(ACKNOWLEDGE_HERKULEX, ACK_FIN_ACTION);
+                break;  
+                
+            case BRAS_AT_3:
                 SendAck(ACKNOWLEDGE_HERKULEX, ACK_ACTION);
                 bras_choix = msgRxBuffer[FIFO_lecture].data[0];
-                //var_bras_re = 1;
-                pc.printf("%d\n",bras_choix);
-                competition_bras_re(bras_choix);
-                verification();
-                SendAck(ACKNOWLEDGE_HERKULEX, ACK_FIN_ACTION);  
+                aut_bras_av_3_at = 1;
+                SendAck(ACKNOWLEDGE_HERKULEX, ACK_FIN_ACTION);
+                break;
+                
+            case BRAS_RE_3:
+                SendAck(ACKNOWLEDGE_HERKULEX, ACK_ACTION);
+                bras_choix = msgRxBuffer[FIFO_lecture].data[0];
+                aut_bras_av_3_re = 1;
+                SendAck(ACKNOWLEDGE_HERKULEX, ACK_FIN_ACTION);
                 break;
                 
             case GABARIT_ROBOT:
+                SendAck(ACKNOWLEDGE_HERKULEX, ACK_ACTION);
                 gabarit_robot_droit();
                 gabarit_robot_gauche();
-                verification();
-                break;
-                
-            case ECUEIL_ARRIERE_AT:
-                SendAck(ACKNOWLEDGE_HERKULEX, ACK_ACTION);
-                //var_ecueil_arriere_at = 1;
-                ecueil_arriere_at();
-                verification();
-                SendAck(ACKNOWLEDGE_HERKULEX, ACK_FIN_ACTION);
-                break;
-                
-            case ECUEIL_AVANT_AT:
-                SendAck(ACKNOWLEDGE_HERKULEX, ACK_ACTION);
-                //var_ecueil_avant_at = 1;
-                ecueil_avant_at();
-                verification();
                 SendAck(ACKNOWLEDGE_HERKULEX, ACK_FIN_ACTION);
                 break;