Skip to content
tapis.cpp 1.86 KiB
Newer Older
#include "tapis.h"
#include "strategieV2.h"
#include "mediumLevelAction.h"
#include "command.h"
#include "position.h"

#ifndef ROBOTHW
#include <QDebug>
#endif
#define GRANDE_ATTENTE 300
Tapis::Tapis(Position position):MediumLevelAction(position)
Maxime JEAN's avatar
Maxime JEAN committed
    this->toLookAt = M_PI/2;
    if (position == Position(1060, 848))
Maxime JEAN's avatar
Maxime JEAN committed
            this->cote = BrasTapis::GAUCHE;
    if (position == Position(1342, 848))
Maxime JEAN's avatar
Maxime JEAN committed
            this->cote = BrasTapis::DROIT;
Etape::EtapeType Tapis::getType()
{
    return Etape::TAPIS;
}

int Tapis::update()
{
    if (status == 0)
    {
#ifndef ROBOTHW
                qDebug() << "tapis";
#endif
        status++;
    }

    else if (status == 1)
    {
        StrategieV2::setCurrentGoal(goalPosition, goBack);
        status++;
    }

    else if (status == 2)
    {
        if (Command::isNear(goalPosition))
        {
Maxime JEAN's avatar
Maxime JEAN committed
            StrategieV2::lookAt(toLookAt);
Maxime JEAN's avatar
Maxime JEAN committed
        if (Command::isLookingAt(toLookAt))
#ifndef ROBOTHW
#endif
            for (int i = 0; i<10000; i++);
            BrasTapis::getSingleton(cote)->ouvrirBras();
    else if (status < 3 + GRANDE_ATTENTE)
    else if (status == 3 + GRANDE_ATTENTE)
#ifndef ROBOTHW
        qDebug() << "On ferme le bras";
#endif
        BrasTapis::getSingleton(cote)->fermerBras();
        status++;
    }

    else if (status < 3 + GRANDE_ATTENTE + GRANDE_ATTENTE)
    else if (status == 3 + GRANDE_ATTENTE + GRANDE_ATTENTE)    //On attend que les bras se ferment.
    {
#ifndef ROBOTHW
        qDebug() << "Etape tapis finie";
#endif
Maxime JEAN's avatar
Maxime JEAN committed