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 13:36:39 2015 +0000
Revision:
31:ed23647fd16e
Parent:
28:ac5c6350ed9a
Child:
33:c8b4e5a392e6
reduc the #ifdef in TTaskCritique

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