pour trouver l'automate de reception can
Fork of CRAC-Strat_copy by
Diff: Telemetre/Telemetre.cpp
- Revision:
- 14:c8fc06c4887f
- Child:
- 15:c2fc239e85df
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Telemetre/Telemetre.cpp Fri Mar 31 16:20:26 2017 +0000 @@ -0,0 +1,109 @@ +# 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; + } + + }