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(500, 1000, isYellow))
Cecile Bouette
committed
{
this->positionRetournement = Position(700, 1000, isYellow);
}
else // ne sert à rien normalement
Cecile Bouette
committed
{
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
{
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++;
}
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++;
}
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++;
}
else if ((status ==63) && (status > 0)) //On dit à Krabi de se déplacer à partir de maintenant à l'envers
Cecile Bouette
committed
{
#ifndef ROBOTHW
qDebug() << "Etape deposerPied finie";
#endif
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.
Cecile Bouette
committed
{
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++;
}
else if ((status ==66) && (status > 0)) //On ferme l'ascenceur
Cecile Bouette
committed
{
Ascenseur::getSingleton()->fermerAscenseur();
Cecile Bouette
committed
status++;
}
else if ((status <86) && (status > 0)) //On attend que l'ascenseur soit ferme
Cecile Bouette
committed
{
status++;
}
else if ((status ==86) && (status > 0)) //Les pinces se ferment
Cecile Bouette
committed
{
Pinces::getSingleton()->fermerPinces();
Cecile Bouette
committed
status++;
}
else if ((status <106) && (status > 0)) //On attend que les pinces soient fermees
Cecile Bouette
committed
{
status++;
}
else if (status == 106) //action finie
Cecile Bouette
committed
{
status = -1;
}
return status;
}