Programme carte strategie (disco)

Dependencies:   mbed SerialHalfDuplex SDFileSystem DISCO-F469NI_portrait liaison_Bluetooth ident_crac

Committer:
antbig
Date:
Sat May 27 05:40:26 2017 +0000
Revision:
28:acd18776ed2d
Parent:
21:590cdacb6a35
Child:
29:41e02746041d
version pour du 27/05 07h40

Who changed what in which revision?

UserRevisionLine numberNew contents of line
antbig 3:19f2285a4757 1 #include "StrategieManager.h"
antbig 3:19f2285a4757 2 #ifdef ROBOT_SMALL
antbig 3:19f2285a4757 3 #include "Config_small.h"
antbig 3:19f2285a4757 4
antbig 12:14729d584500 5 unsigned char isStopEnable = 1;//Permet de savoir si il faut autoriser le stop via les balises
ClementBreteau 21:590cdacb6a35 6 //unsigned short telemetreDistance;
ClementBreteau 18:cc5fec34ed9c 7
antbig 12:14729d584500 8
antbig 3:19f2285a4757 9 /****************************************************************************************/
antbig 3:19f2285a4757 10 /* FUNCTION NAME: doFunnyAction */
antbig 3:19f2285a4757 11 /* DESCRIPTION : Permet de faire la funny action en fin de partie */
antbig 3:19f2285a4757 12 /****************************************************************************************/
antbig 3:19f2285a4757 13 void doFunnyAction(void) {
antbig 3:19f2285a4757 14
antbig 3:19f2285a4757 15
antbig 3:19f2285a4757 16 }
antbig 10:a788d9cf60f2 17 //L'angle est entre 0 et 1023
antbig 10:a788d9cf60f2 18 void XL320_setGoal(unsigned char id, unsigned short angle);
antbig 10:a788d9cf60f2 19
antbig 10:a788d9cf60f2 20 void XL320_setGoal(unsigned char id, unsigned short angle)
antbig 10:a788d9cf60f2 21 {
antbig 10:a788d9cf60f2 22 CANMessage msgTx=CANMessage();
antbig 10:a788d9cf60f2 23 msgTx.id=SERVO_XL320;
antbig 10:a788d9cf60f2 24 msgTx.len=3;
antbig 10:a788d9cf60f2 25 msgTx.format=CANStandard;
antbig 10:a788d9cf60f2 26 msgTx.type=CANData;
antbig 10:a788d9cf60f2 27 msgTx.data[0]=(unsigned char)id;
antbig 10:a788d9cf60f2 28 // from sur 2 octets
antbig 10:a788d9cf60f2 29 msgTx.data[1]=(unsigned char)angle;
antbig 10:a788d9cf60f2 30 msgTx.data[2]=(unsigned char)(angle>>8);
antbig 10:a788d9cf60f2 31
antbig 10:a788d9cf60f2 32 can1.write(msgTx);
antbig 10:a788d9cf60f2 33 }
antbig 3:19f2285a4757 34
ClementBreteau 18:cc5fec34ed9c 35
antbig 3:19f2285a4757 36 /****************************************************************************************/
antbig 3:19f2285a4757 37 /* FUNCTION NAME: doAction */
antbig 3:19f2285a4757 38 /* DESCRIPTION : Effectuer une action specifique */
antbig 3:19f2285a4757 39 /****************************************************************************************/
antbig 3:19f2285a4757 40 unsigned char doAction(unsigned char id, unsigned short speed, short angle) {
ClementBreteau 18:cc5fec34ed9c 41 int retour = 1;
antbig 3:19f2285a4757 42 switch(id) {
ClementBreteau 15:c2fc239e85df 43 case 100: // preparation prise bras central
ClementBreteau 18:cc5fec34ed9c 44 AX12_automate(AX12_PINCE_CENTRALE_PREPARATION_PRISE);
ClementBreteau 15:c2fc239e85df 45 break;
ClementBreteau 15:c2fc239e85df 46 case 101:// stockage haut bras central
ClementBreteau 18:cc5fec34ed9c 47 AX12_automate(AX12_PINCE_CENTRALE_STOCKAGE_HAUT);
ClementBreteau 15:c2fc239e85df 48 break;
ClementBreteau 15:c2fc239e85df 49 case 102:// stockage bas bras central
ClementBreteau 18:cc5fec34ed9c 50 AX12_automate(AX12_PINCE_CENTRALE_STOCKAGE_BAS);
ClementBreteau 15:c2fc239e85df 51 break;
ClementBreteau 15:c2fc239e85df 52 case 103:// ouvrir la main du bras cental
ClementBreteau 18:cc5fec34ed9c 53 AX12_automate(AX12_PINCE_CENTRALE_DEPOSER);
ClementBreteau 15:c2fc239e85df 54 break;
ClementBreteau 15:c2fc239e85df 55 case 104:// preparation de depot du module bas du bras central
ClementBreteau 18:cc5fec34ed9c 56 AX12_automate(AX12_PINCE_CENTRALE_PREPARATION_DEPOT);
ClementBreteau 15:c2fc239e85df 57 break;
ClementBreteau 15:c2fc239e85df 58 case 105:// preparation de depot du module haut du bras central
ClementBreteau 18:cc5fec34ed9c 59 AX12_automate(AX12_PINCE_CENTRALE_DEPOT_HAUT);
ClementBreteau 18:cc5fec34ed9c 60 AX12_automate(AX12_PINCE_CENTRALE_PREPARATION_DEPOT);
ClementBreteau 15:c2fc239e85df 61 break;
ClementBreteau 18:cc5fec34ed9c 62 case 106:// on rentre la pince dans le robot
ClementBreteau 18:cc5fec34ed9c 63 AX12_automate(AX12_PINCE_CENTRALE_POSITION_INITIALE);
ClementBreteau 15:c2fc239e85df 64 break;
ClementBreteau 18:cc5fec34ed9c 65 case 107: // on ferme la pince du robot
ClementBreteau 18:cc5fec34ed9c 66 AX12_automate(AX12_PINCE_CENTRALE_PRISE_MODULE);
ClementBreteau 18:cc5fec34ed9c 67 break;
ClementBreteau 18:cc5fec34ed9c 68
ClementBreteau 15:c2fc239e85df 69 case 110:// ouvrir une porte avant
antbig 11:ed13a480ddca 70 if(InversStrat == 1) {//Si c'est inversé, On utilise le bras coté droit
ClementBreteau 15:c2fc239e85df 71 if(speed == 1) speed = 0;
ClementBreteau 15:c2fc239e85df 72 else speed = 1;
ClementBreteau 18:cc5fec34ed9c 73 }
ClementBreteau 18:cc5fec34ed9c 74
ClementBreteau 18:cc5fec34ed9c 75 if (speed == 1){
ClementBreteau 18:cc5fec34ed9c 76 AX12_automate(AX12_DROIT_CROC_OUVERT);
ClementBreteau 18:cc5fec34ed9c 77 }else{
ClementBreteau 18:cc5fec34ed9c 78 AX12_automate(AX12_GAUCHE_CROC_OUVERT);
antbig 3:19f2285a4757 79 }
antbig 3:19f2285a4757 80 break;
ClementBreteau 15:c2fc239e85df 81 case 111:// securiser un module avec une porte avant
antbig 11:ed13a480ddca 82 if(InversStrat == 1) {//Si c'est inversé, On utilise le bras coté droit
ClementBreteau 15:c2fc239e85df 83 if(speed == 1) speed = 0;
ClementBreteau 15:c2fc239e85df 84 else speed = 1;
ClementBreteau 18:cc5fec34ed9c 85 }
ClementBreteau 18:cc5fec34ed9c 86
ClementBreteau 18:cc5fec34ed9c 87 if (speed == 1){
ClementBreteau 18:cc5fec34ed9c 88 AX12_automate(AX12_DROIT_CROC_FERME);
ClementBreteau 18:cc5fec34ed9c 89 }else{
ClementBreteau 18:cc5fec34ed9c 90 AX12_automate(AX12_GAUCHE_CROC_FERME);
antbig 11:ed13a480ddca 91 }
antbig 10:a788d9cf60f2 92 break;
ClementBreteau 15:c2fc239e85df 93 case 112:// ranger le porte avant dans le robot
antbig 11:ed13a480ddca 94 if(InversStrat == 1) {//Si c'est inversé, On utilise le bras coté droit
ClementBreteau 15:c2fc239e85df 95 if(speed == 1) speed = 0;
ClementBreteau 15:c2fc239e85df 96 else speed = 1;
ClementBreteau 18:cc5fec34ed9c 97 }
ClementBreteau 18:cc5fec34ed9c 98
ClementBreteau 18:cc5fec34ed9c 99 if (speed == 1){
ClementBreteau 18:cc5fec34ed9c 100 AX12_automate(AX12_DROIT_CROC_INITIALE);
ClementBreteau 18:cc5fec34ed9c 101 }else{
ClementBreteau 18:cc5fec34ed9c 102 AX12_automate(AX12_GAUCHE_CROC_INITIALE);
antbig 11:ed13a480ddca 103 }
antbig 11:ed13a480ddca 104 break;
ClementBreteau 15:c2fc239e85df 105 case 120:// poser une main tourneuse
antbig 11:ed13a480ddca 106 if(InversStrat == 1) {//Si c'est inversé, On utilise le bras coté droit
ClementBreteau 16:7321fb3bb396 107 if(speed == 2) speed = 1;
ClementBreteau 16:7321fb3bb396 108 else speed = 2;
ClementBreteau 16:7321fb3bb396 109 if(angle == 1) angle = 0;
ClementBreteau 16:7321fb3bb396 110 else angle = 1;
antbig 11:ed13a480ddca 111 }
ClementBreteau 16:7321fb3bb396 112
ClementBreteau 16:7321fb3bb396 113 if (speed == 1){
ClementBreteau 18:cc5fec34ed9c 114 AX12_automate(AX12_TOURNANTE_DROIT_PREPARATION);
ClementBreteau 16:7321fb3bb396 115 }else{
ClementBreteau 18:cc5fec34ed9c 116 AX12_automate(AX12_TOURNANTE_GAUCHE_PREPARATION);
ClementBreteau 16:7321fb3bb396 117 }
antbig 5:dcd817534b57 118 break;
antbig 10:a788d9cf60f2 119
ClementBreteau 15:c2fc239e85df 120 case 121:// relever une main tourneuse
ClementBreteau 15:c2fc239e85df 121 if(InversStrat == 1) {//Si c'est inversé, On utilise le bras coté droit
ClementBreteau 16:7321fb3bb396 122 if(speed == 2) speed = 1;
ClementBreteau 16:7321fb3bb396 123 else speed = 2;
ClementBreteau 16:7321fb3bb396 124 if(angle == 1) angle = 0;
ClementBreteau 16:7321fb3bb396 125 else angle = 1;
antbig 11:ed13a480ddca 126 }
ClementBreteau 16:7321fb3bb396 127
ClementBreteau 16:7321fb3bb396 128 if (speed == 1){
ClementBreteau 18:cc5fec34ed9c 129 AX12_automate(AX12_TOURNANTE_DROIT_POSITION_INITIALE);
ClementBreteau 16:7321fb3bb396 130 }else{
ClementBreteau 18:cc5fec34ed9c 131 AX12_automate(AX12_TOURNANTE_GAUCHE_POSITION_INITIALE);
ClementBreteau 16:7321fb3bb396 132 }
ClementBreteau 16:7321fb3bb396 133
antbig 10:a788d9cf60f2 134 break;
antbig 10:a788d9cf60f2 135
ClementBreteau 15:c2fc239e85df 136 case 122:// tourner un module
ClementBreteau 18:cc5fec34ed9c 137 if(InversStrat == 1) {//Si c'est inversé
ClementBreteau 16:7321fb3bb396 138 if(speed == 2) speed = 1;
ClementBreteau 16:7321fb3bb396 139 else speed = 2;
ClementBreteau 16:7321fb3bb396 140 if(angle == 1) angle = 0;
ClementBreteau 16:7321fb3bb396 141 else angle = 1;
antbig 11:ed13a480ddca 142 }
ClementBreteau 16:7321fb3bb396 143
ClementBreteau 18:cc5fec34ed9c 144 if (speed == 1){
ClementBreteau 18:cc5fec34ed9c 145 AX12_automate(AX12_TOURNANTE_DROIT_MODULE);
ClementBreteau 18:cc5fec34ed9c 146 Tourner_module_droit();
ClementBreteau 16:7321fb3bb396 147 }else{
ClementBreteau 18:cc5fec34ed9c 148 AX12_automate(AX12_TOURNANTE_GAUCHE_MODULE);
ClementBreteau 18:cc5fec34ed9c 149 Tourner_module_gauche();
ClementBreteau 18:cc5fec34ed9c 150 }
ClementBreteau 18:cc5fec34ed9c 151 break;
ClementBreteau 18:cc5fec34ed9c 152
ClementBreteau 18:cc5fec34ed9c 153 case 200 :
ClementBreteau 18:cc5fec34ed9c 154 telemetreDistance = dataTelemetre();
ClementBreteau 18:cc5fec34ed9c 155 wait_ms(1);
ClementBreteau 18:cc5fec34ed9c 156 telemetreDistance = dataTelemetre();
ClementBreteau 18:cc5fec34ed9c 157 telemetreDistance = telemetreDistance - 170;
ClementBreteau 18:cc5fec34ed9c 158 break;
ClementBreteau 18:cc5fec34ed9c 159
ClementBreteau 18:cc5fec34ed9c 160 case 201 :
ClementBreteau 18:cc5fec34ed9c 161 SendRawId(0x96);
ClementBreteau 18:cc5fec34ed9c 162 retour = 2;
antbig 10:a788d9cf60f2 163 break;
ClementBreteau 15:c2fc239e85df 164
antbig 12:14729d584500 165 case 10://Désactiver le stop
antbig 12:14729d584500 166 isStopEnable = 0;
antbig 12:14729d584500 167 break;
antbig 12:14729d584500 168 case 11://Activer le stop
antbig 12:14729d584500 169 isStopEnable = 1;
antbig 12:14729d584500 170 break;
antbig 12:14729d584500 171 case 20://Désactiver l'asservissement
antbig 12:14729d584500 172 setAsservissementEtat(0);
antbig 12:14729d584500 173 break;
antbig 12:14729d584500 174 case 21://Activer l'asservissement
antbig 12:14729d584500 175 setAsservissementEtat(1);
ClementBreteau 16:7321fb3bb396 176 break;
ClementBreteau 16:7321fb3bb396 177
ClementBreteau 16:7321fb3bb396 178 case 22://Changer la vitesse du robot
ClementBreteau 16:7321fb3bb396 179 SendSpeed(speed,(unsigned short)angle);
ClementBreteau 18:cc5fec34ed9c 180 wait_us(200);
antbig 28:acd18776ed2d 181 waitingAckFrom = 0;
antbig 28:acd18776ed2d 182 waitingAckID = 0;
antbig 28:acd18776ed2d 183 break;
antbig 28:acd18776ed2d 184
antbig 28:acd18776ed2d 185 case 19: // CHANGER LA VITESSE + DECELERATION
antbig 28:acd18776ed2d 186 SendSpeedDecel(speed,(unsigned short) angle);
antbig 28:acd18776ed2d 187 wait_us(200);
antbig 28:acd18776ed2d 188 waitingAckFrom = 0;
antbig 28:acd18776ed2d 189 waitingAckID =0;
ClementBreteau 16:7321fb3bb396 190 break;
ClementBreteau 16:7321fb3bb396 191
ClementBreteau 16:7321fb3bb396 192 case 30://Action tempo
ClementBreteau 16:7321fb3bb396 193 wait_ms(speed);
antbig 12:14729d584500 194 break;
antbig 10:a788d9cf60f2 195
antbig 3:19f2285a4757 196 default:
ClementBreteau 18:cc5fec34ed9c 197 retour = 0;//L'action n'existe pas, il faut utiliser le CAN
antbig 3:19f2285a4757 198
antbig 3:19f2285a4757 199 }
ClementBreteau 18:cc5fec34ed9c 200 return retour;//L'action est spécifique.
antbig 3:19f2285a4757 201
antbig 3:19f2285a4757 202 }
antbig 3:19f2285a4757 203
antbig 3:19f2285a4757 204 /****************************************************************************************/
antbig 3:19f2285a4757 205 /* FUNCTION NAME: initRobot */
antbig 3:19f2285a4757 206 /* DESCRIPTION : initialiser le robot */
antbig 3:19f2285a4757 207 /****************************************************************************************/
antbig 3:19f2285a4757 208 void initRobot(void) {
antbig 3:19f2285a4757 209 /**
antbig 3:19f2285a4757 210 On enregistre les id des AX12 présent sur la carte
antbig 3:19f2285a4757 211 **/
ClementBreteau 15:c2fc239e85df 212 /*AX12_register(1,AX12_SERIAL1,0x0FF);
antbig 5:dcd817534b57 213 AX12_register(2,AX12_SERIAL1);
antbig 5:dcd817534b57 214 AX12_register(18,AX12_SERIAL1);
antbig 5:dcd817534b57 215 AX12_register(4,AX12_SERIAL2);
antbig 5:dcd817534b57 216 AX12_register(16,AX12_SERIAL2);
ClementBreteau 15:c2fc239e85df 217 AX12_register(17,AX12_SERIAL2,0x0FF);*/
antbig 12:14729d584500 218
antbig 12:14729d584500 219 //runRobotTest();
antbig 12:14729d584500 220
antbig 5:dcd817534b57 221 /*
antbig 5:dcd817534b57 222 AX12_setGoal(AX12_ID_BRAS_BASE_INV,278,0x0FF);
antbig 5:dcd817534b57 223 AX12_setGoal(AX12_ID_BRAS_RELACHEUR_INV,160);//fermer le bras
antbig 5:dcd817534b57 224 AX12_setGoal(AX12_ID_BRAS_BASE,278,0x0FF);
antbig 5:dcd817534b57 225 AX12_setGoal(AX12_ID_BRAS_RELACHEUR,160);//fermer le bras
antbig 5:dcd817534b57 226 AX12_processChange();*/
ClementBreteau 16:7321fb3bb396 227
ClementBreteau 18:cc5fec34ed9c 228 initialisation_AX12();
ClementBreteau 18:cc5fec34ed9c 229
antbig 3:19f2285a4757 230 }
antbig 3:19f2285a4757 231
antbig 4:88431b537477 232 /****************************************************************************************/
antbig 12:14729d584500 233 /* FUNCTION NAME: initRobotActionneur */
antbig 12:14729d584500 234 /* DESCRIPTION : Initialiser la position des actionneurs du robot */
antbig 12:14729d584500 235 /****************************************************************************************/
antbig 12:14729d584500 236 void initRobotActionneur(void)
antbig 12:14729d584500 237 {
ClementBreteau 18:cc5fec34ed9c 238 moteurGauchePWM(0);
ClementBreteau 18:cc5fec34ed9c 239 moteurDroitPWM(0);
ClementBreteau 18:cc5fec34ed9c 240 AX12_automate(AX12_PINCE_CENTRALE_POSITION_INITIALE);
ClementBreteau 18:cc5fec34ed9c 241 AX12_automate(AX12_GAUCHE_CROC_INITIALE);
ClementBreteau 18:cc5fec34ed9c 242 AX12_automate(AX12_DROIT_CROC_INITIALE);
ClementBreteau 18:cc5fec34ed9c 243 AX12_automate(AX12_TOURNANTE_GAUCHE_POSITION_INITIALE);
ClementBreteau 18:cc5fec34ed9c 244 AX12_automate(AX12_TOURNANTE_DROIT_POSITION_INITIALE);
antbig 12:14729d584500 245 }
antbig 12:14729d584500 246
antbig 12:14729d584500 247 /****************************************************************************************/
antbig 9:d0042422d95a 248 /* FUNCTION NAME: runTest */
antbig 9:d0042422d95a 249 /* DESCRIPTION : tester l'ensemble des actionneurs du robot */
antbig 9:d0042422d95a 250 /****************************************************************************************/
antbig 9:d0042422d95a 251 void runRobotTest(void)
antbig 9:d0042422d95a 252 {
ClementBreteau 18:cc5fec34ed9c 253
antbig 9:d0042422d95a 254 }
antbig 9:d0042422d95a 255
antbig 9:d0042422d95a 256 /****************************************************************************************/
antbig 4:88431b537477 257 /* FUNCTION NAME: SelectStrategy */
antbig 4:88431b537477 258 /* DESCRIPTION : Charger le fichier de stratégie correspondante à un id */
antbig 4:88431b537477 259 /* RETURN : 0=> Erreur, 1=> OK si le fichier existe */
antbig 4:88431b537477 260 /****************************************************************************************/
antbig 4:88431b537477 261 int SelectStrategy(unsigned char id)
antbig 4:88431b537477 262 {
antbig 12:14729d584500 263
antbig 4:88431b537477 264 switch(id)
antbig 4:88431b537477 265 {
antbig 4:88431b537477 266 case 1:
antbig 4:88431b537477 267 strcpy(cheminFileStart,"/local/strat1.txt");
antbig 4:88431b537477 268 return FileExists(cheminFileStart);
antbig 4:88431b537477 269 case 2:
antbig 4:88431b537477 270 strcpy(cheminFileStart,"/local/strat2.txt");
antbig 4:88431b537477 271 return FileExists(cheminFileStart);
antbig 7:dcce34c7e06e 272 case 3:
antbig 7:dcce34c7e06e 273 strcpy(cheminFileStart,"/local/strat3.txt");
antbig 7:dcce34c7e06e 274 return FileExists(cheminFileStart);
antbig 11:ed13a480ddca 275 case 4:
antbig 11:ed13a480ddca 276 strcpy(cheminFileStart,"/local/strat4.txt");
antbig 11:ed13a480ddca 277 return FileExists(cheminFileStart);
antbig 11:ed13a480ddca 278 case 5:
antbig 11:ed13a480ddca 279 strcpy(cheminFileStart,"/local/strat5.txt");
antbig 11:ed13a480ddca 280 return FileExists(cheminFileStart);
antbig 12:14729d584500 281 case 6:
antbig 12:14729d584500 282 strcpy(cheminFileStart,"/local/strat6.txt");
antbig 12:14729d584500 283 return FileExists(cheminFileStart);
ClementBreteau 16:7321fb3bb396 284 case 7:
ClementBreteau 16:7321fb3bb396 285 strcpy(cheminFileStart,"/local/strat7.txt");
ClementBreteau 16:7321fb3bb396 286 return FileExists(cheminFileStart);
ClementBreteau 16:7321fb3bb396 287 case 8:
ClementBreteau 16:7321fb3bb396 288 strcpy(cheminFileStart,"/local/strat8.txt");
ClementBreteau 16:7321fb3bb396 289 return FileExists(cheminFileStart);
ClementBreteau 16:7321fb3bb396 290 case 9:
ClementBreteau 16:7321fb3bb396 291 strcpy(cheminFileStart,"/local/strat9.txt");
ClementBreteau 16:7321fb3bb396 292 return FileExists(cheminFileStart);
antbig 12:14729d584500 293 case 10:
ClementBreteau 16:7321fb3bb396 294 strcpy(cheminFileStart,"/local/strat10.txt");
ClementBreteau 16:7321fb3bb396 295 return FileExists(cheminFileStart);
ClementBreteau 16:7321fb3bb396 296 case 11:
antbig 12:14729d584500 297 strcpy(cheminFileStart,"/local/grand_8.txt");
antbig 12:14729d584500 298 return FileExists(cheminFileStart);
ClementBreteau 16:7321fb3bb396 299
ClementBreteau 16:7321fb3bb396 300 case 0x10:
ClementBreteau 16:7321fb3bb396 301 strcpy(cheminFileStart,"/local/demoBras.txt");
ClementBreteau 16:7321fb3bb396 302 return FileExists(cheminFileStart);
ClementBreteau 16:7321fb3bb396 303
antbig 4:88431b537477 304 default:
antbig 12:14729d584500 305 strcpy(cheminFileStart,"/local/strat1.txt");
ClementBreteau 16:7321fb3bb396 306 SendRawId(0x258);
antbig 4:88431b537477 307 return 0;
antbig 4:88431b537477 308 }
antbig 4:88431b537477 309 }
antbig 4:88431b537477 310
antbig 12:14729d584500 311 /****************************************************************************************/
antbig 12:14729d584500 312 /* FUNCTION NAME: needToStop */
antbig 12:14729d584500 313 /* DESCRIPTION : Savoir si il faut autoriser le stop du robot via balise */
antbig 12:14729d584500 314 /****************************************************************************************/
antbig 12:14729d584500 315 unsigned char needToStop(void)
antbig 12:14729d584500 316 {
antbig 12:14729d584500 317 return isStopEnable;
antbig 12:14729d584500 318 }
antbig 12:14729d584500 319
antbig 12:14729d584500 320 /****************************************************************************************/
antbig 12:14729d584500 321 /* FUNCTION NAME: doBeforeEndAction */
antbig 12:14729d584500 322 /* DESCRIPTION : Terminer les actions du robot 1s avant la fin du match */
antbig 12:14729d584500 323 /****************************************************************************************/
antbig 12:14729d584500 324 void doBeforeEndAction(void)
antbig 12:14729d584500 325 {
antbig 12:14729d584500 326
antbig 12:14729d584500 327 }
antbig 12:14729d584500 328
antbig 3:19f2285a4757 329 #endif