test sending sensor results over lora radio. Accelerometer and temp/pressure.

Dependencies:   SX127x

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers accelerometer.h Source File

accelerometer.h

Go to the documentation of this file.
00001 /**
00002  ******************************************************************************
00003  * @file    accelerometer.h
00004  * @author  MEMS Application Team
00005  * @brief   This header file contains the functions prototypes for the
00006  *          accelerometer driver
00007  ******************************************************************************
00008  * @attention
00009  *
00010  * <h2><center>&copy; COPYRIGHT(c) 2018 STMicroelectronics</center></h2>
00011  *
00012  * Redistribution and use in source and binary forms, with or without modification,
00013  * are permitted provided that the following conditions are met:
00014  *   1. Redistributions of source code must retain the above copyright notice,
00015  *      this list of conditions and the following disclaimer.
00016  *   2. Redistributions in binary form must reproduce the above copyright notice,
00017  *      this list of conditions and the following disclaimer in the documentation
00018  *      and/or other materials provided with the distribution.
00019  *   3. Neither the name of STMicroelectronics nor the names of its contributors
00020  *      may be used to endorse or promote products derived from this software
00021  *      without specific prior written permission.
00022  *
00023  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
00024  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
00025  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
00026  * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
00027  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
00028  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
00029  * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
00030  * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
00031  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
00032  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
00033  *
00034  ******************************************************************************
00035  */
00036 
00037 /* Define to prevent recursive inclusion -------------------------------------*/
00038 #ifndef __ACCELEROMETER_H
00039 #define __ACCELEROMETER_H
00040 
00041 #ifdef __cplusplus
00042 extern "C" {
00043 #endif
00044 
00045 
00046 
00047 /* Includes ------------------------------------------------------------------*/
00048 #include "sensor.h"
00049 
00050 /** @addtogroup BSP BSP
00051  * @{
00052  */
00053 
00054 /** @addtogroup COMPONENTS COMPONENTS
00055  * @{
00056  */
00057 
00058 /** @addtogroup COMMON COMMON
00059  * @{
00060  */
00061 
00062 /** @addtogroup ACCELEROMETER ACCELEROMETER
00063  * @{
00064  */
00065 
00066 /** @addtogroup ACCELEROMETER_Public_Types ACCELEROMETER Public types
00067  * @{
00068  */
00069 
00070 /**
00071  * @brief  ACCELEROMETER driver structure definition
00072  */
00073 typedef struct
00074 {
00075   DrvStatusTypeDef(*Init)(DrvContextTypeDef *);
00076   DrvStatusTypeDef(*DeInit)(DrvContextTypeDef *);
00077   DrvStatusTypeDef(*Sensor_Enable)(DrvContextTypeDef *);
00078   DrvStatusTypeDef(*Sensor_Disable)(DrvContextTypeDef *);
00079   DrvStatusTypeDef(*Get_WhoAmI)(DrvContextTypeDef *, uint8_t *);
00080   DrvStatusTypeDef(*Check_WhoAmI)(DrvContextTypeDef *);
00081   DrvStatusTypeDef(*Get_Axes)(DrvContextTypeDef *, SensorAxes_t *);
00082   DrvStatusTypeDef(*Get_AxesRaw)(DrvContextTypeDef *, SensorAxesRaw_t *);
00083   DrvStatusTypeDef(*Get_Sensitivity)(DrvContextTypeDef *, float *);
00084   DrvStatusTypeDef(*Get_ODR)(DrvContextTypeDef *, float *);
00085   DrvStatusTypeDef(*Set_ODR)(DrvContextTypeDef *, SensorOdr_t);
00086   DrvStatusTypeDef(*Set_ODR_Value)(DrvContextTypeDef *, float);
00087   DrvStatusTypeDef(*Get_FS)(DrvContextTypeDef *, float *);
00088   DrvStatusTypeDef(*Set_FS)(DrvContextTypeDef *, SensorFs_t);
00089   DrvStatusTypeDef(*Set_FS_Value)(DrvContextTypeDef *, float);
00090   DrvStatusTypeDef(*Get_Axes_Status)(DrvContextTypeDef *, uint8_t *);
00091   DrvStatusTypeDef(*Set_Axes_Status)(DrvContextTypeDef *, uint8_t *);
00092   DrvStatusTypeDef(*Read_Reg)(DrvContextTypeDef *, uint8_t, uint8_t *);
00093   DrvStatusTypeDef(*Write_Reg)(DrvContextTypeDef *, uint8_t, uint8_t);
00094   DrvStatusTypeDef(*Get_DRDY_Status)(DrvContextTypeDef *, uint8_t *);
00095 } ACCELERO_Drv_t;
00096 
00097 /**
00098  * @brief  ACCELEROMETER data structure definition
00099  */
00100 typedef struct
00101 {
00102   void *pComponentData; /* Component specific data. */
00103   void *pExtData;       /* Other data. */
00104 } ACCELERO_Data_t;
00105 
00106 typedef enum
00107 {
00108   X_AXIS = 0,
00109   Y_AXIS,
00110   Z_AXIS,
00111   ALL_ACTIVE
00112 } ACTIVE_AXIS_t;
00113 
00114 typedef enum
00115 {
00116   NORMAL_MODE,
00117   HIGH_RES_MODE,
00118   LOW_PWR_MODE
00119 } OP_MODE_t;
00120 
00121 typedef enum
00122 {
00123   INT1_DRDY_DISABLED,
00124   INT1_DRDY_ENABLED
00125 } INT1_DRDY_CONFIG_t;
00126 
00127 typedef enum
00128 {
00129   DRDY_PULSED,
00130   DRDY_LATCHED
00131 } DRDY_MODE_t;
00132 
00133 
00134 /**
00135  * @brief  ACCELEROMETER hardware features status data structure definition
00136  */
00137 typedef struct
00138 {
00139   unsigned int FreeFallStatus : 1;
00140   unsigned int TapStatus : 1;
00141   unsigned int DoubleTapStatus : 1;
00142   unsigned int WakeUpStatus : 1;
00143   unsigned int StepStatus : 1;
00144   unsigned int TiltStatus : 1;
00145   unsigned int D6DOrientationStatus : 1;
00146 } ACCELERO_Event_Status_t;
00147 
00148 /**
00149  * @}
00150  */
00151 
00152 /**
00153  * @}
00154  */
00155 
00156 /**
00157  * @}
00158  */
00159 
00160 /**
00161  * @}
00162  */
00163 
00164 /**
00165  * @}
00166  */
00167 
00168 #ifdef __cplusplus
00169 }
00170 #endif
00171 
00172 #endif /* __ACCELEROMETER_H */
00173 
00174 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/