FRC_equipe1 / Mbed 2 deprecated FRC_2019

Dependencies:   mbed

main.cpp

Committer:
theolp
Date:
2019-05-27
Revision:
11:e8c4a1c6553d
Parent:
10:efa507ba2b35
Child:
12:7ec2c5b674a2

File content as of revision 11:e8c4a1c6553d:

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

/*//Bonus fin de partie
PwmOut bonus(PA_10);

//Disquette
PwmOut Servo_Ballon(PB_7);
PwmOut Mot_Ballon(PB_6);*/


void automate_test(Robot& R);


int main(void)
{
    Robot robot;
    
    robot.gobe(40);
    
    while(1)
    {
        robot.LedBps = robot.aBalle();
        automate_test(robot);
    }
}


void automate_test(Robot& robot)
{
    typedef enum {DEBUT, ALLER_ENDROIT, EJECTE, RETOUR_DEBUT} type_etat;
    static type_etat etat = DEBUT;
    
    int pos[3];
    robot.getPos(pos);
    
    static Timer timer_dbug;
    timer_dbug.start();
    if(timer_dbug.read() > 1.f){
        dbug.printf("posX  : %d\n\r", pos[0]);
        dbug.printf("posY  : %d\n\r", pos[1]);
        dbug.printf("Angle : %d\n\r", pos[2]);
        sauter_lignes(24);
        timer_dbug.start();
    } 
    
    switch(etat)
    {
        case DEBUT:
            if(robot.aBalle()){
                etat = ALLER_ENDROIT;
                robot.GoToXYT(500, 500, 900);
            }
            break;
            
        case ALLER_ENDROIT:
            if(val_abs(pos[0]-500)<10 && val_abs(pos[1]-500)<10 && val_abs(pos[2]-900)<10)
                etat = EJECTE;
            break;
            
        case EJECTE:
            robot.ejecte(50);
            etat = RETOUR_DEBUT;
            break;
            
        case RETOUR_DEBUT:
            robot.GoToXYT(0, 0, 0, 1);
            etat = DEBUT;
            break;
    }
}