Official interfaces for ST components.

Dependents:   X_NUCLEO_IKS01A1 mDot_X_NUCLEO_IKS01A1 53L0A1 X_NUCLEO_IKS01A1 ... more

Fork of ST_INTERFACES by Davide Aliprandi

This library contains all abstract classes which together constitute the common API to which all existing and future ST components will adhere to.

Files at this revision

API Documentation at this revision

Comitter:
davide.aliprandi@st.com
Date:
Fri Mar 10 10:50:53 2017 +0100
Parent:
2:e2bf4d06a8fc
Child:
4:8f70f7159316
Commit message:
Aligning to ARM mbed coding style.

Changed in this revision

Actuators/BCDMotor.h Show diff for this revision Revisions of this file
Actuators/BDCMotor.h Show annotated file Show diff for this revision Revisions of this file
Actuators/StepperMotor.h Show annotated file Show diff for this revision Revisions of this file
Common/Component.h Show annotated file Show diff for this revision Revisions of this file
Common/ComponentObject.h Show diff for this revision Revisions of this file
Communications/Nfc.h Show annotated file Show diff for this revision Revisions of this file
Sensors/GyroSensor.h Show annotated file Show diff for this revision Revisions of this file
Sensors/HumiditySensor.h Show annotated file Show diff for this revision Revisions of this file
Sensors/LightSensor.h Show annotated file Show diff for this revision Revisions of this file
Sensors/MagneticSensor.h Show annotated file Show diff for this revision Revisions of this file
Sensors/MotionSensor.h Show annotated file Show diff for this revision Revisions of this file
Sensors/PressureSensor.h Show annotated file Show diff for this revision Revisions of this file
Sensors/RangeSensor.h Show annotated file Show diff for this revision Revisions of this file
Sensors/TempSensor.h Show annotated file Show diff for this revision Revisions of this file
--- a/Actuators/BCDMotor.h	Tue Nov 29 17:43:48 2016 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,159 +0,0 @@
-/**
- ******************************************************************************
- * @file    BCDMotor.h
- * @author  IPC Rennes
- * @version V1.0.0
- * @date    April 6th, 2016
- * @brief   This file contains the abstract class describing the interface of a
- *          Brush DC motor component.
- ******************************************************************************
- * @attention
- *
- * <h2><center>&copy; COPYRIGHT(c) 2016 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 from recursive inclusion --------------------------------*/
-
-#ifndef __BCDMMOTOR_CLASS_H
-#define __BCDMMOTOR_CLASS_H
-
-
-/* Includes ------------------------------------------------------------------*/
-
-#include <ComponentObject.h>
-
-
-/* Classes  ------------------------------------------------------------------*/
-
-/** An abstract class for BDCMotor components.
- */
-class BDCMotor : public ComponentObject
-{
-public:
-    /**
-     * @brief Rotation modes.
-     */
-    typedef enum
-    {
-        BWD = 0, /* Backward. */
-        FWD = 1  /* Forward. */
-    } direction_t;
-
-    /**
-     * @brief  Disabling the specified bridge.
-     * @param  bridgeId from 0 for bridge A to 1 for bridge B.
-     * @retval None.
-     */
-    virtual void DisableBridge(unsigned int) = 0;    
-     
-    /**
-     * @brief  Enabling the specified bridge.
-     * @param  bridgeId from 0 for bridge A to 1 for bridge B
-     * @retval None.
-     */
-    virtual void EnableBridge(unsigned int) = 0;    
-     
-    /**
-     * @brief  Getting the PWM frequency of the specified bridge;
-     * @param  bridgeId from 0 for bridge A to 1 for bridge B.
-     * @retval The frequency in Hz of the specified bridge input PWM.
-     */
-    virtual unsigned int GetBridgeInputPwmFreq(unsigned int) = 0;    
-    
-    /**
-     * @brief  Getting the bridge status.
-     * @param  bridgeId from 0 for bridge A to 1 for bridge B.
-     * @retval The status.
-     */
-    virtual unsigned int GetBridgeStatus(unsigned int) = 0;    
-    
-    /**
-     * @brief  Getting the device State. 
-     * @param  motorId from 0 to (MAX_NUMBER_OF_BRUSH_DC_MOTORS - 1). 
-     * @retval The device state
-     */
-    virtual motorState_t GetDeviceState(unsigned int) = 0;
-
-    /**
-     * @brief  Getting the current speed in % of the specified motor.
-     * @param  motorId from 0 to (MAX_NUMBER_OF_BRUSH_DC_MOTORS - 1). 
-     * @retval The current speed in %.
-     */
-    virtual unsigned int GetSpeed(unsigned int) = 0;
-
-    /**
-     * @brief  Stopping the motor and disabling the power bridge immediately.
-     * @param  motorId from 0 to (MAX_NUMBER_OF_BRUSH_DC_MOTORS - 1). 
-     * @retval None.
-     */
-    virtual void HardHiZ(unsigned int) = 0;
-    
-    /**
-     * @brief  Stopping the motor immediately.
-     * @param  motorId from 0 to (MAX_NUMBER_OF_BRUSH_DC_MOTORS - 1). 
-     * @retval None.
-     */
-    virtual void HardStop(unsigned int) = 0;
-
-    /**
-     * @brief  Running the motor.
-     * @param  motorId from 0 to (MAX_NUMBER_OF_BRUSH_DC_MOTORS - 1).
-     * @param  direction The direction of rotation.
-     * @retval None.
-     */
-    virtual void Run(unsigned int, direction_t) = 0;
-    
-    /**
-     * @brief  Setting the PWM frequency of the specified bridge.
-     * @param  bridgeId from 0 for bridge A to 1 for bridge B.
-     * @param  frequency of the PWM in Hz
-     * @retval None.
-     */
-    virtual void SetBridgeInputPwmFreq(unsigned int, unsigned int) = 0;    
-        
-    /**
-     * @brief  Setting the dual bridge configuration mode.
-     * @param  configuration. The bridge configuration.
-     * @retval None.
-     */
-    virtual void SetDualFullBridgeConfig(unsigned int) = 0;
-
-    /**
-     * @brief  Setting the speed in %.
-     * @param  motorId from 0 to (MAX_NUMBER_OF_BRUSH_DC_MOTORS - 1).
-     * @param  speed The new speed in %.
-     * @retval "true" in case of success, "false" otherwise.
-     */
-    virtual bool SetSpeed(unsigned int, unsigned int) = 0;
-
-
-};
-
-#endif /* __BCDMMOTOR_CLASS_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Actuators/BDCMotor.h	Fri Mar 10 10:50:53 2017 +0100
@@ -0,0 +1,162 @@
+/**
+ ******************************************************************************
+ * @file    BDCMotor.h
+ * @author  IPC Rennes
+ * @version V1.0.0
+ * @date    April 6th, 2016
+ * @brief   This file contains the abstract class describing the interface of a
+ *          Brush DC motor component.
+ ******************************************************************************
+ * @attention
+ *
+ * <h2><center>&copy; COPYRIGHT(c) 2016 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 from recursive inclusion --------------------------------*/
+
+#ifndef __BDCMOTOR_CLASS_H
+#define __BDCMOTOR_CLASS_H
+
+
+/* Includes ------------------------------------------------------------------*/
+
+#include <Component.h>
+
+
+/* Classes  ------------------------------------------------------------------*/
+
+/**
+ * An abstract class for BDCMotor components.
+ */
+class BDCMotor : public Component {
+public:
+
+    /**
+     * @brief Rotation modes.
+     */
+    typedef enum {
+        BWD = 0, /* Backward. */
+        FWD = 1  /* Forward. */
+    } direction_t;
+
+    /**
+     * @brief  Disabling the specified bridge.
+     * @param  bridgeId from 0 for bridge A to 1 for bridge B.
+     * @retval None.
+     */
+    virtual void disable_bridge(unsigned int) = 0;    
+     
+    /**
+     * @brief  Enabling the specified bridge.
+     * @param  bridgeId from 0 for bridge A to 1 for bridge B
+     * @retval None.
+     */
+    virtual void enable_bridge(unsigned int) = 0;    
+     
+    /**
+     * @brief  Getting the PWM frequency of the specified bridge;
+     * @param  bridgeId from 0 for bridge A to 1 for bridge B.
+     * @retval The frequency in Hz of the specified bridge input PWM.
+     */
+    virtual unsigned int get_bridge_input_pwm_freq(unsigned int) = 0;    
+    
+    /**
+     * @brief  Getting the bridge status.
+     * @param  bridgeId from 0 for bridge A to 1 for bridge B.
+     * @retval The status.
+     */
+    virtual unsigned int get_bridge_status(unsigned int) = 0;    
+    
+    /**
+     * @brief  Getting the device State. 
+     * @param  motorId from 0 to (MAX_NUMBER_OF_BRUSH_DC_MOTORS - 1). 
+     * @retval The device state
+     */
+    virtual motorState_t get_device_state(unsigned int) = 0;
+
+    /**
+     * @brief  Getting the current speed in % of the specified motor.
+     * @param  motorId from 0 to (MAX_NUMBER_OF_BRUSH_DC_MOTORS - 1). 
+     * @retval The current speed in %.
+     */
+    virtual unsigned int get_speed(unsigned int) = 0;
+
+    /**
+     * @brief  Stopping the motor and disabling the power bridge immediately.
+     * @param  motorId from 0 to (MAX_NUMBER_OF_BRUSH_DC_MOTORS - 1). 
+     * @retval None.
+     */
+    virtual void hard_hiz(unsigned int) = 0;
+    
+    /**
+     * @brief  Stopping the motor immediately.
+     * @param  motorId from 0 to (MAX_NUMBER_OF_BRUSH_DC_MOTORS - 1). 
+     * @retval None.
+     */
+    virtual void hard_stop(unsigned int) = 0;
+
+    /**
+     * @brief  Running the motor.
+     * @param  motorId from 0 to (MAX_NUMBER_OF_BRUSH_DC_MOTORS - 1).
+     * @param  direction The direction of rotation.
+     * @retval None.
+     */
+    virtual void run(unsigned int, direction_t) = 0;
+    
+    /**
+     * @brief  Setting the PWM frequency of the specified bridge.
+     * @param  bridgeId from 0 for bridge A to 1 for bridge B.
+     * @param  frequency of the PWM in Hz
+     * @retval None.
+     */
+    virtual void set_bridge_input_pwm_freq(unsigned int, unsigned int) = 0;    
+        
+    /**
+     * @brief  Setting the dual bridge configuration mode.
+     * @param  configuration. The bridge configuration.
+     * @retval None.
+     */
+    virtual void set_dual_full_bridge_config(unsigned int) = 0;
+
+    /**
+     * @brief  Setting the speed in %.
+     * @param  motorId from 0 to (MAX_NUMBER_OF_BRUSH_DC_MOTORS - 1).
+     * @param  speed The new speed in %.
+     * @retval "true" in case of success, "false" otherwise.
+     */
+    virtual bool set_speed(unsigned int, unsigned int) = 0;
+
+    /**
+     * @brief Destructor.
+     */
+    virtual ~BDCMotor() {};
+};
+
+#endif /* __BDCMOTOR_CLASS_H */
+
+/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ 
--- a/Actuators/StepperMotor.h	Tue Nov 29 17:43:48 2016 +0000
+++ b/Actuators/StepperMotor.h	Fri Mar 10 10:50:53 2017 +0100
@@ -45,21 +45,21 @@
 
 /* Includes ------------------------------------------------------------------*/
 
-#include <ComponentObject.h>
+#include <Component.h>
 
 
 /* Classes  ------------------------------------------------------------------*/
 
-/** An abstract class for StepperMotor components.
+/**
+ * An abstract class for StepperMotor components.
  */
-class StepperMotor : public ComponentObject
-{
+class StepperMotor : public Component {
 public:
+
     /**
      * @brief Rotation modes.
      */
-    typedef enum
-    {
+    typedef enum {
         BWD = 0, /* Backward. */
         FWD = 1  /* Forward. */
     } direction_t;
@@ -67,8 +67,7 @@
     /**
      * @brief Step modes.
      */
-    typedef enum
-    {
+    typedef enum {
         STEP_MODE_FULL = 0, /* Full-step. */
         STEP_MODE_HALF,     /* Half-step. */
         STEP_MODE_1_4,      /* 1/4 microstep. */
@@ -87,140 +86,140 @@
      * @param  None.
      * @retval The status.
      */
-    virtual unsigned int GetStatus(void) = 0;
+    virtual unsigned int get_status(void) = 0;
 
     /**
      * @brief  Getting the position.
      * @param  None.
      * @retval The position.
      */
-    virtual signed int GetPosition(void) = 0;
+    virtual signed int get_position(void) = 0;
 
     /**
      * @brief  Getting the marked position.
      * @param  None.
      * @retval The marked position.
      */
-    virtual signed int GetMark(void) = 0;
+    virtual signed int get_mark(void) = 0;
 
     /**
      * @brief  Getting the current speed in pps.
      * @param  None.
      * @retval The current speed in pps.
      */
-    virtual unsigned int GetSpeed(void) = 0;
+    virtual unsigned int get_speed(void) = 0;
 
     /**
      * @brief  Getting the maximum speed in pps.
      * @param  None.
      * @retval The maximum speed in pps.
      */
-    virtual unsigned int GetMaxSpeed(void) = 0;
+    virtual unsigned int get_max_speed(void) = 0;
 
     /**
      * @brief  Getting the minimum speed in pps.
      * @param  None.
      * @retval The minimum speed in pps.
      */
-    virtual unsigned int GetMinSpeed(void) = 0;
+    virtual unsigned int get_min_speed(void) = 0;
 
     /**
      * @brief  Getting the acceleration in pps^2.
      * @param  None.
      * @retval The acceleration in pps^2.
      */
-    virtual unsigned int GetAcceleration(void) = 0;
+    virtual unsigned int get_acceleration(void) = 0;
 
     /**
      * @brief  Getting the deceleration in pps^2.
      * @param  None.
      * @retval The deceleration in pps^2.
      */
-    virtual unsigned int GetDeceleration(void) = 0;
+    virtual unsigned int get_deceleration(void) = 0;
 
     /**
      * @brief  Getting the direction of rotation.
      * @param  None.
      * @retval The direction of rotation.
      */
-    virtual direction_t GetDirection(void) = 0;
+    virtual direction_t get_direction(void) = 0;
 
     /**
      * @brief  Setting the current position to be the home position.
      * @param  None.
      * @retval None.
      */
-    virtual void SetHome(void) = 0;
+    virtual void set_home(void) = 0;
 
     /**
      * @brief  Setting the current position to be the marked position.
      * @param  None.
      * @retval None.
      */
-    virtual void SetMark(void) = 0;
+    virtual void set_mark(void) = 0;
 
     /**
      * @brief  Setting the maximum speed in pps.
      * @param  speed The maximum speed in pps.
      * @retval "true" in case of success, "false" otherwise.
      */
-    virtual bool SetMaxSpeed(unsigned int speed) = 0;
+    virtual bool set_max_speed(unsigned int speed) = 0;
 
     /**
      * @brief  Setting the minimum speed in pps.
      * @param  speed The minimum speed in pps.
      * @retval "true" in case of success, "false" otherwise.
      */
-    virtual bool SetMinSpeed(unsigned int speed) = 0;
+    virtual bool set_min_speed(unsigned int speed) = 0;
 
     /**
      * @brief  Setting the acceleration in pps^2.
      * @param  acceleration The acceleration in pps^2.
      * @retval "true" in case of success, "false" otherwise.
      */
-    virtual bool SetAcceleration(unsigned int acceleration) = 0;
+    virtual bool set_acceleration(unsigned int acceleration) = 0;
 
     /**
      * @brief  Setting the deceleration in pps^2.
      * @param  deceleration The deceleration in pps^2.
      * @retval "true" in case of success, "false" otherwise.
      */
-    virtual bool SetDeceleration(unsigned int deceleration) = 0;
+    virtual bool set_deceleration(unsigned int deceleration) = 0;
 
     /**
      * @brief  Setting the Step Mode.
      * @param  step_mode The Step Mode.
      * @retval "true" in case of success, "false" otherwise.
      */
-    virtual bool SetStepMode(step_mode_t step_mode) = 0;
+    virtual bool set_step_mode(step_mode_t step_mode) = 0;
 
     /**
      * @brief  Going to a specified position.
      * @param  position The desired position.
      * @retval None.
      */
-    virtual void GoTo(signed int position) = 0;
+    virtual void go_to(signed int position) = 0;
 
     /**
      * @brief  Going to the home position.
      * @param  None.
      * @retval None.
      */
-    virtual void GoHome(void) = 0;
+    virtual void go_home(void) = 0;
 
     /**
      * @brief  Going to the marked position.
      * @param  None.
      * @retval None.
      */
-    virtual void GoMark(void) = 0;
+    virtual void go_mark(void) = 0;
 
     /**
      * @brief  Running the motor towards a specified direction.
      * @param  direction The direction of rotation.
      * @retval None.
      */
-    virtual void Run(direction_t direction) = 0;
+    virtual void run(direction_t direction) = 0;
 
     /**
      * @brief  Moving the motor towards a specified direction for a certain number of steps.
@@ -228,42 +227,47 @@
      * @param  steps The desired number of steps.
      * @retval None.
      */
-    virtual void Move(direction_t direction, unsigned int steps) = 0;
+    virtual void move(direction_t direction, unsigned int steps) = 0;
 
     /**
      * @brief  Stopping the motor through an immediate deceleration up to zero speed.
      * @param  None.
      * @retval None.
      */
-    virtual void SoftStop(void) = 0;
+    virtual void soft_stop(void) = 0;
 
     /**
      * @brief  Stopping the motor through an immediate infinite deceleration.
      * @param  None.
      * @retval None.
      */
-    virtual void HardStop(void) = 0;
+    virtual void hard_stop(void) = 0;
 
     /**
      * @brief  Disabling the power bridge after performing a deceleration to zero.
      * @param  None.
      * @retval None.
      */
-    virtual void SoftHiZ(void) = 0;
+    virtual void soft_hiz(void) = 0;
 
     /**
      * @brief  Disabling the power bridge immediately.
      * @param  None.
      * @retval None.
      */
-    virtual void HardHiZ(void) = 0;
+    virtual void hard_hiz(void) = 0;
 
     /**
      * @brief  Waiting while the motor is active.
      * @param  None.
      * @retval None.
      */
-    virtual void WaitWhileActive(void) = 0;
+    virtual void wait_while_active(void) = 0;
+
+    /**
+     * @brief Destructor.
+     */
+    virtual ~StepperMotor() {};
 };
 
 #endif /* __STEPPERMOTOR_CLASS_H */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Common/Component.h	Fri Mar 10 10:50:53 2017 +0100
@@ -0,0 +1,81 @@
+/**
+ ******************************************************************************
+ * @file    Component.h
+ * @author  AST
+ * @version V1.0.0
+ * @date    April 13th, 2015
+ * @brief   This file contains the abstract class describing the interface of a
+ *          generic component.
+ ******************************************************************************
+ * @attention
+ *
+ * <h2><center>&copy; COPYRIGHT(c) 2015 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 __COMPONENT_CLASS_H
+#define __COMPONENT_CLASS_H
+
+
+/* Includes ------------------------------------------------------------------*/
+
+#include <stdint.h>
+
+
+/* Classes  ------------------------------------------------------------------*/
+
+/**
+ * An abstract class for Generic components.
+ */
+class Component {
+public:
+
+    /**
+     * @brief     Initializing the component.
+     * @param[in] init pointer to device specific initalization structure.
+     * @retval    "0" in case of success, an error code otherwise.
+     */
+    virtual int init(void *init) = 0;
+
+    /**
+     * @brief      Getting the ID of the component.
+     * @param[out] id pointer to an allocated variable to store the ID into.
+     * @retval     "0" in case of success, an error code otherwise.
+     */
+    virtual int read_id(uint8_t *id) = 0;
+
+    /**
+     * @brief Destructor.
+     */
+    virtual ~Component() {};
+};
+
+#endif /* __COMPONENT_CLASS_H */
+
+/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
--- a/Common/ComponentObject.h	Tue Nov 29 17:43:48 2016 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,75 +0,0 @@
-/**
- ******************************************************************************
- * @file    ComponentObject.h
- * @author  AST
- * @version V1.0.0
- * @date    April 13th, 2015
- * @brief   This file contains the abstract class describing the interface of a
- *          generic component.
- ******************************************************************************
- * @attention
- *
- * <h2><center>&copy; COPYRIGHT(c) 2015 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 __COMPONENT_OBJECT_CLASS_H
-#define __COMPONENT_OBJECT_CLASS_H
-
-
-/* Includes ------------------------------------------------------------------*/
-
-#include <stdint.h>
-
-
-/* Classes  ------------------------------------------------------------------*/
-
-/** An abstract class for Generic components.
- */
-class ComponentObject
-{
-public:
-    /**
-     * @brief     Initializing the component.
-     * @param[in] init pointer to device specific initalization structure.
-     * @retval    "0" in case of success, an error code otherwise.
-     */
-    virtual int Init(void *init) = 0;
-
-    /**
-     * @brief      Getting the ID of the component.
-     * @param[out] id pointer to an allocated variable to store the ID into.
-     * @retval     "0" in case of success, an error code otherwise.
-     */
-    virtual int ReadID(uint8_t *id) = 0;
-};
-
-#endif /* __COMPONENT_OBJECT_CLASS_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
--- a/Communications/Nfc.h	Tue Nov 29 17:43:48 2016 +0000
+++ b/Communications/Nfc.h	Fri Mar 10 10:50:53 2017 +0100
@@ -47,21 +47,20 @@
 
 /* Includes ------------------------------------------------------------------*/
 
-#include <ComponentObject.h>
+#include <Component.h>
 
 typedef enum {
     NFC_SUCCESS = 0,
-} NFC_StatusTypeDef;
+} NFC_t;
 /* Error codes are in component driver */
 
 
 /* Classes  ------------------------------------------------------------------*/
 
 /**
-* An abstract class for Nfc components. 
-*/
-class Nfc : public ComponentObject
-{
+ * An abstract class for Nfc components. 
+ */
+class Nfc : public Component {
 public:
 
     /**
@@ -71,7 +70,7 @@
      * @param[out] pBufferRead Buffer to store the read data into.
      * @return NFC_SUCCESS if no errors 
      */
-    virtual int ReadBinary(uint16_t Offset, uint8_t NbByteToRead, uint8_t *pBufferRead) = 0;
+    virtual int read_binary(uint16_t Offset, uint8_t NbByteToRead, uint8_t *pBufferRead) = 0;
 
     /**
      * Write data to the tag.
@@ -80,9 +79,12 @@
      * @param pDataToWrite Buffer to write.
      * @return NFC_SUCCESS if no errors
      */
-    virtual int UpdateBinary(uint16_t Offset, uint8_t NbByteToWrite, uint8_t *pDataToWrite) = 0;
+    virtual int update_binary(uint16_t Offset, uint8_t NbByteToWrite, uint8_t *pDataToWrite) = 0;
 
-    virtual ~Nfc(){};
+    /**
+     * @brief Destructor.
+     */
+    virtual ~Nfc() {};
 };
 
 #endif /* __NFC_CLASS_H */
--- a/Sensors/GyroSensor.h	Tue Nov 29 17:43:48 2016 +0000
+++ b/Sensors/GyroSensor.h	Fri Mar 10 10:50:53 2017 +0100
@@ -36,71 +36,78 @@
  ******************************************************************************
  */
 
+
 /* Define to prevent from recursive inclusion --------------------------------*/
+
 #ifndef __GYRO_SENSOR_CLASS_H
 #define __GYRO_SENSOR_CLASS_H
 
+
 /* Includes ------------------------------------------------------------------*/
-#include <ComponentObject.h>
+
+#include <Component.h>
+
 
 /* Classes  ------------------------------------------------------------------*/
-/** An abstract class for a Gyroscope
+
+/**
+ * An abstract class for a Gyroscope
  */
-class GyroSensor : public ComponentObject
-{
- public:
+class GyroSensor : public Component {
+public:
+
 	/**
 	 * @brief       Get current gyroscope angular rate X/Y/Z-axes values 
 	 *              in standard data units [mdps]
-	 * @param[out]  pData Pointer to where to store angular rates to.
-	 *              pData must point to an array of (at least) three elements, where:
-	 *              pData[0] corresponds to X-axis,
-	 *              pData[1] corresponds to Y-axis, and
-	 *              pData[2] corresponds to Z-axis.
+	 * @param[out]  p_data Pointer to where to store angular rates to.
+	 *              p_data must point to an array of (at least) three elements, where:
+	 *              p_data[0] corresponds to X-axis,
+	 *              p_data[1] corresponds to Y-axis, and
+	 *              p_data[2] corresponds to Z-axis.
 	 * @return      0 in case of success, an error code otherwise
 	 */
-	virtual int Get_G_Axes(int32_t *pData) = 0;
+	virtual int get_g_axes(int32_t *p_data) = 0;
 
 	/**
 	 * @brief       Get current gyroscope raw data X/Y/Z-axes values 
 	 *              in device sepcific LSB units
-	 * @param[out]  pData Pointer to where to store gyroscope raw data to.
-	 *              pData must point to an array of (at least) three elements, where:
-	 *              pData[0] corresponds to X-axis,
-	 *              pData[1] corresponds to Y-axis, and
-	 *              pData[2] corresponds to Z-axis.
+	 * @param[out]  p_data Pointer to where to store gyroscope raw data to.
+	 *              p_data must point to an array of (at least) three elements, where:
+	 *              p_data[0] corresponds to X-axis,
+	 *              p_data[1] corresponds to Y-axis, and
+	 *              p_data[2] corresponds to Z-axis.
 	 * @return      0 in case of success, an error code otherwise
 	 */
-	virtual int Get_G_AxesRaw(int16_t *pData) = 0;
+	virtual int get_g_axes_raw(int16_t *p_data) = 0;
 
 	/**
 	 * @brief       Get gyroscope's current sensitivity [mdps/LSB]
-	 * @param[out]  pfData Pointer to where the gyroscope's sensitivity is stored to
+	 * @param[out]  pf_data Pointer to where the gyroscope's sensitivity is stored to
 	 * @return      0 in case of success, an error code otherwise
 	 */
-	virtual int Get_G_Sensitivity(float *pfData) = 0;
+	virtual int get_g_sensitivity(float *pf_data) = 0;
 	
 	/**
 	 * @brief       Get gyroscope's current output data rate [Hz]
-	 * @param[out]  pfData Pointer to where the gyroscope output data rate is stored to
+	 * @param[out]  pf_data Pointer to where the gyroscope output data rate is stored to
 	 * @return      0 in case of success, an error code otherwise
 	 */
-	virtual int Get_G_ODR(float *pfData) = 0;
+	virtual int get_g_odr(float *pf_data) = 0;
 
 	/**
 	 * @brief      Set gyroscope's output data rate
 	 * @param[in]  odr New value for gyroscope's output data rate in [Hz]
 	 * @return     0 in case of success, an error code otherwise
 	 */
-	virtual int Set_G_ODR(float odr) = 0;
+	virtual int set_g_odr(float odr) = 0;
 	
 	/**
 	 * @brief       Get gyroscope's full scale value
 	 *              i.e.\ min/max measurable value [dps]
-	 * @param[out]  pfData Pointer to where the gyroscope full scale value is stored to
+	 * @param[out]  pf_data Pointer to where the gyroscope full scale value is stored to
 	 * @return      0 in case of success, an error code otherwise
 	 */
-	virtual int Get_G_FS(float *pfData) = 0;
+	virtual int get_g_fs(float *pf_data) = 0;
 	
 	/**
 	 * @brief      Set gyroscope's full scale value
@@ -108,7 +115,12 @@
 	 * @param[in]  fs New full scale value for gyroscope in [dps]
 	 * @return     0 in case of success, an error code otherwise
 	 */
-	virtual int Set_G_FS(float fs) = 0;
+	virtual int set_g_fs(float fs) = 0;
+
+    /**
+     * @brief Destructor.
+     */
+	virtual ~GyroSensor() {};
 };
 
 #endif /* __GYRO_SENSOR_CLASS_H */
--- a/Sensors/HumiditySensor.h	Tue Nov 29 17:43:48 2016 +0000
+++ b/Sensors/HumiditySensor.h	Fri Mar 10 10:50:53 2017 +0100
@@ -36,25 +36,37 @@
  ******************************************************************************
  */
 
+
 /* Define to prevent from recursive inclusion --------------------------------*/
+
 #ifndef __HUMIDITY_SENSOR_CLASS_H
 #define __HUMIDITY_SENSOR_CLASS_H
 
+
 /* Includes ------------------------------------------------------------------*/
-#include <ComponentObject.h>
+
+#include <Component.h>
+
 
 /* Classes  ------------------------------------------------------------------*/
-/** An abstract class for Humidity sensors
+
+/**
+ * An abstract class for Humidity sensors
  */
-class HumiditySensor : public ComponentObject
-{
- public:
+class HumiditySensor : public Component {
+public:
+
 	/**
 	 * @brief       Get current humidity [%]
-	 * @param[out]  pfData Pointer to where to store humidity to
+	 * @param[out]  pf_data Pointer to where to store humidity to
 	 * @return      0 in case of success, an error code otherwise
 	 */
-	virtual int GetHumidity(float *pfData) = 0;
+	virtual int get_humidity(float *pf_data) = 0;
+
+    /**
+     * @brief Destructor.
+     */
+	virtual ~HumiditySensor() {};
 };
 
 #endif /* __HUMIDITY_SENSOR_CLASS_H */
--- a/Sensors/LightSensor.h	Tue Nov 29 17:43:48 2016 +0000
+++ b/Sensors/LightSensor.h	Fri Mar 10 10:50:53 2017 +0100
@@ -36,25 +36,37 @@
  ******************************************************************************
  */
 
+
 /* Define to prevent from recursive inclusion --------------------------------*/
+
 #ifndef __LIGHT_SENSOR_CLASS_H
 #define __LIGHT_SENSOR_CLASS_H
 
+
 /* Includes ------------------------------------------------------------------*/
-#include <ComponentObject.h>
+
+#include <Component.h>
+
 
 /* Classes  ------------------------------------------------------------------*/
-/** An abstract class for ambient light sensors
+
+/**
+ * An abstract class for ambient light sensors
  */
-class LightSensor : public ComponentObject
-{
- public:
+class LightSensor : public Component {
+public:
+
     /**
      * @brief       Get current light [lux]
      * @param[out]  piData Pointer to where to store light to
      * @return      0 in case of success, an error code otherwise
      */
-    virtual int GetLux(uint32_t *piData) = 0;
+    virtual int get_lux(uint32_t *piData) = 0;
+
+    /**
+     * @brief Destructor.
+     */
+	virtual ~LightSensor() {};
 };
 
 #endif /* __LIGHT_SENSOR_CLASS_H */
--- a/Sensors/MagneticSensor.h	Tue Nov 29 17:43:48 2016 +0000
+++ b/Sensors/MagneticSensor.h	Fri Mar 10 10:50:53 2017 +0100
@@ -36,42 +36,54 @@
  ******************************************************************************
  */
 
+
 /* Define to prevent from recursive inclusion --------------------------------*/
+
 #ifndef __MAGNETIC_SENSOR_CLASS_H
 #define __MAGNETIC_SENSOR_CLASS_H
 
+
 /* Includes ------------------------------------------------------------------*/
-#include <ComponentObject.h>
+
+#include <Component.h>
+
 
 /* Classes  ------------------------------------------------------------------*/
-/** An abstract class for a magnetometer
+
+/**
+ * An abstract class for a magnetometer
  */
-class MagneticSensor : public ComponentObject
-{
- public:
+class MagneticSensor : public Component {
+public:
+
 	/**
 	 * @brief       Get current magnetometer magnetic X/Y/Z-axes values 
 	 *              in standard data units [mgauss]
-	 * @param[out]  pData Pointer to where to store magnetic values to.
-	 *              pData must point to an array of (at least) three elements, where:
-	 *              pData[0] corresponds to X-axis,
-	 *              pData[1] corresponds to Y-axis, and
-	 *              pData[2] corresponds to Z-axis.
+	 * @param[out]  p_data Pointer to where to store magnetic values to.
+	 *              p_data must point to an array of (at least) three elements, where:
+	 *              p_data[0] corresponds to X-axis,
+	 *              p_data[1] corresponds to Y-axis, and
+	 *              p_data[2] corresponds to Z-axis.
 	 * @return      0 in case of success, an error code otherwise
 	 */
-	virtual int Get_M_Axes(int32_t *pData) = 0;
+	virtual int get_m_axes(int32_t *p_data) = 0;
 
 	/**
 	 * @brief       Get current magnetometer raw data X/Y/Z-axes values 
 	 *              in device sepcific LSB units
-	 * @param[out]  pData Pointer to where to store magnetometer raw data to.
-	 *              pData must point to an array of (at least) three elements, where:
-	 *              pData[0] corresponds to X-axis,
-	 *              pData[1] corresponds to Y-axis, and
-	 *              pData[2] corresponds to Z-axis.
+	 * @param[out]  p_data Pointer to where to store magnetometer raw data to.
+	 *              p_data must point to an array of (at least) three elements, where:
+	 *              p_data[0] corresponds to X-axis,
+	 *              p_data[1] corresponds to Y-axis, and
+	 *              p_data[2] corresponds to Z-axis.
 	 * @return      0 in case of success, an error code otherwise
 	 */
-	virtual int Get_M_AxesRaw(int16_t *pData) = 0;
+	virtual int get_m_axes_raw(int16_t *p_data) = 0;
+
+    /**
+     * @brief Destructor.
+     */
+	virtual ~MagneticSensor() {};
 };
 
 #endif /* __MAGNETIC_SENSOR_CLASS_H */
--- a/Sensors/MotionSensor.h	Tue Nov 29 17:43:48 2016 +0000
+++ b/Sensors/MotionSensor.h	Fri Mar 10 10:50:53 2017 +0100
@@ -36,71 +36,78 @@
  ******************************************************************************
  */
 
+
 /* Define to prevent from recursive inclusion --------------------------------*/
+
 #ifndef __MOTION_SENSOR_CLASS_H
 #define __MOTION_SENSOR_CLASS_H
 
+
 /* Includes ------------------------------------------------------------------*/
-#include <ComponentObject.h>
+
+#include <Component.h>
+
 
 /* Classes  ------------------------------------------------------------------*/
-/** An abstract class for an Accelerometer
+
+/**
+ * An abstract class for an Accelerometer
  */
-class MotionSensor : public ComponentObject
-{
- public:
+class MotionSensor : public Component {
+public:
+
 	/**
 	 * @brief       Get current accelerometer linear acceleration X/Y/Z-axes values 
 	 *              in standard data units [mg]
-	 * @param[out]  pData Pointer to where to store linear accelerations to.
-	 *              pData must point to an array of (at least) three elements, where:
-	 *              pData[0] corresponds to X-axis,
-	 *              pData[1] corresponds to Y-axis, and
-	 *              pData[2] corresponds to Z-axis.
+	 * @param[out]  p_data Pointer to where to store linear accelerations to.
+	 *              p_data must point to an array of (at least) three elements, where:
+	 *              p_data[0] corresponds to X-axis,
+	 *              p_data[1] corresponds to Y-axis, and
+	 *              p_data[2] corresponds to Z-axis.
 	 * @return      0 in case of success, an error code otherwise
 	 */
-	virtual int Get_X_Axes(int32_t *pData) = 0;
+	virtual int get_x_axes(int32_t *p_data) = 0;
 
 	/**
 	 * @brief       Get current accelerometer raw data X/Y/Z-axes values 
 	 *              in device sepcific LSB units
-	 * @param[out]  pData Pointer to where to store accelerometer raw data to.
-	 *              pData must point to an array of (at least) three elements, where:
-	 *              pData[0] corresponds to X-axis,
-	 *              pData[1] corresponds to Y-axis, and
-	 *              pData[2] corresponds to Z-axis.
+	 * @param[out]  p_data Pointer to where to store accelerometer raw data to.
+	 *              p_data must point to an array of (at least) three elements, where:
+	 *              p_data[0] corresponds to X-axis,
+	 *              p_data[1] corresponds to Y-axis, and
+	 *              p_data[2] corresponds to Z-axis.
 	 * @return      0 in case of success, an error code otherwise
 	 */
-	virtual int Get_X_AxesRaw(int16_t *pData) = 0;
+	virtual int get_x_axes_raw(int16_t *p_data) = 0;
 
 	/**
 	 * @brief       Get accelerometer's current sensitivity [mg/LSB]
-	 * @param[out]  pfData Pointer to where the accelerometer's sensitivity is stored to
+	 * @param[out]  pf_data Pointer to where the accelerometer's sensitivity is stored to
 	 * @return      0 in case of success, an error code otherwise
 	 */
-	virtual int Get_X_Sensitivity(float *pfData) = 0;
+	virtual int get_x_sensitivity(float *pf_data) = 0;
 
 	/**
 	 * @brief       Get accelerometer's current output data rate [Hz]
-	 * @param[out]  pfData Pointer to where the accelerometer output data rate is stored to
+	 * @param[out]  pf_data Pointer to where the accelerometer output data rate is stored to
 	 * @return      0 in case of success, an error code otherwise
 	 */
-	virtual int Get_X_ODR(float *pfData) = 0;
+	virtual int get_x_odr(float *pf_data) = 0;
 
 	/**
 	 * @brief      Set accelerometer's output data rate
 	 * @param[in]  odr New value for accelerometer's output data rate in [Hz]
 	 * @return     0 in case of success, an error code otherwise
 	 */
-	virtual int Set_X_ODR(float odr) = 0;
+	virtual int set_x_odr(float odr) = 0;
 
 	/**
 	 * @brief       Get accelerometer's full scale value
 	 *              i.e.\ min/max measurable value [g]
-	 * @param[out]  pfData Pointer to where the accelerometer full scale value is stored to
+	 * @param[out]  pf_data Pointer to where the accelerometer full scale value is stored to
 	 * @return      0 in case of success, an error code otherwise
 	 */
-	virtual int Get_X_FS(float *pfData) = 0;
+	virtual int get_x_fs(float *pf_data) = 0;
 	
 	/**
 	 * @brief      Set accelerometer's full scale value
@@ -108,7 +115,12 @@
 	 * @param[in]  fs New full scale value for accelerometer in [g]
 	 * @return     0 in case of success, an error code otherwise
 	 */
-	virtual int Set_X_FS(float fs) = 0;
+	virtual int set_x_fs(float fs) = 0;
+
+    /**
+     * @brief Destructor.
+     */
+	virtual ~MotionSensor() {};
 };
 
 #endif /* __MOTION_SENSOR_CLASS_H */
--- a/Sensors/PressureSensor.h	Tue Nov 29 17:43:48 2016 +0000
+++ b/Sensors/PressureSensor.h	Fri Mar 10 10:50:53 2017 +0100
@@ -36,25 +36,37 @@
  ******************************************************************************
  */
 
+
 /* Define to prevent from recursive inclusion --------------------------------*/
+
 #ifndef __PRESSURE_SENSOR_CLASS_H
 #define __PRESSURE_SENSOR_CLASS_H
 
+
 /* Includes ------------------------------------------------------------------*/
-#include <ComponentObject.h>
+
+#include <Component.h>
+
 
 /* Classes  ------------------------------------------------------------------*/
-/** An abstract class for a Pressure Sensor
+
+/**
+ * An abstract class for a Pressure Sensor
  */
-class PressureSensor : public ComponentObject
-{
- public:
+class PressureSensor : public Component {
+public:
+
 	/**
 	 * @brief       Get current pressure [mbar]
-	 * @param[out]  pfData Pointer to where to store pressure to
+	 * @param[out]  pf_data Pointer to where to store pressure to
 	 * @return      0 in case of success, an error code otherwise
 	 */
-	virtual int GetPressure(float *pfData) = 0;
+	virtual int get_pressure(float *pf_data) = 0;
+
+    /**
+     * @brief Destructor.
+     */
+	virtual ~PressureSensor() {};
 };
 
 #endif /* __PRESSURE_SENSOR_CLASS_H */
--- a/Sensors/RangeSensor.h	Tue Nov 29 17:43:48 2016 +0000
+++ b/Sensors/RangeSensor.h	Fri Mar 10 10:50:53 2017 +0100
@@ -36,25 +36,37 @@
  ******************************************************************************
  */
 
+
 /* Define to prevent from recursive inclusion --------------------------------*/
+
 #ifndef __RANGE_SENSOR_CLASS_H
 #define __RANGE_SENSOR_CLASS_H
 
+
 /* Includes ------------------------------------------------------------------*/
-#include <ComponentObject.h>
+
+#include <Component.h>
+
 
 /* Classes  ------------------------------------------------------------------*/
-/** An abstract class for range sensors
+
+/**
+ * An abstract class for range sensors
  */
-class RangeSensor : public ComponentObject
-{
- public:
+class RangeSensor : public Component {
+public:
+
     /**
      * @brief       Get current range [mm]
      * @param[out]  piData Pointer to where to store range to
      * @return      0 in case of success, an error code otherwise
      */
-    virtual int GetDistance(uint32_t *piData) = 0;
+    virtual int get_distance(uint32_t *piData) = 0;
+
+    /**
+     * @brief Destructor.
+     */
+	virtual ~RangeSensor() {};
 };
 
 #endif /* __RANGE_SENSOR_CLASS_H */
--- a/Sensors/TempSensor.h	Tue Nov 29 17:43:48 2016 +0000
+++ b/Sensors/TempSensor.h	Fri Mar 10 10:50:53 2017 +0100
@@ -36,41 +36,56 @@
  ******************************************************************************
  */
 
+
 /* Define to prevent from recursive inclusion --------------------------------*/
+
 #ifndef __TEMP_SENSOR_CLASS_H
 #define __TEMP_SENSOR_CLASS_H
 
+
 /* Includes ------------------------------------------------------------------*/
-#include <ComponentObject.h>
+
+#include <Component.h>
+
 
 /* Classes  ------------------------------------------------------------------*/
-/** An abstract class for Temperature sensors
+
+/**
+ * An abstract class for Temperature sensors
  */
-class TempSensor : public ComponentObject
-{
- public:
+class TempSensor : public Component {
+public:
+
 	/**
 	 * @brief       Get current temperature in degrees Celsius [°C]
-	 * @param[out]  pfData Pointer to where to store temperature to
+	 * @param[out]  pf_data Pointer to where to store temperature to
 	 * @return      0 in case of success, an error code otherwise
 	 */
-	virtual int GetTemperature(float *pfData) = 0;
+	virtual int get_temperature(float *pf_data) = 0;
 
 	/**
 	 * @brief       Get current temperature in degrees Fahrenheit [°F]
-	 * @param[out]  pfData Pointer to where to store temperature to
+	 * @param[out]  pf_data Pointer to where to store temperature to
 	 * @return      0 in case of success, an error code otherwise
 	 */
-	virtual int GetFahrenheit(float *pfData) {
+	virtual int get_fahrenheit(float *pf_data) {
 		float celsius;
 		int ret;
 
-		ret = GetTemperature(&celsius);
-		if(ret) return ret;
+		ret = get_temperature(&celsius);
+		if (ret) {
+			return ret;
+		}
 
-		*pfData = ((celsius * 1.8f) + 32.0f);
+		*pf_data = ((celsius * 1.8f) + 32.0f);
+
 		return 0;
 	}
+
+    /**
+     * @brief Destructor.
+     */
+	virtual ~TempSensor() {};
 };
 
 #endif /* __TEMP_SENSOR_CLASS_H */