diff --git a/Strategie.h b/Strategie.h index c84b697..4fe8740 100644 --- a/Strategie.h +++ b/Strategie.h @@ -52,6 +52,7 @@ enum etat_action_t Strategie_groupie_2(uint32_t step_ms, enum couleur_t couleur) enum etat_action_t Strategie_groupie_3(uint32_t step_ms, enum couleur_t couleur); void PAMI_dance(int); +void Strategie_interrompre_trajet(void); enum etat_action_t Strategie_parcourir_trajet(struct trajectoire_t trajectoire, uint32_t step_ms, enum evitement_t evitement); // STRATEGIE_H diff --git a/Strategie_deplacement.c b/Strategie_deplacement.c index f5200a5..495375e 100644 --- a/Strategie_deplacement.c +++ b/Strategie_deplacement.c @@ -7,16 +7,22 @@ float distance_obstacle; +static enum { + PARCOURS_INIT, + PARCOURS_AVANCE, + } etat_parcourt=PARCOURS_INIT; + +void Strategie_interrompre_trajet(void){ + etat_parcourt=PARCOURS_INIT; +} + enum etat_action_t Strategie_parcourir_trajet(struct trajectoire_t trajectoire, uint32_t step_ms, enum evitement_t evitement){ enum etat_action_t etat_action = ACTION_EN_COURS; enum etat_trajet_t etat_trajet; float angle_avancement; static bool trajet_inverse = false; - static enum { - PARCOURS_INIT, - PARCOURS_AVANCE, - } etat_parcourt=PARCOURS_INIT; + switch (etat_parcourt){ case PARCOURS_INIT: diff --git a/main.c b/main.c index 4d4aac7..b896467 100644 --- a/main.c +++ b/main.c @@ -194,6 +194,7 @@ void main(void) } if(mise_a_jour_trajectoire){ struct msg_trajectoire_t msg_trajectoire; + Strategie_interrompre_trajet(); get_données_reçues((uint8_t *) &msg_trajectoire, sizeof(msg_trajectoire), REG_PROPULSION_TRAJECTOIRE); printf("trajectoire: type: %d,\n point1_x:%.2f, point1_y:%.2f,\n point2_x:%.2f, point2_y:%.2f,\n point3_x:%.2f, point3_y:%.2f\n point4_x:%.2f, point4_y:%.2f\n", msg_trajectoire.trajectoire.type, msg_trajectoire.trajectoire.p1.x, msg_trajectoire.trajectoire.p1.y,