Carte esclave gros robot
Dependencies: mbed Herkulex_Library_2019 ident_crac actions_Pr
Diff: main.cpp
- 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;