#include "pico/stdlib.h"
#include "Trajectoire.h"

#ifndef STRATEGIE_H
#define STRATEGIE_H

#define COULEUR 15
#define TIRETTE 14
#define CORR_ANGLE_DEPART_DEGREE  (-1.145)

enum etat_action_t{
    ACTION_EN_COURS,
    ACTION_TERMINEE
};

enum longer_direction_t{
    LONGER_VERS_A,
    LONGER_VERS_C
};

enum couleur_t{
    COULEUR_BLEU=0,
    COULEUR_VERT,
    COULEUR_INCONNUE,
};

extern enum etat_strategie_t{
    STRATEGIE_INIT,
    ATTENTE_TIRETTE,
    APPROCHE_CERISE_1_A,
    APPROCHE_CERISE_1_B,
    ATTRAPE_CERISE_1,
    APPROCHE_PANIER_1,
    APPROCHE_PANIER_2,
    CALAGE_PANIER_1,
    RECULE_PANIER,
    TOURNE_PANIER,
    LANCE_DANS_PANIER,
    APPROCHE_CERISE_2,
    ATTRAPPE_CERISE_2,
    APPROCHE_PANIER_3,
    STRATEGIE_FIN,
    
}etat_strategie;

enum etat_action_t cerise_accostage(void);
enum etat_action_t avance_puis_longe_bordure(enum longer_direction_t longer_direction);
enum etat_action_t parcourt_trajet_simple(struct trajectoire_t trajectoire, uint32_t step_ms);
enum etat_action_t parcourt_trajet_simple_sans_evitement(struct trajectoire_t trajectoire, uint32_t step_ms);
enum etat_action_t depose_cerises(uint32_t step_ms);
void Homologation(uint32_t step_ms);
enum couleur_t lire_couleur(void);
uint attente_tirette(void);
enum etat_action_t lance_balles(uint32_t step_ms);
int test_panier(void);

int temporisation_terminee(uint32_t * tempo_ms, uint32_t step_ms);



// STRATEGIE_H
#endif