Robotique FIP / X_NUCLEO_IHM01A1

Fork of X_NUCLEO_IHM01A1 by ST

Revision:
22:ed3a6990a6eb
Parent:
18:2d6ab2b93685
--- a/Components/Common/motor.h	Tue Jan 19 15:57:24 2016 +0000
+++ b/Components/Common/motor.h	Tue Feb 09 10:53:31 2016 +0000
@@ -1,41 +1,43 @@
 /**
-  ******************************************************************************
-  * @file    motor.h
-  * @author  IPC Rennes
-  * @version V1.3.0
-  * @date    November 12, 2014
-  * @brief   This file contains all the functions prototypes for motor drivers.   
-  ******************************************************************************
-  * @attention
-  *
-  * <h2><center>&copy; COPYRIGHT(c) 2014 STMicroelectronics</center></h2>
-  *
-  * Redistribution and use in source and binary forms, with or without modification,
-  * are permitted provided that the following conditions are met:
-  *   1. Redistributions of source code must retain the above copyright notice,
-  *      this list of conditions and the following disclaimer.
-  *   2. Redistributions in binary form must reproduce the above copyright notice,
-  *      this list of conditions and the following disclaimer in the documentation
-  *      and/or other materials provided with the distribution.
-  *   3. Neither the name of STMicroelectronics nor the names of its contributors
-  *      may be used to endorse or promote products derived from this software
-  *      without specific prior written permission.
-  *
-  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-  * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-  * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-  * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-  *
-  ******************************************************************************
-  */ 
+ ******************************************************************************
+ * @file    motor.h
+ * @author  IPC Rennes
+ * @version V1.3.0
+ * @date    November 12, 2014
+ * @brief   This file contains all the functions prototypes for motor drivers.   
+ ******************************************************************************
+ * @attention
+ *
+ * <h2><center>&copy; COPYRIGHT(c) 2014 STMicroelectronics</center></h2>
+ *
+ * Redistribution and use in source and binary forms, with or without modification,
+ * are permitted provided that the following conditions are met:
+ *   1. Redistributions of source code must retain the above copyright notice,
+ *      this list of conditions and the following disclaimer.
+ *   2. Redistributions in binary form must reproduce the above copyright notice,
+ *      this list of conditions and the following disclaimer in the documentation
+ *      and/or other materials provided with the distribution.
+ *   3. Neither the name of STMicroelectronics nor the names of its contributors
+ *      may be used to endorse or promote products derived from this software
+ *      without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+ * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ ******************************************************************************
+ */ 
+
 
 /* Define to prevent recursive inclusion -------------------------------------*/
+
 #ifndef __MOTOR_H
 #define __MOTOR_H
 
@@ -43,26 +45,15 @@
  extern "C" {
 #endif 
 
+
 /* Includes ------------------------------------------------------------------*/
+
 #include <stdint.h>
 #include "component.h"
    
-/** @addtogroup BSP
-  * @{
-  */
-
-/** @addtogroup Components
-  * @{
-  */ 
 
-/** @defgroup Motor
-  * @{
-  */
-    
-/** @defgroup Motor_Exported_Constants
-  * @{
-  */   
-   
+/* Definitions ---------------------------------------------------------------*/
+
 /// boolean for false condition 
 #ifndef FALSE
 #define FALSE (0)
@@ -72,18 +63,25 @@
 #define TRUE  (1)
 #endif
 
-/**
-  * @}
-  */
-   
-/** @defgroup Motor_Exported_Types
+
+/* Types ---------------------------------------------------------------------*/
+
+/** @addtogroup BSP
   * @{
   */
 
-/**
-  * @}
-  */   
-   
+/** @addtogroup Components
+  * @{
+  */
+    
+/** @addtogroup MOTOR
+  * @{
+  */
+
+/** @defgroup MOTOR_Exported_Types
+  * @{
+  */
+
 /** @defgroup Device_Direction_Options
   * @{
   */
@@ -196,26 +194,37 @@
 /** @defgroup Motor_Driver_Structure
   * @{
   */
-/// Motor driver structure definition  
+
+/** 
+ * @brief  MOTOR driver virtual table structure definition.
+ */
 typedef struct
 {
-  /* Generic */
   /* ACTION ----------------------------------------------------------------*
-   * Declare here component's generic functions.                            *
+   * Declare here the component's generic functions.                        *
+   * Tag this group of functions with the " Generic " C-style comment.      *
+   * A component's interface has to define at least the two generic         *
+   * functions provided here below within the "Example" section, as the     *
+   * first and second functions of its Virtual Table. They have to be       *
+   * specified exactly in the given way.                                    *
    *                                                                        *
    * Example:                                                               *
-   *   DrvStatusTypeDef (*Init)(void *handle, void *init);                  *
+   *   Status_t (*Init)   (void *handle, void *init);                       *
+   *   Status_t (*ReadID) (void *handle, uint8_t *id);                      *
    *------------------------------------------------------------------------*/
-  DrvStatusTypeDef (*Init)(void *handle, void *init);
-  DrvStatusTypeDef (*ReadID)(void *handle, uint8_t *id);
+  /* Generic */
+  Status_t (*Init)(void *handle, void *init);
+  Status_t (*ReadID)(void *handle, uint8_t *id);
 
-  /* Interrupts */
   /* ACTION ----------------------------------------------------------------*
-   * Declare here component's interrupts related functions.                 *
+   * Declare here the component's interrupts related functions.             *
+   * Tag this group of functions with the " Interrupts " C-style comment.   *
+   * Do not specify any function if not required.                           *
    *                                                                        *
    * Example:                                                               *
-   *   void (*ConfigIT)(void *handle, uint16_t a);                          *
+   *   void     (*ConfigIT) (void *handle, int a);                          *
    *------------------------------------------------------------------------*/
+  /* Interrupts */
   /// Function pointer to AttachErrorHandler
   void (*AttachErrorHandler)(void *handle, void (*callback)(void *handle, uint16_t error));
   /// Function pointer to AttachFlagInterrupt
@@ -225,13 +234,15 @@
   /// Function pointer to FlagInterruptHandler
   void (*FlagInterruptHandler)(void *handle);
 
-  /* Specific */
   /* ACTION ----------------------------------------------------------------*
-   * Declare here component's specific functions.                           *
+   * Declare here the component's specific functions.                       *
+   * Tag this group of functions with the " Specific " C-style comment.     *
+   * Do not specify any function if not required.                           *
    *                                                                        *
    * Example:                                                               *
-   *   DrvStatusTypeDef (*GetValue)(void *handle, float *pfData);           *
+   *   Status_t (*GetValue) (void *handle, float *f);                       *
    *------------------------------------------------------------------------*/
+  /* Specific */
   /// Function pointer to GetAcceleration
   uint16_t (*GetAcceleration)(void *handle); 
   /// Function pointer to GetCurrentSpeed
@@ -265,9 +276,9 @@
   /// Function pointer to Run
   void (*Run)(void *handle, motorDir_t direction);
   /// Function pointer to SetAcceleration
-  bool(*SetAcceleration)(void *handle,uint16_t newAcc);
+  bool (*SetAcceleration)(void *handle, uint16_t newAcc);
   /// Function pointer to SetDeceleration
-  bool(*SetDeceleration)(void *handle, uint16_t newDec);
+  bool (*SetDeceleration)(void *handle, uint16_t newDec);
   /// Function pointer to SetHome
   void (*SetHome)(void *handle); 
   /// Function pointer to SetMark
@@ -346,7 +357,7 @@
   void (*BusyInterruptHandler)(void *handle);
   /// Function pointer to CmdSoftStop
   void (*CmdSoftStop)(void *handle); 
-} MOTOR_DrvVTableTypeDef;    
+} MOTOR_VTable_t;    
 
 #ifdef __cplusplus
 }