Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Fork of Le_Pont_V10116 by
Diff: Pilote.h
- Revision:
- 0:8b3c6f593515
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/Pilote.h Thu Jun 22 09:33:04 2017 +0000
@@ -0,0 +1,153 @@
+/*******************************************************************/
+/* */
+/* Pilote */
+/* */
+/* Objet de pilotage de variateur */
+/* */
+/* */
+/*******************************************************************/
+#ifndef _PILOTE_
+#define _PILOTE_
+
+#include "mbed.h"
+#include <Serial.h>
+#include "Constantes.h"
+#include "Variable.h"
+#include "time.h"
+
+// Etat des ordres variateur
+#define AUCUN 0
+#define ATTENTE 1
+#define VALIDE 2
+#define DEFAUT 3
+
+// Ordres variateur
+#define ORDRE_AUCUN 0x0
+#define ORDRE_ARRET 0x41
+#define ORDRE_MONTE 0x4D
+#define ORDRE_DESCEND 0x44
+#define ORDRE_FREIN 0x46
+#define ORDRE_LECTURE 0x4C
+#define ORDRE_CONFIGURE 0x43
+
+// Parametres variateur
+#define NB_PARAM_VARIATEUR 15
+#define VERSION 0x00
+#define STARTUP 0x01
+#define INCREMENT 0x02
+#define SEUIL_DEMARRAGE 0x03
+#define ACCELERATION 0x04
+#define DECELERATION 0x05
+#define KPV 0x06
+#define KIV 0x07
+#define KDV 0x08
+#define KA 0x09
+#define CONSIGNE 0x0A
+#define ETAT_EL 0x0B
+#define ETAT_SL 0x0C
+
+// Etats du frein du moteur
+#define SERRE 0
+#define DESSERRE 1
+
+#define LONGUEUR_CHAINE_EMISSION 100
+#define LONGUEUR_CHAINE_RECEPTION 100
+
+#define TIMEOUT_RECEPTION_ms 200
+#define DELAI_COMMANDE_ARRET_ms 500
+
+/** Class Pilote
+* Pilotage de variateur de pile de pont via liaison série et protocole 3R
+*/
+class Pilote
+{
+public:
+ /** Constructeur
+ * @param Id : Identifiant de l'instance
+ */
+ Pilote ( S16 Id);
+
+ /** Initialise et ouvre le port série
+ * @param Baudrates : Vitesse de la liaison série
+ * @param bits : Bits de données
+ * @param Stop : Bits de stop
+ */
+ void Init ( int Baudrates, int bits, int Stop) ;
+ /** Ordre de marche de la pile
+ * @param Mode : Mode de fonctionnement
+ * @param Sens : Sens de déplacement
+ * @param Hauteur : Hauteur cible (mm)
+ * @param Vitesse : Consigne de vitesse (tr/min)
+ */
+ void Marche ( U8 Mode, U8 Sens, S16 Hauteur, S16 Vitesse ) ;
+ /** Ordre d'arret de la pile
+ */
+ void Arret (void) ;
+ /** Commande manuelle du frein
+ * @param Etat : Etat du frein {SERRE,DESSERRE}
+ */
+ void Frein ( U8 Etat ) ;
+ /** Lecture d'un parametre du variateur
+ * @param Num_Parametre : numéro du parametre à lire
+ */
+ void Lecture ( U16 Num_Parametre ) ;
+ /** Configuration d'un parametre du variateur
+ * @param Num_Parametre : numéro du parametre à configurer
+ * @param Valeur : nouvelle valeur du parametre
+ */
+ void Configure ( U16 Num_Parametre , S32 Valeur ) ;
+ /** Etalonnage de hauteur de la pile
+ * @param Points1 : Hauteur en points de la mesure basse
+ * @param Hauteur1 : Hauteur en mm de la mesure basse
+ * @param Points2 : Hauteur en points de la mesure haute
+ * @param Hauteur2 : Hauteur en mm de la mesure haute
+ */
+ void Etalonnage (S16 Points1, S16 Hauteur1 , S16 Points2 , S16 Hauteur2 ) ;
+ /** Reception de la réponse du variateur
+ */
+ void Reception ( void ) ;
+
+ /**Pointeur du port série*/
+ Serial* pPort ;
+ /**Hauteur courante de la pile (mm)*/
+ S16 Hauteur_Courante ;
+ /**Vitesse courante de la pile*/
+ S16 Vitesse_Courante ;
+ ///Hauteur de la pile (pts)
+ S16 Mesure_Courante ;
+ ///Hauteur cible du mouvement en cours (mm)
+ S16 Hauteur_Cible ;
+ ///Identifiant de l'instance
+ S16 Id ;
+ ///Compteur de timeouts de la liaison série
+ S16 Compteur_Timeout ;
+ ///Deplacement en cours (ARRET, MONTE, DESCEND)
+ U8 Etat_Deplacement ;
+ ///Etat de la commande manuelle de frein (SERRE, DESSERRE)
+ U8 Etat_Frein ;
+ ///Etat de la liaison série
+ U8 COM_OK ;
+ ///Tableau de paramètres du variateur
+ S32 Parametres_Vario_S32[NB_PARAM_VARIATEUR] ;
+
+private:
+ void Emission ( U8 *pChaine , U8 Longueur ) ;
+ U8 Chaine_A_Emettre[LONGUEUR_CHAINE_EMISSION] ;
+ U8 Chaine_Recue[LONGUEUR_CHAINE_RECEPTION] ;
+ Timer Chrono_Pilote ;
+ Timer Chrono_Arret ;
+ U8 *pEmission ;
+ U8 *pReception ;
+ U8 Nb_Caracteres_Recus ;
+ U8 Statut_Ordre_En_Cours ;
+ U8 Ordre_En_Cours ;
+ U8 Dernier_Ordre_Confirme ;
+ F32 MM_par_Points ;
+ F32 MM_Offset ;
+ int Debut_Emission_ms ;
+ int Fin_Reception_ms ;
+ int Age_Ordre_Arret_ms ;
+
+};
+
+#endif
\ No newline at end of file
