strat des robots

Fork of CRAC-Strat_2017 by CRAC Team

Committer:
ClementBreteau
Date:
Fri May 19 17:14:07 2017 +0000
Revision:
17:d1594579eec6
Parent:
15:c2fc239e85df
strat du robot, 19-05-2017, 19h

Who changed what in which revision?

UserRevisionLine numberNew contents of line
ClementBreteau 14:c8fc06c4887f 1 # include "Telemetre.h"
ClementBreteau 14:c8fc06c4887f 2
ClementBreteau 14:c8fc06c4887f 3
ClementBreteau 15:c2fc239e85df 4 T_MODULE listeModules[NOMBRE_OBJETS];
ClementBreteau 14:c8fc06c4887f 5 /*********************************************************************************************************/
ClementBreteau 14:c8fc06c4887f 6 /* FUNCTION NAME: SendTelemetreID */
ClementBreteau 14:c8fc06c4887f 7 /* DESCRIPTION : Envoie un message sans donnée, c'est-à-dire contenant uniquement un ID, sur le bus CAN */
ClementBreteau 14:c8fc06c4887f 8 /*********************************************************************************************************/
ClementBreteau 14:c8fc06c4887f 9 void SendTelemetreID (unsigned short id)
ClementBreteau 14:c8fc06c4887f 10 {
ClementBreteau 14:c8fc06c4887f 11 CANMessage msgTx=CANMessage();
ClementBreteau 14:c8fc06c4887f 12 msgTx.id=id;
ClementBreteau 14:c8fc06c4887f 13 msgTx.len=0;
ClementBreteau 14:c8fc06c4887f 14 can1.write(msgTx);
ClementBreteau 14:c8fc06c4887f 15 wait_us(200);
ClementBreteau 14:c8fc06c4887f 16 }
ClementBreteau 14:c8fc06c4887f 17
ClementBreteau 14:c8fc06c4887f 18 /*********************************************************************************************************/
ClementBreteau 14:c8fc06c4887f 19 /* FUNCTION NAME: EspaceLibre */
ClementBreteau 14:c8fc06c4887f 20 /* DESCRIPTION : Calcule si la place et libre pour poser un module */
ClementBreteau 14:c8fc06c4887f 21 /*********************************************************************************************************/
ClementBreteau 14:c8fc06c4887f 22 bool EspaceLibre (signed short xModule, signed short yModule, signed short xRobot, signed short yRobot){
ClementBreteau 14:c8fc06c4887f 23 return true;
ClementBreteau 14:c8fc06c4887f 24
ClementBreteau 14:c8fc06c4887f 25 }
ClementBreteau 14:c8fc06c4887f 26
ClementBreteau 14:c8fc06c4887f 27 /*********************************************************************************************************/
ClementBreteau 14:c8fc06c4887f 28 /* FUNCTION NAME: BonnePlace */
ClementBreteau 14:c8fc06c4887f 29 /* DESCRIPTION : Calcule si le module est bien placé */
ClementBreteau 14:c8fc06c4887f 30 /*********************************************************************************************************/
ClementBreteau 14:c8fc06c4887f 31 bool BonnePlace(signed short xModule, signed short yModule, signed short xRobot, signed short yRobot){
ClementBreteau 14:c8fc06c4887f 32 bool bienPlace = false;
ClementBreteau 14:c8fc06c4887f 33 double distance = abs(xModule - xRobot)*abs(yModule - yRobot) + abs(yModule - yRobot)*abs(yModule - yRobot);
ClementBreteau 14:c8fc06c4887f 34
ClementBreteau 14:c8fc06c4887f 35 distance = sqrt(distance);
ClementBreteau 14:c8fc06c4887f 36
ClementBreteau 14:c8fc06c4887f 37
ClementBreteau 14:c8fc06c4887f 38 if ((TELEMETRE_PROFONDEUR - 10 < TELEMETRE_PROFONDEUR )||( TELEMETRE_PROFONDEUR + 10 > TELEMETRE_PROFONDEUR)){
ClementBreteau 14:c8fc06c4887f 39 bienPlace = true;
ClementBreteau 14:c8fc06c4887f 40 }
ClementBreteau 14:c8fc06c4887f 41 return bienPlace;
ClementBreteau 14:c8fc06c4887f 42 }
ClementBreteau 14:c8fc06c4887f 43
ClementBreteau 14:c8fc06c4887f 44 void initModules(void){
ClementBreteau 15:c2fc239e85df 45
ClementBreteau 15:c2fc239e85df 46 listeModules[0].x = 0;
ClementBreteau 15:c2fc239e85df 47 listeModules[0].y = 1100;
ClementBreteau 14:c8fc06c4887f 48
ClementBreteau 15:c2fc239e85df 49 listeModules[1].x = 200;
ClementBreteau 15:c2fc239e85df 50 listeModules[1].y = 950;
ClementBreteau 15:c2fc239e85df 51
ClementBreteau 15:c2fc239e85df 52 listeModules[2].x = 600;
ClementBreteau 15:c2fc239e85df 53 listeModules[2].y = 200;
ClementBreteau 15:c2fc239e85df 54
ClementBreteau 15:c2fc239e85df 55 listeModules[3].x = 600;
ClementBreteau 15:c2fc239e85df 56 listeModules[3].y = 1000;
ClementBreteau 15:c2fc239e85df 57
ClementBreteau 15:c2fc239e85df 58 listeModules[4].x = 1100;
ClementBreteau 15:c2fc239e85df 59 listeModules[4].y = 500;
ClementBreteau 15:c2fc239e85df 60
ClementBreteau 15:c2fc239e85df 61 listeModules[5].x = 1350;
ClementBreteau 15:c2fc239e85df 62 listeModules[5].y = 0;
ClementBreteau 15:c2fc239e85df 63
ClementBreteau 15:c2fc239e85df 64 listeModules[6].x = 1400;
ClementBreteau 15:c2fc239e85df 65 listeModules[6].y = 900;
ClementBreteau 15:c2fc239e85df 66
ClementBreteau 15:c2fc239e85df 67 listeModules[7].x = 1850;
ClementBreteau 15:c2fc239e85df 68 listeModules[7].y = 800;
ClementBreteau 15:c2fc239e85df 69
ClementBreteau 15:c2fc239e85df 70 listeModules[8].x = 0;
ClementBreteau 15:c2fc239e85df 71 listeModules[8].y = 1850;
ClementBreteau 15:c2fc239e85df 72
ClementBreteau 15:c2fc239e85df 73 listeModules[9].x = 200;
ClementBreteau 15:c2fc239e85df 74 listeModules[9].y = 2050;
ClementBreteau 15:c2fc239e85df 75
ClementBreteau 15:c2fc239e85df 76 listeModules[10].x = 600;
ClementBreteau 15:c2fc239e85df 77 listeModules[10].y = 2000;
ClementBreteau 15:c2fc239e85df 78
ClementBreteau 15:c2fc239e85df 79 listeModules[11].x = 600;
ClementBreteau 15:c2fc239e85df 80 listeModules[11].y = 2800;
ClementBreteau 14:c8fc06c4887f 81
ClementBreteau 15:c2fc239e85df 82 listeModules[12].x = 1100;
ClementBreteau 15:c2fc239e85df 83 listeModules[12].y = 2500;
ClementBreteau 15:c2fc239e85df 84
ClementBreteau 15:c2fc239e85df 85 listeModules[13].x = 1350;
ClementBreteau 15:c2fc239e85df 86 listeModules[13].y = 0;
ClementBreteau 14:c8fc06c4887f 87
ClementBreteau 15:c2fc239e85df 88 listeModules[14].x = 1400;
ClementBreteau 15:c2fc239e85df 89 listeModules[14].y = 2100;
ClementBreteau 15:c2fc239e85df 90
ClementBreteau 15:c2fc239e85df 91 listeModules[15].x = 1850;
ClementBreteau 15:c2fc239e85df 92 listeModules[15].y = 2200;
ClementBreteau 14:c8fc06c4887f 93 }
ClementBreteau 14:c8fc06c4887f 94
ClementBreteau 15:c2fc239e85df 95 signed short returnX(int indiceTab){
ClementBreteau 15:c2fc239e85df 96 return listeModules[indiceTab].x;
ClementBreteau 15:c2fc239e85df 97 }
ClementBreteau 15:c2fc239e85df 98
ClementBreteau 15:c2fc239e85df 99 signed short returnY(int indiceTab){
ClementBreteau 15:c2fc239e85df 100 return listeModules[indiceTab].y;
ClementBreteau 15:c2fc239e85df 101 }
ClementBreteau 14:c8fc06c4887f 102
ClementBreteau 14:c8fc06c4887f 103 void processData(int objectType, signed short x, signed short y, int nb_module){
ClementBreteau 14:c8fc06c4887f 104 switch(objectType){
ClementBreteau 14:c8fc06c4887f 105 case CYLINDRE:
ClementBreteau 14:c8fc06c4887f 106 //
ClementBreteau 14:c8fc06c4887f 107 break;
ClementBreteau 14:c8fc06c4887f 108
ClementBreteau 14:c8fc06c4887f 109 case MODULE:
ClementBreteau 14:c8fc06c4887f 110 //
ClementBreteau 15:c2fc239e85df 111 /*if( (x == listeModules.module1.x) && (y == listeModules.module1.y) ){
ClementBreteau 14:c8fc06c4887f 112 printf("module 1");
ClementBreteau 14:c8fc06c4887f 113 listeModules.module1.timeout ++;
ClementBreteau 15:c2fc239e85df 114 } */
ClementBreteau 14:c8fc06c4887f 115 break;
ClementBreteau 14:c8fc06c4887f 116
ClementBreteau 14:c8fc06c4887f 117 case BALLE:
ClementBreteau 14:c8fc06c4887f 118 //
ClementBreteau 14:c8fc06c4887f 119 break;
ClementBreteau 14:c8fc06c4887f 120 }
ClementBreteau 14:c8fc06c4887f 121
ClementBreteau 14:c8fc06c4887f 122 }