From 819ec802849c0408cb4df543f229f82a7c0808d9 Mon Sep 17 00:00:00 2001 From: Guillaume Buret Date: Thu, 24 Mar 2016 15:38:13 +0100 Subject: [PATCH] Removed hardcoded positions in Cabine and CubeDebut classes --- stm32/include/strategie/cabine.h | 3 ++- stm32/include/strategie/cubeDebut.h | 3 ++- stm32/src/strategie/cabine.cpp | 10 +++++++--- stm32/src/strategie/cubeDebut.cpp | 9 ++++----- stm32/src/strategie/krabi2016.cpp | 20 ++++++++++++-------- 5 files changed, 27 insertions(+), 18 deletions(-) diff --git a/stm32/include/strategie/cabine.h b/stm32/include/strategie/cabine.h index 3540bd45..288d7973 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 23f3df27..19821637 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 3fdb2800..15523e09 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 b548842d..929b4d2c 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 4e2f6aea..61035bd2 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); -- GitLab