Classes et code de la partie pompe du Robot 2021

Dependencies:   mbed ident_crac

Committer:
goldmas
Date:
Mon Jan 18 15:24:35 2021 +0000
Revision:
4:4bae30d48662
Parent:
3:ac32a4abb2cc
Child:
5:88ab89ab12ad
Child:
6:b06c430a7e14
Code avec bus CAN(non teste)

Who changed what in which revision?

UserRevisionLine numberNew contents of line
goldmas 0:253443d82cba 1 #include "bloc_8_pompe.h"
goldmas 4:4bae30d48662 2 #include "ident_crac.h"
goldmas 0:253443d82cba 3
goldmas 1:815ca6061e15 4 //initialisations relatives au Bus CAN
goldmas 4:4bae30d48662 5 CAN bus_CAN(PB_8, PB_9, 1000000) ;
goldmas 4:4bae30d48662 6 CANMessage commande_carte ;
goldmas 1:815ca6061e15 7 int flag_reception_CAN = 0 ;
goldmas 2:61ffa6e3eee5 8 void interruption_reception(void) ;
goldmas 4:4bae30d48662 9 void gestion_Message_CAN(void) ;
goldmas 4:4bae30d48662 10 void Envoi_msg_test(void);
goldmas 1:815ca6061e15 11
goldmas 4:4bae30d48662 12 //Fin de jeu
goldmas 4:4bae30d48662 13 char end_game = 0;
goldmas 4:4bae30d48662 14
goldmas 4:4bae30d48662 15 bloc_8_pompe::bloc_8_pompe classe_pompe (PC_9, PA_8, PB_0, //bloc 1
goldmas 0:253443d82cba 16 PA_9, PA_10, PB_1, //bloc 2
goldmas 0:253443d82cba 17 PA_11, PA_15, PC_1, //bloc 3
goldmas 0:253443d82cba 18 PB_7, PB_6, PC_0, //bloc 4
goldmas 0:253443d82cba 19 PC_7, PC_8, PC_5, //bloc 5
goldmas 0:253443d82cba 20 PB_10, PB_2, PC_4, //bloc 6
goldmas 0:253443d82cba 21 PA_6, PA_5, PA_7, //bloc 7
goldmas 0:253443d82cba 22 PA_0, PA_1, PA_4); //bloc 8
goldmas 4:4bae30d48662 23
goldmas 4:4bae30d48662 24 int main()
goldmas 4:4bae30d48662 25 {
goldmas 4:4bae30d48662 26 bus_CAN.attach(&interruption_reception) ;
goldmas 4:4bae30d48662 27
goldmas 1:815ca6061e15 28
goldmas 0:253443d82cba 29
goldmas 0:253443d82cba 30 while(1)
goldmas 0:253443d82cba 31 {
goldmas 4:4bae30d48662 32 bus_CAN(envoie);
goldmas 4:4bae30d48662 33 //if(flag_reception_CAN)
goldmas 4:4bae30d48662 34 // {
goldmas 4:4bae30d48662 35 // gestion_Message_CAN() ;
goldmas 4:4bae30d48662 36 // }
goldmas 4:4bae30d48662 37 //
goldmas 4:4bae30d48662 38 // if(end_game)
goldmas 4:4bae30d48662 39 // {
goldmas 4:4bae30d48662 40 // for (int i=0 ; i<8 ; i++)
goldmas 4:4bae30d48662 41 // {
goldmas 4:4bae30d48662 42 // classe_pompe.stop_pompe(i);
goldmas 4:4bae30d48662 43 // wait_ms(10) ;
goldmas 4:4bae30d48662 44 // }
goldmas 4:4bae30d48662 45 // }
goldmas 4:4bae30d48662 46 //for(int i=1 ; i<9 ; i++)
goldmas 4:4bae30d48662 47 // {
goldmas 4:4bae30d48662 48 classe_pompe.aspirer(2) ;
goldmas 4:4bae30d48662 49 wait(1) ;
goldmas 4:4bae30d48662 50 classe_pompe.relacher(2) ;
goldmas 4:4bae30d48662 51 wait_ms(100) ;
goldmas 0:253443d82cba 52 //detrompeur_possession = classe_pompe.possession(2) ;
goldmas 4:4bae30d48662 53
goldmas 0:253443d82cba 54 //detrompeur_possession = classe_pompe.possession(2) ;
goldmas 0:253443d82cba 55 wait_ms(1000) ;
goldmas 4:4bae30d48662 56 // }
goldmas 0:253443d82cba 57
goldmas 0:253443d82cba 58 }
goldmas 0:253443d82cba 59
goldmas 4:4bae30d48662 60 }
goldmas 4:4bae30d48662 61
goldmas 4:4bae30d48662 62 void interruption_reception(void)
goldmas 4:4bae30d48662 63 {
goldmas 4:4bae30d48662 64 if (bus_CAN.read(commande_carte))
goldmas 4:4bae30d48662 65 flag_reception_CAN = 1 ;
goldmas 4:4bae30d48662 66 }
goldmas 4:4bae30d48662 67
goldmas 4:4bae30d48662 68 void gestion_Message_CAN(void)
goldmas 4:4bae30d48662 69 {
goldmas 4:4bae30d48662 70 int identifiant = commande_carte.id ;
goldmas 4:4bae30d48662 71 char num_groupe = 1 ;
goldmas 4:4bae30d48662 72
goldmas 4:4bae30d48662 73 switch (identifiant)
goldmas 4:4bae30d48662 74 {
goldmas 4:4bae30d48662 75 case VENT_AT:
goldmas 4:4bae30d48662 76 num_groupe = commande_carte.data[0];
goldmas 4:4bae30d48662 77 classe_pompe.aspirer(num_groupe) ;
goldmas 4:4bae30d48662 78 break;
goldmas 4:4bae30d48662 79
goldmas 4:4bae30d48662 80 case VENT_RE:
goldmas 4:4bae30d48662 81 num_groupe = commande_carte.data[0];
goldmas 4:4bae30d48662 82 classe_pompe.relacher(num_groupe) ;
goldmas 4:4bae30d48662 83 break;
goldmas 4:4bae30d48662 84
goldmas 4:4bae30d48662 85 case VENT_ETAT:
goldmas 4:4bae30d48662 86 classe_pompe.etat_actuel(num_groupe) ;
goldmas 4:4bae30d48662 87 break;
goldmas 4:4bae30d48662 88
goldmas 4:4bae30d48662 89 case GLOBAL_GAME_END:
goldmas 4:4bae30d48662 90 end_game = 1;
goldmas 4:4bae30d48662 91
goldmas 4:4bae30d48662 92 break;
goldmas 4:4bae30d48662 93 /*
goldmas 4:4bae30d48662 94
goldmas 4:4bae30d48662 95 case TEST_VENT_1_ON:
goldmas 4:4bae30d48662 96 classe_pompe[AV_DROIT]->action(1);
goldmas 4:4bae30d48662 97 classe_pompe[AV_CENTRE]->action(1);
goldmas 4:4bae30d48662 98 classe_pompe[AV_GAUCHE]->action(1);
goldmas 4:4bae30d48662 99 classe_pompe[AR_DROIT]->action(1);
goldmas 4:4bae30d48662 100 classe_pompe[AR_CENTRE]->action(1);
goldmas 4:4bae30d48662 101 classe_pompe[AR_GAUCHE]->action(1);
goldmas 4:4bae30d48662 102 break;
goldmas 4:4bae30d48662 103
goldmas 4:4bae30d48662 104 case TEST_VENT_1_OFF:
goldmas 4:4bae30d48662 105 classe_pompe[AV_CENTRE]->action(0);
goldmas 4:4bae30d48662 106 classe_pompe[AV_GAUCHE]->action(0);
goldmas 4:4bae30d48662 107 classe_pompe[AR_DROIT]->action(0);
goldmas 4:4bae30d48662 108 classe_pompe[AR_CENTRE]->action(0);
goldmas 4:4bae30d48662 109 classe_pompe[AR_GAUCHE]->action(0);
goldmas 4:4bae30d48662 110 classe_pompe[AV_DROIT]->action(0);
goldmas 4:4bae30d48662 111 break;*/
goldmas 4:4bae30d48662 112 default:
goldmas 4:4bae30d48662 113 break;
goldmas 4:4bae30d48662 114 }
goldmas 4:4bae30d48662 115
goldmas 4:4bae30d48662 116 }
goldmas 4:4bae30d48662 117
goldmas 4:4bae30d48662 118 void Envoi_msg_test(void)
goldmas 4:4bae30d48662 119 {
goldmas 4:4bae30d48662 120 CANMessage etat_ventouses;
goldmas 4:4bae30d48662 121 etat_ventouses.len=2;
goldmas 4:4bae30d48662 122 etat_ventouses.format=CANStandard;
goldmas 4:4bae30d48662 123 etat_ventouses.type=CANData;
goldmas 4:4bae30d48662 124 etat_ventouses.data[0]=0;
goldmas 4:4bae30d48662 125 etat_ventouses.data[1]=1;
goldmas 4:4bae30d48662 126
goldmas 4:4bae30d48662 127 can.write(etat_ventouses);
goldmas 0:253443d82cba 128 }