Programme carte strategie (disco)

Dependencies:   mbed SerialHalfDuplex SDFileSystem DISCO-F469NI_portrait liaison_Bluetooth ident_crac

Committer:
Sitkah
Date:
Fri Apr 20 09:16:13 2018 +0000
Revision:
30:a1e37af4bbde
Parent:
29:41e02746041d
Child:
36:6dd30780bd8e
ne pas en prendre compte !;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Sitkah 29:41e02746041d 1 #include "global.h"
Sitkah 29:41e02746041d 2 #ifdef ROBOT_BIG
ClementBreteau 15:c2fc239e85df 3
Sitkah 29:41e02746041d 4
antbig 12:14729d584500 5 unsigned char isStopEnable = 1;//Permet de savoir si il faut autoriser le stop via les balises
antbig 12:14729d584500 6
antbig 0:ad97421fb1fb 7 /****************************************************************************************/
antbig 0:ad97421fb1fb 8 /* FUNCTION NAME: doFunnyAction */
antbig 0:ad97421fb1fb 9 /* DESCRIPTION : Permet de faire la funny action en fin de partie */
antbig 0:ad97421fb1fb 10 /****************************************************************************************/
antbig 0:ad97421fb1fb 11 void doFunnyAction(void) {
ClementBreteau 18:cc5fec34ed9c 12 //envoie de la funny action
ClementBreteau 18:cc5fec34ed9c 13 // 0x007, 01, 01
ClementBreteau 18:cc5fec34ed9c 14 CANMessage msgTx=CANMessage();
ClementBreteau 18:cc5fec34ed9c 15 msgTx.id=GLOBAL_FUNNY_ACTION;
ClementBreteau 18:cc5fec34ed9c 16 msgTx.format=CANStandard;
ClementBreteau 18:cc5fec34ed9c 17 msgTx.type=CANData;
ClementBreteau 18:cc5fec34ed9c 18 msgTx.len=2;
ClementBreteau 18:cc5fec34ed9c 19 msgTx.data[0]=0x01;
ClementBreteau 18:cc5fec34ed9c 20 msgTx.data[1]=0x01;
ClementBreteau 18:cc5fec34ed9c 21 can1.write(msgTx);
antbig 0:ad97421fb1fb 22 }
antbig 0:ad97421fb1fb 23
antbig 0:ad97421fb1fb 24 /****************************************************************************************/
antbig 0:ad97421fb1fb 25 /* FUNCTION NAME: doAction */
antbig 0:ad97421fb1fb 26 /* DESCRIPTION : Effectuer une action specifique */
antbig 0:ad97421fb1fb 27 /****************************************************************************************/
Sitkah 30:a1e37af4bbde 28 unsigned char doAction(unsigned char id, unsigned short var1, short var2) {
antbig 12:14729d584500 29 CANMessage msgTx=CANMessage();
Sitkah 30:a1e37af4bbde 30 msgTx.format=CANStandard;
Sitkah 30:a1e37af4bbde 31 msgTx.type=CANData;
Sitkah 30:a1e37af4bbde 32 //affichage_debug(id);
Sitkah 30:a1e37af4bbde 33
antbig 0:ad97421fb1fb 34 switch(id) {
Sitkah 30:a1e37af4bbde 35 /////////////////////////////////////////////////////////100 à 108 : ACTIONS HERKULEX/////////////////////////////////////////////
Sitkah 30:a1e37af4bbde 36 /*case 100: //Monte l'immeuble selon le code couleur
Sitkah 30:a1e37af4bbde 37 msgTx.id=MONTER_IMMEUBLE;
ClementBreteau 18:cc5fec34ed9c 38
Sitkah 30:a1e37af4bbde 39 msgTx.len=3;
Sitkah 30:a1e37af4bbde 40 msgTx.data[0]=couleur1;
Sitkah 30:a1e37af4bbde 41 msgTx.data[1]=couleur2;
Sitkah 30:a1e37af4bbde 42 msgTx.data[2]=couleur3;
ClementBreteau 18:cc5fec34ed9c 43 can1.write(msgTx);
Sitkah 30:a1e37af4bbde 44 break;*/
ClementBreteau 15:c2fc239e85df 45
Sitkah 30:a1e37af4bbde 46 case 101: //baisser l'attrape bloc arrière
Sitkah 30:a1e37af4bbde 47 SendRawId(BAISSER_ATTRAPE_BLOC);
Sitkah 30:a1e37af4bbde 48 wait_us(50);
Sitkah 30:a1e37af4bbde 49 break;
Sitkah 30:a1e37af4bbde 50 case 102: //Relever l'attrape bloc arrière
Sitkah 30:a1e37af4bbde 51 SendRawId(RELEVER_ATTRAPE_BLOC);
Sitkah 30:a1e37af4bbde 52 break;
Sitkah 30:a1e37af4bbde 53 case 103: //
Sitkah 30:a1e37af4bbde 54 SendRawId(BAISSER_ATTRAPE_BLOC_CENTRE_G);
Sitkah 30:a1e37af4bbde 55 break;
Sitkah 30:a1e37af4bbde 56 case 104:
Sitkah 30:a1e37af4bbde 57 SendRawId(RELEVER_ATTRAPE_BLOC_CENTRE_G);
Sitkah 30:a1e37af4bbde 58 break;
Sitkah 30:a1e37af4bbde 59 case 105:
Sitkah 30:a1e37af4bbde 60 SendRawId(BAISSER_ATTRAPE_BLOC_CENTRE_D);
Sitkah 30:a1e37af4bbde 61 break;
Sitkah 30:a1e37af4bbde 62 case 106:
Sitkah 30:a1e37af4bbde 63 SendRawId(RELEVER_ATTRAPE_BLOC_CENTRE_D);
Sitkah 30:a1e37af4bbde 64 break;
Sitkah 30:a1e37af4bbde 65 case 107:
Sitkah 30:a1e37af4bbde 66 SendRawId(RELEVER_ATTRAPE_BLOC_EXT_D);
Sitkah 30:a1e37af4bbde 67 break;
Sitkah 30:a1e37af4bbde 68 case 108:
Sitkah 30:a1e37af4bbde 69 SendRawId(BAISSER_ATTRAPE_BLOC_EXT_D);
Sitkah 30:a1e37af4bbde 70 break;
Sitkah 30:a1e37af4bbde 71 case 109:
Sitkah 30:a1e37af4bbde 72 SendRawId(BAISSER_ATTRAPE_BLOC_EXT_G);
Sitkah 30:a1e37af4bbde 73 break;
Sitkah 30:a1e37af4bbde 74 case 110:
Sitkah 30:a1e37af4bbde 75 SendRawId(RELEVER_ATTRAPE_BLOC_EXT_G);
Sitkah 30:a1e37af4bbde 76 break;
Sitkah 30:a1e37af4bbde 77 case 111:
Sitkah 30:a1e37af4bbde 78 SendRawId(BRAS_VENTOUSE_1);
Sitkah 30:a1e37af4bbde 79 break;
Sitkah 30:a1e37af4bbde 80 case 112:
Sitkah 30:a1e37af4bbde 81 SendRawId(BRAS_VENTOUSE_2);
Sitkah 30:a1e37af4bbde 82 break;
Sitkah 30:a1e37af4bbde 83 case 113:
Sitkah 30:a1e37af4bbde 84 SendRawId(LIRE_PANNEAU);
Sitkah 30:a1e37af4bbde 85 break;
Sitkah 30:a1e37af4bbde 86 case 114: //allumer panneau
Sitkah 30:a1e37af4bbde 87 SendRawId(ALLUMER_PANNEAU_UP);
Sitkah 30:a1e37af4bbde 88 break;
Sitkah 30:a1e37af4bbde 89 case 115: //range le bras qui allume le panneau
Sitkah 30:a1e37af4bbde 90 SendRawId(ALLUMER_PANNEAU_DOWN);
Sitkah 30:a1e37af4bbde 91 break;
Sitkah 30:a1e37af4bbde 92 case 116: //lève le bras pour pousser l'abeille
Sitkah 30:a1e37af4bbde 93 SendRawId(BRAS_ABEILLE_UP);
Sitkah 30:a1e37af4bbde 94 break;
Sitkah 30:a1e37af4bbde 95 case 117: //abaisse le bras qui pousse l'abeille
Sitkah 30:a1e37af4bbde 96 SendRawId(BRAS_ABEILLE_DOWN);
Sitkah 30:a1e37af4bbde 97 break;
Sitkah 30:a1e37af4bbde 98 ////////////////////////////////////////////////////////130 à 134 GESTIONS BALLES/////////////////////////////////////////
ClementBreteau 18:cc5fec34ed9c 99
antbig 12:14729d584500 100 case 10://Désactiver le stop
antbig 12:14729d584500 101 isStopEnable = 0;
antbig 12:14729d584500 102 break;
antbig 12:14729d584500 103 case 11://Activer le stop
antbig 12:14729d584500 104 isStopEnable = 1;
antbig 12:14729d584500 105 break;
antbig 12:14729d584500 106 case 20://Désactiver l'asservissement
antbig 12:14729d584500 107 setAsservissementEtat(0);
antbig 12:14729d584500 108 break;
antbig 12:14729d584500 109 case 21://Activer l'asservissement
antbig 12:14729d584500 110 setAsservissementEtat(1);
antbig 12:14729d584500 111 break;
antbig 12:14729d584500 112
antbig 12:14729d584500 113 case 22://Changer la vitesse du robot
Sitkah 30:a1e37af4bbde 114 SendSpeed(var1,(unsigned short)var2);
ClementBreteau 26:2f4fcc2354f3 115 waitingAckFrom = 0;
ClementBreteau 26:2f4fcc2354f3 116 waitingAckID = 0;
ClementBreteau 26:2f4fcc2354f3 117 wait(0.2);
antbig 12:14729d584500 118 break;
antbig 12:14729d584500 119
antbig 12:14729d584500 120 case 30://Action tempo
Sitkah 30:a1e37af4bbde 121 wait_ms(var1);
antbig 12:14729d584500 122 break;
antbig 12:14729d584500 123
ClementBreteau 18:cc5fec34ed9c 124 /*case 40: // demande au telemetre la position d'un objet
ClementBreteau 14:c8fc06c4887f 125 //SendRawId(TELEMETRE_RECHERCHE_OBJET);
ClementBreteau 15:c2fc239e85df 126
ClementBreteau 15:c2fc239e85df 127 modeTelemetre = 1;
ClementBreteau 15:c2fc239e85df 128
ClementBreteau 15:c2fc239e85df 129 //angle = angle /10;
ClementBreteau 15:c2fc239e85df 130
ClementBreteau 15:c2fc239e85df 131 msgTx.id=TELEMETRE_OBJET;
ClementBreteau 15:c2fc239e85df 132 msgTx.format=CANStandard;
ClementBreteau 15:c2fc239e85df 133 msgTx.type=CANData;
ClementBreteau 15:c2fc239e85df 134 msgTx.len=1;
ClementBreteau 15:c2fc239e85df 135 // indice du module sur le terrain
ClementBreteau 15:c2fc239e85df 136 msgTx.data[0] = (unsigned char)speed;
ClementBreteau 15:c2fc239e85df 137
ClementBreteau 18:cc5fec34ed9c 138
ClementBreteau 15:c2fc239e85df 139 // x sur 2 octets
ClementBreteau 15:c2fc239e85df 140 msgTx.data[0]=(unsigned char)speed;
ClementBreteau 15:c2fc239e85df 141 msgTx.data[1]=(unsigned char)(speed>>8);
ClementBreteau 15:c2fc239e85df 142 // y sur 2 octets
ClementBreteau 15:c2fc239e85df 143 msgTx.data[2]=(unsigned char)angle;
ClementBreteau 15:c2fc239e85df 144 msgTx.data[3]=(unsigned char)(angle>>8);
ClementBreteau 15:c2fc239e85df 145 // theta signé sur 2 octets
ClementBreteau 15:c2fc239e85df 146 //msgTx.data[4]=(unsigned char)theta;
ClementBreteau 15:c2fc239e85df 147 //msgTx.data[5]=(unsigned char)(theta>>8);
ClementBreteau 15:c2fc239e85df 148 msgTx.data[4]=0;
ClementBreteau 18:cc5fec34ed9c 149 msgTx.data[5]=0;
ClementBreteau 15:c2fc239e85df 150
ClementBreteau 15:c2fc239e85df 151 can1.write(msgTx);
ClementBreteau 15:c2fc239e85df 152
ClementBreteau 18:cc5fec34ed9c 153 break;*/
ClementBreteau 14:c8fc06c4887f 154
ClementBreteau 18:cc5fec34ed9c 155 /* case 130://Lancer mouvement de sortie de la zone de départ
ClementBreteau 15:c2fc239e85df 156 msgTx.id=ACTION_BIG_DEMARRAGE;
ClementBreteau 15:c2fc239e85df 157 msgTx.format=CANStandard;
ClementBreteau 15:c2fc239e85df 158 msgTx.type=CANData;
ClementBreteau 15:c2fc239e85df 159 msgTx.len=1;
ClementBreteau 15:c2fc239e85df 160 msgTx.data[0] = (unsigned char)speed;
ClementBreteau 15:c2fc239e85df 161 can1.write(msgTx);
ClementBreteau 18:cc5fec34ed9c 162 break;*/
antbig 12:14729d584500 163
antbig 0:ad97421fb1fb 164 default:
antbig 0:ad97421fb1fb 165 return 0;//L'action n'existe pas, il faut utiliser le CAN
antbig 0:ad97421fb1fb 166
antbig 0:ad97421fb1fb 167 }
antbig 0:ad97421fb1fb 168 return 1;//L'action est spécifique.
antbig 0:ad97421fb1fb 169
antbig 0:ad97421fb1fb 170 }
antbig 0:ad97421fb1fb 171
antbig 0:ad97421fb1fb 172 /****************************************************************************************/
antbig 0:ad97421fb1fb 173 /* FUNCTION NAME: initRobot */
antbig 0:ad97421fb1fb 174 /* DESCRIPTION : initialiser le robot */
antbig 0:ad97421fb1fb 175 /****************************************************************************************/
antbig 9:d0042422d95a 176 void initRobot(void)
antbig 9:d0042422d95a 177 {
antbig 9:d0042422d95a 178 //Enregistrement de tous les AX12 présent sur la carte
ClementBreteau 15:c2fc239e85df 179 /*AX12_register(5, AX12_SERIAL2);
antbig 8:0edc7dfb7f7e 180 AX12_register(18, AX12_SERIAL2);
antbig 8:0edc7dfb7f7e 181 AX12_register(13, AX12_SERIAL2);
antbig 12:14729d584500 182 AX12_register(1, AX12_SERIAL1);
antbig 12:14729d584500 183 AX12_register(11, AX12_SERIAL1);
antbig 12:14729d584500 184 AX12_register(8, AX12_SERIAL1);
ClementBreteau 15:c2fc239e85df 185 AX12_register(7, AX12_SERIAL2);*/
antbig 9:d0042422d95a 186
antbig 12:14729d584500 187 //AX12_setGoal(AX12_ID_FUNNY_ACTION, AX12_ANGLE_FUNNY_ACTION_CLOSE,AX12_SPEED_FUNNY_ACTION);
antbig 12:14729d584500 188 //AX12_processChange();
antbig 11:ed13a480ddca 189 //runRobotTest();
ClementBreteau 16:7321fb3bb396 190
antbig 9:d0042422d95a 191 }
antbig 9:d0042422d95a 192
antbig 9:d0042422d95a 193 /****************************************************************************************/
antbig 12:14729d584500 194 /* FUNCTION NAME: initRobotActionneur */
antbig 12:14729d584500 195 /* DESCRIPTION : Initialiser la position des actionneurs du robot */
antbig 12:14729d584500 196 /****************************************************************************************/
antbig 12:14729d584500 197 void initRobotActionneur(void)
antbig 12:14729d584500 198 {
ClementBreteau 23:ab87d308eaf9 199 /*doAction(100,1,0);
ClementBreteau 23:ab87d308eaf9 200 doAction(100,2,0);
ClementBreteau 23:ab87d308eaf9 201 doAction(110,0,0);
ClementBreteau 23:ab87d308eaf9 202 doAction(120,0,0);
ClementBreteau 23:ab87d308eaf9 203 doAction(131,0,0);*/
ClementBreteau 23:ab87d308eaf9 204
antbig 12:14729d584500 205 }
antbig 12:14729d584500 206
antbig 12:14729d584500 207 /****************************************************************************************/
antbig 9:d0042422d95a 208 /* FUNCTION NAME: runTest */
antbig 9:d0042422d95a 209 /* DESCRIPTION : tester l'ensemble des actionneurs du robot */
antbig 9:d0042422d95a 210 /****************************************************************************************/
antbig 9:d0042422d95a 211 void runRobotTest(void)
antbig 9:d0042422d95a 212 {
ClementBreteau 18:cc5fec34ed9c 213 /*
antbig 12:14729d584500 214 int waitTime = 500;
antbig 12:14729d584500 215
antbig 9:d0042422d95a 216 //Test des AX12 dans l'ordre
antbig 9:d0042422d95a 217 doAction(111,0,0);//Fermeture pince arrière haute
antbig 12:14729d584500 218 wait_ms(waitTime);
antbig 9:d0042422d95a 219 doAction(110,0,0);//Ouverture pince arrière haute
antbig 12:14729d584500 220 wait_ms(waitTime);
antbig 9:d0042422d95a 221 doAction(113,0,0);//Fermeture pince arrière basse
antbig 12:14729d584500 222 wait_ms(waitTime);
antbig 9:d0042422d95a 223 doAction(112,0,0);//Ouverture pince arrière basse
antbig 12:14729d584500 224 wait_ms(waitTime);
antbig 9:d0042422d95a 225 doAction(115,0,0);//Fermeture porte arrière
antbig 12:14729d584500 226 wait_ms(waitTime);
antbig 9:d0042422d95a 227 doAction(114,0,0);//Ouverture porte arrière
antbig 12:14729d584500 228 wait_ms(waitTime);
antbig 12:14729d584500 229 doAction(101,0,0);//Fermer les portes avant
antbig 12:14729d584500 230 wait_ms(waitTime);
antbig 12:14729d584500 231 doAction(100,0,0);//Ouvrir les portes avant
antbig 12:14729d584500 232 wait_ms(waitTime);
antbig 12:14729d584500 233 doAction(103,0,0);//Descendre le peigne
antbig 12:14729d584500 234 wait_ms(waitTime);
ClementBreteau 18:cc5fec34ed9c 235 doAction(102,0,0);//Remonter le peigne*/
antbig 0:ad97421fb1fb 236 }
antbig 3:19f2285a4757 237
antbig 4:88431b537477 238 /****************************************************************************************/
antbig 4:88431b537477 239 /* FUNCTION NAME: SelectStrategy */
antbig 4:88431b537477 240 /* DESCRIPTION : Charger le fichier de stratégie correspondante à un id */
antbig 4:88431b537477 241 /* RETURN : 0=> Erreur, 1=> OK si le fichier existe */
antbig 4:88431b537477 242 /****************************************************************************************/
Sitkah 29:41e02746041d 243 /*int SelectStrategy(unsigned char id)
antbig 4:88431b537477 244 {
antbig 4:88431b537477 245 switch(id)
antbig 4:88431b537477 246 {
ClementBreteau 15:c2fc239e85df 247 // strat de match
antbig 4:88431b537477 248 case 1:
antbig 11:ed13a480ddca 249 strcpy(cheminFileStart,"/local/strat1.txt");
antbig 11:ed13a480ddca 250 return FileExists(cheminFileStart);
antbig 11:ed13a480ddca 251 case 2:
antbig 11:ed13a480ddca 252 strcpy(cheminFileStart,"/local/strat2.txt");
antbig 11:ed13a480ddca 253 return FileExists(cheminFileStart);
antbig 11:ed13a480ddca 254 case 3:
antbig 11:ed13a480ddca 255 strcpy(cheminFileStart,"/local/strat3.txt");
antbig 11:ed13a480ddca 256 return FileExists(cheminFileStart);
antbig 12:14729d584500 257 case 4:
antbig 12:14729d584500 258 strcpy(cheminFileStart,"/local/strat4.txt");
antbig 12:14729d584500 259 return FileExists(cheminFileStart);
antbig 12:14729d584500 260 case 5:
antbig 12:14729d584500 261 strcpy(cheminFileStart,"/local/strat5.txt");
antbig 12:14729d584500 262 return FileExists(cheminFileStart);
ClementBreteau 14:c8fc06c4887f 263 case 6:
ClementBreteau 14:c8fc06c4887f 264 strcpy(cheminFileStart,"/local/strat6.txt");
ClementBreteau 14:c8fc06c4887f 265 return FileExists(cheminFileStart);
ClementBreteau 14:c8fc06c4887f 266 case 7:
ClementBreteau 14:c8fc06c4887f 267 strcpy(cheminFileStart,"/local/strat7.txt");
ClementBreteau 14:c8fc06c4887f 268 return FileExists(cheminFileStart);
ClementBreteau 14:c8fc06c4887f 269 case 8:
ClementBreteau 14:c8fc06c4887f 270 strcpy(cheminFileStart,"/local/strat8.txt");
ClementBreteau 14:c8fc06c4887f 271 return FileExists(cheminFileStart);
ClementBreteau 14:c8fc06c4887f 272 case 9:
ClementBreteau 14:c8fc06c4887f 273 strcpy(cheminFileStart,"/local/strat9.txt");
ClementBreteau 14:c8fc06c4887f 274 return FileExists(cheminFileStart);
ClementBreteau 14:c8fc06c4887f 275 case 10:
ClementBreteau 14:c8fc06c4887f 276 strcpy(cheminFileStart,"/local/strat10.txt");
ClementBreteau 14:c8fc06c4887f 277 return FileExists(cheminFileStart);
ClementBreteau 14:c8fc06c4887f 278
ClementBreteau 15:c2fc239e85df 279 // strat de demo
ClementBreteau 14:c8fc06c4887f 280 case 0x10:
ClementBreteau 14:c8fc06c4887f 281 strcpy(cheminFileStart,"/local/moteur.txt");
ClementBreteau 14:c8fc06c4887f 282 return FileExists(cheminFileStart);
ClementBreteau 14:c8fc06c4887f 283 case 0x11:
ClementBreteau 15:c2fc239e85df 284 #ifdef ROBOT_BIG
ClementBreteau 15:c2fc239e85df 285 strcpy(cheminFileStart,"/local/bras.txt");
ClementBreteau 15:c2fc239e85df 286 #else
ClementBreteau 15:c2fc239e85df 287 strcpy(cheminFileStart,"/local/porteAvant.txt");
ClementBreteau 15:c2fc239e85df 288 #endif
ClementBreteau 14:c8fc06c4887f 289 return FileExists(cheminFileStart);
ClementBreteau 15:c2fc239e85df 290 case 0x12:
ClementBreteau 15:c2fc239e85df 291 #ifdef ROBOT_BIG
ClementBreteau 15:c2fc239e85df 292 strcpy(cheminFileStart,"/local/balancier.txt");
ClementBreteau 15:c2fc239e85df 293 #else
ClementBreteau 15:c2fc239e85df 294 strcpy(cheminFileStart,"/local/mainTourneuse.txt");
ClementBreteau 15:c2fc239e85df 295 #endif
ClementBreteau 15:c2fc239e85df 296 return FileExists(cheminFileStart);
antbig 11:ed13a480ddca 297 default:
antbig 12:14729d584500 298 strcpy(cheminFileStart,"/local/strat1.txt");
antbig 11:ed13a480ddca 299 return 0;
antbig 4:88431b537477 300 }
Sitkah 29:41e02746041d 301 }*/
antbig 4:88431b537477 302
antbig 12:14729d584500 303 /****************************************************************************************/
antbig 12:14729d584500 304 /* FUNCTION NAME: needToStop */
antbig 12:14729d584500 305 /* DESCRIPTION : Savoir si il faut autoriser le stop du robot via balise */
antbig 12:14729d584500 306 /****************************************************************************************/
antbig 12:14729d584500 307 unsigned char needToStop(void)
antbig 12:14729d584500 308 {
antbig 12:14729d584500 309 return isStopEnable;
antbig 12:14729d584500 310 }
antbig 12:14729d584500 311
antbig 12:14729d584500 312 /****************************************************************************************/
antbig 12:14729d584500 313 /* FUNCTION NAME: doBeforeEndAction */
antbig 12:14729d584500 314 /* DESCRIPTION : Terminer les actions du robot 1s avant la fin du match */
antbig 12:14729d584500 315 /****************************************************************************************/
antbig 12:14729d584500 316 void doBeforeEndAction(void)
antbig 12:14729d584500 317 {
antbig 12:14729d584500 318 doAction(110,0,0);//Ouverture pince arrière haute
antbig 12:14729d584500 319 doAction(112,0,0);//Ouverture pince arrière basse
antbig 12:14729d584500 320 doAction(114,0,0);//Ouverture porte arrière
antbig 12:14729d584500 321 doAction(100,0,0);//Ouvrir les portes avant
antbig 12:14729d584500 322 doAction(102,0,0);//Remonter le peigne
antbig 12:14729d584500 323 }
antbig 12:14729d584500 324
antbig 3:19f2285a4757 325 #endif