61 static DrvContextTypeDef TEMPERATURE_SensorHandle[ TEMPERATURE_SENSORS_MAX_NUM ];
62 static TEMPERATURE_Data_t TEMPERATURE_Data[ TEMPERATURE_SENSORS_MAX_NUM ];
63 static LPS22HB_T_Data_t LPS22HB_T_0_Data;
64 static HTS221_T_Data_t HTS221_T_0_Data;
74 static DrvStatusTypeDef BSP_LPS22HB_TEMPERATURE_Init(
void **handle );
75 static DrvStatusTypeDef BSP_HTS221_TEMPERATURE_Init(
void **handle );
99 case TEMPERATURE_SENSORS_AUTO:
103 if(BSP_HTS221_TEMPERATURE_Init(handle) == COMPONENT_ERROR )
105 if( BSP_LPS22HB_TEMPERATURE_Init(handle) == COMPONENT_ERROR )
107 return COMPONENT_ERROR;
114 if(BSP_LPS22HB_TEMPERATURE_Init(handle) == COMPONENT_ERROR )
116 return COMPONENT_ERROR;
122 if(BSP_HTS221_TEMPERATURE_Init(handle) == COMPONENT_ERROR )
124 return COMPONENT_ERROR;
135 static DrvStatusTypeDef BSP_LPS22HB_TEMPERATURE_Init(
void **handle )
137 TEMPERATURE_Drv_t *driver = NULL;
140 if(TEMPERATURE_SensorHandle[ LPS22HB_T_0 ].isInitialized == 1)
143 return COMPONENT_ERROR;
148 return COMPONENT_ERROR;
152 TEMPERATURE_SensorHandle[ LPS22HB_T_0 ].who_am_i = LPS22HB_WHO_AM_I_VAL;
153 TEMPERATURE_SensorHandle[ LPS22HB_T_0 ].ifType = 1;
154 TEMPERATURE_SensorHandle[ LPS22HB_T_0 ].address = LPS22HB_ADDRESS_HIGH;
155 TEMPERATURE_SensorHandle[ LPS22HB_T_0 ].spiDevice = LPS22HB;
156 TEMPERATURE_SensorHandle[ LPS22HB_T_0 ].instance = LPS22HB_T_0;
157 TEMPERATURE_SensorHandle[ LPS22HB_T_0 ].isInitialized = 0;
158 TEMPERATURE_SensorHandle[ LPS22HB_T_0 ].isEnabled = 0;
159 TEMPERATURE_SensorHandle[ LPS22HB_T_0 ].isCombo = 1;
160 TEMPERATURE_SensorHandle[ LPS22HB_T_0 ].pData = (
void * )&TEMPERATURE_Data[ LPS22HB_T_0 ];
161 TEMPERATURE_SensorHandle[ LPS22HB_T_0 ].pVTable = (
void * )&LPS22HB_T_Drv;
162 TEMPERATURE_SensorHandle[ LPS22HB_T_0 ].pExtVTable = 0;
164 LPS22HB_T_0_Data.comboData = &LPS22HB_Combo_Data[0];
165 TEMPERATURE_Data[ LPS22HB_T_0 ].pComponentData = (
void * )&LPS22HB_T_0_Data;
166 TEMPERATURE_Data[ LPS22HB_T_0 ].pExtData = 0;
168 *handle = (
void *)&TEMPERATURE_SensorHandle[ LPS22HB_T_0 ];
170 Sensor_IO_SPI_CS_Init(*handle);
172 if(LPS22HB_Combo_Data[0].isPressInitialized == 0)
177 return COMPONENT_ERROR;
180 if(LPS22HB_SwResetAndMemoryBoot(*handle))
182 return COMPONENT_ERROR;
191 return COMPONENT_ERROR;
195 driver = ( TEMPERATURE_Drv_t * )((DrvContextTypeDef *)(*handle))->pVTable;
197 if ( driver->Init == NULL )
199 memset((*handle), 0,
sizeof(DrvContextTypeDef));
201 return COMPONENT_ERROR;
204 if ( driver->Init( (DrvContextTypeDef *)(*handle) ) == COMPONENT_ERROR )
206 memset((*handle), 0,
sizeof(DrvContextTypeDef));
208 return COMPONENT_ERROR;
217 static DrvStatusTypeDef BSP_HTS221_TEMPERATURE_Init(
void **handle )
219 TEMPERATURE_Drv_t *driver = NULL;
221 if(TEMPERATURE_SensorHandle[ HTS221_T_0 ].isInitialized == 1)
224 return COMPONENT_ERROR;
229 return COMPONENT_ERROR;
233 TEMPERATURE_SensorHandle[ HTS221_T_0 ].who_am_i = HTS221_WHO_AM_I_VAL;
234 TEMPERATURE_SensorHandle[ HTS221_T_0 ].ifType = 0;
235 TEMPERATURE_SensorHandle[ HTS221_T_0 ].address = HTS221_ADDRESS_DEFAULT;
236 TEMPERATURE_SensorHandle[ HTS221_T_0 ].instance = HTS221_T_0;
237 TEMPERATURE_SensorHandle[ HTS221_T_0 ].isInitialized = 0;
238 TEMPERATURE_SensorHandle[ HTS221_T_0 ].isEnabled = 0;
239 TEMPERATURE_SensorHandle[ HTS221_T_0 ].isCombo = 1;
240 TEMPERATURE_SensorHandle[ HTS221_T_0 ].pData = (
void * )&TEMPERATURE_Data[ HTS221_T_0 ];
241 TEMPERATURE_SensorHandle[ HTS221_T_0 ].pVTable = (
void * )&HTS221_T_Drv;
242 TEMPERATURE_SensorHandle[ HTS221_T_0 ].pExtVTable = 0;
244 HTS221_T_0_Data.comboData = &HTS221_Combo_Data[0];
245 TEMPERATURE_Data[ HTS221_T_0 ].pComponentData = (
void * )&HTS221_T_0_Data;
246 TEMPERATURE_Data[ HTS221_T_0 ].pExtData = 0;
248 *handle = (
void *)&TEMPERATURE_SensorHandle[ HTS221_T_0 ];
250 driver = ( TEMPERATURE_Drv_t * )((DrvContextTypeDef *)(*handle))->pVTable;
252 if ( driver->Init == NULL )
254 memset((*handle), 0,
sizeof(DrvContextTypeDef));
256 return COMPONENT_ERROR;
259 if ( driver->Init( (DrvContextTypeDef *)(*handle) ) == COMPONENT_ERROR )
261 memset((*handle), 0,
sizeof(DrvContextTypeDef));
263 return COMPONENT_ERROR;
278 DrvContextTypeDef *ctx = (DrvContextTypeDef *)(*handle);
279 TEMPERATURE_Drv_t *driver = NULL;
283 return COMPONENT_ERROR;
286 driver = ( TEMPERATURE_Drv_t * )ctx->pVTable;
288 if ( driver->DeInit == NULL )
290 return COMPONENT_ERROR;
293 if ( driver->DeInit( ctx ) == COMPONENT_ERROR )
295 return COMPONENT_ERROR;
298 memset(ctx, 0,
sizeof(DrvContextTypeDef));
315 DrvContextTypeDef *ctx = (DrvContextTypeDef *)handle;
316 TEMPERATURE_Drv_t *driver = NULL;
320 return COMPONENT_ERROR;
323 driver = ( TEMPERATURE_Drv_t * )ctx->pVTable;
325 if ( driver->Sensor_Enable == NULL )
327 return COMPONENT_ERROR;
330 if ( driver->Sensor_Enable( ctx ) == COMPONENT_ERROR )
332 return COMPONENT_ERROR;
349 DrvContextTypeDef *ctx = (DrvContextTypeDef *)handle;
350 TEMPERATURE_Drv_t *driver = NULL;
354 return COMPONENT_ERROR;
357 driver = ( TEMPERATURE_Drv_t * )ctx->pVTable;
359 if ( driver->Sensor_Disable == NULL )
361 return COMPONENT_ERROR;
364 if ( driver->Sensor_Disable( ctx ) == COMPONENT_ERROR )
366 return COMPONENT_ERROR;
382 DrvContextTypeDef *ctx = (DrvContextTypeDef *)handle;
386 return COMPONENT_ERROR;
389 if ( status == NULL )
391 return COMPONENT_ERROR;
394 *status = ctx->isInitialized;
409 DrvContextTypeDef *ctx = (DrvContextTypeDef *)handle;
413 return COMPONENT_ERROR;
416 if ( status == NULL )
418 return COMPONENT_ERROR;
421 *status = ctx->isEnabled;
436 DrvContextTypeDef *ctx = (DrvContextTypeDef *)handle;
440 return COMPONENT_ERROR;
443 if ( status == NULL )
445 return COMPONENT_ERROR;
448 *status = ctx->isCombo;
463 DrvContextTypeDef *ctx = (DrvContextTypeDef *)handle;
467 return COMPONENT_ERROR;
470 if ( instance == NULL )
472 return COMPONENT_ERROR;
475 *instance = ctx->instance;
492 DrvContextTypeDef *ctx = (DrvContextTypeDef *)handle;
493 TEMPERATURE_Drv_t *driver = NULL;
497 return COMPONENT_ERROR;
500 driver = ( TEMPERATURE_Drv_t * )ctx->pVTable;
502 if ( who_am_i == NULL )
504 return COMPONENT_ERROR;
506 if ( driver->Get_WhoAmI == NULL )
508 return COMPONENT_ERROR;
510 if ( driver->Get_WhoAmI( ctx, who_am_i ) == COMPONENT_ERROR )
512 return COMPONENT_ERROR;
529 DrvContextTypeDef *ctx = (DrvContextTypeDef *)handle;
530 TEMPERATURE_Drv_t *driver = NULL;
534 return COMPONENT_ERROR;
537 driver = ( TEMPERATURE_Drv_t * )ctx->pVTable;
539 if ( driver->Check_WhoAmI == NULL )
541 return COMPONENT_ERROR;
543 if ( driver->Check_WhoAmI( ctx ) == COMPONENT_ERROR )
545 return COMPONENT_ERROR;
563 DrvContextTypeDef *ctx = (DrvContextTypeDef *)handle;
564 TEMPERATURE_Drv_t *driver = NULL;
568 return COMPONENT_ERROR;
571 driver = ( TEMPERATURE_Drv_t * )ctx->pVTable;
573 if ( temperature == NULL )
575 return COMPONENT_ERROR;
577 if ( driver->Get_Temp == NULL )
579 return COMPONENT_ERROR;
581 if ( driver->Get_Temp( ctx, temperature ) == COMPONENT_ERROR )
583 return COMPONENT_ERROR;
601 DrvContextTypeDef *ctx = (DrvContextTypeDef *)handle;
602 TEMPERATURE_Drv_t *driver = NULL;
606 return COMPONENT_ERROR;
609 driver = ( TEMPERATURE_Drv_t * )ctx->pVTable;
613 return COMPONENT_ERROR;
615 if ( driver->Get_ODR == NULL )
617 return COMPONENT_ERROR;
619 if ( driver->Get_ODR( ctx, odr ) == COMPONENT_ERROR )
621 return COMPONENT_ERROR;
639 DrvContextTypeDef *ctx = (DrvContextTypeDef *)handle;
640 TEMPERATURE_Drv_t *driver = NULL;
644 return COMPONENT_ERROR;
647 driver = ( TEMPERATURE_Drv_t * )ctx->pVTable;
649 if ( driver->Set_ODR == NULL )
651 return COMPONENT_ERROR;
653 if ( driver->Set_ODR( ctx, odr ) == COMPONENT_ERROR )
655 return COMPONENT_ERROR;
673 DrvContextTypeDef *ctx = (DrvContextTypeDef *)handle;
674 TEMPERATURE_Drv_t *driver = NULL;
678 return COMPONENT_ERROR;
681 driver = ( TEMPERATURE_Drv_t * )ctx->pVTable;
683 if ( driver->Set_ODR_Value == NULL )
685 return COMPONENT_ERROR;
687 if ( driver->Set_ODR_Value( ctx, odr ) == COMPONENT_ERROR )
689 return COMPONENT_ERROR;
708 DrvContextTypeDef *ctx = (DrvContextTypeDef *)handle;
709 TEMPERATURE_Drv_t *driver = NULL;
713 return COMPONENT_ERROR;
716 driver = ( TEMPERATURE_Drv_t * )ctx->pVTable;
720 return COMPONENT_ERROR;
723 if ( driver->Read_Reg == NULL )
725 return COMPONENT_ERROR;
728 if ( driver->Read_Reg( ctx, reg, data ) == COMPONENT_ERROR )
730 return COMPONENT_ERROR;
748 DrvContextTypeDef *ctx = (DrvContextTypeDef *)handle;
749 TEMPERATURE_Drv_t *driver = NULL;
753 return COMPONENT_ERROR;
756 driver = ( TEMPERATURE_Drv_t * )ctx->pVTable;
758 if ( driver->Write_Reg == NULL )
760 return COMPONENT_ERROR;
763 if ( driver->Write_Reg( ctx, reg, data ) == COMPONENT_ERROR )
765 return COMPONENT_ERROR;
782 DrvContextTypeDef *ctx = (DrvContextTypeDef *)handle;
783 TEMPERATURE_Drv_t *driver = NULL;
787 return COMPONENT_ERROR;
790 driver = ( TEMPERATURE_Drv_t * )ctx->pVTable;
792 if ( driver->Get_DRDY_Status == NULL )
794 return COMPONENT_ERROR;
797 if ( driver->Get_DRDY_Status( ctx, status ) == COMPONENT_ERROR )
799 return COMPONENT_ERROR;
DrvStatusTypeDef BSP_TEMPERATURE_IsInitialized(void *handle, uint8_t *status)
Check if the temperature sensor is initialized.
DrvStatusTypeDef BSP_TEMPERATURE_DeInit(void **handle)
Deinitialize a temperature sensor.
DrvStatusTypeDef BSP_TEMPERATURE_Set_ODR(void *handle, SensorOdr_t odr)
Set the temperature sensor output data rate.
uint8_t Sensor_IO_Write(void *handle, uint8_t WriteAddr, uint8_t *pBuffer, uint16_t nBytesToWrite)
Writes a buffer to the sensor.
DrvStatusTypeDef Sensor_IO_SPI_Init(void)
Configures sensor SPI interface.
DrvStatusTypeDef BSP_TEMPERATURE_Check_WhoAmI(void *handle)
Check the WHO_AM_I ID of the temperature sensor.
DrvStatusTypeDef BSP_TEMPERATURE_Write_Reg(void *handle, uint8_t reg, uint8_t data)
Write the data to register.
DrvStatusTypeDef BSP_TEMPERATURE_Read_Reg(void *handle, uint8_t reg, uint8_t *data)
Read the data from register.
DrvStatusTypeDef BSP_TEMPERATURE_Get_Instance(void *handle, uint8_t *instance)
Get the temperature sensor instance.
DrvStatusTypeDef BSP_TEMPERATURE_IsEnabled(void *handle, uint8_t *status)
Check if the temperature sensor is enabled.
DrvStatusTypeDef BSP_TEMPERATURE_Get_ODR(void *handle, float *odr)
Get the temperature sensor output data rate.
DrvStatusTypeDef Sensor_IO_I2C_Init(void)
Configures sensor SPI interface.
DrvStatusTypeDef BSP_TEMPERATURE_Set_ODR_Value(void *handle, float odr)
Set the temperature sensor output data rate.
DrvStatusTypeDef BSP_TEMPERATURE_IsCombo(void *handle, uint8_t *status)
Check if the temperature sensor is combo.
DrvStatusTypeDef BSP_TEMPERATURE_Get_Temp(void *handle, float *temperature)
Get the temperature value.
This file contains definitions for SensorTile_temperature.c driver.
DrvStatusTypeDef BSP_TEMPERATURE_Get_WhoAmI(void *handle, uint8_t *who_am_i)
Get the WHO_AM_I ID of the temperature sensor.
DrvStatusTypeDef BSP_TEMPERATURE_Sensor_Disable(void *handle)
Disable temperature sensor.
DrvStatusTypeDef BSP_TEMPERATURE_Init(TEMPERATURE_ID_t id, void **handle)
Initialize a temperature sensor.
DrvStatusTypeDef BSP_TEMPERATURE_Get_DRDY_Status(void *handle, uint8_t *status)
Get temperature data ready status.
DrvStatusTypeDef BSP_TEMPERATURE_Sensor_Enable(void *handle)
Enable temperature sensor.