diff --git a/Trajet.c b/Trajet.c index f4d3a1c..527d691 100644 --- a/Trajet.c +++ b/Trajet.c @@ -4,32 +4,41 @@ #include "Trajet.h" #include "Asser_Position.h" -#define VITESSE_MAX_MM_S 300 - double Trajet_calcul_vitesse(double temps_s); -double abscisse; +double abscisse; // Position entre 0 et 1 sur la trajectoire double position_mm; // Position en mm sur la trajectoire double vitesse_mm_s; +double vitesse_max_trajet_mm_s=1000; double acceleration_mm_ss; struct trajectoire_t trajet_trajectoire; struct position_t position_consigne; +/// @brief Initialise le module Trajet. A appeler en phase d'initilisation void Trajet_init(){ abscisse = 0; vitesse_mm_s = 0; - acceleration_mm_ss = 300; + acceleration_mm_ss = 500; position_mm = 0; } +/// @brief Configure la vitesse maximale et l'acceleration pour les futurs trajets +/// @param _vitesse_max_trajet_mm_s +/// @param _acceleration_mm_ss +void Trajet_config(double _vitesse_max_trajet_mm_s, double _acceleration_mm_ss){ + vitesse_max_trajet_mm_s = _vitesse_max_trajet_mm_s; + acceleration_mm_ss = _acceleration_mm_ss; +} + void Trajet_debut_trajectoire(struct trajectoire_t trajectoire){ abscisse = 0; vitesse_mm_s = 0; - acceleration_mm_ss = 500; position_mm = 0; trajet_trajectoire = trajectoire; } +/// @brief Avance la consigne de position sur la trajectoire +/// @param pas_de_temps_s : temps écoulé depuis le dernier appel en seconde enum trajet_etat_t Trajet_avance(double pas_de_temps_s){ double distance_mm; enum trajet_etat_t trajet_etat = TRAJET_EN_COURS; @@ -63,6 +72,7 @@ enum trajet_etat_t Trajet_avance(double pas_de_temps_s){ } +/// @brief Envoie la consigne de position calculée par le module trajet. Principalement pour le débug/réglage asservissement. struct position_t Trajet_get_consigne(){ return position_consigne; } @@ -91,8 +101,8 @@ double Trajet_calcul_vitesse(double pas_de_temps_s){ if(vitesse > vitesse_max_contrainte){ vitesse = vitesse_max_contrainte; } - if(vitesse > VITESSE_MAX_MM_S){ - vitesse = VITESSE_MAX_MM_S; + if(vitesse > vitesse_max_trajet_mm_s){ + vitesse = vitesse_max_trajet_mm_s; } return vitesse; } diff --git a/Trajet.h b/Trajet.h index 7b27692..fdea91d 100644 --- a/Trajet.h +++ b/Trajet.h @@ -7,6 +7,7 @@ enum trajet_etat_t{ void Trajet_init(); +void Trajet_config(double _vitesse_max_trajet_mm_s, double _acceleration_mm_ss); void Trajet_debut_trajectoire(struct trajectoire_t trajectoire); enum trajet_etat_t Trajet_avance(double temps_s); struct position_t Trajet_get_consigne(void);