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:
Sun Sep 13 06:56:09 2015 +0000
Revision:
36:474d4795aafa
Parent:
35:d81f6b927932
Child:
37:f53e9f7a14df
Mise a jours du labyrinthe et augmentation du debogage graphique.

Who changed what in which revision?

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