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(){}
DeposerPied::DeposerPied(Position goalposition):MediumLevelAction(goalposition){
if (goalposition == Position(500, 1000))
Cecile Bouette
committed
{
this->positionRetournement = Position(700, 1000);
Cecile Bouette
committed
}
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))
{
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++;
}
else if ((status == 24) && (status > 0)) //On attend que l'ascenseur se baisse
Cecile Bouette
committed
{
if (Ascenseur::getSingleton()->estEnBas())
{
status++;
}
Cecile Bouette
committed
}
else if ((status ==25) && (status > 0)) //On ouvre l'ascenseur
Cecile Bouette
committed
{
Ascenseur::getSingleton()->ouvrirAscenseur();
Cecile Bouette
committed
status++;
}
else if ((status <45) && (status > 0)) //On attend que l'ascenseur soit ouvert
Cecile Bouette
committed
{
status++;
}
else if ((status ==45) && (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 ==46) && (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 ==47) && (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))
{
this->goBack = false;
status++;
}
Cecile Bouette
committed
}
else if ((status ==48) && (status > 0)) //On ferme l'ascenceur
Cecile Bouette
committed
{
Ascenseur::getSingleton()->fermerAscenseur();
Cecile Bouette
committed
status++;
}
else if ((status <68) && (status > 0)) //On attend que l'ascenseur soit ferme
{
status++;
}
else if ((status ==68) && (status > 0))
Cecile Bouette
committed
{
Ascenseur::getSingleton()->leverAscenseur();
Cecile Bouette
committed
status++;
}
else if ((status ==69) && (status > 0))
{
if (Ascenseur::getSingleton()->estEnHaut())
{
status++;
}
}
else if ((status ==70) && (status > 0)) //Les pinces se ferment
Cecile Bouette
committed
{
Pinces::getSingleton()->fermerPinces();
Cecile Bouette
committed
status++;
}
else if ((status <90) && (status > 0)) //On attend que les pinces soient fermees
Cecile Bouette
committed
{
status++;
}
else if (status == 90) //action finie
Cecile Bouette
committed
{
status = -1;
}
return status;
}