homologation gros robot et test avec les ack de la carte a tout faire

Fork of CRAC-Strat_2017_HOMOLOGATION_PETIT_ROBOT by CRAC Team

Telemetre/Telemetre.cpp

Committer:
ClementBreteau
Date:
2017-03-31
Revision:
14:c8fc06c4887f
Child:
15:c2fc239e85df

File content as of revision 14:c8fc06c4887f:

# include "Telemetre.h"

#define TELEMETRE_PROFONDEUR 50

T_LISTE_MODULES listeModules;

/*********************************************************************************************************/
/* FUNCTION NAME: SendTelemetreID                                                                        */
/* DESCRIPTION  : Envoie un message sans donnée, c'est-à-dire contenant uniquement un ID, sur le bus CAN */
/*********************************************************************************************************/
void SendTelemetreID (unsigned short id)
{
    CANMessage msgTx=CANMessage();
    msgTx.id=id;
    msgTx.len=0;
    can1.write(msgTx);
    wait_us(200);
}

/*********************************************************************************************************/
/* FUNCTION NAME: EspaceLibre                                                                            */
/* DESCRIPTION  : Calcule si la place et libre pour poser un module                                      */
/*********************************************************************************************************/
bool EspaceLibre (signed short xModule, signed short  yModule, signed short xRobot, signed short yRobot){
    return true;
    
}

/*********************************************************************************************************/
/* FUNCTION NAME: BonnePlace                                                                             */
/* DESCRIPTION  : Calcule si le module est bien placé                                                    */
/*********************************************************************************************************/
bool BonnePlace(signed short xModule, signed short  yModule, signed short xRobot, signed short yRobot){
    bool bienPlace = false;
    double distance = abs(xModule - xRobot)*abs(yModule - yRobot) + abs(yModule - yRobot)*abs(yModule - yRobot);
    
    distance = sqrt(distance);
    

    if ((TELEMETRE_PROFONDEUR - 10 < TELEMETRE_PROFONDEUR )||( TELEMETRE_PROFONDEUR + 10 > TELEMETRE_PROFONDEUR)){
        bienPlace = true;
        }
    return bienPlace;
}

void initModules(void){
    
    
    /*listeModules ={true, 1350,    0},
                    {true,    0, 1150}};*/
    
    listeModules.module1.x=600;
    listeModules.module1.y=1000;
    listeModules.module1.existe = true;
    listeModules.module1.timeout = 0;
    
    listeModules.module2.x=600;
    listeModules.module2.y=200;
    listeModules.module2.existe = true;
    listeModules.module2.timeout = 0;
    
    listeModules.module3.x=1100;
    listeModules.module3.y=500;
    listeModules.module3.existe = true;
    listeModules.module3.timeout = 0;
    
    listeModules.module4.x=1400;
    listeModules.module4.y=900;
    listeModules.module4.existe = true;
    listeModules.module4.timeout = 0;
    
    listeModules.module5.x=1850;
    listeModules.module5.y=800;
    listeModules.module5.existe = true;
    listeModules.module5.timeout = 0;
    
    listeModules.fusee1.x = 1350;
    listeModules.fusee1.y = 0;
    listeModules.fusee1.nb_module = 4;
    listeModules.fusee1.timeout = 0 ;
    
    listeModules.fusee2.x = 0;
    listeModules.fusee2.y = 1150;
    listeModules.fusee2.nb_module = 4;
    listeModules.fusee2.timeout = 0;

}


void processData(int objectType, signed short x, signed short y, int nb_module){
    switch(objectType){
        case CYLINDRE:
            //
        break;
        
        case MODULE:
            //
            if( (x == listeModules.module1.x) && (y == listeModules.module1.y) ){
                    printf("module 1");
                    listeModules.module1.timeout ++;
                }            
        break;
        
        case BALLE:
            //
        break;
        }
    
    }