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:
Davidroid
Date:
Tue Sep 27 11:28:52 2016 +0000
Parent:
0:f6dd8f22f875
Child:
2:e2bf4d06a8fc
Commit message:
LightSensor, RangeSensor, Nfc interfaces added.

Changed in this revision

Actuators/BCDMotor.h Show annotated file Show diff for this revision Revisions of this file
Actuators/BDCMotor_class.h Show diff for this revision Revisions of this file
Actuators/StepperMotor.h Show annotated file Show diff for this revision Revisions of this file
Actuators/StepperMotor_class.h Show diff for this revision Revisions of this file
Common/ComponentObject.h Show annotated file Show diff for this revision Revisions of this file
Common/Component_class.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
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Actuators/BCDMotor.h	Tue Sep 27 11:28:52 2016 +0000
@@ -0,0 +1,159 @@
+/**
+ ******************************************************************************
+ * @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****/ 
--- a/Actuators/BDCMotor_class.h	Mon Aug 01 15:06:25 2016 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,159 +0,0 @@
-/**
- ******************************************************************************
- * @file    BCDMotor_class.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 <Component_class.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 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/StepperMotor.h	Tue Sep 27 11:28:52 2016 +0000
@@ -0,0 +1,271 @@
+/**
+ ******************************************************************************
+ * @file    StepperMotor.h
+ * @author  Davide Aliprandi, STMicroelectronics
+ * @version V1.1.0
+ * @date    April 6th, 2016
+ * @brief   This file contains the abstract class describing the interface of a
+ *          stepper-motor 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 from recursive inclusion --------------------------------*/
+
+#ifndef __STEPPERMOTOR_CLASS_H
+#define __STEPPERMOTOR_CLASS_H
+
+
+/* Includes ------------------------------------------------------------------*/
+
+#include <ComponentObject.h>
+
+
+/* Classes  ------------------------------------------------------------------*/
+
+/** An abstract class for StepperMotor components.
+ */
+class StepperMotor : public ComponentObject
+{
+public:
+    /**
+     * @brief Rotation modes.
+     */
+    typedef enum
+    {
+        BWD = 0, /* Backward. */
+        FWD = 1  /* Forward. */
+    } direction_t;
+
+    /**
+     * @brief Step modes.
+     */
+    typedef enum
+    {
+        STEP_MODE_FULL = 0, /* Full-step. */
+        STEP_MODE_HALF,     /* Half-step. */
+        STEP_MODE_1_4,      /* 1/4 microstep. */
+        STEP_MODE_1_8,      /* 1/8 microstep. */
+        STEP_MODE_1_16,     /* 1/16 microstep. */
+        STEP_MODE_1_32,     /* 1/32 microstep. */
+        STEP_MODE_1_64,     /* 1/64 microstep. */
+        STEP_MODE_1_128,    /* 1/128 microstep. */
+        STEP_MODE_1_256,    /* 1/256 microstep. */
+        STEP_MODE_UNKNOWN,  /* Unknown. */
+        STEP_MODE_WAVE      /* Full-step one-phase-on. */
+    } step_mode_t;
+
+    /**
+     * @brief  Getting the status.
+     * @param  None.
+     * @retval The status.
+     */
+    virtual unsigned int GetStatus(void) = 0;
+
+    /**
+     * @brief  Getting the position.
+     * @param  None.
+     * @retval The position.
+     */
+    virtual signed int GetPosition(void) = 0;
+
+    /**
+     * @brief  Getting the marked position.
+     * @param  None.
+     * @retval The marked position.
+     */
+    virtual signed int GetMark(void) = 0;
+
+    /**
+     * @brief  Getting the current speed in pps.
+     * @param  None.
+     * @retval The current speed in pps.
+     */
+    virtual unsigned int GetSpeed(void) = 0;
+
+    /**
+     * @brief  Getting the maximum speed in pps.
+     * @param  None.
+     * @retval The maximum speed in pps.
+     */
+    virtual unsigned int GetMaxSpeed(void) = 0;
+
+    /**
+     * @brief  Getting the minimum speed in pps.
+     * @param  None.
+     * @retval The minimum speed in pps.
+     */
+    virtual unsigned int GetMinSpeed(void) = 0;
+
+    /**
+     * @brief  Getting the acceleration in pps^2.
+     * @param  None.
+     * @retval The acceleration in pps^2.
+     */
+    virtual unsigned int GetAcceleration(void) = 0;
+
+    /**
+     * @brief  Getting the deceleration in pps^2.
+     * @param  None.
+     * @retval The deceleration in pps^2.
+     */
+    virtual unsigned int GetDeceleration(void) = 0;
+
+    /**
+     * @brief  Getting the direction of rotation.
+     * @param  None.
+     * @retval The direction of rotation.
+     */
+    virtual direction_t GetDirection(void) = 0;
+
+    /**
+     * @brief  Setting the current position to be the home position.
+     * @param  None.
+     * @retval None.
+     */
+    virtual void SetHome(void) = 0;
+
+    /**
+     * @brief  Setting the current position to be the marked position.
+     * @param  None.
+     * @retval None.
+     */
+    virtual void SetMark(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;
+
+    /**
+     * @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;
+
+    /**
+     * @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;
+
+    /**
+     * @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;
+
+    /**
+     * @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;
+
+    /**
+     * @brief  Going to a specified position.
+     * @param  position The desired position.
+     * @retval None.
+     */
+    virtual void GoTo(signed int position) = 0;
+
+    /**
+     * @brief  Going to the home position.
+     * @param  None.
+     * @retval None.
+     */
+    virtual void GoHome(void) = 0;
+
+    /**
+     * @brief  Going to the marked position.
+     * @param  None.
+     * @retval None.
+     */
+    virtual void GoMark(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;
+
+    /**
+     * @brief  Moving the motor towards a specified direction for a certain number of steps.
+     * @param  direction The direction of rotation.
+     * @param  steps The desired number of steps.
+     * @retval None.
+     */
+    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;
+
+    /**
+     * @brief  Stopping the motor through an immediate infinite deceleration.
+     * @param  None.
+     * @retval None.
+     */
+    virtual void HardStop(void) = 0;
+
+    /**
+     * @brief  Disabling the power bridge after performing a deceleration to zero.
+     * @param  None.
+     * @retval None.
+     */
+    virtual void SoftHiZ(void) = 0;
+
+    /**
+     * @brief  Disabling the power bridge immediately.
+     * @param  None.
+     * @retval None.
+     */
+    virtual void HardHiZ(void) = 0;
+
+    /**
+     * @brief  Waiting while the motor is active.
+     * @param  None.
+     * @retval None.
+     */
+    virtual void WaitWhileActive(void) = 0;
+};
+
+#endif /* __STEPPERMOTOR_CLASS_H */
+
+/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ 
--- a/Actuators/StepperMotor_class.h	Mon Aug 01 15:06:25 2016 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,271 +0,0 @@
-/**
- ******************************************************************************
- * @file    StepperMotor_class.h
- * @author  Davide Aliprandi, STMicroelectronics
- * @version V1.1.0
- * @date    April 6th, 2016
- * @brief   This file contains the abstract class describing the interface of a
- *          stepper-motor 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 from recursive inclusion --------------------------------*/
-
-#ifndef __STEPPERMOTOR_CLASS_H
-#define __STEPPERMOTOR_CLASS_H
-
-
-/* Includes ------------------------------------------------------------------*/
-
-#include "Component_class.h"
-
-
-/* Classes  ------------------------------------------------------------------*/
-
-/** An abstract class for StepperMotor components.
- */
-class StepperMotor : public Component
-{
-public:
-    /**
-     * @brief Rotation modes.
-     */
-    typedef enum
-    {
-        BWD = 0, /* Backward. */
-        FWD = 1  /* Forward. */
-    } direction_t;
-
-    /**
-     * @brief Step modes.
-     */
-    typedef enum
-    {
-        STEP_MODE_FULL = 0, /* Full-step. */
-        STEP_MODE_HALF,     /* Half-step. */
-        STEP_MODE_1_4,      /* 1/4 microstep. */
-        STEP_MODE_1_8,      /* 1/8 microstep. */
-        STEP_MODE_1_16,     /* 1/16 microstep. */
-        STEP_MODE_1_32,     /* 1/32 microstep. */
-        STEP_MODE_1_64,     /* 1/64 microstep. */
-        STEP_MODE_1_128,    /* 1/128 microstep. */
-        STEP_MODE_1_256,    /* 1/256 microstep. */
-        STEP_MODE_UNKNOWN,  /* Unknown. */
-        STEP_MODE_WAVE      /* Full-step one-phase-on. */
-    } step_mode_t;
-
-    /**
-     * @brief  Getting the status.
-     * @param  None.
-     * @retval The status.
-     */
-    virtual unsigned int GetStatus(void) = 0;
-
-    /**
-     * @brief  Getting the position.
-     * @param  None.
-     * @retval The position.
-     */
-    virtual signed int GetPosition(void) = 0;
-
-    /**
-     * @brief  Getting the marked position.
-     * @param  None.
-     * @retval The marked position.
-     */
-    virtual signed int GetMark(void) = 0;
-
-    /**
-     * @brief  Getting the current speed in pps.
-     * @param  None.
-     * @retval The current speed in pps.
-     */
-    virtual unsigned int GetSpeed(void) = 0;
-
-    /**
-     * @brief  Getting the maximum speed in pps.
-     * @param  None.
-     * @retval The maximum speed in pps.
-     */
-    virtual unsigned int GetMaxSpeed(void) = 0;
-
-    /**
-     * @brief  Getting the minimum speed in pps.
-     * @param  None.
-     * @retval The minimum speed in pps.
-     */
-    virtual unsigned int GetMinSpeed(void) = 0;
-
-    /**
-     * @brief  Getting the acceleration in pps^2.
-     * @param  None.
-     * @retval The acceleration in pps^2.
-     */
-    virtual unsigned int GetAcceleration(void) = 0;
-
-    /**
-     * @brief  Getting the deceleration in pps^2.
-     * @param  None.
-     * @retval The deceleration in pps^2.
-     */
-    virtual unsigned int GetDeceleration(void) = 0;
-
-    /**
-     * @brief  Getting the direction of rotation.
-     * @param  None.
-     * @retval The direction of rotation.
-     */
-    virtual direction_t GetDirection(void) = 0;
-
-    /**
-     * @brief  Setting the current position to be the home position.
-     * @param  None.
-     * @retval None.
-     */
-    virtual void SetHome(void) = 0;
-
-    /**
-     * @brief  Setting the current position to be the marked position.
-     * @param  None.
-     * @retval None.
-     */
-    virtual void SetMark(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;
-
-    /**
-     * @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;
-
-    /**
-     * @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;
-
-    /**
-     * @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;
-
-    /**
-     * @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;
-
-    /**
-     * @brief  Going to a specified position.
-     * @param  position The desired position.
-     * @retval None.
-     */
-    virtual void GoTo(signed int position) = 0;
-
-    /**
-     * @brief  Going to the home position.
-     * @param  None.
-     * @retval None.
-     */
-    virtual void GoHome(void) = 0;
-
-    /**
-     * @brief  Going to the marked position.
-     * @param  None.
-     * @retval None.
-     */
-    virtual void GoMark(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;
-
-    /**
-     * @brief  Moving the motor towards a specified direction for a certain number of steps.
-     * @param  direction The direction of rotation.
-     * @param  steps The desired number of steps.
-     * @retval None.
-     */
-    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;
-
-    /**
-     * @brief  Stopping the motor through an immediate infinite deceleration.
-     * @param  None.
-     * @retval None.
-     */
-    virtual void HardStop(void) = 0;
-
-    /**
-     * @brief  Disabling the power bridge after performing a deceleration to zero.
-     * @param  None.
-     * @retval None.
-     */
-    virtual void SoftHiZ(void) = 0;
-
-    /**
-     * @brief  Disabling the power bridge immediately.
-     * @param  None.
-     * @retval None.
-     */
-    virtual void HardHiZ(void) = 0;
-
-    /**
-     * @brief  Waiting while the motor is active.
-     * @param  None.
-     * @retval None.
-     */
-    virtual void WaitWhileActive(void) = 0;
-};
-
-#endif /* __STEPPERMOTOR_CLASS_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Common/ComponentObject.h	Tue Sep 27 11:28:52 2016 +0000
@@ -0,0 +1,75 @@
+/**
+ ******************************************************************************
+ * @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/Common/Component_class.h	Mon Aug 01 15:06:25 2016 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,75 +0,0 @@
-/**
- ******************************************************************************
- * @file    Component_class.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 ReadID(uint8_t *id) = 0;
-};
-
-#endif /* __COMPONENT_CLASS_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Communications/Nfc.h	Tue Sep 27 11:28:52 2016 +0000
@@ -0,0 +1,90 @@
+/**
+ ******************************************************************************
+ * @file    Nfc.h
+ * @author  ST Central Labs
+ * @version V1.0.0
+ * @date    13-April-2015
+ * @brief   This file contains the abstract class describing the interface of a
+ *          nfc 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.
+ *
+ ******************************************************************************
+ */
+
+
+/* Generated with Stm32CubeTOO -----------------------------------------------*/
+
+/* Define to prevent from recursive inclusion --------------------------------*/
+
+#ifndef __NFC_CLASS_H
+#define __NFC_CLASS_H
+
+
+/* Includes ------------------------------------------------------------------*/
+
+#include <ComponentObject.h>
+
+typedef enum {
+    NFC_SUCCESS = 0,
+} NFC_StatusTypeDef;
+/* Error codes are in component driver */
+
+
+/* Classes  ------------------------------------------------------------------*/
+
+/**
+* An abstract class for Nfc components. 
+*/
+class Nfc : public ComponentObject
+{
+public:
+
+    /**
+     * Read data from the tag.
+     * @param Offset Read offset.
+     * @param NbByteToRead Number of bytes to read.
+     * @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;
+
+    /**
+     * Write data to the tag.
+     * @param Offset Write offset.
+     * @param NbByteToWrite Number of bytes to write.
+     * @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 ~Nfc(){};
+};
+
+#endif /* __NFC_CLASS_H */
+
+/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ 
--- a/Sensors/GyroSensor.h	Mon Aug 01 15:06:25 2016 +0000
+++ b/Sensors/GyroSensor.h	Tue Sep 27 11:28:52 2016 +0000
@@ -41,12 +41,12 @@
 #define __GYRO_SENSOR_CLASS_H
 
 /* Includes ------------------------------------------------------------------*/
-#include <Component_class.h>
+#include <ComponentObject.h>
 
 /* Classes  ------------------------------------------------------------------*/
 /** An abstract class for a Gyroscope
  */
-class GyroSensor : public Component
+class GyroSensor : public ComponentObject
 {
  public:
 	/**
--- a/Sensors/HumiditySensor.h	Mon Aug 01 15:06:25 2016 +0000
+++ b/Sensors/HumiditySensor.h	Tue Sep 27 11:28:52 2016 +0000
@@ -41,12 +41,12 @@
 #define __HUMIDITY_SENSOR_CLASS_H
 
 /* Includes ------------------------------------------------------------------*/
-#include <Component_class.h>
+#include <ComponentObject.h>
 
 /* Classes  ------------------------------------------------------------------*/
 /** An abstract class for Humidity sensors
  */
-class HumiditySensor : public Component
+class HumiditySensor : public ComponentObject
 {
  public:
 	/**
--- a/Sensors/LightSensor.h	Mon Aug 01 15:06:25 2016 +0000
+++ b/Sensors/LightSensor.h	Tue Sep 27 11:28:52 2016 +0000
@@ -41,12 +41,12 @@
 #define __LIGHT_SENSOR_CLASS_H
 
 /* Includes ------------------------------------------------------------------*/
-#include "Component_class.h"
+#include <ComponentObject.h>
 
 /* Classes  ------------------------------------------------------------------*/
 /** An abstract class for ambient light sensors
  */
-class LightSensor : public Component
+class LightSensor : public ComponentObject
 {
  public:
     /**
--- a/Sensors/MagneticSensor.h	Mon Aug 01 15:06:25 2016 +0000
+++ b/Sensors/MagneticSensor.h	Tue Sep 27 11:28:52 2016 +0000
@@ -41,12 +41,12 @@
 #define __MAGNETIC_SENSOR_CLASS_H
 
 /* Includes ------------------------------------------------------------------*/
-#include <Component_class.h>
+#include <ComponentObject.h>
 
 /* Classes  ------------------------------------------------------------------*/
 /** An abstract class for a magnetometer
  */
-class MagneticSensor : public Component
+class MagneticSensor : public ComponentObject
 {
  public:
 	/**
--- a/Sensors/MotionSensor.h	Mon Aug 01 15:06:25 2016 +0000
+++ b/Sensors/MotionSensor.h	Tue Sep 27 11:28:52 2016 +0000
@@ -41,12 +41,12 @@
 #define __MOTION_SENSOR_CLASS_H
 
 /* Includes ------------------------------------------------------------------*/
-#include <Component_class.h>
+#include <ComponentObject.h>
 
 /* Classes  ------------------------------------------------------------------*/
 /** An abstract class for an Accelerometer
  */
-class MotionSensor : public Component
+class MotionSensor : public ComponentObject
 {
  public:
 	/**
--- a/Sensors/PressureSensor.h	Mon Aug 01 15:06:25 2016 +0000
+++ b/Sensors/PressureSensor.h	Tue Sep 27 11:28:52 2016 +0000
@@ -41,12 +41,12 @@
 #define __PRESSURE_SENSOR_CLASS_H
 
 /* Includes ------------------------------------------------------------------*/
-#include <Component_class.h>
+#include <ComponentObject.h>
 
 /* Classes  ------------------------------------------------------------------*/
 /** An abstract class for a Pressure Sensor
  */
-class PressureSensor : public Component
+class PressureSensor : public ComponentObject
 {
  public:
 	/**
--- a/Sensors/RangeSensor.h	Mon Aug 01 15:06:25 2016 +0000
+++ b/Sensors/RangeSensor.h	Tue Sep 27 11:28:52 2016 +0000
@@ -41,12 +41,12 @@
 #define __RANGE_SENSOR_CLASS_H
 
 /* Includes ------------------------------------------------------------------*/
-#include "Component_class.h"
+#include <ComponentObject.h>
 
 /* Classes  ------------------------------------------------------------------*/
 /** An abstract class for range sensors
  */
-class RangeSensor : public Component
+class RangeSensor : public ComponentObject
 {
  public:
     /**
--- a/Sensors/TempSensor.h	Mon Aug 01 15:06:25 2016 +0000
+++ b/Sensors/TempSensor.h	Tue Sep 27 11:28:52 2016 +0000
@@ -41,12 +41,12 @@
 #define __TEMP_SENSOR_CLASS_H
 
 /* Includes ------------------------------------------------------------------*/
-#include <Component_class.h>
+#include <ComponentObject.h>
 
 /* Classes  ------------------------------------------------------------------*/
 /** An abstract class for Temperature sensors
  */
-class TempSensor : public Component
+class TempSensor : public ComponentObject
 {
  public:
 	/**