Classes et code de la partie pompe du Robot 2021
Dependencies: mbed ident_crac
main.cpp
- Committer:
- smarecar
- Date:
- 2021-03-05
- Revision:
- 7:b7dc6201b520
- Parent:
- 6:b06c430a7e14
- Child:
- 8:ba95705cf7d4
File content as of revision 7:b7dc6201b520:
#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 ; void interruption_reception(void) ; void gestion_Message_CAN(void) ; void Envoi_msg_CAN(char donnee); //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 int main() { bus_CAN.attach(&interruption_reception) ; while(1) { //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) ; } } //Envoi_msg_CAN(1); //envoie un msg pour tester la liaison can } } 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 ; char etat_groupe = 0 ; 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: num_groupe = commande_carte.data[0]; etat_groupe = classe_pompe.etat_actuel(num_groupe) ; if(etat_groupe == 0x07) { classe_pompe.aspirer(num_groupe) ; etat_groupe = classe_pompe.etat_actuel(num_groupe) ; } Envoi_msg_CAN(etat_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; } flag_reception_CAN = 0 ; } void Envoi_msg_CAN(char donnee) { CANMessage etat_ventouses; etat_ventouses.id = 0x220; etat_ventouses.len=1; etat_ventouses.format=CANStandard; etat_ventouses.type=CANData; etat_ventouses.data[0]=donnee; bus_CAN.write(etat_ventouses); }