SAGNES Christophe / Mbed 2 deprecated Le_Pont_V10015

Dependencies:   mbed

Fork of Le_Pont_V10015 by 3R

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers Pilote.h Source File

Pilote.h

00001 /*******************************************************************/
00002 /*                                                                 */
00003 /*                 Pilote                                          */
00004 /*                                                                 */
00005 /*  Objet de pilotage de variateur                                 */
00006 /*                                                                 */
00007 /*                                                                 */
00008 /*******************************************************************/
00009 #ifndef _PILOTE_
00010 #define _PILOTE_
00011 
00012 #include "mbed.h"
00013 #include <Serial.h>
00014 #include "Constantes.h"
00015 #include "Variable.h"
00016 #include "time.h"
00017 
00018 // Etat des ordres variateur
00019 #define AUCUN               0
00020 #define ATTENTE             1
00021 #define VALIDE              2
00022 #define DEFAUT              3
00023 
00024 // Ordres variateur
00025 #define ORDRE_AUCUN         0x0
00026 #define ORDRE_ARRET         0x41
00027 #define ORDRE_MONTE         0x4D
00028 #define ORDRE_DESCEND       0x44
00029 #define ORDRE_FREIN         0x46
00030 #define ORDRE_LECTURE       0x4C
00031 #define ORDRE_CONFIGURE     0x43
00032 
00033 // Parametres variateur
00034 #define NB_PARAM_VARIATEUR  15
00035 #define VERSION             0x00
00036 #define STARTUP             0x01
00037 #define INCREMENT           0x02
00038 #define SEUIL_DEMARRAGE     0x03
00039 #define ACCELERATION        0x04
00040 #define DECELERATION        0x05
00041 #define KPV                 0x06
00042 #define KIV                 0x07
00043 #define KDV                 0x08
00044 #define KA                  0x09
00045 #define CONSIGNE            0x0A
00046 #define ETAT_EL             0x0B
00047 #define ETAT_SL             0x0C
00048 
00049 // Etats du frein du moteur
00050 #define SERRE               0
00051 #define DESSERRE            1
00052 
00053 #define LONGUEUR_CHAINE_EMISSION    100
00054 #define LONGUEUR_CHAINE_RECEPTION   100
00055 
00056 #define TIMEOUT_RECEPTION_ms       200
00057 #define DELAI_COMMANDE_ARRET_ms    500
00058 
00059 /**     Class Pilote
00060 *       Pilotage de variateur de pile de pont via liaison série et protocole 3R
00061 */
00062 class Pilote
00063 {
00064 public:
00065     /**     Constructeur
00066     *       @param Id : Identifiant de l'instance
00067     */
00068     Pilote ( S16 Id);
00069     
00070     /**     Initialise et ouvre le port série
00071     *       @param Baudrates  : Vitesse de la liaison série
00072     *       @param bits       : Bits de données
00073     *       @param Stop       : Bits de stop
00074     */
00075     void    Init ( int Baudrates, int bits,  int Stop) ;
00076     /**     Ordre de marche de la pile
00077     *       @param Mode       : Mode de fonctionnement
00078     *       @param Sens       : Sens de déplacement
00079     *       @param Hauteur    : Hauteur cible (mm)
00080     *       @param Vitesse    : Consigne de vitesse (tr/min)
00081     */
00082     void    Marche ( U8 Mode, U8 Sens, S16 Hauteur, S16 Vitesse ) ;
00083     /**     Ordre d'arret de la pile
00084     */
00085     void    Arret (void) ;
00086     /**     Commande manuelle du frein
00087     *       @param Etat       : Etat du frein {SERRE,DESSERRE}
00088     */
00089     void    Frein ( U8 Etat ) ;
00090     /**     Lecture d'un parametre du variateur
00091     *       @param Num_Parametre       : numéro du parametre à lire
00092     */
00093     void    Lecture ( U16 Num_Parametre ) ;
00094     /**     Configuration d'un parametre du variateur
00095     *       @param Num_Parametre       : numéro du parametre à configurer
00096     *       @param Valeur              : nouvelle valeur du parametre
00097     */
00098     void    Configure ( U16 Num_Parametre , S32 Valeur ) ;
00099     /**     Etalonnage de hauteur de la pile
00100     *       @param Points1             : Hauteur en points de la mesure basse
00101     *       @param Hauteur1            : Hauteur en mm de la mesure basse
00102     *       @param Points2             : Hauteur en points de la mesure haute
00103     *       @param Hauteur2            : Hauteur en mm de la mesure haute
00104     */
00105     void    Etalonnage (S16 Points1, S16 Hauteur1 , S16 Points2 , S16 Hauteur2 ) ; 
00106     /**     Reception de la réponse du variateur
00107     */ 
00108     void    Reception ( void ) ;
00109     
00110     /**Pointeur du port série*/
00111     Serial* pPort ;  
00112     /**Hauteur courante de la pile (mm)*/ 
00113     S16     Hauteur_Courante ;
00114     /**Vitesse courante de la pile*/
00115     S16     Vitesse_Courante ;
00116     ///Hauteur de la pile (pts)
00117     S16     Mesure_Courante ;
00118     ///Hauteur cible du mouvement en cours (mm)
00119     S16     Hauteur_Cible ;
00120     ///Identifiant de l'instance
00121     S16     Id ;
00122     ///Compteur de timeouts de la liaison série
00123     S16     Compteur_Timeout ;
00124     ///Deplacement en cours (ARRET, MONTE, DESCEND)
00125     U8      Etat_Deplacement ;
00126     ///Etat de la commande manuelle de frein (SERRE, DESSERRE)
00127     U8      Etat_Frein ;
00128     ///Etat de la liaison série
00129     U8      COM_OK ; 
00130     ///Tableau de paramètres du variateur
00131     S32     Parametres_Vario_S32[NB_PARAM_VARIATEUR] ;
00132     
00133 private:
00134     void    Emission ( U8 *pChaine , U8 Longueur ) ;
00135     U8      Chaine_A_Emettre[LONGUEUR_CHAINE_EMISSION] ;   
00136     U8      Chaine_Recue[LONGUEUR_CHAINE_RECEPTION] ;
00137     Timer   Chrono_Pilote ;
00138     Timer   Chrono_Arret ;
00139     U8      *pEmission ;
00140     U8      *pReception ;
00141     U8      Nb_Caracteres_Recus ;
00142     U8      Statut_Ordre_En_Cours ;
00143     U8      Ordre_En_Cours ;
00144     U8      Dernier_Ordre_Confirme ;
00145     F32     MM_par_Points ;
00146     F32     MM_Offset ;
00147     int     Debut_Emission_ms ;
00148     int     Fin_Reception_ms ;
00149     int     Age_Ordre_Arret_ms ;
00150     
00151 };
00152 
00153 #endif