wayne roberts / Mbed OS CB-LORA-MR_utility

Dependencies:   SX127x

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers component.h Source File

component.h

Go to the documentation of this file.
00001 /**
00002  ******************************************************************************
00003  * @file    component.h
00004  * @author  MEMS Application Team
00005  * @brief   This header file contains the functions prototypes common for all
00006  *          drivers
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 __COMPONENT_H
00039 #define __COMPONENT_H
00040 
00041 #ifdef __cplusplus
00042 extern "C" {
00043 #endif
00044 
00045 
00046 
00047 /* Includes ------------------------------------------------------------------*/
00048 
00049 #include <stdint.h>
00050 
00051 /** @addtogroup BSP BSP
00052  * @{
00053  */
00054 
00055 /** @addtogroup COMPONENTS COMPONENTS
00056  * @{
00057  */
00058 
00059 /** @addtogroup COMMON COMMON
00060  * @{
00061  */
00062 
00063 /** @addtogroup COMPONENT COMPONENT
00064  * @{
00065  */
00066 
00067 /** @addtogroup COMPONENT_Public_Constants Public constants
00068  * @{
00069  */
00070 
00071 /**
00072  * @brief  NULL pointer definition
00073  */
00074 #ifndef NULL
00075 #define NULL ( void * )0
00076 #endif
00077 
00078 /**
00079  * @}
00080  */
00081 
00082 /** @addtogroup COMPONENT_Public_Types COMPONENT Public Types
00083  * @{
00084  */
00085 
00086 /**
00087  * @brief  Component's Context structure definition.
00088  */
00089 typedef struct
00090 {
00091 
00092   /* Identity */
00093   uint8_t who_am_i;
00094 
00095   /* Configuration */
00096   uint8_t ifType;        /* 0 means I2C, 1 means SPI, etc. */
00097   uint8_t address;       /* Sensor I2C address (NOTE: Not a unique sensor ID). */
00098   uint8_t spiDevice;     /* Sensor Chip Select for SPI Bus */
00099   uint8_t instance;      /* Sensor instance (NOTE: Sensor ID unique only within its class). */
00100   uint8_t isInitialized; /* Sensor setup done. */
00101   uint8_t isEnabled;     /* Sensor ON. */
00102   uint8_t isCombo;       /* Combo sensor (component consists of more sensors). */
00103 
00104   /* Pointer to the Data */
00105   void *pData;
00106 
00107   /* Pointer to the Virtual Table */
00108   void *pVTable;
00109   /* Pointer to the Extended Virtual Table */
00110   void *pExtVTable;
00111 } DrvContextTypeDef;
00112 
00113 
00114 
00115 /**
00116  * @brief  Component's Status enumerator definition.
00117  */
00118 typedef enum
00119 {
00120   COMPONENT_OK = 0,
00121   COMPONENT_ERROR,
00122   COMPONENT_TIMEOUT,
00123   COMPONENT_NOT_IMPLEMENTED
00124 } DrvStatusTypeDef;
00125 
00126 /**
00127  * @}
00128  */
00129 
00130 /**
00131  * @}
00132  */
00133 
00134 /**
00135  * @}
00136  */
00137 
00138 /**
00139  * @}
00140  */
00141 
00142 /**
00143  * @}
00144  */
00145 
00146 #ifdef __cplusplus
00147 }
00148 #endif
00149 
00150 #endif /* __COMPONENT_H */
00151 
00152 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/