diff --git a/stm32/include/strategie/cabine.h b/stm32/include/strategie/cabine.h index 3540bd45ee18666f62065b370d4c4c763edd29b3..288d7973ae99068e2bf5bf9f75cbc2dadb5bf194 100644 --- a/stm32/include/strategie/cabine.h +++ b/stm32/include/strategie/cabine.h @@ -10,7 +10,7 @@ class Cabine : public MediumLevelAction public: Cabine(); - Cabine(Position position); + Cabine(Position position, Position wd_position); ~Cabine(); @@ -20,6 +20,7 @@ public: protected: Position position; + Position position_depart; }; #endif // CABINE_H diff --git a/stm32/include/strategie/cubeDebut.h b/stm32/include/strategie/cubeDebut.h index 23f3df27d348b29521f811fe5ccd7d8f9d9a4496..198216377de4a609cefffbb7f297743b7f681580 100644 --- a/stm32/include/strategie/cubeDebut.h +++ b/stm32/include/strategie/cubeDebut.h @@ -10,7 +10,7 @@ class CubeDebut : public MediumLevelAction public: CubeDebut(); - CubeDebut(Position position); + CubeDebut(Position position, Position wa_position); ~CubeDebut(); @@ -20,6 +20,7 @@ public: protected: Position position; + Position position_depart; }; #endif // CUBEDEBUT_H diff --git a/stm32/src/strategie/cabine.cpp b/stm32/src/strategie/cabine.cpp index 3fdb28003819a7cc519d34d6f064711636da7e02..15523e09508c4fd7edbc0ad9493fcc8a346ee8ad 100644 --- a/stm32/src/strategie/cabine.cpp +++ b/stm32/src/strategie/cabine.cpp @@ -10,9 +10,10 @@ Cabine::Cabine(){} -Cabine::Cabine(Position goalPosition):MediumLevelAction(goalPosition) +Cabine::Cabine(Position goalPosition, Position wd_position):MediumLevelAction(goalPosition) { goalPosition = this->goalPosition; + position_depart = wd_position; } Cabine::~Cabine(){} @@ -38,7 +39,7 @@ int Cabine::update() if (Command::isNear(this->getGoalPosition(), 200.0f)) // le second paramètre est la distance a l'objectif { // après avoir poussé les cubes on revient en marche arrière - StrategieV2::setCurrentGoal(Position(600, 900), true, VITESSE_LINEAIRE_MAX, -100.0, 10.f); + StrategieV2::setCurrentGoal(position_depart, true, VITESSE_LINEAIRE_MAX, -100.0, 10.f); #ifndef ROBOTHW qDebug() << "On revient en marche arriere au point ou on prend son elan"; #endif @@ -47,7 +48,10 @@ int Cabine::update() } else if (status == 2) { - if (Command::isNear(Position(600, 900), 10.0f)) // le second paramètre est la distance a l'objectif + + // A faire, ne pas hardcoder la position + + if (Command::isNear(position_depart, 10.0f)) // le second paramètre est la distance a l'objectif { #ifndef ROBOTHW qDebug() << "On est revenu au point ou on prend son elan"; diff --git a/stm32/src/strategie/cubeDebut.cpp b/stm32/src/strategie/cubeDebut.cpp index b548842da0c2da95f0da2873420c45660b0b652e..929b4d2ca27238920e720f119718e2d0f3d4f336 100644 --- a/stm32/src/strategie/cubeDebut.cpp +++ b/stm32/src/strategie/cubeDebut.cpp @@ -10,9 +10,10 @@ CubeDebut::CubeDebut(){} -CubeDebut::CubeDebut(Position goalPosition):MediumLevelAction(goalPosition) +CubeDebut::CubeDebut(Position goalPosition, Position wa_position):MediumLevelAction(goalPosition) { goalPosition = this->goalPosition; + position_depart = wa_position; } CubeDebut::~CubeDebut(){} @@ -38,7 +39,7 @@ int CubeDebut::update() if (Command::isNear(this->getGoalPosition(), 100.0f)) // le second paramètre est la distance a l'objectif { // après avoir poussé les cubes on revient en marche arrière - StrategieV2::setCurrentGoal(Position(600, 900), true, VITESSE_LINEAIRE_MAX, -100.0, 10.f); + StrategieV2::setCurrentGoal(position_depart, true, VITESSE_LINEAIRE_MAX, -100.0, 10.f); #ifndef ROBOTHW qDebug() << "On revient au bercail"; #endif @@ -48,9 +49,7 @@ int CubeDebut::update() else if (status == 2) { - // A faire, ne pas hardcoder la position - - if (Command::isNear(Position(600, 900), 10.0f)) // le second paramètre est la distance a l'objectif + if (Command::isNear(position_depart, 10.0f)) // le second paramètre est la distance a l'objectif { #ifndef ROBOTHW qDebug() << "On est revenu au bercail"; diff --git a/stm32/src/strategie/krabi2016.cpp b/stm32/src/strategie/krabi2016.cpp index 4e2f6aea8f2f8f37cb5887c5943aeb05cdae59d8..61035bd22f42410d5c2878c6d11ff6709545549d 100644 --- a/stm32/src/strategie/krabi2016.cpp +++ b/stm32/src/strategie/krabi2016.cpp @@ -22,13 +22,17 @@ Krabi2016::Krabi2016(bool isYellow) : StrategieV3(isYellow) int start = Etape::makeEtape(Position(250, 900, true), Etape::DEPART); // départ au fond de la zone de départ /** Points de passage **/ - int wa = Etape::makeEtape(Position(600, 900, true)); + Position wa_position = Position(600, 900, true); + int wa = Etape::makeEtape(wa_position); + int wb = Etape::makeEtape(Position(680, 700, true)); int wc = Etape::makeEtape(Position(1000, 500, true)); - int wd = Etape::makeEtape(Position(400, 500, true)); + + Position wd_position = Position(400, 500, true); + int wd = Etape::makeEtape(wd_position); // On crée l'étape "pousse les cubes du début" - int cd1 = Etape::makeEtape(new CubeDebut(Position(900, 900, true))); + int cd1 = Etape::makeEtape(new CubeDebut(Position(900, 900, true), wa_position)); /** Actions **/ @@ -42,8 +46,8 @@ Krabi2016::Krabi2016(bool isYellow) : StrategieV3(isYellow) int pb = Etape::makeEtape(new RamasserPied(Position(1200, 260, true))); // Cabines de plage - int cp1 = Etape::makeEtape(new Cabine(Position(250, 50, true))); - int cp2 = Etape::makeEtape(new Cabine(Position(500, 50, true))); + int cp1 = Etape::makeEtape(new Cabine(Position(250, 50, true), wd_position)); + int cp2 = Etape::makeEtape(new Cabine(Position(500, 50, true), wd_position)); /** Liens **/ @@ -51,9 +55,9 @@ Krabi2016::Krabi2016(bool isYellow) : StrategieV3(isYellow) Etape::get(start) ->addVoisin(wa); Etape::get(wa) ->addVoisin(wb, zc2); Etape::get(wc) ->addVoisin(zc1); - Etape::get(cd1) ->addVoisin(wa); - Etape::get(cp1) ->addVoisin(wd); - Etape::get(cp2) ->addVoisin(wd); + Etape::get(cd1) ->addVoisin(wa); + Etape::get(cp1) ->addVoisin(wd); + Etape::get(cp2) ->addVoisin(wd); Etape::get(wc) ->addVoisin(zc2); Etape::get(wd) ->addVoisin(wb); Etape::get(pa) ->addVoisin(wb, zc2);