Time is good

Dependencies:   RoboClaw mbed

Fork of Robot2016_2-0 by ARES

Revision:
76:a862cb10559c
Parent:
75:195dd2bb13a3
--- a/Map/map.cpp	Thu May 05 04:36:59 2016 +0000
+++ b/Map/map.cpp	Thu May 05 06:34:13 2016 +0000
@@ -2,34 +2,7 @@
 
 /* Dernier Changement : Romain 20h30 */
 
-void map::Build_Objectives() {
-    if (objectifs.empty()) {
-        logger.printf("map::Build_Objectives Creation des Objectifs ...\n\r");
-        if (couleur == VERT) {
-            addObj (objectif (OBJ_BLOC_PRISE, 120, 1000, 0, Codo, Parasol, pince));
-            addObj (objectif (OBJ_BLOC_LACHE, 120, 1000, 0, Codo, Parasol, pince, 50));
-        }
-        else {
-            addObj (objectif (OBJ_BLOC_PRISE, 3000-350, 850, 0, Codo, Parasol, pince));
-            addObj (objectif (RIEN, 3000-550, 850, 0, Codo, Parasol, pince));
-            addObj (objectif (OBJ_BLOC_LACHE, 3000-1050, 1100, 0, Codo, Parasol, pince));
-            addObj (objectif (RIEN, 3000-200, 850, 0, Codo, Parasol, pince));
-        }
-    }
-}
-
-map::map (Odometry* nodo, AX12 * np, ControlleurPince * npince, int ncouleur, int nformation) : Codo(nodo), Parasol(np), pince(npince) {
-    couleur = ncouleur;
-    formation = nformation;
-
-    if (couleur == VERT) {
-        Codo->setPos(X_START_VERT, Y_START, 0);
-    }
-    else {
-        Codo->setPos(Y_START, Y_START, -PI);
-    }
-    Build();
-    Build_Objectives();
+map::map (Odometry* nodo, AX12 * np, ControlleurPince * npince) : Codo(nodo) {
 }
 
 void map::addObs (obsCarr nobs) {
@@ -60,6 +33,7 @@
     
     pointParcours depP (dep, NULL, arr);
     int indTMP1=0;  // Le point actuel
+    int PointEnding = 0;    
     open.push_back (depP);
 
     while (!ended && !open.empty ()) {
@@ -199,10 +173,8 @@
 }
 
 void map::Execute(int obj) {
+    // logger.printf("Findway %f-%f -> %f-%f\n\r", Codo->getX(), Codo->getY(), XObjectif, YObjectif);
     objectif o = objectifs[obj];
-    logger.printf("map::Execute(int obj) Realisation de l'objectif %d\n\r", obj);
-    logger.printf("Depart [%f, %f] Objectif [%f, %f]\n\r", Codo->getX(), Codo->getY(), o.getX(), o.getY());
-    // logger.printf("Findway %f-%f -> %f-%f\n\r", Codo->getX(), Codo->getY(), XObjectif, YObjectif);
     FindWay (Codo->getX(), Codo->getY(), o.getX(), o.getY());
     
     if (endedParc) {
@@ -211,7 +183,6 @@
             // logger.printf("Goto %d/%d [%f, %f]... \n\r", i, path.size()-1, path[i].getX(), path[i].getY());
             //the = (float) atan2((double) (p[i].gety() - odo.getY()), (double) (p[i].getx() - odo.getX())); 
             Codo->GotoXY((double)path[i].getX(), (double)path[i].getY());
-            Codo->Stop();
             // logger.printf("Goto Fini\n\r");
         }
         Codo->GotoThet(o.getThet());
@@ -224,78 +195,57 @@
     endedParc = false;
 }
 
-void map::Execute() {
-    for (int i = 0; i < objectifs.size();++i) {
-        logger.printf("map::Execute() Realisation de l'objectif %d\n\r", i);
-        Execute(i);
-    }
-}
-
-void map::Build () {
-    logger.printf("map::Build Creation des obstacles ...\n\r");
+void map::Build (int couleur, int formation) {
     if (couleur == VERT) {
         max_x_table = 1400;
-        max_y_table = 1900;
-        min_x_table = 100;
-        min_y_table = 100;
+        max_y_table = 1800;
+        min_x_table = 0;
+        min_y_table = 0;
     }
     else {
         max_x_table = 2900;
-        max_y_table = 1900;
+        max_y_table = 1800;
         min_x_table = 1600;
-        min_y_table = 100;
+        min_y_table = 0;
     }
 
     if (couleur == VERT) {
-        // Attention les commentaires sont inversées par rapport aux valeur en x et y des obstacles.
-        // Il faut lire les commentaires de la façon dont la carte est présentée dans le règlement
-        // Un / signifie un point de départ. Milieu/Haut/Haut signifie que l'on part du milieu, que l'on va en haut puis encore en haut  
-
         addObs(obsCarr (0, 2000, 250, 150));  // Coté haut droite
         addObs(obsCarr (200, 2000, 200, 50));
-
-        addObs(obsCarr (800, 100, 100, 15));    // Petit obstacle en haut à gauche
+        addObs(obsCarr (800, 100, 100, 15));
     }
     else {
         addObs(obsCarr (3000, 2000, 250, 150));     // Coté bas droite
         addObs(obsCarr (2800, 2000, 200, 50));
-
-        addObs(obsCarr (2200, 100, 100, 15));   // Petit Obstacle en haut à gauche
+        addObs(obsCarr (2200, 100, 100, 15));
     }
 
-    addObs(obsCarr (1500, 750, 1100, 15));      // Obstacle du milieu à la verticale
-    addObs(obsCarr (1500, 1050, 20, 300));      // Vitre du milieu (horizontale)
+    addObs(obsCarr (1500, 750, 1100, 15));
+    addObs(obsCarr (1500, 1050, 20, 300));
     
     if (formation == 1) { 
         Build_formation_1 (couleur);
     }
-    if (formation == 2) {
-        Build_formation_2 (couleur);        
-    }
-    if (formation == 3) {
-        Build_formation_3 (couleur);   
-    }
     else {
-        addObs(obsCarr (1250, 1000, 220, 220)); // Obstacles du test standard hors-coupe. A ignorer
+        addObs(obsCarr (1250, 1000, 220, 220));
         addObs(obsCarr (1500, 750, 220, 220));
         addObs(obsCarr (1500, 1250, 220, 220));   
     }
 }
 
 void map::Build_formation_1 (int couleur) {
-    logger.printf("map::Build_formation1 Ajout des coquillages de la formation 1 ...\n\r");
     if (couleur == VERT) {
-        addObs(obsCarr (200, 2000-450, 40, 40));    // Coquillage du haut - droite
-        addObs(obsCarr (200, 2000-750, 40, 40));    // Coquillage sur le même axe horizontal
+        addObs(obsCarr (200, 2000-450, 40, 40));   // Coquillages du haut droit
+        addObs(obsCarr (200, 2000-750, 40, 40));
         
-        addObs(obsCarr (900, 2000-550, 40, 40));    // Coqullage du milieu/haut/haut
-        addObs(obsCarr (1200, 2000-350, 40, 40));   // Coquillage du milieu/haut
+        addObs(obsCarr (900, 2000-550, 40, 40));
+        addObs(obsCarr (1200, 2000-350, 40, 40)); // Coquillages du milieu/haut
         
-        addObs(obsCarr (1500, 2000-550, 40, 40));   // Coquillage du milieu gauche
-        addObs(obsCarr (1500, 2000-350, 40, 40));   // Coquillage du milieu droit
+        addObs(obsCarr (1500, 2000-550, 40, 40));
+        addObs(obsCarr (1500, 2000-350, 40, 40)); 
         
         //addObs(obsCarr (3000-900, 2000-550, 40, 40));
-        addObs(obsCarr (3000-1200, 2000-350, 40, 40));   // Coquillage du milieu bas
+        addObs(obsCarr (3000-1200, 2000-350, 40, 40));   
         
         //addObs(obsCarr (3000-200, 2000-450, 40, 40));   // Coquillages du bas droite
         //addObs(obsCarr (3000-200, 2000-750, 40, 40));        
@@ -307,64 +257,51 @@
         //addObs(obsCarr (900, 2000-550, 40, 40));
         addObs(obsCarr (1200, 2000-350, 40, 40)); // Coquillages du milieu/haut
         
-        addObs(obsCarr (1500, 2000-550, 40, 40));   // Coquillage du milieu gauche
-        addObs(obsCarr (1500, 2000-350, 40, 40));   // Coquillage du milieu droite
+        addObs(obsCarr (1500, 2000-550, 40, 40));
+        addObs(obsCarr (1500, 2000-350, 40, 40)); 
         
-        addObs(obsCarr (3000-900, 2000-550, 40, 40));   // Coquillage du milieu/bas 
-        addObs(obsCarr (3000-1200, 2000-350, 40, 40));  // Coquillage du milieu/bas/bas
+        addObs(obsCarr (3000-900, 2000-550, 40, 40));
+        addObs(obsCarr (3000-1200, 2000-350, 40, 40));   
         
         addObs(obsCarr (3000-200, 2000-450, 40, 40));   // Coquillages du bas droite
-        addObs(obsCarr (3000-200, 2000-750, 40, 40));   // Coquillage sur le même axe horizontal       
+        addObs(obsCarr (3000-200, 2000-750, 40, 40));        
     }
 }
 
 void map::Build_formation_2 (int couleur) {
     if (couleur == VERT) {
-        addObs(obsCarr (200, 2000-450, 40, 40));    // Coquillage du haut gauche
-        addObs(obsCarr (200, 2000-750, 40, 40));    // Coquillage du haut droite
+        addObs(obsCarr (200, 2000-450, 40, 40));   // Coquillages du haut droit
+        addObs(obsCarr (200, 2000-750, 40, 40));
+
+        addObs(obsCarr (600, 2000-450, 40, 40));   // Coquillages du milieu haut
+        addObs(obsCarr (600, 2000-750, 40, 40));
 
-        addObs(obsCarr (600, 2000-450, 40, 40));    // Coquillage du milieu/haut/haut droite
-        addObs(obsCarr (600, 2000-750, 40, 40));    // Coquillage du milieu/haut/haut sur le même axe horizontal
-
-        addObs(obsCarr (1200, 2000-350, 40, 40));   // Coquillage du milieu/haut droite
+        addObs(obsCarr (900, 2000-550, 40, 40));
+        addObs(obsCarr (1200, 2000-350, 40, 40)); // Coquillages du milieu/haut
+        
+        addObs(obsCarr (1500, 2000-550, 40, 40));
+        addObs(obsCarr (1500, 2000-350, 40, 40)); 
+        
+        //addObs(obsCarr (3000-900, 2000-550, 40, 40));
+        addObs(obsCarr (3000-1200, 2000-350, 40, 40));   
+        
+        //addObs(obsCarr (3000-200, 2000-450, 40, 40));   // Coquillages du bas droite
+        //addObs(obsCarr (3000-200, 2000-750, 40, 40));        
     }
     else {
         //addObs(obsCarr (200, 2000-450, 40, 40));   // Coquillages du haut droit
         //addObs(obsCarr (200, 2000-750, 40, 40));
         
         //addObs(obsCarr (900, 2000-550, 40, 40));
-        addObs(obsCarr (3000-200, 2000-450, 40, 40));    // Coquillage du bas gauche
-        addObs(obsCarr (3000-200, 2000-750, 40, 40));    // Coquillage du bas droite
-
-        addObs(obsCarr (3000-600, 2000-450, 40, 40));    // Coquillage du milieu bas/bas droite
-        addObs(obsCarr (3000-600, 2000-750, 40, 40));    // Coquillage du milieu bas/bas sur le même axe horizontal
-
-        addObs(obsCarr (1800, 2000-350, 40, 40));   // Coquillage du milieu/bas droite
-    }
-}
-
-void map::Build_formation_3 (int couleur) {
-    if (couleur == VERT) {
-        addObs(obsCarr (200, 2000-450, 40, 40));    // Coquillage du haut gauche
-        addObs(obsCarr (200, 2000-750, 40, 40));    // Coquillage du haut droite
-
-        addObs(obsCarr (600, 2000-450, 40, 40));    // Coquillage du milieu/haut/haut droite
-        addObs(obsCarr (600, 2000-750, 40, 40));    // Coquillage du milieu/haut/haut sur le même axe horizontal
-
-        addObs(obsCarr (600, 2000-150, 40, 40));   // Coquillage du milieu/haut droite
-    }
-    else {
-        //addObs(obsCarr (200, 2000-450, 40, 40));   // Coquillages du haut droit
-        //addObs(obsCarr (200, 2000-750, 40, 40));
+        addObs(obsCarr (1200, 2000-350, 40, 40)); // Coquillages du milieu/haut
+        
+        addObs(obsCarr (1500, 2000-550, 40, 40));
+        addObs(obsCarr (1500, 2000-350, 40, 40)); 
         
-        //addObs(obsCarr (900, 2000-550, 40, 40));
-        // Inverser bas et haut
-        addObs(obsCarr (3000-200, 2000-450, 40, 40));    // Coquillage du bas gauche
-        addObs(obsCarr (3000-200, 2000-750, 40, 40));    // Coquillage du bas droite
-
-        addObs(obsCarr (3000-600, 2000-450, 40, 40));    // Coquillage du milieu bas/bas droite
-        addObs(obsCarr (3000-600, 2000-750, 40, 40));    // Coquillage du milieu bas/bas sur le même axe horizontal
-
-        addObs(obsCarr (3000-600, 2000-150, 40, 40));   // Coquillage du milieu/bas droite
+        addObs(obsCarr (3000-900, 2000-550, 40, 40));
+        addObs(obsCarr (3000-1200, 2000-350, 40, 40));   
+        
+        addObs(obsCarr (3000-200, 2000-450, 40, 40));   // Coquillages du bas droite
+        addObs(obsCarr (3000-200, 2000-750, 40, 40));        
     }
 }
\ No newline at end of file