![](/media/cache/group/default_image.jpg.50x50_q85.jpg)
Classes et code de la partie pompe du Robot 2021
Dependencies: mbed ident_crac
Revision 9:6869e3869638, committed 2021-07-17
- Comitter:
- goldmas
- Date:
- Sat Jul 17 11:09:18 2021 +0000
- Parent:
- 8:ba95705cf7d4
- Commit message:
- Dernier code de la coupe de fracne 2021
Changed in this revision
diff -r ba95705cf7d4 -r 6869e3869638 bloc_8_pompe.cpp --- a/bloc_8_pompe.cpp Wed May 19 09:53:33 2021 +0000 +++ b/bloc_8_pompe.cpp Sat Jul 17 11:09:18 2021 +0000 @@ -1,9 +1,9 @@ #include "bloc_8_pompe.h" bloc_monopompe bloc1(PC_9, PA_8, PB_0) ; -bloc_monopompe bloc2(PA_9, PA_10, PB_1) ; +bloc_monopompe bloc2(PB_7, PA_10, PB_1) ; bloc_monopompe bloc3(PA_11, PA_15, PC_1) ; -bloc_monopompe bloc4(PB_7, PB_6, PC_0) ; +bloc_monopompe bloc4(PA_9, PB_6, PC_0) ; bloc_monopompe bloc5(PC_7, PC_8, PC_5) ; bloc_monopompe bloc6(PB_10, PB_2, PC_4) ; bloc_monopompe bloc7(PA_6, PA_5, PA_7) ; @@ -112,9 +112,9 @@ break; } } -char bloc_8_pompe::etat_actuel (int groupe = 1) +char bloc_8_pompe::etat_actuel (int groupe) { - char etat_groupe[8] ; + static char etat_groupe[8] ; switch (groupe) { @@ -150,7 +150,8 @@ etat_groupe[groupe-1] = bloc8.etat_actuel() ; break; } - return etat_groupe[groupe-1] ; + return etat_groupe[groupe-1]; +// wait_us(150); } void bloc_8_pompe::stop_pompe (int groupe = 1) @@ -189,4 +190,4 @@ bloc8.stop_pompe() ; break; } -} \ No newline at end of file +} \ No newline at end of file
diff -r ba95705cf7d4 -r 6869e3869638 bloc_8_pompe.h --- a/bloc_8_pompe.h Wed May 19 09:53:33 2021 +0000 +++ b/bloc_8_pompe.h Sat Jul 17 11:09:18 2021 +0000 @@ -1,7 +1,7 @@ #ifndef _BLOC_8_POMPE_H #define _BLOC_8_POMPE_H -#include "bloc_monopompe.h" +#include "bloc_monopompe.h" class bloc_8_pompe {
diff -r ba95705cf7d4 -r 6869e3869638 bloc_monopompe.cpp --- a/bloc_monopompe.cpp Wed May 19 09:53:33 2021 +0000 +++ b/bloc_monopompe.cpp Sat Jul 17 11:09:18 2021 +0000 @@ -53,11 +53,11 @@ _gobelet_en_place = 0 ; if(_electrovanne.read()) //test de l'electrovanne - etat_pompe = 1 ; + etat_electrovanne = 1 ; else - etat_pompe = 0 ; + etat_electrovanne = 0 ; - // contenue du char : (cela evite l'utilisation de pointeurs (car on a la flemme)) + // contenue du char : (cela evite l'utilisation de pointeurs) //0000 0 "bit pompe" "bit elec" "bit cpt" return etat_groupe = (etat_pompe << 2) + (etat_electrovanne << 1) + _gobelet_en_place ; }
diff -r ba95705cf7d4 -r 6869e3869638 bloc_monopompe.h --- a/bloc_monopompe.h Wed May 19 09:53:33 2021 +0000 +++ b/bloc_monopompe.h Sat Jul 17 11:09:18 2021 +0000 @@ -2,6 +2,7 @@ #define _BLOC_MONOPOMPE_H #include "mbed.h" +#include "ident_crac.h" #define PWM_STOP_POMPE 0 #define PWM_POMPE 0.7
diff -r ba95705cf7d4 -r 6869e3869638 ident_crac.lib --- a/ident_crac.lib Wed May 19 09:53:33 2021 +0000 +++ b/ident_crac.lib Sat Jul 17 11:09:18 2021 +0000 @@ -1,1 +1,1 @@ -https://os.mbed.com/teams/CRAC-Team/code/ident_crac/#ad3c5dee616c +https://os.mbed.com/teams/CRAC-Team/code/ident_crac/#007f23e40fc3
diff -r ba95705cf7d4 -r 6869e3869638 main.cpp --- a/main.cpp Wed May 19 09:53:33 2021 +0000 +++ b/main.cpp Sat Jul 17 11:09:18 2021 +0000 @@ -1,39 +1,43 @@ #include "bloc_8_pompe.h" -#include "ident_crac.h" //initialisations relatives au Bus CAN CAN bus_CAN(PB_8, PB_9, 1000000) ; CANMessage commande_carte ; CANMessage envoie ; int flag_reception_CAN = 0 ; +Timer scoreTimer; void interruption_reception(void) ; void gestion_Message_CAN(void) ; -void Envoi_msg_CAN(char donnee); +void Envoi_msg_CAN(char donnee[6]); void initialisation_CAN(void) ; +void ventouse_etat(void); +void SendRawId (unsigned short id); //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 - PC_7, PC_8, PC_5, //bloc 5 - PB_10, PB_2, PC_4, //bloc 6 - PA_6, PA_5, PA_7, //bloc 7 - PA_0, PA_1, PA_4); //bloc 8 + PB_7, PA_10, PB_1, //bloc 2 + PA_11, PA_15, PC_1, //bloc 3 + PA_9, PB_6, PC_0, //bloc 4 + PC_7, PC_8, PC_5, //bloc 5 + PB_10, PB_2, PC_4, //bloc 6 + PA_6, PA_5, PA_7, //bloc 7 + PA_0, PA_1, PA_4); //bloc 8 int main() { bus_CAN.attach(&interruption_reception) ; + static int old_Timer=0; + initialisation_CAN() ; - initialisation_CAN() ; + scoreTimer.start(); while(1) { - //bus_CAN(envoie); - if(flag_reception_CAN) - { + //bus_CAN(envoie); + if(flag_reception_CAN) + { gestion_Message_CAN() ; } @@ -45,6 +49,17 @@ wait_ms(10) ; } } + + ventouse_etat(); + + //Appelle toutes les 100ms pour regarder l'état des pompes + /* + if((scoreTimer.read_ms()-old_Timer)>=100) + { + ventouse_etat(); + old_Timer=scoreTimer.read_ms(); + } + */ //Envoi_msg_CAN(1); //envoie un msg pour tester la liaison can } @@ -81,7 +96,7 @@ switch(num_groupe) { case 10: - classe_pompe.aspirer(2); + classe_pompe.aspirer(2); classe_pompe.aspirer(3); break; @@ -96,8 +111,8 @@ break; case 210: - classe_pompe.aspirer(3); - classe_pompe.aspirer(2); + classe_pompe.aspirer(3); + classe_pompe.aspirer(2); classe_pompe.aspirer(1); break; @@ -143,7 +158,7 @@ { case 10: classe_pompe.relacher(2); - classe_pompe.relacher(3); + classe_pompe.relacher(3); break; case 20: @@ -188,6 +203,15 @@ case VENT_ETAT: num_groupe = commande_carte.data[0]; + if(num_groupe<6) + { + if(num_groupe == 0) num_groupe = 3; + else if (num_groupe == 1) num_groupe = 2; + else if (num_groupe == 2) num_groupe = 1; + else if (num_groupe == 3) num_groupe = 5; + else if (num_groupe == 4) num_groupe = 6; + else if (num_groupe == 5) num_groupe = 7; + } etat_groupe = classe_pompe.etat_actuel(num_groupe) ; if(etat_groupe == 0x07) @@ -197,7 +221,7 @@ } - Envoi_msg_CAN(etat_groupe); + //Envoi_msg_CAN(etat_groupe); break; @@ -232,15 +256,16 @@ } -void Envoi_msg_CAN(char donnee) +void Envoi_msg_CAN(char donnee[6]) { - CANMessage etat_ventouses; + CANMessage etat_ventouses=CANMessage(); etat_ventouses.id = 0x220; - etat_ventouses.len=1; - etat_ventouses.format=CANStandard; + etat_ventouses.len=6; etat_ventouses.type=CANData; - etat_ventouses.data[0]=donnee; - + for(int num_octet=0; num_octet<6; num_octet++) + { + etat_ventouses.data[num_octet]=donnee[num_octet]; + } bus_CAN.write(etat_ventouses); } @@ -251,4 +276,41 @@ msg_init.len=0; bus_CAN.write(msg_init); -} \ No newline at end of file +} + +void ventouse_etat(void) +{ + char num_groupe; + char etat_groupe[6]; + static char old_etat_groupe[6] = {0,0,0,0,0,0}; + + for(int i=0;i<6;i++) + { + if(i == 0) num_groupe = 3; + else if (i == 1) num_groupe = 2; + else if (i == 2) num_groupe = 1; + else if (i == 3) num_groupe = 5; + else if (i == 4) num_groupe = 6; + else if (i == 5) num_groupe = 7; + + etat_groupe[i] = classe_pompe.etat_actuel(num_groupe); + } + + for(int i=0;i<6;i++) + { + if(old_etat_groupe[i] != etat_groupe[i]) + { + Envoi_msg_CAN(etat_groupe); + } + old_etat_groupe[i] = etat_groupe[i]; + } +} + + +void SendRawId (unsigned short id) +{ + CANMessage msgTx; + msgTx.id=id; + msgTx.len=0; + bus_CAN.write(msgTx); +}