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:
Tue Jul 28 01:22:16 2015 +0000
Revision:
28:ac5c6350ed9a
Parent:
27:ea60d12dccdf
Child:
31:ed23647fd16e
tsest

Who changed what in which revision?

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