Initial release. Mbed library for VL53L1CB

Committer:
charlesmn
Date:
Fri Nov 06 12:15:24 2020 +0000
Revision:
0:3d72bef69191
Initial release. Mbed library for VL53L1CB

Who changed what in which revision?

UserRevisionLine numberNew contents of line
charlesmn 0:3d72bef69191 1 /**
charlesmn 0:3d72bef69191 2 ******************************************************************************
charlesmn 0:3d72bef69191 3 * @file MagneticSensor.h
charlesmn 0:3d72bef69191 4 * @author AST / EST
charlesmn 0:3d72bef69191 5 * @version V0.0.1
charlesmn 0:3d72bef69191 6 * @date 13-April-2015
charlesmn 0:3d72bef69191 7 * @brief This file contains the abstract class describing in general
charlesmn 0:3d72bef69191 8 * the interfaces of a magnetometer
charlesmn 0:3d72bef69191 9 ******************************************************************************
charlesmn 0:3d72bef69191 10 * @attention
charlesmn 0:3d72bef69191 11 *
charlesmn 0:3d72bef69191 12 * <h2><center>&copy; COPYRIGHT(c) 2015 STMicroelectronics</center></h2>
charlesmn 0:3d72bef69191 13 *
charlesmn 0:3d72bef69191 14 * Redistribution and use in source and binary forms, with or without modification,
charlesmn 0:3d72bef69191 15 * are permitted provided that the following conditions are met:
charlesmn 0:3d72bef69191 16 * 1. Redistributions of source code must retain the above copyright notice,
charlesmn 0:3d72bef69191 17 * this list of conditions and the following disclaimer.
charlesmn 0:3d72bef69191 18 * 2. Redistributions in binary form must reproduce the above copyright notice,
charlesmn 0:3d72bef69191 19 * this list of conditions and the following disclaimer in the documentation
charlesmn 0:3d72bef69191 20 * and/or other materials provided with the distribution.
charlesmn 0:3d72bef69191 21 * 3. Neither the name of STMicroelectronics nor the names of its contributors
charlesmn 0:3d72bef69191 22 * may be used to endorse or promote products derived from this software
charlesmn 0:3d72bef69191 23 * without specific prior written permission.
charlesmn 0:3d72bef69191 24 *
charlesmn 0:3d72bef69191 25 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
charlesmn 0:3d72bef69191 26 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
charlesmn 0:3d72bef69191 27 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
charlesmn 0:3d72bef69191 28 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
charlesmn 0:3d72bef69191 29 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
charlesmn 0:3d72bef69191 30 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
charlesmn 0:3d72bef69191 31 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
charlesmn 0:3d72bef69191 32 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
charlesmn 0:3d72bef69191 33 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
charlesmn 0:3d72bef69191 34 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
charlesmn 0:3d72bef69191 35 *
charlesmn 0:3d72bef69191 36 ******************************************************************************
charlesmn 0:3d72bef69191 37 */
charlesmn 0:3d72bef69191 38
charlesmn 0:3d72bef69191 39
charlesmn 0:3d72bef69191 40 /* Define to prevent from recursive inclusion --------------------------------*/
charlesmn 0:3d72bef69191 41
charlesmn 0:3d72bef69191 42 #ifndef __MAGNETIC_SENSOR_CLASS_H
charlesmn 0:3d72bef69191 43 #define __MAGNETIC_SENSOR_CLASS_H
charlesmn 0:3d72bef69191 44
charlesmn 0:3d72bef69191 45
charlesmn 0:3d72bef69191 46 /* Includes ------------------------------------------------------------------*/
charlesmn 0:3d72bef69191 47
charlesmn 0:3d72bef69191 48 #include <Component.h>
charlesmn 0:3d72bef69191 49
charlesmn 0:3d72bef69191 50
charlesmn 0:3d72bef69191 51 /* Classes ------------------------------------------------------------------*/
charlesmn 0:3d72bef69191 52
charlesmn 0:3d72bef69191 53 /**
charlesmn 0:3d72bef69191 54 * An abstract class for a magnetometer
charlesmn 0:3d72bef69191 55 */
charlesmn 0:3d72bef69191 56 class MagneticSensor : public Component {
charlesmn 0:3d72bef69191 57 public:
charlesmn 0:3d72bef69191 58
charlesmn 0:3d72bef69191 59 /**
charlesmn 0:3d72bef69191 60 * @brief Get current magnetometer magnetic X/Y/Z-axes values
charlesmn 0:3d72bef69191 61 * in standard data units [mgauss]
charlesmn 0:3d72bef69191 62 * @param[out] p_data Pointer to where to store magnetic values to.
charlesmn 0:3d72bef69191 63 * p_data must point to an array of (at least) three elements, where:
charlesmn 0:3d72bef69191 64 * p_data[0] corresponds to X-axis,
charlesmn 0:3d72bef69191 65 * p_data[1] corresponds to Y-axis, and
charlesmn 0:3d72bef69191 66 * p_data[2] corresponds to Z-axis.
charlesmn 0:3d72bef69191 67 * @return 0 in case of success, an error code otherwise
charlesmn 0:3d72bef69191 68 */
charlesmn 0:3d72bef69191 69 virtual int get_m_axes(int32_t *p_data) = 0;
charlesmn 0:3d72bef69191 70
charlesmn 0:3d72bef69191 71 /**
charlesmn 0:3d72bef69191 72 * @brief Get current magnetometer raw data X/Y/Z-axes values
charlesmn 0:3d72bef69191 73 * in device sepcific LSB units
charlesmn 0:3d72bef69191 74 * @param[out] p_data Pointer to where to store magnetometer raw data to.
charlesmn 0:3d72bef69191 75 * p_data must point to an array of (at least) three elements, where:
charlesmn 0:3d72bef69191 76 * p_data[0] corresponds to X-axis,
charlesmn 0:3d72bef69191 77 * p_data[1] corresponds to Y-axis, and
charlesmn 0:3d72bef69191 78 * p_data[2] corresponds to Z-axis.
charlesmn 0:3d72bef69191 79 * @return 0 in case of success, an error code otherwise
charlesmn 0:3d72bef69191 80 */
charlesmn 0:3d72bef69191 81 virtual int get_m_axes_raw(int16_t *p_data) = 0;
charlesmn 0:3d72bef69191 82
charlesmn 0:3d72bef69191 83 /**
charlesmn 0:3d72bef69191 84 * @brief Destructor.
charlesmn 0:3d72bef69191 85 */
charlesmn 0:3d72bef69191 86 virtual ~MagneticSensor() {};
charlesmn 0:3d72bef69191 87 };
charlesmn 0:3d72bef69191 88
charlesmn 0:3d72bef69191 89 #endif /* __MAGNETIC_SENSOR_CLASS_H */