Programme de contrôle de l'octopode 4DOF, Theraphosa-Salconi.

Dependencies:   debug mbed

CtrlBridge

  • fonction quelquonque pour communiquer avec les module
  • fonction quelquonque pour faire des recherche dans les module dispo
  • autre fonction pour jouer avec MemRegistre

Version 1.2.0

  • Ajout d'un mode de simulation pour tester le code avec seulement un contrôleur stm32
Committer:
salco
Date:
Mon Aug 31 14:12:05 2015 +0000
Revision:
33:c8b4e5a392e6
Parent:
31:ed23647fd16e
Child:
34:dfd82c744b26
all work, exept we need to include a simulation mode in Directive.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
salco 2:4c5b0f6d0a6b 1
salco 2:4c5b0f6d0a6b 2 #include "directive.h"
salco 31:ed23647fd16e 3 Serial pc(SERIAL_TX, SERIAL_RX);
salco 28:ac5c6350ed9a 4 int tabIR[12][2]= {
salco 28:ac5c6350ed9a 5 {80, 400},{50, 600},{40, 700},{30, 900},{25,1100},
salco 28:ac5c6350ed9a 6 {20,1300},{15,1600},{10,2400},{ 8,2700},{ 7,3000},
salco 28:ac5c6350ed9a 7 { 6,3200},{ 5,3100}
salco 28:ac5c6350ed9a 8 };
salco 28:ac5c6350ed9a 9
salco 28:ac5c6350ed9a 10
salco 28:ac5c6350ed9a 11
salco 28:ac5c6350ed9a 12
salco 28:ac5c6350ed9a 13
salco 2:4c5b0f6d0a6b 14
salco 2:4c5b0f6d0a6b 15 Directive::Directive():TTask(0)//on veux que cette tache sois exec toute les fois que TTaskGen sexecute.
salco 2:4c5b0f6d0a6b 16 {
salco 28:ac5c6350ed9a 17 /* initialize random seed: */
salco 31:ed23647fd16e 18 srand (time(NULL));
salco 33:c8b4e5a392e6 19 myMaze = new Labyrinthe();
salco 33:c8b4e5a392e6 20
salco 28:ac5c6350ed9a 21 myMaze->setDirection(UP);
salco 28:ac5c6350ed9a 22 //c=0;
salco 27:ea60d12dccdf 23 ssc32 = new /*Serial*//*Raw*/Serial/*(USBTX, USBRX);*/(PB_6, PB_7);//(PA_9, PA_10);
salco 27:ea60d12dccdf 24 ctrDesPattes = new Faculter_motrice(ssc32/*pc*/);
salco 28:ac5c6350ed9a 25 m_valueCapteurUltrasonic = 0;
salco 28:ac5c6350ed9a 26 m_valueCapteurIR = 0;
salco 28:ac5c6350ed9a 27 m_valueCapteurProximiter = 0;
salco 28:ac5c6350ed9a 28 for(int i =0; i<10; i++)tableauDeCommange[i]= 0;
salco 28:ac5c6350ed9a 29 size_tableauDeCommange=0;
salco 28:ac5c6350ed9a 30 myMaze->setC(EXPLORER,C5);
salco 19:0ac80045ba4c 31 //m_CtrlBridge = m_CtrlBridge->getInstance();
salco 19:0ac80045ba4c 32 //a enlever de commentaire//m_ListDesModules = m_CtrlBridge->findModule(0,1,0,0);
salco 27:ea60d12dccdf 33
salco 27:ea60d12dccdf 34 //Serial pc(USBTX, USBRX);
salco 27:ea60d12dccdf 35
salco 27:ea60d12dccdf 36 //ssc32->set_flow_control(0);
salco 31:ed23647fd16e 37
salco 28:ac5c6350ed9a 38 myMaze = new Labyrinthe();
salco 27:ea60d12dccdf 39 debug("\n\r directive Init");//printf("Hello World\n");
salco 27:ea60d12dccdf 40 m_ListDesModules = m_CtrlBridge->findModule(0,CAPTEUR,DISTANCE,0);
salco 27:ea60d12dccdf 41 m_ListDesModules.append(m_CtrlBridge->findModule(0,CAPTEUR,PROXIMITEE,0));
salco 28:ac5c6350ed9a 42
salco 27:ea60d12dccdf 43 m_capteurUltrasonic= m_CtrlBridge->findModule(0,CAPTEUR,ULTRASONIQUE,0x27/*0b100111*/);
salco 28:ac5c6350ed9a 44 if(!(m_capteurUltrasonic.empty()))debug(DEBUG_DIRECTIVE_TEST,"\n\r m_capteurUltrasonic found");
salco 28:ac5c6350ed9a 45 else debug(DEBUG_DIRECTIVE_TEST,"\n\r m_capteurUltrasonic not found");
salco 27:ea60d12dccdf 46 m_capteurIR= m_CtrlBridge->findModule(0,CAPTEUR,DISTANCE,0x27/*0b100111*/);
salco 28:ac5c6350ed9a 47 if(!(m_capteurIR.empty()))debug(DEBUG_DIRECTIVE_TEST,"\n\r m_capteurIR found");
salco 28:ac5c6350ed9a 48 else debug(DEBUG_DIRECTIVE_TEST,"\n\r m_capteurIR not found");
salco 27:ea60d12dccdf 49 m_capteurProximiter= m_CtrlBridge->findModule(0,CAPTEUR,PROXIMITEE,0x0E/*0b001110*/);
salco 28:ac5c6350ed9a 50 if(!(m_capteurProximiter.empty()))debug(DEBUG_DIRECTIVE_TEST,"\n\r m_capteurProximiter found");
salco 28:ac5c6350ed9a 51 else debug(DEBUG_DIRECTIVE_TEST,"\n\r m_capteurProximiter not found");
salco 28:ac5c6350ed9a 52
salco 28:ac5c6350ed9a 53 ctrDesPattes->moveUp();
salco 28:ac5c6350ed9a 54
salco 28:ac5c6350ed9a 55 bool getUp=true;
salco 28:ac5c6350ed9a 56 while((getUp)&& (! ctrDesPattes->isSeqComplet())) {
salco 28:ac5c6350ed9a 57 ctrDesPattes->exec();
salco 28:ac5c6350ed9a 58
salco 28:ac5c6350ed9a 59 if(ctrDesPattes->get_idFrame() >= 5)
salco 28:ac5c6350ed9a 60 getUp = false;
salco 28:ac5c6350ed9a 61
salco 28:ac5c6350ed9a 62 }
salco 31:ed23647fd16e 63
salco 28:ac5c6350ed9a 64 ctrDesPattes->calibre();
salco 31:ed23647fd16e 65
salco 31:ed23647fd16e 66 #ifdef DEBUG_BOOT_GRAPHICAL_INTERFACE
salco 31:ed23647fd16e 67 wait(2);
salco 31:ed23647fd16e 68 debug("\x1B[2J"); //clear screen
salco 31:ed23647fd16e 69 debug("\x1B[25l");//hide cursor
salco 31:ed23647fd16e 70 debug("\x1B[;H"); //cursor default position
salco 31:ed23647fd16e 71
salco 31:ed23647fd16e 72 //createSLbox(0,0,5,15,"Mode");
salco 31:ed23647fd16e 73 createDLbox(0,0,10,20,"Menu");//(1,12,10,20,"test2");
salco 31:ed23647fd16e 74 setText(1,3,"1) BrainControle");
salco 31:ed23647fd16e 75 setText(1,4,"2) Show Maze");
salco 31:ed23647fd16e 76 //createDLbox(16,0,5,15,"Stage");
salco 31:ed23647fd16e 77
salco 31:ed23647fd16e 78 #endif
salco 2:4c5b0f6d0a6b 79 }
salco 2:4c5b0f6d0a6b 80 Directive::~Directive()
salco 2:4c5b0f6d0a6b 81 {
salco 11:496453b45e25 82
salco 3:e0d6e081a9d3 83 if(ctrDesPattes)
salco 3:e0d6e081a9d3 84 delete ctrDesPattes;
salco 19:0ac80045ba4c 85 if(ssc32)
salco 19:0ac80045ba4c 86 delete ssc32;
salco 31:ed23647fd16e 87 if(myMaze)
salco 28:ac5c6350ed9a 88 delete myMaze;
salco 2:4c5b0f6d0a6b 89 }
salco 3:e0d6e081a9d3 90 void Directive::task(void)//ALL CODE HERE//
salco 2:4c5b0f6d0a6b 91 {
salco 31:ed23647fd16e 92
salco 31:ed23647fd16e 93 #ifdef DEBUG_BOOT_GRAPHICAL_INTERFACE
salco 31:ed23647fd16e 94 if(pc.readable()){
salco 31:ed23647fd16e 95
salco 31:ed23647fd16e 96 debug("\x1B[2J"); //clear screen
salco 31:ed23647fd16e 97 debug("\x1B[25l");//hide cursor
salco 31:ed23647fd16e 98 debug("\x1B[;H"); //cursor default position
salco 31:ed23647fd16e 99
salco 31:ed23647fd16e 100
salco 31:ed23647fd16e 101 int idCommand;
salco 31:ed23647fd16e 102
salco 31:ed23647fd16e 103 idCommand = fgetc(pc) - '0';
salco 31:ed23647fd16e 104 switch(idCommand)
salco 31:ed23647fd16e 105 {
salco 31:ed23647fd16e 106 case 1:
salco 31:ed23647fd16e 107 createDLbox(0,0,10,25,"BrainControle");
salco 31:ed23647fd16e 108 setText(1,3,"1) Move Up");
salco 31:ed23647fd16e 109 setText(1,4,"2) Move Down");
salco 31:ed23647fd16e 110 setText(1,5,"2) Move Left");
salco 31:ed23647fd16e 111 setText(1,6,"2) Move Right");
salco 31:ed23647fd16e 112 break;
salco 31:ed23647fd16e 113
salco 31:ed23647fd16e 114 case 2:
salco 31:ed23647fd16e 115 createDLbox(0,0,10,20,"Show Maze");
salco 31:ed23647fd16e 116 break;
salco 31:ed23647fd16e 117 }
salco 31:ed23647fd16e 118 }
salco 31:ed23647fd16e 119 #endif
salco 28:ac5c6350ed9a 120 //debug(DEBUG_DIRECTIVE_TEST,"\n\rIn task directive");
salco 28:ac5c6350ed9a 121 if(ctrDesPattes->isSeqComplet()) {
salco 28:ac5c6350ed9a 122 if((tableauDeCommange[0] == 6) && (size_tableauDeCommange == 1)) {
salco 28:ac5c6350ed9a 123 //addTableauDeCommande(0x81);
salco 28:ac5c6350ed9a 124 //addTableauDeCommande(0x82);
salco 28:ac5c6350ed9a 125 //mabey//addTableauDeCommande(0x83);
salco 28:ac5c6350ed9a 126 addTableauDeCommande(0x84);
salco 28:ac5c6350ed9a 127
salco 28:ac5c6350ed9a 128 //addTableauDeCommande(0x85);
salco 28:ac5c6350ed9a 129 //mabey//addTableauDeCommande(0x86);
salco 28:ac5c6350ed9a 130 addTableauDeCommande(0x87);
salco 28:ac5c6350ed9a 131 addTableauDeCommande(0x88);
salco 28:ac5c6350ed9a 132 }
salco 28:ac5c6350ed9a 133 if(tableauDeCommange[0] == 0) {
salco 28:ac5c6350ed9a 134 //pas sur que c'Est tout ce qui doit etre ici mais je vois pas quoi d'autre pour le moment.
salco 28:ac5c6350ed9a 135
salco 28:ac5c6350ed9a 136 ////////////////
salco 28:ac5c6350ed9a 137 // Inspection //
salco 28:ac5c6350ed9a 138 ////////////////
salco 28:ac5c6350ed9a 139 //flag.append(1,0);//0x02);
salco 28:ac5c6350ed9a 140 /*for(int i=0; i<m_ListDesModules.length(); ++i) {
salco 28:ac5c6350ed9a 141 wait_us(300);
salco 28:ac5c6350ed9a 142 flag.clear();
salco 28:ac5c6350ed9a 143 flag.append(1,7);
salco 28:ac5c6350ed9a 144 data.clear();
salco 28:ac5c6350ed9a 145 debug("\n\r result: %d",m_CtrlBridge->send(m_ListDesModules.at(i),flag,data));
salco 28:ac5c6350ed9a 146
salco 28:ac5c6350ed9a 147 debug("\n\r flag: %d",flag[0]);
salco 28:ac5c6350ed9a 148 debug("\n\r data: %x",data[0]);
salco 28:ac5c6350ed9a 149 }*/
salco 31:ed23647fd16e 150 #ifndef BACKUP
salco 28:ac5c6350ed9a 151 updateModuleValue();
salco 28:ac5c6350ed9a 152
salco 28:ac5c6350ed9a 153 //////////////////////////////
salco 28:ac5c6350ed9a 154 // Traitement du Labyrinthe //
salco 28:ac5c6350ed9a 155 //////////////////////////////
salco 28:ac5c6350ed9a 156 debug(DEBUG_DIRECTIVE_TEST,"\n\r -IRToCm(%02f): %02f",ADCTomv(m_valueCapteurIR),IRToCm(ADCTomv(m_valueCapteurIR)));
salco 28:ac5c6350ed9a 157 debug(DEBUG_DIRECTIVE_TEST,"\n\r -ultrasonicToInch: %02f",ultrasonicToInch(m_valueCapteurUltrasonic));
salco 28:ac5c6350ed9a 158 debug(DEBUG_DIRECTIVE_TEST,"\n\r -m_valueCapteurProximiter: %02d",m_valueCapteurProximiter);
salco 31:ed23647fd16e 159
salco 28:ac5c6350ed9a 160 analiseMaze();
salco 28:ac5c6350ed9a 161 char nextCase=0;
salco 31:ed23647fd16e 162 switch(myMaze->getDirection()) {
salco 31:ed23647fd16e 163 case UP:
salco 31:ed23647fd16e 164 nextCase = myMaze->getC(myMaze->getX(),myMaze->getY()+1);
salco 31:ed23647fd16e 165 break;
salco 31:ed23647fd16e 166
salco 31:ed23647fd16e 167 case DOWN:
salco 31:ed23647fd16e 168 nextCase = myMaze->getC(myMaze->getX(),myMaze->getY()-1);
salco 31:ed23647fd16e 169 break;
salco 31:ed23647fd16e 170
salco 31:ed23647fd16e 171 case LEFT:
salco 31:ed23647fd16e 172 nextCase = myMaze->getC(myMaze->getX()-1,myMaze->getY());
salco 31:ed23647fd16e 173 break;
salco 31:ed23647fd16e 174
salco 31:ed23647fd16e 175 case RIGHT:
salco 31:ed23647fd16e 176 nextCase = myMaze->getC(myMaze->getX()+1,myMaze->getY());
salco 31:ed23647fd16e 177 break;
salco 28:ac5c6350ed9a 178 }
salco 31:ed23647fd16e 179
salco 31:ed23647fd16e 180 switch(nextCase ) {
salco 28:ac5c6350ed9a 181 case VIDE:
salco 31:ed23647fd16e 182 debug(DEBUG_DIRECTIVE_TEST," Javance");
salco 28:ac5c6350ed9a 183 addTableauDeCommande(6);
salco 31:ed23647fd16e 184 break;
salco 31:ed23647fd16e 185
salco 31:ed23647fd16e 186 case EXPLORER:// ici pt amiliorer
salco 31:ed23647fd16e 187 debug(DEBUG_DIRECTIVE_TEST," Javance");
salco 28:ac5c6350ed9a 188 addTableauDeCommande(6);
salco 31:ed23647fd16e 189 break;
salco 31:ed23647fd16e 190
salco 31:ed23647fd16e 191 case MUR:
salco 31:ed23647fd16e 192
salco 31:ed23647fd16e 193 switch(myMaze->getDirection()) {
salco 31:ed23647fd16e 194 case UP:
salco 31:ed23647fd16e 195 if(rand()%1) {
salco 31:ed23647fd16e 196 nextCase = myMaze->getC(myMaze->getX()-1,myMaze->getY());
salco 31:ed23647fd16e 197 if(nextCase != MUR) {
salco 31:ed23647fd16e 198 }
salco 31:ed23647fd16e 199 nextCase = myMaze->getC(myMaze->getX()+1,myMaze->getY());
salco 31:ed23647fd16e 200 } else {
salco 31:ed23647fd16e 201 nextCase = myMaze->getC(myMaze->getX()+1,myMaze->getY()+1);
salco 31:ed23647fd16e 202 }
salco 31:ed23647fd16e 203 break;
salco 31:ed23647fd16e 204
salco 31:ed23647fd16e 205 case DOWN:
salco 31:ed23647fd16e 206 nextCase = myMaze->getC(myMaze->getX(),myMaze->getY()-1);
salco 31:ed23647fd16e 207 break;
salco 31:ed23647fd16e 208
salco 31:ed23647fd16e 209 case LEFT:
salco 31:ed23647fd16e 210 nextCase = myMaze->getC(myMaze->getX()-1,myMaze->getY());
salco 31:ed23647fd16e 211 break;
salco 31:ed23647fd16e 212
salco 31:ed23647fd16e 213 case RIGHT:
salco 31:ed23647fd16e 214 nextCase = myMaze->getC(myMaze->getX()+1,myMaze->getY());
salco 31:ed23647fd16e 215 break;
salco 31:ed23647fd16e 216 }
salco 31:ed23647fd16e 217
salco 31:ed23647fd16e 218 break;
salco 31:ed23647fd16e 219
salco 31:ed23647fd16e 220 case PAS_EXPLORER:
salco 31:ed23647fd16e 221 debug(DEBUG_DIRECTIVE_TEST," Javance");
salco 31:ed23647fd16e 222 addTableauDeCommande(6);
salco 31:ed23647fd16e 223 break;
salco 28:ac5c6350ed9a 224 }
salco 31:ed23647fd16e 225
salco 31:ed23647fd16e 226 #endif
salco 31:ed23647fd16e 227 #if BACKUP
salco 28:ac5c6350ed9a 228 /*if((ultrasonicToInch(m_valueCapteurUltrasonic)< 1) && (IRToCm(ADCTomv(m_valueCapteurIR)) <= 80)) //capteur ultrasson embrouiller/imprecis
salco 28:ac5c6350ed9a 229 {
salco 28:ac5c6350ed9a 230 debug(DEBUG_DIRECTIVE_TEST,"\n\r -Capteur Ultrasson brouiller");
salco 28:ac5c6350ed9a 231 addTableauDeCommande(6);
salco 31:ed23647fd16e 232 }
salco 28:ac5c6350ed9a 233 else if(ultrasonicToInch(m_valueCapteurUltrasonic) < 10) { //plus proche que 10pouce
salco 28:ac5c6350ed9a 234 debug(DEBUG_DIRECTIVE_TEST,"\n\r -Objet proche");
salco 28:ac5c6350ed9a 235 if(IRToCm(ADCTomv(m_valueCapteurIR)) <= 10) {
salco 28:ac5c6350ed9a 236 debug(DEBUG_DIRECTIVE_TEST,"\n\r -Confirmation IR");
salco 28:ac5c6350ed9a 237 addTableauDeCommande(7);
salco 28:ac5c6350ed9a 238
salco 19:0ac80045ba4c 239
salco 28:ac5c6350ed9a 240 //ici potentielle scaning
salco 28:ac5c6350ed9a 241 } else {
salco 28:ac5c6350ed9a 242 addTableauDeCommande(4);
salco 28:ac5c6350ed9a 243 addTableauDeCommande(4);
salco 28:ac5c6350ed9a 244 addTableauDeCommande(4);
salco 28:ac5c6350ed9a 245 }
salco 28:ac5c6350ed9a 246 } else {
salco 28:ac5c6350ed9a 247 debug(DEBUG_DIRECTIVE_TEST,"\n\r -Nothing:");
salco 28:ac5c6350ed9a 248 addTableauDeCommande(6);
salco 31:ed23647fd16e 249
salco 31:ed23647fd16e 250
salco 28:ac5c6350ed9a 251 int randomNbr = rand() % 4;
salco 28:ac5c6350ed9a 252 switch(randomNbr)
salco 28:ac5c6350ed9a 253 {
salco 28:ac5c6350ed9a 254 case 1:
salco 28:ac5c6350ed9a 255 debug(DEBUG_DIRECTIVE_TEST," Javance");
salco 28:ac5c6350ed9a 256 addTableauDeCommande(6);
salco 28:ac5c6350ed9a 257 break;
salco 28:ac5c6350ed9a 258 case 2:
salco 28:ac5c6350ed9a 259 debug(DEBUG_DIRECTIVE_TEST," Je tourne a gauche");
salco 28:ac5c6350ed9a 260 addTableauDeCommande(4);
salco 28:ac5c6350ed9a 261 break;
salco 28:ac5c6350ed9a 262 case 3:
salco 28:ac5c6350ed9a 263 debug(DEBUG_DIRECTIVE_TEST," Je tourne a droite");
salco 28:ac5c6350ed9a 264 addTableauDeCommande(5);
salco 28:ac5c6350ed9a 265 break;
salco 28:ac5c6350ed9a 266 default:
salco 28:ac5c6350ed9a 267 debug(DEBUG_DIRECTIVE_TEST," Jattend");
salco 28:ac5c6350ed9a 268 break;
salco 28:ac5c6350ed9a 269 }
salco 31:ed23647fd16e 270
salco 31:ed23647fd16e 271
salco 28:ac5c6350ed9a 272 //addTableauDeCommande(6);
salco 28:ac5c6350ed9a 273 }*/
salco 31:ed23647fd16e 274 #endif
salco 28:ac5c6350ed9a 275 ///////////////
salco 28:ac5c6350ed9a 276 // Mouvement //
salco 28:ac5c6350ed9a 277 ///////////////
salco 28:ac5c6350ed9a 278 } else {
salco 28:ac5c6350ed9a 279 switch(tableauDeCommange[0]) {
salco 28:ac5c6350ed9a 280 case 11:
salco 28:ac5c6350ed9a 281 debug(DEBUG_DIRECTIVE_TEST,"\n\r -set_calibre");
salco 28:ac5c6350ed9a 282 ctrDesPattes->calibre();
salco 28:ac5c6350ed9a 283 break;
salco 28:ac5c6350ed9a 284 case 2:
salco 28:ac5c6350ed9a 285 debug(DEBUG_DIRECTIVE_TEST,"\n\r -set_moveUp");
salco 28:ac5c6350ed9a 286 ctrDesPattes->moveUp();
salco 28:ac5c6350ed9a 287 break;
salco 28:ac5c6350ed9a 288 case 3:
salco 28:ac5c6350ed9a 289 debug(DEBUG_DIRECTIVE_TEST,"\n\r -set_moveDown");
salco 28:ac5c6350ed9a 290 ctrDesPattes->moveDown();
salco 28:ac5c6350ed9a 291 break;
salco 28:ac5c6350ed9a 292 case 4:
salco 28:ac5c6350ed9a 293 debug(DEBUG_DIRECTIVE_TEST,"\n\r -set_turnLeft");
salco 28:ac5c6350ed9a 294 ctrDesPattes->turnLeft();
salco 28:ac5c6350ed9a 295 break;
salco 28:ac5c6350ed9a 296 case 5:
salco 28:ac5c6350ed9a 297 debug(DEBUG_DIRECTIVE_TEST,"\n\r -set_trunRight");
salco 28:ac5c6350ed9a 298 ctrDesPattes->trunRight();
salco 28:ac5c6350ed9a 299 break;
salco 28:ac5c6350ed9a 300 case 6:
salco 28:ac5c6350ed9a 301 debug(DEBUG_DIRECTIVE_TEST,"\n\r -set_moveFront");
salco 28:ac5c6350ed9a 302 ctrDesPattes->moveFront();
salco 28:ac5c6350ed9a 303 break;
salco 28:ac5c6350ed9a 304 case 7:
salco 28:ac5c6350ed9a 305 debug(DEBUG_DIRECTIVE_TEST,"\n\r -set_moveBack");
salco 28:ac5c6350ed9a 306 ctrDesPattes->moveBack();
salco 28:ac5c6350ed9a 307 break;
salco 28:ac5c6350ed9a 308 /*case 8:
salco 28:ac5c6350ed9a 309 ctrDesPattes->moveBack();
salco 28:ac5c6350ed9a 310 break;*/
salco 28:ac5c6350ed9a 311 case 0x81:
salco 28:ac5c6350ed9a 312 debug(DEBUG_DIRECTIVE_TEST,"\n\r -set_Repositioner 1");
salco 28:ac5c6350ed9a 313 ctrDesPattes->repositioner(1);
salco 28:ac5c6350ed9a 314 break;
salco 28:ac5c6350ed9a 315 case 0x82:
salco 28:ac5c6350ed9a 316 debug(DEBUG_DIRECTIVE_TEST,"\n\r -set_Repositioner 2");
salco 28:ac5c6350ed9a 317 ctrDesPattes->repositioner(2);
salco 28:ac5c6350ed9a 318 break;
salco 28:ac5c6350ed9a 319 case 0x83:
salco 28:ac5c6350ed9a 320 debug(DEBUG_DIRECTIVE_TEST,"\n\r -set_Repositioner 3");
salco 28:ac5c6350ed9a 321 ctrDesPattes->repositioner(3);
salco 28:ac5c6350ed9a 322 break;
salco 28:ac5c6350ed9a 323 case 0x84:
salco 28:ac5c6350ed9a 324 debug(DEBUG_DIRECTIVE_TEST,"\n\r -set_Repositioner 4");
salco 28:ac5c6350ed9a 325 ctrDesPattes->repositioner(4);
salco 28:ac5c6350ed9a 326 break;
salco 28:ac5c6350ed9a 327 case 0x85:
salco 28:ac5c6350ed9a 328 debug(DEBUG_DIRECTIVE_TEST,"\n\r -set_Repositioner 5");
salco 28:ac5c6350ed9a 329 ctrDesPattes->repositioner(5);
salco 28:ac5c6350ed9a 330 break;
salco 28:ac5c6350ed9a 331 case 0x86:
salco 28:ac5c6350ed9a 332 debug(DEBUG_DIRECTIVE_TEST,"\n\r -set_Repositioner 6");
salco 28:ac5c6350ed9a 333 ctrDesPattes->repositioner(6);
salco 28:ac5c6350ed9a 334 break;
salco 28:ac5c6350ed9a 335 case 0x87:
salco 28:ac5c6350ed9a 336 debug(DEBUG_DIRECTIVE_TEST,"\n\r -set_Repositioner 7");
salco 28:ac5c6350ed9a 337 ctrDesPattes->repositioner(7);
salco 28:ac5c6350ed9a 338 break;
salco 28:ac5c6350ed9a 339 case 0x88:
salco 28:ac5c6350ed9a 340 debug(DEBUG_DIRECTIVE_TEST,"\n\r -set_Repositioner 8");
salco 28:ac5c6350ed9a 341 ctrDesPattes->repositioner(8);
salco 28:ac5c6350ed9a 342 break;
salco 28:ac5c6350ed9a 343 }
salco 28:ac5c6350ed9a 344 debug(DEBUG_DIRECTIVE_TEST,"\n\r -TAB:");
salco 28:ac5c6350ed9a 345 for(int i =0; i<10; i++) debug(DEBUG_DIRECTIVE_TEST,"[%02x]",tableauDeCommange[i]);
salco 28:ac5c6350ed9a 346 for(int i =0; i<9; i++)tableauDeCommange[i]= tableauDeCommange[i+1];
salco 28:ac5c6350ed9a 347 tableauDeCommange[9]=0;
salco 28:ac5c6350ed9a 348 if(size_tableauDeCommange != 0) size_tableauDeCommange--;
salco 28:ac5c6350ed9a 349 }
salco 28:ac5c6350ed9a 350 } else {
salco 28:ac5c6350ed9a 351 ctrDesPattes->exec();
salco 28:ac5c6350ed9a 352 }
salco 28:ac5c6350ed9a 353 ////////////////////
salco 28:ac5c6350ed9a 354 // Update memoire //
salco 28:ac5c6350ed9a 355 ////////////////////
salco 28:ac5c6350ed9a 356
salco 28:ac5c6350ed9a 357 ////////////
salco 28:ac5c6350ed9a 358 // Autre? //
salco 28:ac5c6350ed9a 359 ////////////
salco 28:ac5c6350ed9a 360
salco 28:ac5c6350ed9a 361
salco 28:ac5c6350ed9a 362 //debug(DEBUG_DIRECTIVE_TEST,"\n\rOut task directive");
salco 28:ac5c6350ed9a 363 }
salco 28:ac5c6350ed9a 364 double Directive::IRToCm (double miliVolt)
salco 28:ac5c6350ed9a 365 {
salco 28:ac5c6350ed9a 366 double result=0;
salco 28:ac5c6350ed9a 367
salco 28:ac5c6350ed9a 368 if(miliVolt < tabIR[0][1])result = tabIR[0][0];
salco 28:ac5c6350ed9a 369 else if(miliVolt > tabIR[11][1])result = tabIR[11][0];
salco 28:ac5c6350ed9a 370
salco 28:ac5c6350ed9a 371 for(int i =1; (result==0)&&(i<12); i++) {
salco 28:ac5c6350ed9a 372 if((tabIR[i-1][1]<=miliVolt) && (tabIR[i][1]>miliVolt)) {
salco 28:ac5c6350ed9a 373 result=tabIR[i-1][0]+((tabIR[i][0]-tabIR[i-1][0])*((tabIR[i-1][1]-miliVolt)/(tabIR[i-1][1]-tabIR[i][1])));
salco 28:ac5c6350ed9a 374 }
salco 28:ac5c6350ed9a 375 }
salco 28:ac5c6350ed9a 376 return result;
salco 28:ac5c6350ed9a 377 }
salco 28:ac5c6350ed9a 378 void Directive::addTableauDeCommande(unsigned char value)
salco 28:ac5c6350ed9a 379 {
salco 28:ac5c6350ed9a 380 if(size_tableauDeCommange!=10) {
salco 28:ac5c6350ed9a 381 tableauDeCommange[size_tableauDeCommange]=value;
salco 28:ac5c6350ed9a 382 size_tableauDeCommange++;
salco 28:ac5c6350ed9a 383
salco 28:ac5c6350ed9a 384 }
salco 28:ac5c6350ed9a 385 }
salco 28:ac5c6350ed9a 386
salco 28:ac5c6350ed9a 387 void Directive::updateModuleValue(void)
salco 28:ac5c6350ed9a 388 {
salco 28:ac5c6350ed9a 389 string flag,data;
salco 28:ac5c6350ed9a 390 flag.clear();
salco 28:ac5c6350ed9a 391 data.clear();
salco 28:ac5c6350ed9a 392 flag.append(1,7);
salco 28:ac5c6350ed9a 393 if(m_CtrlBridge->send(m_capteurUltrasonic[0],flag,data))
salco 28:ac5c6350ed9a 394 m_valueCapteurUltrasonic = data[0];
salco 28:ac5c6350ed9a 395
salco 28:ac5c6350ed9a 396
salco 28:ac5c6350ed9a 397 flag.clear();
salco 28:ac5c6350ed9a 398 data.clear();
salco 28:ac5c6350ed9a 399 flag.append(1,7);
salco 28:ac5c6350ed9a 400 if(m_CtrlBridge->send(m_capteurIR[0],flag,data)) {
salco 28:ac5c6350ed9a 401 if(data.size() == 2) {
salco 28:ac5c6350ed9a 402 m_valueCapteurIR = data[0];
salco 28:ac5c6350ed9a 403 m_valueCapteurIR = (m_valueCapteurIR<<8) + data[1];
salco 28:ac5c6350ed9a 404 } else
salco 28:ac5c6350ed9a 405 m_valueCapteurIR = data[0];
salco 28:ac5c6350ed9a 406 }
salco 28:ac5c6350ed9a 407
salco 28:ac5c6350ed9a 408 flag.clear();
salco 28:ac5c6350ed9a 409 data.clear();
salco 28:ac5c6350ed9a 410 flag.append(1,7);
salco 28:ac5c6350ed9a 411 if(m_CtrlBridge->send(m_capteurProximiter[0],flag,data))
salco 28:ac5c6350ed9a 412 m_valueCapteurProximiter = data[0];
salco 28:ac5c6350ed9a 413 }
salco 28:ac5c6350ed9a 414
salco 28:ac5c6350ed9a 415 void Directive::analiseMaze(void)
salco 28:ac5c6350ed9a 416 {
salco 28:ac5c6350ed9a 417 char areaLatt =0;
salco 28:ac5c6350ed9a 418 char areaVert =0;
salco 28:ac5c6350ed9a 419 string mymap = myMaze->showMap();
salco 28:ac5c6350ed9a 420 debug(DEBUG_DIRECTIVE_LABYRINTH,"\n\r Labyrinthe map: X:%02x Y:%02x \n\r",myMaze->getX(),myMaze->getY());
salco 31:ed23647fd16e 421 for(int i=0; i<3; i++) debug(DEBUG_DIRECTIVE_LABYRINTH," [%02X] ",mymap[i]);
salco 28:ac5c6350ed9a 422 debug(DEBUG_DIRECTIVE_LABYRINTH,"\n\r");
salco 31:ed23647fd16e 423 for(int i=0; i<3; i++) debug(DEBUG_DIRECTIVE_LABYRINTH," [%02X] ",mymap[i+3]);
salco 28:ac5c6350ed9a 424 debug(DEBUG_DIRECTIVE_LABYRINTH,"\n\r");
salco 31:ed23647fd16e 425 for(int i=0; i<3; i++) debug(DEBUG_DIRECTIVE_LABYRINTH," [%02X] ",mymap[i+6]);
salco 28:ac5c6350ed9a 426 debug(DEBUG_DIRECTIVE_LABYRINTH,"\n\r");
salco 31:ed23647fd16e 427
salco 31:ed23647fd16e 428
salco 31:ed23647fd16e 429
salco 31:ed23647fd16e 430 if((ultrasonicToInch(m_valueCapteurUltrasonic)< 1) && (IRToCm(ADCTomv(m_valueCapteurIR)) <= 80)) { //capteur ultrasson embrouiller/imprecis
salco 31:ed23647fd16e 431 debug(DEBUG_DIRECTIVE_TEST,"\n\r -Capteur Ultrasson brouiller");
salco 31:ed23647fd16e 432 //addTableauDeCommande(6);
salco 31:ed23647fd16e 433 } else if(ultrasonicToInch(m_valueCapteurUltrasonic) >=24) { //plus proche que 10pouce
salco 31:ed23647fd16e 434 debug(DEBUG_DIRECTIVE_TEST,"\n\r -Objet proche 2pi");
salco 31:ed23647fd16e 435 areaLatt =2;
salco 31:ed23647fd16e 436 areaVert =2;
salco 31:ed23647fd16e 437 } else if(ultrasonicToInch(m_valueCapteurUltrasonic) >=12) { //plus proche que 10pouce
salco 31:ed23647fd16e 438 debug(DEBUG_DIRECTIVE_TEST,"\n\r -Objet proche 2pi");
salco 31:ed23647fd16e 439 areaLatt =1;
salco 31:ed23647fd16e 440 areaVert =1;
salco 31:ed23647fd16e 441 }
salco 31:ed23647fd16e 442 if(IRToCm(ADCTomv(m_valueCapteurIR)) <= 60) {
salco 31:ed23647fd16e 443 debug(DEBUG_DIRECTIVE_TEST,"\n\r -Confirmation IR");
salco 31:ed23647fd16e 444 areaVert =2;
salco 31:ed23647fd16e 445 } else if(IRToCm(ADCTomv(m_valueCapteurIR)) <= 30) {
salco 31:ed23647fd16e 446 debug(DEBUG_DIRECTIVE_TEST,"\n\r -Confirmation IR");
salco 31:ed23647fd16e 447 areaVert =1;
salco 31:ed23647fd16e 448 }
salco 31:ed23647fd16e 449
salco 31:ed23647fd16e 450
salco 31:ed23647fd16e 451 switch(myMaze->getDirection()) {
salco 28:ac5c6350ed9a 452 case UP:
salco 31:ed23647fd16e 453 switch(areaVert) {
salco 31:ed23647fd16e 454 case 0:
salco 31:ed23647fd16e 455 myMaze->setC_Up(MUR);
salco 31:ed23647fd16e 456 break;
salco 31:ed23647fd16e 457
salco 31:ed23647fd16e 458 case 1:
salco 31:ed23647fd16e 459 if(areaLatt == 0) {
salco 31:ed23647fd16e 460 myMaze->setC_Up(MUR);
salco 31:ed23647fd16e 461 } else if(areaLatt == 1) {
salco 31:ed23647fd16e 462 myMaze->setC(VIDE,myMaze->getX()-1,myMaze->getY()+1);
salco 31:ed23647fd16e 463 myMaze->setC(VIDE,myMaze->getX(),myMaze->getY()+1);
salco 31:ed23647fd16e 464 myMaze->setC(VIDE,myMaze->getX()+1,myMaze->getY()+1);
salco 31:ed23647fd16e 465
salco 31:ed23647fd16e 466 myMaze->setC(MUR,myMaze->getX(),myMaze->getY()+2);
salco 31:ed23647fd16e 467 } else if(areaLatt == 2) {
salco 31:ed23647fd16e 468
salco 31:ed23647fd16e 469 myMaze->setC(VIDE,myMaze->getX()-1,myMaze->getY()+1);
salco 31:ed23647fd16e 470 myMaze->setC(VIDE,myMaze->getX(),myMaze->getY()+1);
salco 31:ed23647fd16e 471 myMaze->setC(VIDE,myMaze->getX()+1,myMaze->getY()+1);
salco 31:ed23647fd16e 472
salco 31:ed23647fd16e 473 myMaze->setC(PAS_EXPLORER,myMaze->getX()-1,myMaze->getY()+2);
salco 31:ed23647fd16e 474 myMaze->setC(MUR,myMaze->getX(),myMaze->getY()+2);
salco 31:ed23647fd16e 475 myMaze->setC(PAS_EXPLORER,myMaze->getX()+1,myMaze->getY()+2);
salco 31:ed23647fd16e 476 }
salco 31:ed23647fd16e 477 break;
salco 31:ed23647fd16e 478
salco 31:ed23647fd16e 479 case 2:
salco 31:ed23647fd16e 480 if(areaLatt == 0) {
salco 31:ed23647fd16e 481 myMaze->setC_Up(MUR);
salco 31:ed23647fd16e 482 } else if(areaLatt == 1) {
salco 31:ed23647fd16e 483 myMaze->setC(PAS_EXPLORER,myMaze->getX()-1,myMaze->getY()+1);//mur?
salco 31:ed23647fd16e 484 myMaze->setC(VIDE,myMaze->getX(),myMaze->getY()+1);
salco 31:ed23647fd16e 485 myMaze->setC(PAS_EXPLORER,myMaze->getX()+1,myMaze->getY()+1);//mur?
salco 31:ed23647fd16e 486
salco 31:ed23647fd16e 487 //myMaze->setC(PAS_EXPLORER,myMaze->getX()-1,myMaze->getY()+1);//mur?
salco 31:ed23647fd16e 488 myMaze->setC(VIDE,myMaze->getX(),myMaze->getY()+2);
salco 31:ed23647fd16e 489 //myMaze->setC(PAS_EXPLORER,myMaze->getX()+1,myMaze->getY()+1);//mur?
salco 31:ed23647fd16e 490 } else if(areaLatt == 2) {
salco 31:ed23647fd16e 491
salco 31:ed23647fd16e 492 myMaze->setC(VIDE,myMaze->getX()-1,myMaze->getY()+1);
salco 31:ed23647fd16e 493 myMaze->setC(VIDE,myMaze->getX(),myMaze->getY()+1);
salco 31:ed23647fd16e 494 myMaze->setC(VIDE,myMaze->getX()+1,myMaze->getY()+1);
salco 31:ed23647fd16e 495
salco 31:ed23647fd16e 496 myMaze->setC(VIDE,myMaze->getX()-1,myMaze->getY()+2);
salco 31:ed23647fd16e 497 myMaze->setC(VIDE,myMaze->getX(),myMaze->getY()+2);
salco 31:ed23647fd16e 498 myMaze->setC(VIDE,myMaze->getX()+1,myMaze->getY()+2);
salco 31:ed23647fd16e 499 }
salco 31:ed23647fd16e 500 break;
salco 28:ac5c6350ed9a 501 }
salco 31:ed23647fd16e 502
salco 28:ac5c6350ed9a 503 break;
salco 31:ed23647fd16e 504
salco 31:ed23647fd16e 505 case DOWN:
salco 31:ed23647fd16e 506 switch(areaVert) {
salco 31:ed23647fd16e 507 case 0:
salco 31:ed23647fd16e 508 myMaze->setC_Down(MUR);
salco 31:ed23647fd16e 509 break;
salco 31:ed23647fd16e 510
salco 31:ed23647fd16e 511 case 1:
salco 31:ed23647fd16e 512 if(areaLatt == 0) {
salco 31:ed23647fd16e 513 myMaze->setC_Down(MUR);
salco 31:ed23647fd16e 514 } else if(areaLatt == 1) {
salco 31:ed23647fd16e 515 myMaze->setC(VIDE,myMaze->getX()-1,myMaze->getY()-1);
salco 31:ed23647fd16e 516 myMaze->setC(VIDE,myMaze->getX(),myMaze->getY()-1);
salco 31:ed23647fd16e 517 myMaze->setC(VIDE,myMaze->getX()+1,myMaze->getY()-1);
salco 31:ed23647fd16e 518
salco 31:ed23647fd16e 519 myMaze->setC(MUR,myMaze->getX(),myMaze->getY()-2);
salco 31:ed23647fd16e 520 } else if(areaLatt == 2) {
salco 31:ed23647fd16e 521
salco 31:ed23647fd16e 522 myMaze->setC(VIDE,myMaze->getX()-1,myMaze->getY()-1);
salco 31:ed23647fd16e 523 myMaze->setC(VIDE,myMaze->getX(),myMaze->getY()-1);
salco 31:ed23647fd16e 524 myMaze->setC(VIDE,myMaze->getX()+1,myMaze->getY()-1);
salco 31:ed23647fd16e 525
salco 31:ed23647fd16e 526 myMaze->setC(PAS_EXPLORER,myMaze->getX()-1,myMaze->getY()-2);
salco 31:ed23647fd16e 527 myMaze->setC(MUR,myMaze->getX(),myMaze->getY()-2);
salco 31:ed23647fd16e 528 myMaze->setC(PAS_EXPLORER,myMaze->getX()+1,myMaze->getY()-2);
salco 31:ed23647fd16e 529 }
salco 31:ed23647fd16e 530 break;
salco 31:ed23647fd16e 531
salco 31:ed23647fd16e 532 case 2:
salco 31:ed23647fd16e 533 if(areaLatt == 0) {
salco 31:ed23647fd16e 534 myMaze->setC_Down(MUR);
salco 31:ed23647fd16e 535 } else if(areaLatt == 1) {
salco 31:ed23647fd16e 536 myMaze->setC(PAS_EXPLORER,myMaze->getX()-1,myMaze->getY()-1);//mur?
salco 31:ed23647fd16e 537 myMaze->setC(VIDE,myMaze->getX(),myMaze->getY()-1);
salco 31:ed23647fd16e 538 myMaze->setC(PAS_EXPLORER,myMaze->getX()+1,myMaze->getY()-1);//mur?
salco 31:ed23647fd16e 539
salco 31:ed23647fd16e 540 //myMaze->setC(PAS_EXPLORER,myMaze->getX()-1,myMaze->getY()+1);//mur?
salco 31:ed23647fd16e 541 myMaze->setC(VIDE,myMaze->getX(),myMaze->getY()-2);
salco 31:ed23647fd16e 542 //myMaze->setC(PAS_EXPLORER,myMaze->getX()+1,myMaze->getY()+1);//mur?
salco 31:ed23647fd16e 543 } else if(areaLatt == 2) {
salco 31:ed23647fd16e 544
salco 31:ed23647fd16e 545 myMaze->setC(VIDE,myMaze->getX()-1,myMaze->getY()-1);
salco 31:ed23647fd16e 546 myMaze->setC(VIDE,myMaze->getX(),myMaze->getY()-1);
salco 31:ed23647fd16e 547 myMaze->setC(VIDE,myMaze->getX()+1,myMaze->getY()-1);
salco 31:ed23647fd16e 548
salco 31:ed23647fd16e 549 myMaze->setC(VIDE,myMaze->getX()-1,myMaze->getY()-2);
salco 31:ed23647fd16e 550 myMaze->setC(VIDE,myMaze->getX(),myMaze->getY()-2);
salco 31:ed23647fd16e 551 myMaze->setC(VIDE,myMaze->getX()+1,myMaze->getY()-2);
salco 31:ed23647fd16e 552 }
salco 31:ed23647fd16e 553 break;
salco 28:ac5c6350ed9a 554 }
salco 28:ac5c6350ed9a 555 break;
salco 31:ed23647fd16e 556
salco 31:ed23647fd16e 557 case LEFT:
salco 31:ed23647fd16e 558 switch(areaVert) {
salco 31:ed23647fd16e 559 case 0:
salco 31:ed23647fd16e 560 myMaze->setC_Left(MUR);
salco 31:ed23647fd16e 561 break;
salco 31:ed23647fd16e 562
salco 31:ed23647fd16e 563 case 1:
salco 31:ed23647fd16e 564 if(areaLatt == 0) {
salco 31:ed23647fd16e 565 myMaze->setC_Left(MUR);
salco 31:ed23647fd16e 566 } else if(areaLatt == 1) {
salco 31:ed23647fd16e 567 myMaze->setC(VIDE,myMaze->getX()-1,myMaze->getY()-1);
salco 31:ed23647fd16e 568 myMaze->setC(VIDE,myMaze->getX()-1,myMaze->getY());
salco 31:ed23647fd16e 569 myMaze->setC(VIDE,myMaze->getX()-1,myMaze->getY()+1);
salco 31:ed23647fd16e 570
salco 31:ed23647fd16e 571 myMaze->setC(MUR,myMaze->getX()-2,myMaze->getY());
salco 31:ed23647fd16e 572 } else if(areaLatt == 2) {
salco 31:ed23647fd16e 573
salco 31:ed23647fd16e 574 myMaze->setC(VIDE,myMaze->getX()-1,myMaze->getY()-1);
salco 31:ed23647fd16e 575 myMaze->setC(VIDE,myMaze->getX()-1,myMaze->getY());
salco 31:ed23647fd16e 576 myMaze->setC(VIDE,myMaze->getX()-1,myMaze->getY()+1);
salco 31:ed23647fd16e 577
salco 31:ed23647fd16e 578 myMaze->setC(PAS_EXPLORER,myMaze->getX()-2,myMaze->getY()-1);
salco 31:ed23647fd16e 579 myMaze->setC(MUR,myMaze->getX()-2,myMaze->getY());
salco 31:ed23647fd16e 580 myMaze->setC(PAS_EXPLORER,myMaze->getX()-2,myMaze->getY()+1);
salco 31:ed23647fd16e 581 }
salco 31:ed23647fd16e 582 break;
salco 31:ed23647fd16e 583
salco 31:ed23647fd16e 584 case 2:
salco 31:ed23647fd16e 585 if(areaLatt == 0) {
salco 31:ed23647fd16e 586 myMaze->setC_Left(MUR);
salco 31:ed23647fd16e 587 } else if(areaLatt == 1) {
salco 31:ed23647fd16e 588 myMaze->setC(PAS_EXPLORER,myMaze->getX()-1,myMaze->getY()-1);//mur?
salco 31:ed23647fd16e 589 myMaze->setC(VIDE,myMaze->getX()-1,myMaze->getY());
salco 31:ed23647fd16e 590 myMaze->setC(PAS_EXPLORER,myMaze->getX()-1,myMaze->getY()+1);//mur?
salco 31:ed23647fd16e 591
salco 31:ed23647fd16e 592 //myMaze->setC(PAS_EXPLORER,myMaze->getX()-1,myMaze->getY()+1);//mur?
salco 31:ed23647fd16e 593 myMaze->setC(VIDE,myMaze->getX()-2,myMaze->getY());
salco 31:ed23647fd16e 594 //myMaze->setC(PAS_EXPLORER,myMaze->getX()+1,myMaze->getY()+1);//mur?
salco 31:ed23647fd16e 595 } else if(areaLatt == 2) {
salco 31:ed23647fd16e 596
salco 31:ed23647fd16e 597 myMaze->setC(VIDE,myMaze->getX()-1,myMaze->getY()-1);
salco 31:ed23647fd16e 598 myMaze->setC(VIDE,myMaze->getX()-1,myMaze->getY());
salco 31:ed23647fd16e 599 myMaze->setC(VIDE,myMaze->getX()-1,myMaze->getY()+1);
salco 31:ed23647fd16e 600
salco 31:ed23647fd16e 601 myMaze->setC(VIDE,myMaze->getX()-2,myMaze->getY()+1);
salco 31:ed23647fd16e 602 myMaze->setC(VIDE,myMaze->getX()-2,myMaze->getY());
salco 31:ed23647fd16e 603 myMaze->setC(VIDE,myMaze->getX()-2,myMaze->getY()+1);
salco 31:ed23647fd16e 604 }
salco 31:ed23647fd16e 605 break;
salco 28:ac5c6350ed9a 606 }
salco 28:ac5c6350ed9a 607 break;
salco 31:ed23647fd16e 608
salco 31:ed23647fd16e 609 case RIGHT:
salco 31:ed23647fd16e 610 switch(areaVert) {
salco 31:ed23647fd16e 611 case 0:
salco 31:ed23647fd16e 612 myMaze->setC_Right(MUR);
salco 31:ed23647fd16e 613 break;
salco 31:ed23647fd16e 614
salco 31:ed23647fd16e 615 case 1:
salco 31:ed23647fd16e 616 if(areaLatt == 0) {
salco 31:ed23647fd16e 617 myMaze->setC_Right(MUR);
salco 31:ed23647fd16e 618 } else if(areaLatt == 1) {
salco 31:ed23647fd16e 619 myMaze->setC(VIDE,myMaze->getX()+1,myMaze->getY()-1);
salco 31:ed23647fd16e 620 myMaze->setC(VIDE,myMaze->getX()+1,myMaze->getY());
salco 31:ed23647fd16e 621 myMaze->setC(VIDE,myMaze->getX()+1,myMaze->getY()+1);
salco 31:ed23647fd16e 622
salco 31:ed23647fd16e 623 myMaze->setC(MUR,myMaze->getX()+2,myMaze->getY());
salco 31:ed23647fd16e 624 } else if(areaLatt == 2) {
salco 31:ed23647fd16e 625
salco 31:ed23647fd16e 626 myMaze->setC(VIDE,myMaze->getX()+1,myMaze->getY()-1);
salco 31:ed23647fd16e 627 myMaze->setC(VIDE,myMaze->getX()+1,myMaze->getY());
salco 31:ed23647fd16e 628 myMaze->setC(VIDE,myMaze->getX()+1,myMaze->getY()+1);
salco 31:ed23647fd16e 629
salco 31:ed23647fd16e 630 myMaze->setC(PAS_EXPLORER,myMaze->getX()+2,myMaze->getY()-1);
salco 31:ed23647fd16e 631 myMaze->setC(MUR,myMaze->getX()+2,myMaze->getY());
salco 31:ed23647fd16e 632 myMaze->setC(PAS_EXPLORER,myMaze->getX()+2,myMaze->getY()+1);
salco 31:ed23647fd16e 633 }
salco 31:ed23647fd16e 634 break;
salco 31:ed23647fd16e 635
salco 31:ed23647fd16e 636 case 2:
salco 31:ed23647fd16e 637 if(areaLatt == 0) {
salco 31:ed23647fd16e 638 myMaze->setC_Right(MUR);
salco 31:ed23647fd16e 639 } else if(areaLatt == 1) {
salco 31:ed23647fd16e 640 myMaze->setC(PAS_EXPLORER,myMaze->getX()+1,myMaze->getY()-1);//mur?
salco 31:ed23647fd16e 641 myMaze->setC(VIDE,myMaze->getX()+1,myMaze->getY());
salco 31:ed23647fd16e 642 myMaze->setC(PAS_EXPLORER,myMaze->getX()+1,myMaze->getY()+1);//mur?
salco 31:ed23647fd16e 643
salco 31:ed23647fd16e 644 //myMaze->setC(PAS_EXPLORER,myMaze->getX()-1,myMaze->getY()+1);//mur?
salco 31:ed23647fd16e 645 myMaze->setC(VIDE,myMaze->getX()+2,myMaze->getY());
salco 31:ed23647fd16e 646 //myMaze->setC(PAS_EXPLORER,myMaze->getX()+1,myMaze->getY()+1);//mur?
salco 31:ed23647fd16e 647 } else if(areaLatt == 2) {
salco 31:ed23647fd16e 648
salco 31:ed23647fd16e 649 myMaze->setC(VIDE,myMaze->getX()+1,myMaze->getY()-1);
salco 31:ed23647fd16e 650 myMaze->setC(VIDE,myMaze->getX()+1,myMaze->getY());
salco 31:ed23647fd16e 651 myMaze->setC(VIDE,myMaze->getX()+1,myMaze->getY()+1);
salco 31:ed23647fd16e 652
salco 31:ed23647fd16e 653 myMaze->setC(VIDE,myMaze->getX()+2,myMaze->getY()+1);
salco 31:ed23647fd16e 654 myMaze->setC(VIDE,myMaze->getX()+2,myMaze->getY());
salco 31:ed23647fd16e 655 myMaze->setC(VIDE,myMaze->getX()+2,myMaze->getY()+1);
salco 31:ed23647fd16e 656 }
salco 31:ed23647fd16e 657 break;
salco 31:ed23647fd16e 658 }
salco 28:ac5c6350ed9a 659 break;
salco 31:ed23647fd16e 660 }
salco 2:4c5b0f6d0a6b 661 }