#ifndef LIGHT_SENSOR_H__
#define LIGHT_SENSOR_H__
/*-------------------------------------------------------------------------------------------*/
// #define LIGHT_SENSOR_PLATFORM_16BIT
#ifdef LIGHT_SENSOR_PLATFORM_16BIT
typedef unsigned char ALS_uint8_t;
typedef unsigned int ALS_uint16_t;
typedef unsigned long ALS_uint32_t;
#else
typedef unsigned char ALS_uint8_t;
typedef unsigned short ALS_uint16_t;
typedef unsigned int ALS_uint32_t;
#endif
/*-------------------------------------------------------------------------------------------*/
#define ALS_VERSIONS 0X01U

typedef void (*ALS_Hanle)(void);
typedef void (*ALS_Hanle_Write)(ALS_uint8_t u8ALSData);
typedef ALS_uint8_t (*ALS_Hanle_Read)(void);

typedef struct
{

	ALS_Hanle_Write pfnALSDelay100usCB; /*100us 延时函数*/
	ALS_Hanle pfnALSIICStartCB;			/*start 函数接口*/
	ALS_Hanle pfnALSIICStopCB;			/*stop 函数接口*/
	ALS_Hanle_Write pfnALSIICTxDataCB;	/*发送数据 函数接口*/
	ALS_Hanle_Write pfnALSIICTxACKCB;	/*发送ACK 函数接口*/
	ALS_Hanle_Read pfnALSIICRxDataCB;	/*接收数据 函数接口*/
	ALS_Hanle_Read pfnALSIICRxACKCB;	/*接收ACK 函数接口*/

} Light_Sensor_Par_st_t;
/*-------------------------------------------------------------------------------------------*/
/*
返回0:初始化成功
返回1:初始化失败
*/
extern ALS_uint8_t ALS_Init(Light_Sensor_Par_st_t *pstALSInitPar);
/*根据需要的数据更新频率进行调用*/
extern void ALS_Service(void);
extern ALS_uint16_t ALS_Get_Data0(void);
extern ALS_uint16_t ALS_Get_Data1(void);
/*-------------------------------------------------------------------------------------------*/

#endif