FRC_equipe1 / Mbed 2 deprecated FRC_2019

Dependencies:   mbed

Classes/Robot.cpp

Committer:
Wael_H
Date:
2019-06-04
Revision:
16:05665faaa489
Parent:
15:3d4543a6c100
Child:
17:aae5361ddddf

File content as of revision 16:05665faaa489:

#include "mbed.h"
#include "Robot.h"
#include "CAN_asser.h"

#include "Deplacement.h"
#include "Laser.h"
#include "Rouleau.h"
#include <string>

using namespace std;


Robot::Robot() : laserG(Laser(PB_1)), laserD(Laser(PC_5)), laserA(Laser(PC_4)), rouleau(Rouleau(D5, D4, D6)) /*PWM, Ejecte, Gobe*/, BPs(DigitalIn(PC_2, PullDown))
{
    can_init();
}

bool Robot::aBalle()
{
    return BPs.read();
}

/// retourne l'adresse de la premiere case d'un tableau contenant dans l'ordre la position en x et en y et l'angle theta ///
void Robot::getPos(short* pos)
{
    majPos(pos);
}

bool Robot::getFlag()
{
    majFlagDpl(this->deplacement.getFlag());
    return this->deplacement.getFlag();
}


/// Toutes les fonctions de déplacement ///
bool Robot::avance(signed short dist)
{
    return deplacement.avance(dist);
}

bool Robot::tourne(signed short angle)
{
    return deplacement.tourne(angle);
}

bool Robot::GoToXYT(unsigned short x, unsigned short y, unsigned short t, signed char sens)  //sens = 0 par défaut
{
    return deplacement.GoToXYT(x,y,t,sens);
}

void Robot::setSpeed(unsigned short vitesse, unsigned short acceleration) const
{
    SendSpeed(vitesse,acceleration);
}

void Robot::stop()
{
    deplacement.stop();
}


/// Fonction distance lasers ///
float Robot::getDist(int laserENUM, string unite) //="cm" par défaut
{
    switch(laserENUM) {
        case Laser::Gauche:
            return this->laserG.getDist(unite);

        case Laser::Droit:
            return this->laserD.getDist(unite);

        case Laser::Arriere:
            return this->laserA.getDist(unite);
    }

    return 0;
}


/// Fonctions Rouleau ///
void Robot::ejecte(int vitesse) // vitesse max = 100
{
    rouleau.ejecte(vitesse);
}

void Robot::gobe(int vitesse) // vitesse max = 100
{
    rouleau.gobe(vitesse);
}

void Robot::stopRouleau()
{
    rouleau.stop();
}