Official interfaces for ST components.
Dependents: X_NUCLEO_IKS01A1 mDot_X_NUCLEO_IKS01A1 53L0A1 X_NUCLEO_IKS01A1 ... more
Fork of ST_INTERFACES by
This library contains all abstract classes which together constitute the common API to which all existing and future ST components will adhere to.
Revision 3:b1bb477e115e, committed 2017-03-10
- 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
--- 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>© 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>© 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>© 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>© 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 */
