Newer
Older
Cecile Bouette
committed
#include "deposerPied.h"
#include "ascenseur.h"
#include "pinces.h"
#include "strategieV2.h"
#include "mediumLevelAction.h"
#include "command.h"
#ifndef ROBOTHW
#include <QDebug>
#endif
DeposerPied::DeposerPied(){}
Cecile Bouette
committed
DeposerPied::DeposerPied(Position goalposition, bool isYellow):MediumLevelAction(goalposition){
if (goalposition == Position(250, 1000, isYellow))
{
this->positionRetournement = Position(700, 1000, isYellow);
}
/* if (goalposition == Position(, , isYellow))
this->positionRetournement =
if (goalposition == Position(, , isYellow))
this->positionRetournement =*/
else
{
this->positionRetournement = goalPosition;
}
}
Cecile Bouette
committed
DeposerPied::~DeposerPied(){}
Cecile Bouette
committed
Etape::EtapeType DeposerPied::getType()
{
return Etape::DEPOSER_PIED;
}
Cecile Bouette
committed
int DeposerPied::update()
{
if (status == 0)
{
#ifndef ROBOTHW
qDebug() << "deposerPied";
#endif
status++;
}
else if (status == 1)
{
StrategieV2::setCurrentGoal(this->goalPosition, this->goBack);
status++;
}
else if (status == 2)
{
Cecile Bouette
committed
if (Command::isNear(goalPosition, 175.0f))
Cecile Bouette
committed
{
StrategieV2::lookAt(goalPosition);
status++;
}
}
else if (status == 3)
{
if (Command::isLookingAt(goalPosition))
{
#ifndef ROBOTHW
qDebug() << "On ouvre les pinces";
#endif
Pinces::getSingleton()->ouvrirPinces();
status++;
}
}
else if ((status <23) && (status > 0)) //On attend que les pinces soient ouvertes
{
status++;
}
Cecile Bouette
committed
else if ((status =23) && (status > 0)) //On baisse l'ascenseur
Cecile Bouette
committed
{
Ascenseur::getSingleton()->baisserAscenseur();
Cecile Bouette
committed
status++;
}
Cecile Bouette
committed
else if ((status <43) && (status > 0)) //On attend que l'ascenseur se baisse
Cecile Bouette
committed
{
status++;
}
Cecile Bouette
committed
else if ((status =43) && (status > 0)) //On ouvre l'ascenseur
Cecile Bouette
committed
{
Ascenseur::getSingleton()->ouvrirAscenseur();
Cecile Bouette
committed
status++;
}
Cecile Bouette
committed
else if ((status <63) && (status > 0)) //On attend que l'ascenseur soit ouvert
Cecile Bouette
committed
{
status++;
}
Cecile Bouette
committed
else if ((status =63) && (status > 0)) //On dit à Krabi de se déplacer à partir de maintenant à l'envers
Cecile Bouette
committed
{
this->goBack = true;
status++;
}
Cecile Bouette
committed
else if ((status =64) && (status > 0)) //Le robot se déplace jusqu'à un autre point du graphe en arrière.
{
StrategieV2::setCurrentGoal(this->positionRetournement, this->goBack);
status++;;
}
else if ((status =65) && (status > 0)) //Le robot se déplace jusqu'à un autre point du graphe en arrière.
Cecile Bouette
committed
{
Cecile Bouette
committed
if (Command::isNear(positionRetournement))
Cecile Bouette
committed
status++;
}
Cecile Bouette
committed
else if ((status =66) && (status > 0)) //On ferme l'ascenceur
Cecile Bouette
committed
{
Ascenseur::getSingleton()->fermerAscenseur();
Cecile Bouette
committed
status++;
}
Cecile Bouette
committed
else if ((status <84) && (status > 0)) //On attend que l'ascenseur soit ferme
Cecile Bouette
committed
{
status++;
}
Cecile Bouette
committed
else if ((status =84) && (status > 0)) //Les pinces se ferment
Cecile Bouette
committed
{
Pinces::getSingleton()->fermerPinces();
Cecile Bouette
committed
status++;
}
Cecile Bouette
committed
else if ((status <104) && (status > 0)) //On attend que les pinces soient fermees
Cecile Bouette
committed
{
status++;
}
Cecile Bouette
committed
else if (status == 104) //action finie
Cecile Bouette
committed
{
status = -1;
}
return status;
}