Classes et code de la partie pompe du Robot 2021

Dependencies:   mbed ident_crac

main.cpp

Committer:
goldmas
Date:
2021-01-18
Revision:
4:4bae30d48662
Parent:
3:ac32a4abb2cc
Child:
5:88ab89ab12ad
Child:
6:b06c430a7e14

File content as of revision 4:4bae30d48662:

#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 ;
int flag_reception_CAN = 0 ;
void interruption_reception(void) ;
void gestion_Message_CAN(void) ;
void Envoi_msg_test(void);

//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) ;
//            }
//        }
        //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);
}