Stage-1 Students SoCEM / Mbed OS ReferredCoursework2016

Dependencies:   X_NUCLEO_COMMON

Fork of X_NUCLEO_IKS01A1 by ST

Revision:
28:501726e9220d
Parent:
24:92cc9c6e4b2b
Child:
30:7b36639ee80a
--- a/Components/Common/GyroSensor.h	Wed Jun 03 15:12:38 2015 +0200
+++ b/Components/Common/GyroSensor.h	Thu Jun 04 11:51:44 2015 +0200
@@ -41,7 +41,7 @@
 #define __GYRO_SENSOR_CLASS_H
 
 /* Includes ------------------------------------------------------------------*/
-#include "mbed.h"
+#include <stdint.h>
 
 /* Classes  ------------------------------------------------------------------*/
 /** An abstract class for a Gyroscope
@@ -49,22 +49,80 @@
 class GyroSensor
 {
  public:
+	/**
+	 * @brief       Initialization of gyroscope
+	 * @param[out]  Pointer to device specific initalization structure
+	 * @retval      0 in case of success, an error code otherwise
+	 */
 	virtual int Init(void*) = 0;
+	
+	/**
+	 * @brief       Get ID of gyroscope
+	 * @param[out]  Pointer to where to store the ID to
+	 * @retval      0 in case of success, an error code otherwise
+	 */
 	virtual int ReadID(uint8_t*) = 0;
 
-	virtual int Get_G_Axes(int32_t *) = 0;
-	virtual int Get_G_AxesRaw(int16_t *) = 0;
+	/**
+	 * @brief       Get current gyroscope angular rate X/Y/Z-axes values 
+	 *              in standard data units [mdps]
+	 * @param[out]  Pointer to where to store angular rates to.
+	 *              Pointer must point to an array of (at least) three elements, where:
+	 *              ptr[0] corresponds to X-axis
+	 *              ptr[1] corresponds to Y-axis
+	 *              ptr[2] corresponds to Z-axis
+	 * @retval      0 in case of success, an error code otherwise
+	 */
+	virtual int Get_G_Axes(int32_t*) = 0;
+
+	/**
+	 * @brief       Get current gyroscope raw data X/Y/Z-axes values 
+	 *              in device sepcific LSB units
+	 * @param[out]  Pointer to where to store gyroscope raw data to.
+	 *              Pointer must point to an array of (at least) three elements, where:
+	 *              ptr[0] corresponds to X-axis
+	 *              ptr[1] corresponds to Y-axis
+	 *              ptr[2] corresponds to Z-axis
+	 * @retval      0 in case of success, an error code otherwise
+	 */
+	virtual int Get_G_AxesRaw(int16_t*) = 0;
+
+	/**
+	 * @brief       Get gyroscope's current sensitivity [mdps/LSB]
+	 * @param[out]  Pointer to where the gyroscope's sensitivity is stored to
+	 * @retval      0 in case of success, an error code otherwise
+	 */
+	virtual int Get_G_Sensitivity(float*) = 0;
 	
-	virtual int Get_G_ODR(float *) = 0;
+	/**
+	 * @brief       Get gyroscope's current output data rate [Hz]
+	 * @param[out]  Pointer to where the gyroscope output data rate is stored to
+	 * @retval      0 in case of success, an error code otherwise
+	 */
+	virtual int Get_G_ODR(float*) = 0;
+
+	/**
+	 * @brief      Set gyroscope's output data rate
+	 * @param[in]  New value for gyroscope's output data rate in [Hz]
+	 * @retval     0 in case of success, an error code otherwise
+	 */
 	virtual int Set_G_ODR(float) = 0;
 	
-	virtual int Get_G_Sensitivity(float *) = 0;
+	/**
+	 * @brief       Get gyroscope's full scale value
+	 *              i.e. min/max measurable value [dps]
+	 * @param[out]  Pointer to where the gyroscope full scale value is stored to
+	 * @retval      0 in case of success, an error code otherwise
+	 */
+	virtual int Get_G_FS(float*) = 0;
 	
-	virtual int Get_G_FS(float *) = 0;
+	/**
+	 * @brief      Set gyroscope's full scale value
+	 *             i.e. min/max measurable value
+	 * @param[in]  New full scale value for gyroscope in [dps]
+	 * @retval     0 in case of success, an error code otherwise
+	 */
 	virtual int Set_G_FS(float) = 0;
-
- protected:
-	GyroSensor(void) {};
 };
 
 #endif /* __GYRO_SENSOR_CLASS_H */