Classes et code de la partie pompe du Robot 2021
Dependencies: mbed ident_crac
main.cpp@4:4bae30d48662, 2021-01-18 (annotated)
- 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?
User | Revision | Line number | New 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 | } |