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:
Sat Sep 12 21:34:57 2015 +0000
Revision:
35:d81f6b927932
Parent:
34:dfd82c744b26
Child:
36:474d4795aafa
modification du labyrithe et test du doxygen.

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