Classes et code de la partie pompe du Robot 2021
Dependencies: mbed ident_crac
Diff: main.cpp
- 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