INSAT Mini Project

Dependencies:   ST_INTERFACES X_NUCLEO_COMMON

Fork of X_NUCLEO_6180XA1 by ST

Revision:
16:0d4776564733
Parent:
15:454710d17358
Child:
19:39ea6bab0e5b
--- a/Components/VL6180X/vl6180x_class.cpp	Tue Oct 20 16:44:28 2015 +0200
+++ b/Components/VL6180X/vl6180x_class.cpp	Tue Oct 27 15:25:11 2015 +0100
@@ -34,11 +34,11 @@
  *
  ******************************************************************************
 */
-
+ 
 /* Includes */
 #include "vl6180x_class.h"
  
-
+ 
 #ifndef  VL6180x_RANGE_STATUS_ERRSTRING
 #warning "VL6180x_RANGE_STATUS_ERRSTRING not defined ?"
 /* TODO you may remove or comment these #warning and keep the default below to keep compatibility
@@ -48,7 +48,7 @@
  */
 #define VL6180x_RANGE_STATUS_ERRSTRING  0
 #endif
-
+ 
 #ifndef  VL6180X_SAFE_POLLING_ENTER
 #warning "VL6180X_SAFE_POLLING_ENTER not defined, likely old vl6180x_cfg.h file ?"
 /* TODO you may remove or comment these #warning and keep the default below to keep compatibility
@@ -58,41 +58,41 @@
  */
 #define VL6180X_SAFE_POLLING_ENTER 0 /* off by default as in api 2.0 */
 #endif
-
+ 
 #ifndef VL6180X_LOG_ENABLE
 /**
  * Force VL6180X_LOG_ENABLE to none as default
  */
 #define VL6180X_LOG_ENABLE  0
 #endif
-
+ 
 #if VL6180x_RANGE_STATUS_ERRSTRING
 /**@def VL6180x_HAVE_RANGE_STATUS_ERRSTRING
  * @brief is defined when @a #VL6180x_RANGE_STATUS_ERRSTRING is enable
  */
 #define  VL6180x_HAVE_RANGE_STATUS_ERRSTRING
 #endif
-
-
+ 
+ 
 /** @brief Get API version as "hex integer" 0xMMnnss
  */
 #define VL6180x_ApiRevInt  ((VL6180x_API_REV_MAJOR<<24)+(VL6180x_API_REV_MINOR<<16)+VL6180x_API_REV_SUB)
-
+ 
 /** Get API version as string for exe "2.1.12" "
  */
 #define VL6180x_ApiRevStr  VL6180X_STR(VL6180x_API_REV_MAJOR) "." VL6180X_STR(VL6180x_API_REV_MINOR) "." VL6180X_STR(VL6180x_API_REV_SUB)
-
+ 
 /** @defgroup api_init Init functions
  *  @brief    API init functions
  *  @ingroup api_hl
  *  @{  
  */
-
-
+ 
+ 
 /****************** define for i2c configuration *******************************/
-
-#define TEMP_BUF_SIZE	32
-
+ 
+#define TEMP_BUF_SIZE   32
+ 
 #define IsValidGPIOFunction(x) ((x)==GPIOx_SELECT_GPIO_INTERRUPT_OUTPUT || (x)==GPIOx_SELECT_OFF)
 /**
  * @brief Clear All interrupt causes (als+range+error)
@@ -115,19 +115,19 @@
  * @return  0    On success
  */
 #define VL6180x_RangeClearInterrupt(dev) VL6180x_ClearInterrupt(dev, INTERRUPT_CLEAR_RANGING)
-
+ 
 /******************************************************************************/
 /******************************* file api.c ***********************************/
-
+ 
 #define VL6180x_9to7Conv(x) (x)
-
+ 
 /* TODO when set all "cached" value with "default init" are updated after init from register read back */
 #define REFRESH_CACHED_DATA_AFTER_INIT  1
-
-
+ 
+ 
 #define IsValidGPIOFunction(x) ((x)==GPIOx_SELECT_GPIO_INTERRUPT_OUTPUT || (x)==GPIOx_SELECT_OFF)
-
-
+ 
+ 
 /** default value ECE factor Molecular */
 #define DEF_ECE_FACTOR_M    85
 /** default value ECE factor Denominator */
@@ -142,21 +142,21 @@
 #define DEF_DMAX_ENABLE     1
 /** default ambient tuning factor %x1000 */
 #define DEF_AMBIENT_TUNING  80
-
+ 
 #if VL6180x_SINGLE_DEVICE_DRIVER
 extern  struct VL6180xDevData_t SingleVL6180xDevData;
 #define VL6180xDevDataGet(dev, field) (SingleVL6180xDevData.field)
 #define VL6180xDevDataSet(dev, field, data) SingleVL6180xDevData.field=(data)
 #endif
-
+ 
 #define LUXRES_FIX_PREC 8
 #define GAIN_FIX_PREC    8  /* ! if not sme as LUX_PREC then :( adjust GetLux */
 #define AN_GAIN_MULT    (1<<GAIN_FIX_PREC)
-
-
+ 
+ 
 static int32_t _GetAveTotalTime(VL6180xDev_t dev);
 static int VL6180x_RangeSetEarlyConvergenceEestimateThreshold(VL6180xDev_t dev);
-
+ 
 /**
  * ScalerLookUP scaling factor-1 to register #RANGE_SCALER lookup
  */
@@ -178,8 +178,8 @@
         (uint16_t)(1.0f  * AN_GAIN_MULT),
         (uint16_t)(40.0f * AN_GAIN_MULT),
 };
-
-
+ 
+ 
 #if VL6180x_RANGE_STATUS_ERRSTRING
 const char * ROMABLE_DATA VL6180x_RangeStatusErrString[]={
        "No Error",
@@ -198,17 +198,17 @@
        "Raw Ranging Algo Overflow",
        "Ranging Algo Underflow",
        "Ranging Algo Overflow",
-
+ 
        "Filtered by post processing"
 };
-
+ 
 const char * VL6180x_RangeGetStatusErrString(uint8_t RangeErrCode){
     if( RangeErrCode  > sizeof(VL6180x_RangeStatusErrString)/sizeof(VL6180x_RangeStatusErrString[0]) )
         return NULL;
     return  VL6180x_RangeStatusErrString[RangeErrCode];
 }
 #endif
-
+ 
 #if VL6180x_UPSCALE_SUPPORT == 1
     #define _GetUpscale(dev, ... )  1
     #define _SetUpscale(...) -1
@@ -226,8 +226,8 @@
     #define _GetUpscale(dev, ... ) VL6180xDevDataGet(dev, UpscaleFactor)
     #define _SetUpscale(dev, Scaling ) VL6180xDevDataSet(dev, UpscaleFactor, Scaling)
 #endif
-
-
+ 
+ 
 #if VL6180x_SINGLE_DEVICE_DRIVER
 /**
  * the unique driver data  When single device driver is active
@@ -248,16 +248,16 @@
 #endif
 };
 #endif /* VL6180x_SINGLE_DEVICE_DRIVER */
-
-
-
+ 
+ 
+ 
 #define Fix7_2_KCPs(x) ((((uint32_t)(x))*1000)>>7)
-
-
+ 
+ 
 #if VL6180x_WRAP_AROUND_FILTER_SUPPORT || VL6180x_HAVE_DMAX_RANGING
 static int _GetRateResult(VL6180xDev_t dev, VL6180x_RangeData_t *pRangeData);
 #endif
-
+ 
 #if VL6180x_WRAP_AROUND_FILTER_SUPPORT
 static int _filter_Init(VL6180xDev_t dev);
 static int _filter_GetResult(VL6180xDev_t dev, VL6180x_RangeData_t *pData);
@@ -265,8 +265,8 @@
 #else
     #define _IsWrapArroundActive(dev) 0
 #endif
-
-
+ 
+ 
 #if VL6180x_HAVE_DMAX_RANGING
    void _DMax_OneTimeInit(VL6180xDev_t dev);
    static int _DMax_InitData(VL6180xDev_t dev);
@@ -277,22 +277,22 @@
     #define _DMax_OneTimeInit(...) (void)0
     #define _IsDMaxActive(...) 0
 #endif
-
+ 
 static int VL6180x_RangeStaticInit(VL6180xDev_t dev);
 static int  VL6180x_UpscaleStaticInit(VL6180xDev_t dev);
-
+ 
 int VL6180X::VL6180x_WaitDeviceBooted(VL6180xDev_t dev){
-	uint8_t FreshOutReset;
-	int status;
-	LOG_FUNCTION_START("");
-	do{
-		status = VL6180x_RdByte(dev,SYSTEM_FRESH_OUT_OF_RESET, &FreshOutReset);
-	}
-	while( FreshOutReset!=1 && status==0);
-	LOG_FUNCTION_END(status);
-	return status;
+    uint8_t FreshOutReset;
+    int status;
+    LOG_FUNCTION_START("");
+    do{
+        status = VL6180x_RdByte(dev,SYSTEM_FRESH_OUT_OF_RESET, &FreshOutReset);
+    }
+    while( FreshOutReset!=1 && status==0);
+    LOG_FUNCTION_END(status);
+    return status;
 }
-
+ 
 int VL6180X::VL6180x_InitData(VL6180xDev_t dev){
     int status, dmax_status ;
     int8_t offset;
@@ -300,30 +300,30 @@
     uint32_t CalValue;
     uint16_t u16;
     uint32_t XTalkCompRate_KCps;
-
+ 
     LOG_FUNCTION_START("");
-
+ 
     VL6180xDevDataSet(dev, EceFactorM , DEF_ECE_FACTOR_M);
     VL6180xDevDataSet(dev, EceFactorD , DEF_ECE_FACTOR_D);
-
+ 
 #ifdef VL6180x_HAVE_UPSCALE_DATA
     VL6180xDevDataSet(dev, UpscaleFactor ,  DEF_UPSCALE);
 #endif
-
+ 
 #ifdef VL6180x_HAVE_ALS_DATA
     VL6180xDevDataSet(dev, IntegrationPeriod, DEF_INT_PEFRIOD);
     VL6180xDevDataSet(dev, AlsGainCode, DEF_ALS_GAIN);
     VL6180xDevDataSet(dev, AlsScaler, DEF_ALS_SCALER);
 #endif
-
+ 
 #ifdef  VL6180x_HAVE_WRAP_AROUND_DATA
     VL6180xDevDataSet(dev, WrapAroundFilterActive, (VL6180x_WRAP_AROUND_FILTER_SUPPORT >0));
     VL6180xDevDataSet(dev, DMaxEnable, DEF_DMAX_ENABLE);
 #endif
-
+ 
     _DMax_OneTimeInit(dev);
     do{
-
+ 
         /* backup offset initial value from nvm these must be done prior any over call that use offset */
         status = VL6180X::VL6180x_RdByte(dev,SYSRANGE_PART_TO_PART_RANGE_OFFSET, (uint8_t*)&offset);
         if( status ){
@@ -331,7 +331,7 @@
             break;
         }
         VL6180xDevDataSet(dev, Part2PartOffsetNVM, offset);
-
+ 
         status=VL6180x_RdDWord( dev, SYSRANGE_RANGE_IGNORE_THRESHOLD, &CalValue);
         if( status ){
             VL6180x_ErrLog("Part2PartAmbNVM rd fail");
@@ -341,7 +341,7 @@
             CalValue=0x00CE03F8;
         }
         VL6180xDevDataSet(dev, Part2PartAmbNVM, CalValue);
-
+ 
         status = VL6180x_RdWord(dev, SYSRANGE_CROSSTALK_COMPENSATION_RATE ,&u16);
         if( status){
             VL6180x_ErrLog("SYSRANGE_CROSSTALK_COMPENSATION_RATE rd fail ");
@@ -349,13 +349,13 @@
         }
         XTalkCompRate_KCps = Fix7_2_KCPs(u16);
         VL6180xDevDataSet(dev, XTalkCompRate_KCps , XTalkCompRate_KCps );
-
+ 
         dmax_status = _DMax_InitData(dev);
         if( dmax_status < 0 ){
             VL6180x_ErrLog("DMax init failure");
             break;
         }
-
+ 
         /* Read or wait for fresh out of reset  */
         status = VL6180x_RdByte(dev,SYSTEM_FRESH_OUT_OF_RESET, &FreshOutReset);
         if( status )  {
@@ -364,14 +364,14 @@
         }
         if( FreshOutReset!= 1 || dmax_status )
             status = CALIBRATION_WARNING;
-
+ 
     }
     while(0);
-
+ 
     LOG_FUNCTION_END(status);
     return status;
 }
-
+ 
 int8_t VL6180X::VL6180x_GetOffsetCalibrationData(VL6180xDev_t dev)
 {
     int8_t offset;
@@ -380,14 +380,14 @@
     LOG_FUNCTION_END( offset );
     return offset;
 }
-
+ 
 void VL6180X::VL6180x_SetOffsetCalibrationData(VL6180xDev_t dev, int8_t offset)
 {
     LOG_FUNCTION_START("%d", offset);
     VL6180xDevDataSet(dev, Part2PartOffsetNVM, offset);
     LOG_FUNCTION_END(0);
 }
-
+ 
 int VL6180X::VL6180x_SetXTalkCompensationRate(VL6180xDev_t dev, FixPoint97_t Rate)
 {
     int status;
@@ -403,11 +403,11 @@
     LOG_FUNCTION_END(status);
     return status;
 }
-
+ 
 int VL6180X::VL6180x_SetI2CAddress(VL6180xDev_t dev, uint8_t NewAddress){
     int status;
     LOG_FUNCTION_START("");
-
+ 
     status = VL6180x_WrByte(dev, I2C_SLAVE_DEVICE_ADDRESS, NewAddress);
     if( status ){
         VL6180x_ErrLog("new i2c addr Wr fail");
@@ -415,43 +415,43 @@
     LOG_FUNCTION_END(status);
     return status;
 }
-
-
+ 
+ 
 uint16_t VL6180X::VL6180x_GetUpperLimit(VL6180xDev_t dev) {
     uint16_t limit;
     int scaling;
-
+ 
     LOG_FUNCTION_START("");
-
+ 
     scaling = _GetUpscale(dev);
     /* FIXME we do assume here _GetUpscale is valid if  user call us prior to init we may overflow the LUT  mem area */
     limit = UpperLimitLookUP[scaling - 1];
-
+ 
     LOG_FUNCTION_END((int )limit);
     return limit;
 }
-
-
-
+ 
+ 
+ 
 int VL6180X::VL6180x_StaticInit(VL6180xDev_t dev){
     int status=0, init_status;
     LOG_FUNCTION_START("");
-
+ 
     /* TODO doc When using configurable scaling but using 1x as start condition
      * load tunning upscale  or not ??? */
     if( _GetUpscale(dev) == 1 && !(VL6180x_UPSCALE_SUPPORT<0))
-    	init_status=VL6180x_RangeStaticInit(dev);
+        init_status=VL6180x_RangeStaticInit(dev);
     else
-    	init_status=VL6180x_UpscaleStaticInit(dev);
-
+        init_status=VL6180x_UpscaleStaticInit(dev);
+ 
     if( init_status <0 ){
-    	VL6180x_ErrLog("StaticInit fail");
-    	goto error;
+        VL6180x_ErrLog("StaticInit fail");
+        goto error;
     }
     else if(init_status > 0){
-    	VL6180x_ErrLog("StaticInit warning");
+        VL6180x_ErrLog("StaticInit warning");
     }
-
+ 
 #if REFRESH_CACHED_DATA_AFTER_INIT
     /* update cached value after tuning applied */
     do{
@@ -460,7 +460,7 @@
         status=  VL6180x_RdByte(dev, FW_ALS_RESULT_SCALER, &data);
         if( status ) break;
         VL6180xDevDataSet(dev, AlsScaler, data);
-
+ 
         status=  VL6180x_RdByte(dev, SYSALS_ANALOGUE_GAIN, &data);
         if( status ) break;
         VL6180x_AlsSetAnalogueGain(dev, data);
@@ -472,45 +472,45 @@
         VL6180x_ErrLog("StaticInit fail");
     }
     if( !status && init_status){
-    	status = init_status;
+        status = init_status;
     }
 error:
     LOG_FUNCTION_END(status);
     return status;
 }
-
-
+ 
+ 
 int VL6180X::VL6180x_SetGroupParamHold(VL6180xDev_t dev, int Hold)
 {
     int status;
     uint8_t value;
-
+ 
     LOG_FUNCTION_START("%d", Hold);
     if( Hold )
         value = 1;
     else
         value = 0;
     status = VL6180x_WrByte(dev, SYSTEM_GROUPED_PARAMETER_HOLD, value);
-
+ 
     LOG_FUNCTION_END(status);
     return status;
-
+ 
 }
-
+ 
 int VL6180X::VL6180x_Prepare(VL6180xDev_t dev)
 {
     int status;
     LOG_FUNCTION_START("");
-
+ 
     do{
         status=VL6180x_StaticInit(dev);
         if( status<0) break;
-
+ 
         /* set range InterruptMode to new sample */
         status=VL6180x_RangeConfigInterrupt(dev, CONFIG_GPIO_INTERRUPT_DISABLED );
         if( status)
             break;
-
+ 
         /* set default threshold */
         status=VL6180x_RangeSetRawThresholds(dev, 10, 200);
         if( status ){
@@ -541,10 +541,10 @@
     }
     while(0);
     LOG_FUNCTION_END(status);
-
+ 
     return status;
 }
-
+ 
 #if VL6180x_ALS_SUPPORT
 int VL6180X::VL6180x_AlsGetLux(VL6180xDev_t dev, lux_t *pLux)
 {
@@ -555,14 +555,14 @@
     uint32_t AlsAnGain;
     uint32_t GainFix;
     uint32_t AlsScaler;
-
+ 
 #if LUXRES_FIX_PREC !=  GAIN_FIX_PREC
 #error "LUXRES_FIX_PREC != GAIN_FIX_PREC  review these code to be correct"
 #endif
     const uint32_t LuxResxIntIme =(uint32_t)(0.56f* DEF_INT_PEFRIOD *(1<<LUXRES_FIX_PREC));
-
+ 
     LOG_FUNCTION_START("%p", pLux);
-
+ 
     status = VL6180x_RdWord( dev, RESULT_ALS_VAL, &RawAls);
     if( !status){
         /* wer are yet here at no fix point */
@@ -577,34 +577,34 @@
         luxValue = luxValue / (AlsScaler * GainFix);
         *pLux=luxValue;
     }
-
+ 
     LOG_FUNCTION_END_FMT(status, "%x",(int)*pLux);
     return status;
 }
-
+ 
 int VL6180X::VL6180x_AlsGetMeasurement(VL6180xDev_t dev, VL6180x_AlsData_t *pAlsData)
 {
     int status;
     uint8_t ErrStatus;
-
+ 
     LOG_FUNCTION_START("%p", pAlsData);
-
+ 
     status = VL6180x_AlsGetLux(dev, &pAlsData->lux);
     if( !status ){
         status = VL6180x_RdByte(dev, RESULT_ALS_STATUS, & ErrStatus);
         pAlsData->errorStatus = ErrStatus>>4;
     }
     LOG_FUNCTION_END_FMT(status,"%d %d", (int)pAlsData->lux,  (int)pAlsData->errorStatus);
-
+ 
     return status;
 }
-
-
+ 
+ 
 int VL6180X::VL6180x_AlsPollMeasurement(VL6180xDev_t dev, VL6180x_AlsData_t *pAlsData) {
     int status;
     int ClrStatus;
     uint8_t IntStatus;
-
+ 
     LOG_FUNCTION_START("%p", pAlsData);
 #if VL6180X_SAFE_POLLING_ENTER
     /* if device get stopped with left interrupt uncleared , it is required to clear them now or poll for new condition will never occur*/
@@ -614,13 +614,13 @@
         goto over;
     }
 #endif
-
+ 
     status=VL6180x_AlsSetSystemMode(dev, MODE_START_STOP|MODE_SINGLESHOT);
     if( status){
         VL6180x_ErrLog("VL6180x_AlsSetSystemMode fail");
         goto over;
     }
-
+ 
     /* poll for new sample ready */
     while (1 ) {
         status = VL6180x_AlsGetInterruptStatus(dev, &IntStatus);
@@ -630,14 +630,14 @@
         if (IntStatus == RES_INT_STAT_GPIO_NEW_SAMPLE_READY) {
             break; /* break on new data (status is 0)  */
         }
-
+ 
         VL6180x_PollDelay(dev);
     };
-
+ 
     if (!status) {
         status = VL6180x_AlsGetMeasurement(dev, pAlsData);
     }
-
+ 
     ClrStatus = VL6180x_AlsClearInterrupt(dev);
     if (ClrStatus) {
         VL6180x_ErrLog("VL6180x_AlsClearInterrupt fail");
@@ -647,22 +647,22 @@
     }
 over:
     LOG_FUNCTION_END(status);
-
+ 
     return status;
 }
-
+ 
 int VL6180X::VL6180x_AlsGetInterruptStatus(VL6180xDev_t dev, uint8_t *pIntStatus) {
     int status;
     uint8_t IntStatus;
     LOG_FUNCTION_START("%p", pIntStatus);
-
+ 
     status = VL6180x_RdByte(dev, RESULT_INTERRUPT_STATUS_GPIO, &IntStatus);
     *pIntStatus= (IntStatus>>3)&0x07;
-
+ 
     LOG_FUNCTION_END_FMT(status, "%d", (int)*pIntStatus);
     return status;
 }
-
+ 
 int VL6180X::VL6180x_AlsWaitDeviceReady(VL6180xDev_t dev, int MaxLoop ){
     int status;
     int  n;
@@ -679,7 +679,7 @@
             u8 = u8 & ALS_DEVICE_READY_MASK;
             if( u8 )
                 break;
-
+ 
         }
         if( !status && !u8 ){
             status = TIME_OUT;
@@ -688,7 +688,7 @@
     LOG_FUNCTION_END(status);
     return status;
 }
-
+ 
 int VL6180X::VL6180x_AlsSetSystemMode(VL6180xDev_t dev, uint8_t mode)
 {
     int status;
@@ -704,11 +704,11 @@
     LOG_FUNCTION_END(status);
     return status;
 }
-
+ 
 int VL6180X::VL6180x_AlsConfigInterrupt(VL6180xDev_t dev, uint8_t ConfigGpioInt)
 {
     int status;
-
+ 
     if( ConfigGpioInt<= CONFIG_GPIO_INTERRUPT_NEW_SAMPLE_READY){
         status = VL6180x_UpdateByte(dev, SYSTEM_INTERRUPT_CONFIG_GPIO, (uint8_t)(~CONFIG_GPIO_ALS_MASK), (ConfigGpioInt<<3));
     }
@@ -719,78 +719,78 @@
     LOG_FUNCTION_END(status);
     return status;
 }
-
-
-
+ 
+ 
+ 
 int VL6180X::VL6180x_AlsSetThresholds(VL6180xDev_t dev, uint8_t low, uint8_t high) {
     int status;
-
+ 
     LOG_FUNCTION_START("%d %d", (int )low, (int)high);
-
+ 
     status = VL6180x_WrByte(dev, SYSALS_THRESH_LOW, low); //FIXME i valori passati devono essere uint16_t (vedi registri), inoltre i valori delle soglie NON sono in lux! bisogna invertire il calcolo fatto nella VL6180x_AlsGetLux()
     if(!status ){
         status = VL6180x_WrByte(dev, SYSALS_THRESH_HIGH, high);
     }
-
+ 
     LOG_FUNCTION_END(status) ;
     return status;
 }
-
-
+ 
+ 
 int VL6180X::VL6180x_AlsSetAnalogueGain(VL6180xDev_t dev, uint8_t gain) {
     int status;
     uint8_t GainTotal;
-
+ 
     LOG_FUNCTION_START("%d", (int )gain);
     gain&=~0x40;
     if (gain > 7) {
         gain = 7;
     }
     GainTotal = gain|0x40;
-
+ 
     status = VL6180x_WrByte(dev, SYSALS_ANALOGUE_GAIN, GainTotal);
     if( !status){
         VL6180xDevDataSet(dev, AlsGainCode, gain);
     }
-
+ 
     LOG_FUNCTION_END_FMT(status, "%d %d", (int ) gain, (int )GainTotal);
     return status;
 }
-
+ 
 int VL6180X::VL6180x_AlsSetInterMeasurementPeriod(VL6180xDev_t dev,  uint16_t intermeasurement_period_ms)
 {
     int status;
-
+ 
     LOG_FUNCTION_START("%d",(int)intermeasurement_period_ms);
         /* clipping: range is 0-2550ms */
         if (intermeasurement_period_ms >= 255 *10)
                 intermeasurement_period_ms = 255 *10;
     status=VL6180x_WrByte(dev, SYSALS_INTERMEASUREMENT_PERIOD, (uint8_t)(intermeasurement_period_ms/10));
-
+ 
     LOG_FUNCTION_END_FMT(status, "%d", (int) intermeasurement_period_ms);
     return status;
 }
-
-
+ 
+ 
 int VL6180X::VL6180x_AlsSetIntegrationPeriod(VL6180xDev_t dev, uint16_t period_ms)
 {
     int status;
     uint16_t SetIntegrationPeriod;
-
+ 
     LOG_FUNCTION_START("%d", (int)period_ms);
-
+ 
     if( period_ms>=1 )
         SetIntegrationPeriod = period_ms - 1;
     else
         SetIntegrationPeriod = period_ms;
-
+ 
     if (SetIntegrationPeriod > 464) {
         SetIntegrationPeriod = 464;
     }
     else if (SetIntegrationPeriod == 255)   {
         SetIntegrationPeriod++; /* can't write 255 since this causes the device to lock out.*/
     }
-
+ 
     status =VL6180x_WrWord(dev, SYSALS_INTEGRATION_PERIOD, SetIntegrationPeriod);
     if( !status ){
         VL6180xDevDataSet(dev, IntegrationPeriod, SetIntegrationPeriod) ;
@@ -798,20 +798,20 @@
     LOG_FUNCTION_END_FMT(status, "%d", (int)SetIntegrationPeriod);
     return status;
 }
-
+ 
 #endif /* HAVE_ALS_SUPPORT */
-
-
+ 
+ 
 int VL6180X::VL6180x_RangePollMeasurement(VL6180xDev_t dev, VL6180x_RangeData_t *pRangeData)
 {
     int status;
     int ClrStatus;
     IntrStatus_t IntStatus;
-
+ 
     LOG_FUNCTION_START("");
     /* start single range measurement */
-
-
+ 
+ 
 #if VL6180X_SAFE_POLLING_ENTER
     /* if device get stopped with left interrupt uncleared , it is required to clear them now or poll for new condition will never occur*/
     status=VL6180x_RangeClearInterrupt(dev);
@@ -826,7 +826,7 @@
         VL6180x_ErrLog("VL6180x_RangeSetSystemMode fail");
         goto done;
     }
-
+ 
     /* poll for new sample ready */
     while(1 ){
         status=VL6180x_RangeGetInterruptStatus(dev, &IntStatus.val);
@@ -846,11 +846,11 @@
         VL6180x_PollDelay(dev);
     }
  /* //![single_shot_snipet] */
-
+ 
     if ( !status ){
         status = VL6180x_RangeGetMeasurement(dev, pRangeData);
     }
-
+ 
     /*  clear range interrupt source */
     ClrStatus = VL6180x_RangeClearInterrupt(dev);
     if( ClrStatus ){
@@ -864,17 +864,17 @@
     LOG_FUNCTION_END(status);
     return status;
 }
-
-
-
+ 
+ 
+ 
 int VL6180X::VL6180x_RangeGetMeasurement(VL6180xDev_t dev, VL6180x_RangeData_t *pRangeData)
 {
     int status;
     uint16_t RawRate;
     uint8_t RawStatus;
-
+ 
     LOG_FUNCTION_START("");
-
+ 
     status = VL6180x_RangeGetResult(dev, &pRangeData->range_mm);
     if( !status ){
         status = VL6180x_RdWord(dev,RESULT_RANGE_SIGNAL_RATE, &RawRate );
@@ -887,11 +887,11 @@
             else{
                 VL6180x_ErrLog("Rd RESULT_RANGE_STATUS fail");
             }
-	#if VL6180x_WRAP_AROUND_FILTER_SUPPORT || VL6180x_HAVE_DMAX_RANGING
+    #if VL6180x_WRAP_AROUND_FILTER_SUPPORT || VL6180x_HAVE_DMAX_RANGING
             status = _GetRateResult(dev, pRangeData);
             if( status )
-            	goto error;
-	#endif
+                goto error;
+    #endif
     #if VL6180x_WRAP_AROUND_FILTER_SUPPORT
             /* if enabled run filter */
             if( _IsWrapArroundActive(dev) ){
@@ -905,7 +905,7 @@
                 }
             }
     #endif
-
+ 
 #if VL6180x_HAVE_DMAX_RANGING
             if(_IsDMaxActive(dev) ){
                 _DMax_Compute(dev, pRangeData);
@@ -923,15 +923,15 @@
     LOG_FUNCTION_END_FMT(status, "%d %d %d", (int)pRangeData->range_mm, (int)pRangeData->signalRate_mcps,  (int)pRangeData->errorStatus) ;
     return status;
 }
-
-
+ 
+ 
 int VL6180X::VL6180x_RangeGetMeasurementIfReady(VL6180xDev_t dev, VL6180x_RangeData_t *pRangeData)
 {
     int status;
     IntrStatus_t IntStatus;
-
+ 
     LOG_FUNCTION_START();
-
+ 
     status = VL6180x_RangeGetInterruptStatus(dev, &IntStatus.val);
     if( status ==0 ){
         if( IntStatus.status.Error !=0 ){
@@ -959,7 +959,7 @@
     LOG_FUNCTION_END(status) ;
     return status;
 }
-
+ 
 int VL6180X::VL6180x_FilterSetState(VL6180xDev_t dev, int state){
     int status;
     LOG_FUNCTION_START("%d", state);
@@ -972,7 +972,7 @@
     LOG_FUNCTION_END(status);
     return status;
 }
-
+ 
 int VL6180X::VL6180x_FilterGetState(VL6180xDev_t dev){
     int status;
     LOG_FUNCTION_START("");
@@ -984,14 +984,14 @@
     LOG_FUNCTION_END(status);
     return status;
 }
-
+ 
 int VL6180X::VL6180x_RangeGetResult(VL6180xDev_t dev, int32_t *pRange_mm) {
     int status;
     uint8_t RawRange;
     int32_t Upscale;
-
+ 
     LOG_FUNCTION_START("%p",pRange_mm);
-
+ 
     status = VL6180x_RdByte(dev, RESULT_RANGE_VAL, &RawRange);
     if( !status ){
          Upscale = _GetUpscale(dev);
@@ -1000,7 +1000,7 @@
     LOG_FUNCTION_END_FMT(status, "%d", (int)*pRange_mm);
     return status;
 }
-
+ 
 int VL6180X::VL6180x_RangeSetRawThresholds(VL6180xDev_t dev, uint8_t low, uint8_t high)
 {
     int status;
@@ -1010,11 +1010,11 @@
     if( !status){
         status=VL6180x_WrByte(dev, SYSRANGE_THRESH_LOW, low);
     }
-
+ 
     LOG_FUNCTION_END(status);
     return status;
 }
-
+ 
 int VL6180X::VL6180x_RangeSetThresholds(VL6180xDev_t dev, uint16_t low, uint16_t high, int UseSafeParamHold)
 {
     int status;
@@ -1045,20 +1045,20 @@
         }
         while(0);
     }
-
+ 
     LOG_FUNCTION_END(status);
     return status;
 }
-
-
+ 
+ 
 int VL6180X::VL6180x_RangeGetThresholds(VL6180xDev_t dev, uint16_t *low, uint16_t *high)
 {
     int status;
     uint8_t RawLow, RawHigh;
     int scale;
-
+ 
     LOG_FUNCTION_START("%p %p", low , high);
-
+ 
     scale=_GetUpscale(dev,UpscaleFactor);
     do{
         if( high != NULL ){
@@ -1082,8 +1082,8 @@
     LOG_FUNCTION_END_FMT(status, "%d %d",(int)*low ,(int)*high);
     return status;
 }
-
-
+ 
+ 
 int VL6180X::VL6180x_RangeGetInterruptStatus(VL6180xDev_t dev, uint8_t *pIntStatus) {
     int status;
     uint8_t IntStatus;
@@ -1092,12 +1092,12 @@
      * not just new sample or over status , that will nevr show up in case of error*/
     status = VL6180x_RdByte(dev, RESULT_INTERRUPT_STATUS_GPIO, &IntStatus);
     *pIntStatus= IntStatus&0xC7;
-
+ 
     LOG_FUNCTION_END_FMT(status, "%d", (int)*pIntStatus);
     return status;
 }
-
-
+ 
+ 
 int VL6180X::VL6180x_GetInterruptStatus(VL6180xDev_t dev, uint8_t *IntStatus)
 {
     int status;
@@ -1106,7 +1106,7 @@
     LOG_FUNCTION_END_FMT(status, "%d", (int)*IntStatus);
     return status;
 }
-
+ 
 int VL6180X::VL6180x_ClearInterrupt(VL6180xDev_t dev, uint8_t IntClear )
 {
     int status;
@@ -1120,13 +1120,13 @@
     LOG_FUNCTION_END(status);
     return status;
 }
-
-
+ 
+ 
 int VL6180X::VL6180x_RangeStaticInit(VL6180xDev_t dev)
 {
     int status;
     LOG_FUNCTION_START("");
-
+ 
     /* REGISTER_TUNING_SR03_270514_CustomerView.txt */
     VL6180x_WrByte( dev, 0x0207, 0x01);
     VL6180x_WrByte( dev, 0x0208, 0x01);
@@ -1158,7 +1158,7 @@
     VL6180x_WrByte( dev, 0x01ac, 0x3e);
     VL6180x_WrByte( dev, 0x01a7, 0x1f);
     VL6180x_WrByte( dev, 0x0030, 0x00);
-
+ 
     /* Recommended : Public registers - See data sheet for more detail */
     VL6180x_WrByte( dev, 0x0011, 0x10); /* Enables polling for New Sample ready when measurement completes */
     VL6180x_WrByte( dev, 0x010a, 0x30); /* Set the averaging sample period (compromise between lower noise and increased execution time) */
@@ -1166,21 +1166,21 @@
     VL6180x_WrByte( dev, 0x0031, 0xFF); /* sets the # of range measurements after which auto calibration of system is performed */
     VL6180x_WrByte( dev, 0x0040, 0x63); /* Set ALS integration time to 100ms */
     VL6180x_WrByte( dev, 0x002e, 0x01); /* perform a single temperature calibration of the ranging sensor */
-
+ 
     /* Optional: Public registers - See data sheet for more detail */
     VL6180x_WrByte( dev, 0x001b, 0x09); /* Set default ranging inter-measurement period to 100ms */
     VL6180x_WrByte( dev, 0x003e, 0x31); /* Set default ALS inter-measurement period to 500ms */
     VL6180x_WrByte( dev, 0x0014, 0x24); /* Configures interrupt on New sample ready */
-
-
+ 
+ 
     status=VL6180x_RangeSetMaxConvergenceTime(dev, 50); /*  Calculate ece value on initialization (use max conv) */
     LOG_FUNCTION_END(status);
-
+ 
     return status;
 }
-
+ 
 #if VL6180x_UPSCALE_SUPPORT != 1
-
+ 
 int VL6180X::_UpscaleInitPatch0(VL6180xDev_t dev){
     int status;
     uint32_t CalValue=0;
@@ -1188,7 +1188,7 @@
     status=VL6180x_WrDWord( dev, 0xDA, CalValue);
     return status;
 }
-
+ 
 /* only include up-scaling register setting when up-scale support is configured in */
 int VL6180X::VL6180x_UpscaleRegInit(VL6180xDev_t dev)
 {
@@ -1204,9 +1204,9 @@
     VL6180x_WrByte( dev, 0x00e7, 0x03);
     VL6180x_WrByte( dev, 0x00f5, 0x02);
     VL6180x_WrByte( dev, 0x00d9, 0x05);
-
+ 
     _UpscaleInitPatch0(dev);
-
+ 
     VL6180x_WrByte( dev, 0x009f, 0x00);
     VL6180x_WrByte( dev, 0x00a3, 0x28);
     VL6180x_WrByte( dev, 0x00b7, 0x00);
@@ -1243,15 +1243,15 @@
 #else
 #define VL6180x_UpscaleRegInit(...) -1
 #endif
-
+ 
 int VL6180X::VL6180x_UpscaleSetScaling(VL6180xDev_t dev, uint8_t scaling)
 {
     int status;
     uint16_t Scaler;
     int8_t  Offset;
-
+ 
     LOG_FUNCTION_START("%d",(int) scaling);
-
+ 
 #ifdef VL6180x_HAVE_UPSCALE_DATA
     #define min_scaling 1
     #define max_scaling sizeof(ScalerLookUP)/sizeof(ScalerLookUP[0])
@@ -1260,13 +1260,13 @@
     #define min_scaling VL6180x_UPSCALE_SUPPORT
     #define max_scaling VL6180x_UPSCALE_SUPPORT
 #endif
-
+ 
     if( scaling>=min_scaling  && scaling<= max_scaling ){
-
+ 
         Scaler = ScalerLookUP[scaling-1];
         status = VL6180x_WrWord(dev, RANGE_SCALER, Scaler);
         _SetUpscale(dev, scaling );
-
+ 
         /* Apply scaling on  part-2-part offset */
         Offset = VL6180xDevDataGet(dev, Part2PartOffsetNVM)/scaling;
         status = VL6180x_WrByte(dev, SYSRANGE_PART_TO_PART_RANGE_OFFSET, Offset);
@@ -1275,7 +1275,7 @@
             status = VL6180x_RangeSetEceState(dev, scaling == 1); /* enable ece only at 1x scaling */
         }
         if( status == 0 && !VL6180x_EXTENDED_RANGE && scaling!=1 ){
-        	status = NOT_GUARANTEED ;
+            status = NOT_GUARANTEED ;
         }
 #endif
     }
@@ -1287,24 +1287,24 @@
     LOG_FUNCTION_END(status);
     return status;
 }
-
-
+ 
+ 
 int VL6180X::VL6180x_UpscaleGetScaling(VL6180xDev_t dev)
 {
     int status;
     LOG_FUNCTION_START("");
     status=_GetUpscale(dev );
     LOG_FUNCTION_END(status);
-
+ 
     return status;
 }
-
-
+ 
+ 
 int VL6180X::VL6180x_UpscaleStaticInit(VL6180xDev_t dev)
 {
     /* todo make these a fail macro in case only 1x is suppoted */
     int status;
-
+ 
     LOG_FUNCTION_START("");
     do{
         status=VL6180x_UpscaleRegInit(dev);
@@ -1328,13 +1328,13 @@
     LOG_FUNCTION_END(status);
     return status;
 }
-
-
+ 
+ 
 int VL6180X::VL6180x_SetGPIOxPolarity(VL6180xDev_t dev, int pin, int active_high)
 {
     int status;
     LOG_FUNCTION_START("%d %d",(int) pin, (int)active_high);
-
+ 
     if( pin ==0  || pin ==1  ){
        uint16_t RegIndex;
        uint8_t  DataSet;
@@ -1342,38 +1342,38 @@
            RegIndex= SYSTEM_MODE_GPIO0;
        else
            RegIndex= SYSTEM_MODE_GPIO1;
-
+ 
        if (active_high )
            DataSet = GPIOx_POLARITY_SELECT_MASK;
        else
            DataSet = 0;
-
+ 
        status = VL6180x_UpdateByte(dev, RegIndex, (uint8_t)~GPIOx_POLARITY_SELECT_MASK, DataSet);
     }
     else{
         VL6180x_ErrLog("Invalid pin param %d", (int)pin);
         status = INVALID_PARAMS;
     }
-
+ 
     LOG_FUNCTION_END(status);
-
+ 
     return status;
 }
-
+ 
 int VL6180X::VL6180x_SetGPIOxFunctionality(VL6180xDev_t dev, int pin, uint8_t functionality)
 {
     int status;
-
+ 
     LOG_FUNCTION_START("%d %d",(int) pin, (int)functionality);
-
+ 
     if( ((pin ==0)  || (pin ==1))  && IsValidGPIOFunction(functionality)  ){
        uint16_t RegIndex;
-
+ 
        if( pin==0 )
            RegIndex= SYSTEM_MODE_GPIO0;
        else
            RegIndex= SYSTEM_MODE_GPIO1;
-
+ 
        status = VL6180x_UpdateByte(dev, RegIndex, (uint8_t)~GPIOx_FUNCTIONALITY_SELECT_MASK,  functionality<<GPIOx_FUNCTIONALITY_SELECT_SHIFT);
        if( status){
            VL6180x_ErrLog("Update SYSTEM_MODE_GPIO%d fail", (int)pin);
@@ -1383,30 +1383,30 @@
         VL6180x_ErrLog("Invalid pin %d  or function %d", (int)pin, (int) functionality);
         status = INVALID_PARAMS;
     }
-
+ 
     LOG_FUNCTION_END(status);
     return status;
 }
-
-
+ 
+ 
 int VL6180X::VL6180x_SetupGPIOx(VL6180xDev_t dev, int pin,  uint8_t IntFunction, int  ActiveHigh)
 {
     int status;
-
+ 
     LOG_FUNCTION_START("%d %d",(int) pin, (int)IntFunction);
-
+ 
     if( ((pin ==0)  || (pin ==1))  && IsValidGPIOFunction(IntFunction)  ){
        uint16_t RegIndex;
        uint8_t value=0;
-
+ 
        if( pin==0 )
            RegIndex= SYSTEM_MODE_GPIO0;
        else
            RegIndex= SYSTEM_MODE_GPIO1;
-
+ 
        if( ActiveHigh  )
            value|=GPIOx_POLARITY_SELECT_MASK;
-
+ 
        value |=  IntFunction<<GPIOx_FUNCTIONALITY_SELECT_SHIFT;
        status = VL6180x_WrByte(dev, RegIndex, value);
        if( status ){
@@ -1417,24 +1417,24 @@
         VL6180x_ErrLog("Invalid pin %d or function %d", (int)pin, (int) IntFunction);
         status = INVALID_PARAMS;
     }
-
+ 
     LOG_FUNCTION_END(status);
     return status;
 }
-
-
+ 
+ 
 int VL6180X::VL6180x_DisableGPIOxOut(VL6180xDev_t dev, int pin) {
     int status;
-
+ 
     LOG_FUNCTION_START("%d",(int)pin);
-
+ 
     status=VL6180x_SetGPIOxFunctionality(dev, pin, GPIOx_SELECT_OFF);
-
+ 
     LOG_FUNCTION_END(status);
     return status;
 }
-
-
+ 
+ 
 int VL6180X::VL6180x_SetupGPIO1(VL6180xDev_t dev, uint8_t IntFunction, int ActiveHigh)
 {
     int status;
@@ -1443,11 +1443,11 @@
     LOG_FUNCTION_END(status);
     return status;
 }
-
+ 
 int VL6180X::VL6180x_RangeConfigInterrupt(VL6180xDev_t dev, uint8_t ConfigGpioInt)
 {
     int status;
-
+ 
     if( ConfigGpioInt<= CONFIG_GPIO_INTERRUPT_NEW_SAMPLE_READY){
         status = VL6180x_UpdateByte(dev, SYSTEM_INTERRUPT_CONFIG_GPIO, (uint8_t)(~CONFIG_GPIO_RANGE_MASK), ConfigGpioInt);
     }
@@ -1458,12 +1458,12 @@
     LOG_FUNCTION_END(status);
     return status;
 }
-
-
+ 
+ 
 int VL6180X::VL6180x_RangeSetEceFactor(VL6180xDev_t dev, uint16_t  FactorM, uint16_t FactorD){
     int status;
     uint8_t u8;
-
+ 
     LOG_FUNCTION_START("%d %d", (int)FactorM, (int)FactorD );
     do{
         /* D cannot be 0 M must be <=D and >= 0 */
@@ -1491,23 +1491,23 @@
     LOG_FUNCTION_END(status);
     return status;
 }
-
+ 
 int VL6180X::VL6180x_RangeSetEceState(VL6180xDev_t dev, int enable ){
     int status;
     uint8_t or_mask;
-
+ 
     LOG_FUNCTION_START("%d", (int)enable);
     if( enable )
         or_mask = RANGE_CHECK_ECE_ENABLE_MASK;
     else
         or_mask = 0;
-
+ 
     status =VL6180x_UpdateByte(dev, SYSRANGE_RANGE_CHECK_ENABLES, ~RANGE_CHECK_ECE_ENABLE_MASK, or_mask);
     LOG_FUNCTION_END(status);
     return status;
 }
-
-
+ 
+ 
 int VL6180X::VL6180x_RangeSetMaxConvergenceTime(VL6180xDev_t dev, uint8_t  MaxConTime_msec)
 {
     int status = 0;
@@ -1527,11 +1527,11 @@
     LOG_FUNCTION_END(status);
     return status;
 }
-
+ 
 int VL6180X::VL6180x_RangeSetInterMeasPeriod(VL6180xDev_t dev, uint32_t  InterMeasTime_msec){
     uint8_t SetTime;
     int status;
-
+ 
     LOG_FUNCTION_START("%d",(int)InterMeasTime_msec);
     do {
         if( InterMeasTime_msec > 2550 ){
@@ -1556,8 +1556,8 @@
     LOG_FUNCTION_END(status);
     return status;
 }
-
-
+ 
+ 
 int VL6180X::VL6180x_RangeGetDeviceReady(VL6180xDev_t dev, int * Ready){
     int status;
     uint8_t u8;
@@ -1568,8 +1568,8 @@
     LOG_FUNCTION_END_FMT(status,"%d", *Ready);
     return status;
 }
-
-
+ 
+ 
 int VL6180X::VL6180x_RangeWaitDeviceReady(VL6180xDev_t dev, int MaxLoop ){
     int status; /* if user specify an invalid <=0 loop count we'll return error */
     int  n;
@@ -1586,7 +1586,7 @@
             u8 = u8 & RANGE_DEVICE_READY_MASK;
             if( u8 )
                 break;
-
+ 
         }
         if( !status && !u8 ){
             status = TIME_OUT;
@@ -1595,7 +1595,7 @@
     LOG_FUNCTION_END(status);
     return status;
 }
-
+ 
 int VL6180X::VL6180x_RangeSetSystemMode(VL6180xDev_t dev, uint8_t  mode)
 {
     int status;
@@ -1616,8 +1616,8 @@
     LOG_FUNCTION_END(status);
     return status;
 }
-
-
+ 
+ 
 int VL6180X::VL6180x_RangeStartContinuousMode(VL6180xDev_t dev)
 {
     int status;
@@ -1626,7 +1626,7 @@
     LOG_FUNCTION_END(status);
     return status;
 }
-
+ 
 int VL6180X::VL6180x_RangeStartSingleShot(VL6180xDev_t dev) {
     int status;
     LOG_FUNCTION_START("");
@@ -1634,12 +1634,12 @@
     LOG_FUNCTION_END(status);
     return status;
 }
-
-
+ 
+ 
 int VL6180X::VL6180x_RangeSetEarlyConvergenceEestimateThreshold(VL6180xDev_t dev)
 {
     int status;
-
+ 
     const uint32_t cMicroSecPerMilliSec  = 1000;
     const uint32_t cEceSampleTime_us     = 500;
     uint32_t ece_factor_m          = VL6180xDevDataGet(dev, EceFactorM);
@@ -1650,9 +1650,9 @@
     uint8_t  u8;
     uint32_t maxConv_ms;
     int32_t AveTime;
-
+ 
     LOG_FUNCTION_START("");
-
+ 
     do{
         status = VL6180x_RdByte(dev, SYSRANGE_MAX_CONVERGENCE_TIME, &u8);
         if( status ){
@@ -1665,7 +1665,7 @@
             status=-1;
             break;
         }
-
+ 
         convergTime_us = maxConv_ms * cMicroSecPerMilliSec - AveTime;
         status = VL6180x_RdDWord(dev, 0xB8, &fineThresh);
         if( status ) {
@@ -1674,15 +1674,15 @@
         }
         fineThresh*=256;
         eceThresh      = ece_factor_m * cEceSampleTime_us * fineThresh/(convergTime_us * ece_factor_d);
-
+ 
         status=VL6180x_WrWord(dev, SYSRANGE_EARLY_CONVERGENCE_ESTIMATE, (uint16_t)eceThresh);
     }
     while(0);
-
+ 
     LOG_FUNCTION_END(status);
     return status;
 }
-
+ 
 /*
  * Return >0 = time
  *       <0 1 if fail to get read data from device to compute time
@@ -1698,9 +1698,9 @@
     int32_t TotalAveTime_us;
     uint8_t u8;
     int status;
-
+ 
     LOG_FUNCTION_START("");
-
+ 
     status = VL6180x_RdByte(dev, 0x109, &u8);
     if (status) {
         VL6180x_ErrLog("rd 0x109 fail");
@@ -1715,25 +1715,25 @@
     SamplePeriod = u8;
     SingleTime_us = cFwOverhead_us + cVcpSetupTime_us + (SamplePeriod * 10);
     TotalAveTime_us = (Samples + 1) * SingleTime_us + cPLL2_StartupDelay_us;
-
+ 
     LOG_FUNCTION_END(TotalAveTime_us);
     return TotalAveTime_us;
 }
-
+ 
 #if VL6180x_HAVE_DMAX_RANGING
 #define _GetDMaxDataRetSignalAt400mm(dev) VL6180xDevDataGet(dev, DMaxData.retSignalAt400mm)
 #else
 #define _GetDMaxDataRetSignalAt400mm(dev) 375 // Use a default high value
 #endif
-
-
+ 
+ 
 #if VL6180x_WRAP_AROUND_FILTER_SUPPORT
-
+ 
 #define FILTER_STDDEV_SAMPLES           6
 #define MIN_FILTER_STDDEV_SAMPLES       3
 #define MIN_FILTER_VALID_STDDEV_SAMPLES 3
 #define FILTER_INVALID_DISTANCE     65535
-
+ 
 #define _FilterData(field) VL6180xDevDataGet(dev, FilterData.field)
 /*
  * One time init
@@ -1741,32 +1741,32 @@
 int _filter_Init( VL6180xDev_t dev) {
     int i;
     _FilterData(MeasurementIndex) = 0;
-
+ 
     _FilterData(Default_ZeroVal) = 0;
     _FilterData(Default_VAVGVal) = 0;
     _FilterData(NoDelay_ZeroVal) = 0;
     _FilterData(NoDelay_VAVGVal) = 0;
     _FilterData(Previous_VAVGDiff) = 0;
-
+ 
     _FilterData(StdFilteredReads) = 0;
-
+ 
     for (i = 0; i < FILTER_NBOF_SAMPLES; i++) {
         _FilterData(LastTrueRange)[i] = FILTER_INVALID_DISTANCE;
         _FilterData(LastReturnRates)[i] = 0;
     }
     return 0;
 }
-
-
+ 
+ 
 static uint32_t _filter_StdDevDamper(uint32_t AmbientRate, uint32_t SignalRate, const uint32_t StdDevLimitLowLight, const uint32_t StdDevLimitLowLightSNR, const uint32_t StdDevLimitHighLight, const uint32_t StdDevLimitHighLightSNR) {
     uint32_t newStdDev;
     uint16_t SNR;
-
+ 
     if (AmbientRate > 0)
         SNR = (uint16_t) ((100 * SignalRate) / AmbientRate);
     else
         SNR = 9999;
-
+ 
     if (SNR >= StdDevLimitLowLightSNR) {
         newStdDev = StdDevLimitLowLight;
     } else {
@@ -1776,35 +1776,35 @@
             newStdDev = (uint32_t) (StdDevLimitHighLight + (SNR - StdDevLimitHighLightSNR) * (int) (StdDevLimitLowLight - StdDevLimitHighLight) / (StdDevLimitLowLightSNR - StdDevLimitHighLightSNR));
         }
     }
-
+ 
     return newStdDev;
 }
-
-
+ 
+ 
 /*
  * Return <0 on error
  */
 int32_t VL6180X::_filter_Start(VL6180xDev_t dev, uint16_t m_trueRange_mm, uint16_t m_rawRange_mm, uint32_t m_rtnSignalRate, uint32_t m_rtnAmbientRate, uint16_t errorCode) {
     int status;
     uint16_t m_newTrueRange_mm = 0;
-
+ 
     uint16_t i;
     uint16_t bypassFilter = 0;
-
+ 
     uint16_t registerValue;
-
+ 
     uint32_t register32BitsValue1;
     uint32_t register32BitsValue2;
-
+ 
     uint16_t ValidDistance = 0;
-
+ 
     uint16_t WrapAroundFlag = 0;
     uint16_t NoWrapAroundFlag = 0;
     uint16_t NoWrapAroundHighConfidenceFlag = 0;
-
+ 
     uint16_t FlushFilter = 0;
     uint32_t RateChange = 0;
-
+ 
     uint16_t StdDevSamples = 0;
     uint32_t StdDevDistanceSum = 0;
     uint32_t StdDevDistanceMean = 0;
@@ -1813,44 +1813,44 @@
     uint32_t StdDevRateMean = 0;
     uint32_t StdDevRate = 0;
     uint32_t StdDevLimitWithTargetMove = 0;
-
+ 
     uint32_t VAVGDiff;
     uint32_t IdealVAVGDiff;
     uint32_t MinVAVGDiff;
     uint32_t MaxVAVGDiff;
-
+ 
     /* Filter Parameters */
     static const uint16_t ROMABLE_DATA WrapAroundLowRawRangeLimit = 60;
     static const uint32_t ROMABLE_DATA WrapAroundLowReturnRateLimit_ROM = 800; // Shall be adapted depending on crossTalk
     static const uint16_t ROMABLE_DATA WrapAroundLowRawRangeLimit2 = 165;
     static const uint32_t ROMABLE_DATA WrapAroundLowReturnRateLimit2_ROM = 180; // Shall be adapted depending on crossTalk and device sensitivity
-
+ 
     static const uint32_t ROMABLE_DATA WrapAroundLowReturnRateFilterLimit_ROM = 850; // Shall be adapted depending on crossTalk and device sensitivity
     static const uint16_t ROMABLE_DATA WrapAroundHighRawRangeFilterLimit = 350;
     static const uint32_t ROMABLE_DATA WrapAroundHighReturnRateFilterLimit_ROM = 1400; // Shall be adapted depending on crossTalk and device sensitivity
-
+ 
     static const uint32_t ROMABLE_DATA WrapAroundMaximumAmbientRateFilterLimit = 7500;
-
+ 
     /*  Temporal filter data and flush values */
     static const uint32_t ROMABLE_DATA MinReturnRateFilterFlush = 75;
     static const uint32_t ROMABLE_DATA MaxReturnRateChangeFilterFlush = 50;
-
+ 
     /* STDDEV values and damper values */
-
+ 
     static const uint32_t ROMABLE_DATA StdDevLimitLowLight = 300;
     static const uint32_t ROMABLE_DATA StdDevLimitLowLightSNR = 30; /* 0.3 */
     static const uint32_t ROMABLE_DATA StdDevLimitHighLight = 2500;
     static const uint32_t ROMABLE_DATA StdDevLimitHighLightSNR = 5; /* 0.05 */
-
+ 
     static const uint32_t ROMABLE_DATA StdDevHighConfidenceSNRLimit = 8;
-
+ 
     static const uint32_t ROMABLE_DATA StdDevMovingTargetStdDevLimit = 90000;
-
+ 
     static const uint32_t ROMABLE_DATA StdDevMovingTargetReturnRateLimit = 3500;
     static const uint32_t ROMABLE_DATA StdDevMovingTargetStdDevForReturnRateLimit = 5000;
-
+ 
     static const uint32_t ROMABLE_DATA MAX_VAVGDiff = 1800;
-
+ 
     /* WrapAroundDetection variables */
     static const uint16_t ROMABLE_DATA WrapAroundNoDelayCheckPeriod = 2;
     static const uint16_t ROMABLE_DATA StdFilteredReadsIncrement = 2;
@@ -1861,13 +1861,13 @@
     uint32_t WrapAroundLowReturnRateLimit2;
     uint32_t WrapAroundLowReturnRateFilterLimit;
     uint32_t WrapAroundHighReturnRateFilterLimit; 
-
+ 
     uint8_t u8, u8_2;
     uint32_t XTalkCompRate_KCps;
     uint32_t StdDevLimit = 300;
     uint32_t MaxOrInvalidDistance =   255*_GetUpscale(dev);
     /* #define MaxOrInvalidDistance  (uint16_t) (255 * 3) */
-
+ 
     /* Check if distance is Valid or not */
     switch (errorCode) {
     case 0x0C:
@@ -1893,7 +1893,7 @@
     m_newTrueRange_mm = m_trueRange_mm;
     
     XTalkCompRate_KCps = VL6180xDevDataGet(dev, XTalkCompRate_KCps );
-
+ 
     
     //Update signal rate limits depending on crosstalk
     SignalRateDMax = (uint32_t)_GetDMaxDataRetSignalAt400mm(dev) + XTalkCompRate_KCps;
@@ -1901,8 +1901,8 @@
     WrapAroundLowReturnRateLimit2 = ((WrapAroundLowReturnRateLimit2_ROM * SignalRateDMax) / 312) + XTalkCompRate_KCps;
     WrapAroundLowReturnRateFilterLimit = ((WrapAroundLowReturnRateFilterLimit_ROM * SignalRateDMax) / 312) + XTalkCompRate_KCps;
     WrapAroundHighReturnRateFilterLimit = ((WrapAroundHighReturnRateFilterLimit_ROM * SignalRateDMax) / 312) + XTalkCompRate_KCps; 
-
-
+ 
+ 
     /* Checks on low range data */
     if ((m_rawRange_mm < WrapAroundLowRawRangeLimit) && (m_rtnSignalRate < WrapAroundLowReturnRateLimit)) {
         m_newTrueRange_mm = MaxOrInvalidDistance;
@@ -1912,7 +1912,7 @@
         m_newTrueRange_mm = MaxOrInvalidDistance;
         bypassFilter = 1;
     }
-
+ 
     /* Checks on Ambient rate level */
     if (m_rtnAmbientRate > WrapAroundMaximumAmbientRateFilterLimit) {
         /* Too high ambient rate */
@@ -1953,11 +1953,11 @@
     else
         _FilterData(LastTrueRange)[0] = FILTER_INVALID_DISTANCE;
     _FilterData(LastReturnRates)[0] = m_rtnSignalRate;
-
+ 
     /* Check if we need to go through the filter or not */
     if (!(((m_rawRange_mm < WrapAroundHighRawRangeFilterLimit) && (m_rtnSignalRate < WrapAroundLowReturnRateFilterLimit)) || ((m_rawRange_mm >= WrapAroundHighRawRangeFilterLimit) && (m_rtnSignalRate < WrapAroundHighReturnRateFilterLimit))))
         bypassFilter = 1;
-
+ 
     /* Check which kind of measurement has been made */
     status = VL6180x_RdByte(dev, 0x01AC, &u8 );
     if( status ){
@@ -1965,7 +1965,7 @@
         goto done_err;
     }
     registerValue =u8;
-
+ 
     /* Read data for filtering */
     status = VL6180x_RdByte(dev, 0x10C, &u8 ); /* read only 8 lsb bits */
     if( status ){
@@ -1979,7 +1979,7 @@
         goto done_err;
     }
     register32BitsValue2 = u8;
-
+ 
     if (registerValue == 0x3E) {
         _FilterData(Default_ZeroVal) = register32BitsValue1;
         _FilterData(Default_VAVGVal) = register32BitsValue2;
@@ -1987,7 +1987,7 @@
         _FilterData(NoDelay_ZeroVal) = register32BitsValue1;
         _FilterData(NoDelay_VAVGVal) = register32BitsValue2;
     }
-
+ 
     if (bypassFilter == 1) {
         /* Do not go through the filter */
         if (registerValue != 0x3E) {
@@ -2008,13 +2008,13 @@
         _FilterData(NoDelay_ZeroVal) = register32BitsValue1;
         _FilterData(NoDelay_VAVGVal) = register32BitsValue2;
         _FilterData(MeasurementIndex) = 0;
-
+ 
         return m_newTrueRange_mm;
     }
-
+ 
     if (_FilterData(MeasurementIndex) % WrapAroundNoDelayCheckPeriod == 0) {
         u8=0x3C;
-		u8_2 = 0x05;
+        u8_2 = 0x05;
     } else {
         u8=0x3E;
         u8_2 = 0x01;
@@ -2029,17 +2029,17 @@
         VL6180x_ErrLog("0x0F2  wr fail");
         goto done_err;
     }
-
-
+ 
+ 
     _FilterData(MeasurementIndex)++;
-
+ 
     /* Computes current VAVGDiff */
     if (_FilterData(Default_VAVGVal) > _FilterData(NoDelay_VAVGVal))
         VAVGDiff = _FilterData(Default_VAVGVal) - _FilterData(NoDelay_VAVGVal);
     else
         VAVGDiff = 0;
     _FilterData(Previous_VAVGDiff) = VAVGDiff;
-
+ 
     /* Check the VAVGDiff */
     if (_FilterData(Default_ZeroVal) > _FilterData(NoDelay_ZeroVal))
         IdealVAVGDiff = _FilterData(Default_ZeroVal) - _FilterData(NoDelay_ZeroVal);
@@ -2054,10 +2054,10 @@
         WrapAroundFlag = 1;
     } else {
         /* Go through filtering check */
-
+ 
         /* StdDevLimit Damper on SNR */
         StdDevLimit = _filter_StdDevDamper(m_rtnAmbientRate, m_rtnSignalRate, StdDevLimitLowLight, StdDevLimitLowLightSNR, StdDevLimitHighLight, StdDevLimitHighLightSNR);
-
+ 
         /* Standard deviations computations */
         StdDevSamples = 0;
         StdDevDistanceSum = 0;
@@ -2095,7 +2095,7 @@
             StdDevDistance = 0;
             StdDevRate = 0;
         }
-
+ 
         /* Check Return rate standard deviation */
         if (StdDevRate < StdDevMovingTargetStdDevLimit) {
             if (StdDevSamples < MIN_FILTER_VALID_STDDEV_SAMPLES) {
@@ -2106,7 +2106,7 @@
                     StdDevLimitWithTargetMove = StdDevLimit + (((StdDevMovingTargetStdDevForReturnRateLimit - StdDevLimit) * StdDevRate) / StdDevMovingTargetReturnRateLimit);
                 else
                     StdDevLimitWithTargetMove = StdDevMovingTargetStdDevForReturnRateLimit;
-
+ 
                 if ((StdDevDistance * StdDevHighConfidenceSNRLimit) < StdDevLimitWithTargetMove) {
                     NoWrapAroundHighConfidenceFlag = 1;
                 } else {
@@ -2125,7 +2125,7 @@
             WrapAroundFlag = 1;
         }
     }
-
+ 
     if (m_newTrueRange_mm == MaxOrInvalidDistance) {
         if (_FilterData(StdFilteredReads) > 0)
             _FilterData(StdFilteredReads) = (uint16_t) (_FilterData(StdFilteredReads) - 1);
@@ -2151,22 +2151,22 @@
             }
         }
     }
-
+ 
     return m_newTrueRange_mm;
     done_err:
     return -1;
-
+ 
     #undef MaxOrInvalidDistance
 }
-
-
+ 
+ 
 int VL6180X::_filter_GetResult(VL6180xDev_t dev, VL6180x_RangeData_t *pRangeData) {
     uint32_t m_rawRange_mm = 0;
     int32_t  FilteredRange;
     const uint8_t scaler = _GetUpscale(dev);
     uint8_t u8;
     int status;
-
+ 
     do {
         status = VL6180x_RdByte(dev, RESULT_RANGE_RAW, &u8);
         if (status) {
@@ -2174,7 +2174,7 @@
             break;
         }
         m_rawRange_mm = u8;
-
+ 
         FilteredRange = _filter_Start(dev, pRangeData->range_mm, (m_rawRange_mm * scaler), pRangeData->rtnRate, pRangeData->rtnAmbRate, pRangeData->errorStatus);
         if( FilteredRange<0 ){
             status = -1;
@@ -2185,17 +2185,17 @@
     } while (0);
     return status;
 }
-
+ 
 #undef _FilterData
 #undef FILTER_STDDEV_SAMPLES
 #undef MIN_FILTER_STDDEV_SAMPLES
 #undef MIN_FILTER_VALID_STDDEV_SAMPLES
 #undef FILTER_INVALID_DISTANCE
-
+ 
 #endif /* VL6180x_WRAP_AROUND_FILTER_SUPPORT */
-
+ 
 #ifdef VL6180x_HAVE_RATE_DATA
-
+ 
 int VL6180X::_GetRateResult(VL6180xDev_t dev, VL6180x_RangeData_t *pRangeData) {
     uint32_t m_rtnConvTime = 0;
     uint32_t m_rtnSignalRate = 0;
@@ -2206,11 +2206,11 @@
     uint32_t cRtnSignalCountMax = 0x7FFFFFFF;
     uint32_t cDllPeriods = 6;
     uint32_t calcConvTime = 0;
-
+ 
     int status;
-
+ 
     do {
-
+ 
         status = VL6180x_RdDWord(dev, RESULT_RANGE_RETURN_SIGNAL_COUNT, &m_rtnSignalCount);
         if (status) {
             VL6180x_ErrLog("RESULT_RANGE_RETURN_SIGNAL_COUNT rd fail");
@@ -2219,49 +2219,49 @@
         if (m_rtnSignalCount > cRtnSignalCountMax) {
             m_rtnSignalCount = 0;
         }
-
+ 
         status = VL6180x_RdDWord(dev, RESULT_RANGE_RETURN_AMB_COUNT, &m_rtnAmbientCount);
         if (status) {
             VL6180x_ErrLog("RESULT_RANGE_RETURN_AMB_COUNTrd fail");
             break;
         }
-
-
+ 
+ 
         status = VL6180x_RdDWord(dev, RESULT_RANGE_RETURN_CONV_TIME, &m_rtnConvTime);
         if (status) {
             VL6180x_ErrLog("RESULT_RANGE_RETURN_CONV_TIME rd fail");
             break;
         }
-
+ 
         status = VL6180x_RdDWord(dev, RESULT_RANGE_REFERENCE_CONV_TIME, &m_refConvTime);
         if (status) {
             VL6180x_ErrLog("RESULT_RANGE_REFERENCE_CONV_TIME rd fail");
             break;
         }
-
+ 
         pRangeData->rtnConvTime = m_rtnConvTime;
         pRangeData->refConvTime = m_refConvTime;
-
+ 
         calcConvTime = m_refConvTime;
         if (m_rtnConvTime > m_refConvTime) {
             calcConvTime = m_rtnConvTime;
         }
         if (calcConvTime == 0)
             calcConvTime = 63000;
-
+ 
         m_rtnSignalRate = (m_rtnSignalCount * 1000) / calcConvTime;
         m_rtnAmbientRate = (m_rtnAmbientCount * cDllPeriods * 1000) / calcConvTime;
-
+ 
         pRangeData->rtnRate = m_rtnSignalRate;
         pRangeData->rtnAmbRate = m_rtnAmbientRate;
-
-
+ 
+ 
     } while (0);
     return status;
 }
 #endif /* VL6180x_HAVE_RATE_DATA */
-
-
+ 
+ 
 int VL6180X::VL6180x_DMaxSetState(VL6180xDev_t dev, int state){
     int status;
     LOG_FUNCTION_START("%d", state);
@@ -2279,7 +2279,7 @@
     LOG_FUNCTION_END(status);
     return status;
 }
-
+ 
 int VL6180X::VL6180x_DMaxGetState(VL6180xDev_t dev){
     int status;
     LOG_FUNCTION_START("");
@@ -2291,17 +2291,17 @@
     LOG_FUNCTION_END(status);
     return status;
 }
-
-
+ 
+ 
 #if VL6180x_HAVE_DMAX_RANGING
-
+ 
 #define _DMaxData(field) VL6180xDevDataGet(dev, DMaxData.field)
 /*
  * Convert fix point  x.7 to KCpount per sec
  */
-
+ 
 #ifndef VL6180x_PLATFORM_PROVIDE_SQRT
-
+ 
 /*
  * 32 bit integer square root with not so bad precision (integer result) and is quite fast
  * see http://en.wikipedia.org/wiki/Methods_of_computing_square_roots
@@ -2309,11 +2309,11 @@
 uint32_t VL6180x_SqrtUint32(uint32_t num) {
     uint32_t res = 0;
     uint32_t bit = 1 << 30; /* The second-to-top bit is set: 1 << 30 for 32 bits */
-
+ 
     /* "bit" starts at the highest power of four <= the argument. */
     while (bit > num)
         bit >>= 2;
-
+ 
     while (bit != 0) {
         if (num >= res + bit) {
             num -= res + bit;
@@ -2326,22 +2326,22 @@
     return res;
 }
 #endif
-
-
+ 
+ 
 /* DMax one time init */
 void _DMax_OneTimeInit(VL6180xDev_t dev){
     _DMaxData(ambTuningWindowFactor_K)=DEF_AMBIENT_TUNING;
 }
-
-
+ 
+ 
 static uint32_t _DMax_RawValueAtRateKCps(VL6180xDev_t dev, int32_t rate){
     uint32_t snrLimit_K;
     int32_t DMaxSq;
     uint32_t RawDMax;
     DMaxFix_t retSignalAt400mm;
     uint32_t ambTuningWindowFactor_K;
-
-
+ 
+ 
     ambTuningWindowFactor_K = _DMaxData(ambTuningWindowFactor_K);
     snrLimit_K              = _DMaxData(snrLimit_K);
     retSignalAt400mm        = _DMaxData(retSignalAt400mm); /* 12 to 18 bits Kcps */
@@ -2365,7 +2365,7 @@
     }
     return RawDMax;
 }
-
+ 
 /*
  * fetch static data from register to avoid re-read
  * precompute all intermediate constant and cliipings
@@ -2392,9 +2392,9 @@
     uint8_t SysRangeCheckEn;
     uint8_t snrLimit;
     warning=0;
-
+ 
     static const int ROMABLE_DATA MaxConvTimeAdjust=-4;
-
+ 
     LOG_FUNCTION_START("");
     do{
         status = VL6180x_RdByte(dev, 0x02A ,&u8);
@@ -2402,31 +2402,31 @@
             VL6180x_ErrLog("Reg 0x02A rd fail");
             break;
         }
-
+ 
         if( u8 == 0 ) {
             warning = CALIBRATION_WARNING;
             u8 = 40; /* use a default average value */
         }
         Reg2A_KCps = Fix7_2_KCPs(u8); /* convert to KCPs */
-
+ 
         status = VL6180x_RdByte(dev, SYSRANGE_RANGE_CHECK_ENABLES, &SysRangeCheckEn);
         if (status) {
             VL6180x_ErrLog("SYSRANGE_RANGE_CHECK_ENABLES rd fail ");
             break;
         }
-
+ 
         status = VL6180x_RdByte(dev, SYSRANGE_MAX_CONVERGENCE_TIME, &MaxConvTime);
         if( status){
             VL6180x_ErrLog("SYSRANGE_MAX_CONVERGENCE_TIME rd fail ");
             break;
         }
-
+ 
         status = VL6180x_RdDWord(dev, 0x0B8, &RegB8);
         if( status ){
             VL6180x_ErrLog("reg 0x0B8 rd fail ");
             break;
         }
-
+ 
         status = VL6180x_RdByte(dev, SYSRANGE_MAX_AMBIENT_LEVEL_MULT, &snrLimit);
         if( status){
             VL6180x_ErrLog("SYSRANGE_MAX_AMBIENT_LEVEL_MULT rd fail ");
@@ -2434,14 +2434,14 @@
         }
         _DMaxData(snrLimit_K) = (int32_t)16*1000/snrLimit;
         XTalkCompRate_KCps =   VL6180xDevDataGet(dev, XTalkCompRate_KCps );
-
+ 
         if( Reg2A_KCps >= XTalkCompRate_KCps){
             _DMaxData(retSignalAt400mm)=( Reg2A_KCps - XTalkCompRate_KCps);
         }
         else{
             _DMaxData(retSignalAt400mm)=0;             /* Reg2A_K - XTalkCompRate_KCp <0 is invalid */
         }
-
+ 
         /* if xtalk range check is off omit it in snr clipping */
         if( SysRangeCheckEn&RANGE_CHECK_RANGE_ENABLE_MASK ){
             status = VL6180x_RdWord(dev, SYSRANGE_RANGE_IGNORE_THRESHOLD, &u16);
@@ -2454,12 +2454,12 @@
         else{
             RangeIgnoreThreshold  = 0;
         }
-
+ 
         minSignalNeeded = (RegB8*256)/((int32_t)MaxConvTime+(int32_t)MaxConvTimeAdjust); /* KCps 8+8 bit -(1 to 6 bit) => 15-10 bit */
         /* minSignalNeeded = max ( minSignalNeeded,  RangeIgnoreThreshold - XTalkCompRate_KCps) */
         if( minSignalNeeded  <= RangeIgnoreThreshold - XTalkCompRate_KCps )
             minSignalNeeded  =  RangeIgnoreThreshold - XTalkCompRate_KCps;
-
+ 
         u32 = (minSignalNeeded*(uint32_t)snrLimit)/16;
         _DMaxData(ClipSnrLimit ) = _DMax_RawValueAtRateKCps(dev, u32 ); /* clip to dmax to min signal snr limit rate*/
     }
@@ -2469,20 +2469,20 @@
     LOG_FUNCTION_END(status);
     return status;
 }
-
+ 
 static int _DMax_Compute(VL6180xDev_t dev, VL6180x_RangeData_t *pRange){
     uint32_t rtnAmbRate;
     int32_t DMax;
     int scaling;
     uint16_t HwLimitAtScale;
     static const int ROMABLE_DATA rtnAmbLowLimit_KCps=330*1000;
-
+ 
     rtnAmbRate = pRange->rtnAmbRate;
     if( rtnAmbRate  < rtnAmbLowLimit_KCps ){
         DMax = _DMax_RawValueAtRateKCps( dev, rtnAmbRate);
         scaling = _GetUpscale(dev);
         HwLimitAtScale=UpperLimitLookUP[scaling - 1];
-
+ 
         if( DMax > _DMaxData(ClipSnrLimit) ){
             DMax=_DMaxData(ClipSnrLimit);
         }
@@ -2496,1081 +2496,1097 @@
     }
     return 0;
 }
-
+ 
 #undef _DMaxData
 #undef Fix7_2_KCPs
-
+ 
 #endif /* VL6180x_HAVE_DMAX_RANGING */
-
-
+ 
+ 
 /******************************************************************************/
 /******************************************************************************/
-
-
-
+ 
+ 
+ 
 /****************** Write and read functions from I2C *************************/
-
+ 
 int VL6180X::VL6180x_WrByte(VL6180xDev_t dev, uint16_t index, uint8_t data)
 {
-    int  status;
-
-    status=VL6180x_I2CWrite(Device->I2cAddr, index, &data,(uint8_t)1);
-    return status;
+   int  status;
+ 
+   status=VL6180x_I2CWrite(Device->I2cAddr, index, &data,(uint8_t)1);
+   return status;
 }
-
+ 
 int VL6180X::VL6180x_WrWord(VL6180xDev_t dev, uint16_t index, uint16_t data)
 {
-    int  status;
-    status=VL6180x_I2CWrite(Device->I2cAddr, index, (uint8_t *)&data,(uint8_t)2);
-    return status;
+   int  status;
+   
+   status=VL6180x_I2CWrite(Device->I2cAddr, index, (uint8_t *)&data,(uint8_t)2);
+   return status;
 }
-
+ 
 int VL6180X::VL6180x_WrDWord(VL6180xDev_t dev, uint16_t index, uint32_t data)
 {
-    int  status;
-	  status=VL6180x_I2CWrite(Device->I2cAddr, index, (uint8_t *)&data,(uint8_t)4);
-    return status;
+   int  status;
+   
+   status=VL6180x_I2CWrite(Device->I2cAddr, index, (uint8_t *)&data,(uint8_t)4);
+   return status;
 }
-
+ 
 int VL6180X::VL6180x_RdByte(VL6180xDev_t dev, uint16_t index, uint8_t *data)
 {
-    int  status;
-    uint8_t buffer;
-    status=VL6180x_I2CRead(Device->I2cAddr, index, &buffer,1);
-    if( !status )
-		{
-       *data=buffer;
-    }
-    return status;
+   int  status;
+    
+   uint8_t buffer;
+   status=VL6180x_I2CRead(Device->I2cAddr, index, &buffer,1);
+   if(!status)
+   {
+      *data=buffer;
+   }
+   return status;
 }
-
+ 
 int VL6180X::VL6180x_RdWord(VL6180xDev_t dev, uint16_t index, uint16_t *data)
 {
-    int  status;
-    uint8_t buffer[2];
-    status=VL6180x_I2CRead(Device->I2cAddr, index, buffer, 2);
-	  if( !status )
-		{
-       memcpy(data, buffer, 2);
-    }
-    return status;
+   int  status;
+    
+   uint8_t buffer[2];
+   status=VL6180x_I2CRead(Device->I2cAddr, index, buffer, 2);
+   if(!status)
+   {
+      memcpy(data, buffer, 2);
+   }
+   return status;
 }
-
+ 
 int VL6180X::VL6180x_RdDWord(VL6180xDev_t dev, uint16_t index, uint32_t *data)
 {
-    int status;
-    uint8_t buffer[4];
-    status=VL6180x_I2CRead(Device->I2cAddr, index, buffer,4);
-	  if( !status )
-		{
-       memcpy(data, buffer, 4);
-    }
-    return status;
+   int status;
+   uint8_t buffer[4];
+   status=VL6180x_I2CRead(Device->I2cAddr, index, buffer,4);
+   if(!status)
+   {
+      memcpy(data, buffer, 4);
+   }
+   return status;
 }
-
+ 
 int VL6180X::VL6180x_UpdateByte(VL6180xDev_t dev, uint16_t index, uint8_t AndData, uint8_t OrData)
 {
-    int  status;
-    uint8_t buffer;
-
-    status=VL6180x_I2CWrite(Device->I2cAddr, index, (uint8_t *)buffer,(uint8_t)0);
-    if( !status ){
-        /* read data direct onto buffer */
-        status=VL6180x_I2CRead(Device->I2cAddr, index, &buffer,1);
-        if( !status ){
-            buffer=(buffer & AndData)|OrData;
-            status=VL6180x_I2CWrite(Device->I2cAddr, index, &buffer, (uint8_t)1);
-        }
-    }
-
-    return status;
+   int  status;
+   uint8_t buffer;
+ 
+   status=VL6180x_I2CWrite(Device->I2cAddr, index, (uint8_t *)buffer,(uint8_t)0);
+   if(!status)
+   {
+      /* read data direct onto buffer */
+      status=VL6180x_I2CRead(Device->I2cAddr, index, &buffer,1);
+      if(!status)
+      {
+         buffer=(buffer & AndData)|OrData;
+         status=VL6180x_I2CWrite(Device->I2cAddr, index, &buffer, (uint8_t)1);
+      }
+   }
+   return status;
 }
-
+ 
 int VL6180X::VL6180x_I2CWrite(uint8_t DeviceAddr, uint16_t RegisterAddr, uint8_t* pBuffer, uint16_t NumByteToWrite)
 {
-    int ret;
-	  int i;
-    uint8_t tmp[TEMP_BUF_SIZE];
-    uint16_t myRegisterAddr = RegisterAddr;
-	  uint16_t WriteDeviceAddr=0;
-    /* First, prepare 8 bits device address in 7bits i2ci format */
-	  WriteDeviceAddr=DeviceAddr*2;
-    if(NumByteToWrite >= TEMP_BUF_SIZE) return -2;
+   int ret;
+   int i;
+   uint8_t tmp[TEMP_BUF_SIZE];
+   uint16_t myRegisterAddr = RegisterAddr;
+   uint16_t WriteDeviceAddr=0;
+   
+   /* First, prepare 8 bits device address in 7bits i2ci format */
+   WriteDeviceAddr=DeviceAddr*2;
+   if(NumByteToWrite >= TEMP_BUF_SIZE) return -2;
         
-    /* then prepare 16 bits register address in BE format. Then, send data and STOP condition */
-    tmp[0] = *(((uint8_t*)&myRegisterAddr)+1);  
-    tmp[1] = (uint8_t)RegisterAddr;
+   /* then prepare 16 bits register address in BE format. Then, send data and STOP condition */
+   tmp[0] = *(((uint8_t*)&myRegisterAddr)+1);  
+   tmp[1] = (uint8_t)RegisterAddr;
     
-    if(NumByteToWrite>1)  /* swap data endianess */
-    {
-    	  for(i=0;i<NumByteToWrite;i++)
-    	  {
-    	  	 tmp[NumByteToWrite+sizeof(RegisterAddr)-1-i]=pBuffer[i];
-    	  }
-    }
-		else
-		{  	 
-        memcpy(tmp+sizeof(RegisterAddr), pBuffer, NumByteToWrite);
-    }
-    ret = dev_i2c.write(WriteDeviceAddr, (const char*)tmp, NumByteToWrite+sizeof(RegisterAddr), false);
- 
-    if(ret) return -1;
-    return 0;
+   if(NumByteToWrite>1)  /* swap data endianess */
+   {
+      for(i=0;i<NumByteToWrite;i++)
+      {
+         tmp[NumByteToWrite+sizeof(RegisterAddr)-1-i]=pBuffer[i];
+      }
+   }
+   else
+   {    
+      memcpy(tmp+sizeof(RegisterAddr), pBuffer, NumByteToWrite);
+   }
+   ret = dev_i2c.write(WriteDeviceAddr, (const char*)tmp, NumByteToWrite+sizeof(RegisterAddr), false);
+ 
+   if(ret) 
+      return -1;
+   return 0;
 }
-
+ 
 int VL6180X::VL6180x_I2CRead(uint8_t DeviceAddr, uint16_t RegisterAddr, uint8_t* pBuffer, uint16_t NumByteToRead)
 {
-    int ret,i;
-    uint8_t tmp[TEMP_BUF_SIZE];	
-    uint16_t myRegisterAddr = RegisterAddr;
-    uint16_t myRegisterAddrBE;
-	  uint16_t ReadDeviceAddr=DeviceAddr;
+   int ret,i;
+   uint8_t tmp[TEMP_BUF_SIZE]; 
+   uint16_t myRegisterAddr = RegisterAddr;
+   uint16_t myRegisterAddrBE;
+   uint16_t ReadDeviceAddr=DeviceAddr;
      
-    ReadDeviceAddr=DeviceAddr*2;	
-    myRegisterAddrBE = *(((uint8_t*)&myRegisterAddr)+1);
-    *(((uint8_t*)&myRegisterAddrBE)+1) = (uint8_t)myRegisterAddr;
+   ReadDeviceAddr=DeviceAddr*2;    
+   myRegisterAddrBE = *(((uint8_t*)&myRegisterAddr)+1);
+   *(((uint8_t*)&myRegisterAddrBE)+1) = (uint8_t)myRegisterAddr;
     
-    /* Send 8 bits device address and 16 bits register address in BE format, with no STOP condition */
-    ret = dev_i2c.write(ReadDeviceAddr, (const char*)&myRegisterAddrBE, sizeof(RegisterAddr), true);
-    if(!ret) {
-			  ReadDeviceAddr|=0x001;
-        /* Read data, with STOP condition  */
-        ret = dev_i2c.read(ReadDeviceAddr, (char*)tmp, NumByteToRead, false);
-    }    
-    if(ret) return -1;
-		
-    if(NumByteToRead>1)  /* swap data endianess */
-    {
-    	 for(i=0;i<NumByteToRead;i++)
-    	 {		
-			    pBuffer[i] = tmp[NumByteToRead-1-i];
-    	 }
-    }
-	  else
-	  {  	 
-       memcpy(pBuffer, tmp, NumByteToRead);
-    }		
-    return 0;
+   /* Send 8 bits device address and 16 bits register address in BE format, with no STOP condition */
+   ret = dev_i2c.write(ReadDeviceAddr, (const char*)&myRegisterAddrBE, sizeof(RegisterAddr), true);
+   if(!ret) 
+   {
+      ReadDeviceAddr|=0x001;
+      /* Read data, with STOP condition  */
+      ret = dev_i2c.read(ReadDeviceAddr, (char*)tmp, NumByteToRead, false);
+   }    
+   if(ret) 
+      return -1;
+        
+   if(NumByteToRead>1)  /* swap data endianess */
+   {
+      for(i=0;i<NumByteToRead;i++)
+      {      
+         pBuffer[i] = tmp[NumByteToRead-1-i];
+      }
+   }
+   else
+   {      
+      memcpy(pBuffer, tmp, NumByteToRead);
+   }       
+   return 0;
 } 
-
-
+ 
+ 
 int VL6180X::ReadID()
 {
-	 int status;
-	 uint8_t rl_id=0;
-	
-	 status=VL6180x_RdByte(Device, IDENTIFICATION_MODEL_ID, &rl_id);
-	 if((status==0)&&(rl_id==0xB4))
-		  return status;
-	 else
-		  return INVALID_PARAMS;
+   int status;
+   uint8_t rl_id=0;
+    
+   status=VL6180x_RdByte(Device, IDENTIFICATION_MODEL_ID, &rl_id);
+   if((status==0)&&(rl_id==0xB4))
+     return status;
+   else
+     return INVALID_PARAMS;
 }
-
-
+ 
+ 
 int VL6180X::InitSensor(uint8_t NewAddr) //FIXME printf da sostituire con VL6180x_ErrLog e poi specificare il contenuto di questa funzione
 {
    int status;
-
+ 
    VL6180x_Off();
    VL6180x_On();
-	 /*status=VL6180x_WaitDeviceBooted(Device);
-	 if(status)
-		  printf("WaitDeviceBooted fail\n\r");*/
+     /*status=VL6180x_WaitDeviceBooted(Device);
+     if(status)
+          printf("WaitDeviceBooted fail\n\r");*/
    status=IsPresent();
    if(!status)
    {
-     Device->Present=1;
-		 status=Init();
-     if(status)
-		 {
-       printf("Failed to init VL6180X sensor!\n\r");
-			 return status;
-		 }
-		 status=Prepare();
-     if(status)
-		 {
-       printf("Failed to prepare VL6180X!\n\r");
-			 return status;
-		 }
-		 if(NewAddr!=DEFAULT_DEVICE_ADDRESS)
-		 {
-        status=SetI2CAddress(NewAddr);
-        if(status)
-				{
-			    printf("Failed to change I2C address!\n\r");
-					return status;
-				}
-		 }
-		 else
-		 {
-			  printf("Invalid new address!\n\r");
-			  return INVALID_PARAMS;
-		 }
-		 Device->Ready=1;
- 	 }
-	 return status; 
+      Device->Present=1;
+      status=Init();
+      if(status)
+      {
+         printf("Failed to init VL6180X sensor!\n\r");
+         return status;
+      }
+      status=Prepare();
+      if(status)
+      {
+         printf("Failed to prepare VL6180X!\n\r");
+         return status;
+      }
+      if(NewAddr!=DEFAULT_DEVICE_ADDRESS)
+      {
+         status=SetI2CAddress(NewAddr);
+         if(status)
+         {
+            printf("Failed to change I2C address!\n\r");
+            return status;
+         }
+      }
+      else
+      {
+         printf("Invalid new address!\n\r");
+         return INVALID_PARAMS;
+      }
+      Device->Ready=1;
+   }
+   VL6180x_RangeSetMaxConvergenceTime(Device,10); //FIXME temporaneo, capire se devo fissare questi valori di default oppure impostarli solo quando faccio la hand gesture
+   VL6180x_RangeSetInterMeasPeriod(Device,10); //FIXME
+   return status; 
 }
-
-
+ 
+ 
 int VL6180X::StartMeasurement(OperatingMode operating_mode, void (*fptr)(void), MeasureData_t *Data, uint16_t low, uint16_t high) 
 {
    int status, r_status, l_status;
-	
+    
    switch(operating_mode)
    {
-		  case(range_single_shot_polling):
-				r_status=VL6180x_RangeConfigInterrupt(Device, CONFIG_GPIO_INTERRUPT_NEW_SAMPLE_READY);
-			  l_status=VL6180x_AlsConfigInterrupt(Device, CONFIG_GPIO_INTERRUPT_DISABLED);
-			  if((!r_status)&&(!l_status))
-				   return RangeMeasPollSingleShot(Data);
-				else
-					 return (r_status|l_status);
-		
+      case(range_single_shot_polling):
+        r_status=VL6180x_RangeConfigInterrupt(Device, CONFIG_GPIO_INTERRUPT_NEW_SAMPLE_READY);
+        l_status=VL6180x_AlsConfigInterrupt(Device, CONFIG_GPIO_INTERRUPT_DISABLED);
+        if((!r_status)&&(!l_status))
+           return RangeMeasPollSingleShot(Data);
+        else
+           return (r_status|l_status);
+        
       case(als_single_shot_polling):
-				r_status=VL6180x_AlsConfigInterrupt(Device, CONFIG_GPIO_INTERRUPT_NEW_SAMPLE_READY);
-			  l_status=VL6180x_RangeConfigInterrupt(Device, CONFIG_GPIO_INTERRUPT_DISABLED);
-			  if((!r_status)&&(!l_status))
-			     return AlsMeasPollSingleShot(Data);
-				else
-					 return (r_status|l_status);
-			
-			case(range_continuous_polling):
-				r_status=VL6180x_RangeConfigInterrupt(Device, CONFIG_GPIO_INTERRUPT_NEW_SAMPLE_READY);
-			  l_status=VL6180x_AlsConfigInterrupt(Device, CONFIG_GPIO_INTERRUPT_DISABLED);
-			  if((!r_status)&&(!l_status))
-				   return RangeMeasPollContinuousMode();
-				else
-					 return (r_status|l_status);
-				 
-			case(als_continuous_polling):
-				r_status=VL6180x_AlsConfigInterrupt(Device, CONFIG_GPIO_INTERRUPT_NEW_SAMPLE_READY);
-			  l_status=VL6180x_RangeConfigInterrupt(Device, CONFIG_GPIO_INTERRUPT_DISABLED);
-			  if((!r_status)&&(!l_status))
-				   return AlsMeasPollContinuousMode();
-			  else
-					 return (r_status|l_status);
-				 
+        r_status=VL6180x_AlsConfigInterrupt(Device, CONFIG_GPIO_INTERRUPT_NEW_SAMPLE_READY);
+        l_status=VL6180x_RangeConfigInterrupt(Device, CONFIG_GPIO_INTERRUPT_DISABLED);
+        if((!r_status)&&(!l_status))
+           return AlsMeasPollSingleShot(Data);
+        else
+           return (r_status|l_status);
+            
+      case(range_continuous_polling):
+        r_status=VL6180x_RangeConfigInterrupt(Device, CONFIG_GPIO_INTERRUPT_NEW_SAMPLE_READY);
+        l_status=VL6180x_AlsConfigInterrupt(Device, CONFIG_GPIO_INTERRUPT_DISABLED);
+        if((!r_status)&&(!l_status))
+           return RangeMeasPollContinuousMode();
+        else
+           return (r_status|l_status);
+                 
+      case(als_continuous_polling):
+        r_status=VL6180x_AlsConfigInterrupt(Device, CONFIG_GPIO_INTERRUPT_NEW_SAMPLE_READY);
+        l_status=VL6180x_RangeConfigInterrupt(Device, CONFIG_GPIO_INTERRUPT_DISABLED);
+        if((!r_status)&&(!l_status))
+           return AlsMeasPollContinuousMode();
+        else
+           return (r_status|l_status);
+                 
       case(range_continuous_interrupt):
-				r_status=VL6180x_RangeConfigInterrupt(Device, CONFIG_GPIO_INTERRUPT_NEW_SAMPLE_READY);
-			  l_status=VL6180x_AlsConfigInterrupt(Device, CONFIG_GPIO_INTERRUPT_DISABLED);
-			  if((!r_status)&&(!l_status))
-				   return RangeMeasIntContinuousMode(fptr);
-				else
-					 return (r_status|l_status);
-					 
-		  case(als_continuous_interrupt):
-				l_status=VL6180x_AlsConfigInterrupt(Device, CONFIG_GPIO_INTERRUPT_NEW_SAMPLE_READY);
-			  r_status=VL6180x_RangeConfigInterrupt(Device, CONFIG_GPIO_INTERRUPT_DISABLED);
-			  if((!r_status)&&(!l_status))
-				   return AlsMeasIntContinuousMode(fptr);
-				else
-					 return (r_status|l_status);
-
-		  case(interleaved_mode_interrupt):
-				l_status=VL6180x_AlsConfigInterrupt(Device, CONFIG_GPIO_INTERRUPT_NEW_SAMPLE_READY);
-				r_status=VL6180x_RangeConfigInterrupt(Device, CONFIG_GPIO_INTERRUPT_DISABLED);			  
-			  if((!r_status)&&(!l_status))
-			     return InterleavedMode(fptr);
-				else
-					 return (r_status|l_status);
-
+        r_status=VL6180x_RangeConfigInterrupt(Device, CONFIG_GPIO_INTERRUPT_NEW_SAMPLE_READY);
+        l_status=VL6180x_AlsConfigInterrupt(Device, CONFIG_GPIO_INTERRUPT_DISABLED);
+        if((!r_status)&&(!l_status))
+           return RangeMeasIntContinuousMode(fptr);
+        else
+           return (r_status|l_status);
+                     
+      case(als_continuous_interrupt):
+        l_status=VL6180x_AlsConfigInterrupt(Device, CONFIG_GPIO_INTERRUPT_NEW_SAMPLE_READY);
+        r_status=VL6180x_RangeConfigInterrupt(Device, CONFIG_GPIO_INTERRUPT_DISABLED);
+        if((!r_status)&&(!l_status))
+           return AlsMeasIntContinuousMode(fptr);
+        else
+           return (r_status|l_status);
+ 
+      case(interleaved_mode_interrupt):
+        l_status=VL6180x_AlsConfigInterrupt(Device, CONFIG_GPIO_INTERRUPT_NEW_SAMPLE_READY);
+        r_status=VL6180x_RangeConfigInterrupt(Device, CONFIG_GPIO_INTERRUPT_DISABLED);            
+        if((!r_status)&&(!l_status))
+           return InterleavedMode(fptr);
+        else
+           return (r_status|l_status);
+ 
       case(range_continuous_polling_low_threshold):
-				r_status=VL6180x_RangeConfigInterrupt(Device, CONFIG_GPIO_INTERRUPT_LEVEL_LOW);
-			  l_status=VL6180x_AlsConfigInterrupt(Device, CONFIG_GPIO_INTERRUPT_DISABLED);
-			  if((!r_status)&&(!l_status))
-				{
+        r_status=VL6180x_RangeConfigInterrupt(Device, CONFIG_GPIO_INTERRUPT_LEVEL_LOW);
+        l_status=VL6180x_AlsConfigInterrupt(Device, CONFIG_GPIO_INTERRUPT_DISABLED);
+        if((!r_status)&&(!l_status))
+        {
            status=RangeSetLowThreshold(low);
-			     if(!status)
-				      return RangeMeasPollContinuousMode();
-				   else
-					    return status;
-				}
+           if(!status)
+              return RangeMeasPollContinuousMode();
+           else
+              return status;
+        }
         else
            return (r_status|l_status);
        
-			case(range_continuous_polling_high_threshold):
+      case(range_continuous_polling_high_threshold):
         status=VL6180x_RangeConfigInterrupt(Device, CONFIG_GPIO_INTERRUPT_LEVEL_HIGH);
-			  status=VL6180x_AlsConfigInterrupt(Device, CONFIG_GPIO_INTERRUPT_DISABLED);
-			  if((!r_status)&&(!l_status))
-				{
+        status=VL6180x_AlsConfigInterrupt(Device, CONFIG_GPIO_INTERRUPT_DISABLED);
+        if((!r_status)&&(!l_status))
+        {
            status=RangeSetHighThreshold(high);
-			     if(!status)
-				      return RangeMeasPollContinuousMode();
-				   else
-					    return status;
-				}
+           if(!status)
+              return RangeMeasPollContinuousMode();
+           else
+              return status;
+        }
         else
            return (r_status|l_status);
-				
-			case(range_continuous_polling_out_of_window):
-				status=VL6180x_RangeConfigInterrupt(Device, CONFIG_GPIO_INTERRUPT_OUT_OF_WINDOW);
-			  status=VL6180x_AlsConfigInterrupt(Device, CONFIG_GPIO_INTERRUPT_DISABLED);
-			  if((!r_status)&&(!l_status))
-				{
+                
+      case(range_continuous_polling_out_of_window):
+        status=VL6180x_RangeConfigInterrupt(Device, CONFIG_GPIO_INTERRUPT_OUT_OF_WINDOW);
+        status=VL6180x_AlsConfigInterrupt(Device, CONFIG_GPIO_INTERRUPT_DISABLED);
+        if((!r_status)&&(!l_status))
+        {
            status=VL6180x_RangeSetThresholds(Device,low,high,1);
-			     if(!status)
-				      return RangeMeasPollContinuousMode();
-				   else
-					    return status;
-				}
+           if(!status)
+              return RangeMeasPollContinuousMode();
+           else
+              return status;
+        }
         else
            return (r_status|l_status);
-				
+                
       case(als_continuous_polling_low_threshold):
         status=VL6180x_AlsConfigInterrupt(Device, CONFIG_GPIO_INTERRUPT_LEVEL_LOW);
-			  status=VL6180x_RangeConfigInterrupt(Device, CONFIG_GPIO_INTERRUPT_DISABLED);
-			  if((!r_status)&&(!l_status))
-				{
+        status=VL6180x_RangeConfigInterrupt(Device, CONFIG_GPIO_INTERRUPT_DISABLED);
+        if((!r_status)&&(!l_status))
+        {
            status=AlsSetLowThreshold(low);
-			     if(!status)
-				      return AlsMeasPollContinuousMode();
-				   else
-					    return status;
-				}
+           if(!status)
+              return AlsMeasPollContinuousMode();
+           else
+              return status;
+        }
         else
            return (r_status|l_status);
-			
-			case(als_continuous_polling_high_threshold):
-				status=VL6180x_AlsConfigInterrupt(Device, CONFIG_GPIO_INTERRUPT_LEVEL_HIGH);
-			  status=VL6180x_RangeConfigInterrupt(Device, CONFIG_GPIO_INTERRUPT_DISABLED);
-			  if((!r_status)&&(!l_status))
-				{
+            
+      case(als_continuous_polling_high_threshold):
+        status=VL6180x_AlsConfigInterrupt(Device, CONFIG_GPIO_INTERRUPT_LEVEL_HIGH);
+        status=VL6180x_RangeConfigInterrupt(Device, CONFIG_GPIO_INTERRUPT_DISABLED);
+        if((!r_status)&&(!l_status))
+        {
            status=AlsSetHighThreshold(high);
-			     if(!status)
-				      return AlsMeasPollContinuousMode();
-				   else
-					    return status;
-				}
+           if(!status)
+              return AlsMeasPollContinuousMode();
+           else
+              return status;
+        }
         else
            return (r_status|l_status);
-				
-			case(als_continuous_polling_out_of_window):
-				status=VL6180x_AlsConfigInterrupt(Device, CONFIG_GPIO_INTERRUPT_OUT_OF_WINDOW);
-			  status=VL6180x_RangeConfigInterrupt(Device, CONFIG_GPIO_INTERRUPT_DISABLED);
-			  if((!r_status)&&(!l_status))
-				{
+                
+      case(als_continuous_polling_out_of_window):
+        status=VL6180x_AlsConfigInterrupt(Device, CONFIG_GPIO_INTERRUPT_OUT_OF_WINDOW);
+        status=VL6180x_RangeConfigInterrupt(Device, CONFIG_GPIO_INTERRUPT_DISABLED);
+        if((!r_status)&&(!l_status))
+        {
            status=VL6180x_AlsSetThresholds(Device,low,high);
-			     if(!status)
-				      return AlsMeasPollContinuousMode();
-				   else
-					    return status;
-				}
+           if(!status)
+              return AlsMeasPollContinuousMode();
+           else
+              return status;
+        }
         else
            return (r_status|l_status);
-				
-			case(range_continuous_interrupt_low_threshold):
-				status=VL6180x_RangeConfigInterrupt(Device, CONFIG_GPIO_INTERRUPT_LEVEL_LOW);
-			  status=VL6180x_AlsConfigInterrupt(Device, CONFIG_GPIO_INTERRUPT_DISABLED);
-			  if((!r_status)&&(!l_status))
-				{
+                
+      case(range_continuous_interrupt_low_threshold):
+        status=VL6180x_RangeConfigInterrupt(Device, CONFIG_GPIO_INTERRUPT_LEVEL_LOW);
+        status=VL6180x_AlsConfigInterrupt(Device, CONFIG_GPIO_INTERRUPT_DISABLED);
+        if((!r_status)&&(!l_status))
+        {
            status=RangeSetLowThreshold(low);
-			     if(!status)
-				      return RangeMeasIntContinuousMode(fptr);
-				   else
-					    return status;
-				}
+           if(!status)
+              return RangeMeasIntContinuousMode(fptr);
+           else
+              return status;
+        }
         else
-           return (r_status|l_status);					
-			
-			case(range_continuous_interrrupt_high_threshold):	
-				status=VL6180x_RangeConfigInterrupt(Device, CONFIG_GPIO_INTERRUPT_LEVEL_HIGH);
-			  status=VL6180x_AlsConfigInterrupt(Device, CONFIG_GPIO_INTERRUPT_DISABLED);
-			  if((!r_status)&&(!l_status))
-				{
+           return (r_status|l_status);                  
+            
+      case(range_continuous_interrrupt_high_threshold):   
+        status=VL6180x_RangeConfigInterrupt(Device, CONFIG_GPIO_INTERRUPT_LEVEL_HIGH);
+        status=VL6180x_AlsConfigInterrupt(Device, CONFIG_GPIO_INTERRUPT_DISABLED);
+        if((!r_status)&&(!l_status))
+        {
            status=RangeSetHighThreshold(high);
-			     if(!status)
-				      return RangeMeasIntContinuousMode(fptr);
-				   else
-					    return status;
-				}
+           if(!status)
+              return RangeMeasIntContinuousMode(fptr);
+           else
+              return status;
+        }
         else
            return (r_status|l_status);
-				
-		  case(range_continuous_interrupt_out_of_window):
-				status=VL6180x_RangeConfigInterrupt(Device, CONFIG_GPIO_INTERRUPT_OUT_OF_WINDOW);
-			  status=VL6180x_AlsConfigInterrupt(Device, CONFIG_GPIO_INTERRUPT_DISABLED);
-			  if((!r_status)&&(!l_status))
-				{
+                
+       case(range_continuous_interrupt_out_of_window):
+        status=VL6180x_RangeConfigInterrupt(Device, CONFIG_GPIO_INTERRUPT_OUT_OF_WINDOW);
+        status=VL6180x_AlsConfigInterrupt(Device, CONFIG_GPIO_INTERRUPT_DISABLED);
+        if((!r_status)&&(!l_status))
+        {
            status=VL6180x_RangeSetThresholds(Device,low,high,1);
-			     if(!status)
-				      return RangeMeasIntContinuousMode(fptr);
-				   else
-					    return status;
-				}
+           if(!status)
+              return RangeMeasIntContinuousMode(fptr);
+           else
+              return status;
+        }
         else
            return (r_status|l_status);
-			
-			case(als_continuous_interrupt_low_threshold):
-				status=VL6180x_AlsConfigInterrupt(Device, CONFIG_GPIO_INTERRUPT_LEVEL_LOW);
-			  status=VL6180x_RangeConfigInterrupt(Device, CONFIG_GPIO_INTERRUPT_DISABLED);
-			  if((!r_status)&&(!l_status))
-				{
+            
+      case(als_continuous_interrupt_low_threshold):
+        status=VL6180x_AlsConfigInterrupt(Device, CONFIG_GPIO_INTERRUPT_LEVEL_LOW);
+        status=VL6180x_RangeConfigInterrupt(Device, CONFIG_GPIO_INTERRUPT_DISABLED);
+        if((!r_status)&&(!l_status))
+        {
            status=AlsSetLowThreshold(low);
-			     if(!status)
-				      return AlsMeasIntContinuousMode(fptr);
-				   else
-					    return status;
-				}
+           if(!status)
+              return AlsMeasIntContinuousMode(fptr);
+           else
+              return status;
+        }
         else
-           return (r_status|l_status);	
-				
-			case(als_continuous_interrupt_high_threshold):
-				status=VL6180x_AlsConfigInterrupt(Device, CONFIG_GPIO_INTERRUPT_LEVEL_HIGH);
-			  status=VL6180x_RangeConfigInterrupt(Device, CONFIG_GPIO_INTERRUPT_DISABLED);
-			  if((!r_status)&&(!l_status))
-				{
+           return (r_status|l_status);  
+                
+      case(als_continuous_interrupt_high_threshold):
+        status=VL6180x_AlsConfigInterrupt(Device, CONFIG_GPIO_INTERRUPT_LEVEL_HIGH);
+        status=VL6180x_RangeConfigInterrupt(Device, CONFIG_GPIO_INTERRUPT_DISABLED);
+        if((!r_status)&&(!l_status))
+        {
            status=AlsSetHighThreshold(high);
-			     if(!status)
-				      return AlsMeasIntContinuousMode(fptr);
-				   else
-					    return status;
-				}
+           if(!status)
+              return AlsMeasIntContinuousMode(fptr);
+           else
+              return status;
+        }
         else
            return (r_status|l_status);
-				
-			case(als_continuous_interrupt_out_of_window):
-				status=VL6180x_AlsConfigInterrupt(Device, CONFIG_GPIO_INTERRUPT_OUT_OF_WINDOW);
-			  status=VL6180x_RangeConfigInterrupt(Device, CONFIG_GPIO_INTERRUPT_DISABLED);
-			  if((!r_status)&&(!l_status))
-				{
+                
+      case(als_continuous_interrupt_out_of_window):
+        status=VL6180x_AlsConfigInterrupt(Device, CONFIG_GPIO_INTERRUPT_OUT_OF_WINDOW);
+        status=VL6180x_RangeConfigInterrupt(Device, CONFIG_GPIO_INTERRUPT_DISABLED);
+        if((!r_status)&&(!l_status))
+        {
            status=VL6180x_AlsSetThresholds(Device,low,high);
-			     if(!status)
-				      return AlsMeasIntContinuousMode(fptr);
-				   else
-					    return status;
-				}
+           if(!status)
+              return AlsMeasIntContinuousMode(fptr);
+           else
+              return status;
+        }
         else
            return (r_status|l_status);
-				
-		  default:
-			   return INVALID_PARAMS;
-	 }
+                
+      default:
+        return INVALID_PARAMS;
+   }
 }
-
-
+ 
+ 
 int VL6180X::GetRangeError(MeasureData_t *Data, VL6180x_RangeData_t RangeData)
 {
-	 Data->range_error=RangeData.errorStatus;
-	 if(Data->range_error!=0)
-	 {
+   Data->range_error=RangeData.errorStatus;
+   if(Data->range_error!=0)
+   {
       VL6180x_ErrLog("Range error %d",Data->range_error);
       return RANGE_ERROR;
-	 }
-	 return NoError_;
+   }
+   return NoError_;
 }
-
-
+ 
+ 
 int VL6180X::GetAlsError(MeasureData_t *Data, VL6180x_AlsData_t AlsData)
 {
-	 Data->als_error=AlsData.errorStatus;
-	 if(Data->als_error!=0)
-	 {
+   Data->als_error=AlsData.errorStatus;
+   if(Data->als_error!=0)
+   {
       VL6180x_ErrLog("Light error %d",Data->light_error);
-		  return API_ERROR;
-	 }
-	 return NoError_;
+      return API_ERROR;
+   }
+   return NoError_;
 }
-
-
+ 
+ 
 int VL6180X::RangeMeasPollSingleShot(MeasureData_t *Data)
 {
-	 VL6180x_RangeData_t RangeData;
-	 int status;
-	
-	 status=RangePollMeasurement(&RangeData);
-	 if(!status)
-	 {
-	    status=GetRangeError(Data, RangeData);
-		  if(!status)
-	      Data->range_mm=RangeData.range_mm;
-			else
-				Data->range_mm=0xFFFFFFFF;
-	 }
-	 return status;	 
-}	
-
-
+   VL6180x_RangeData_t RangeData;
+   int status;
+    
+   status=RangePollMeasurement(&RangeData);
+   if(!status)
+   {
+      status=GetRangeError(Data, RangeData);
+      if(!status)
+         Data->range_mm=RangeData.range_mm;
+      else
+         Data->range_mm=0xFFFFFFFF;
+   }
+   return status;  
+}   
+ 
+ 
 int VL6180X::AlsMeasPollSingleShot(MeasureData_t *Data)
 {
-	 VL6180x_AlsData_t AlsData;
-	 int status;
-	
-	 status=AlsPollMeasurement(&AlsData);
-	 if(!status)
-	 {
-	    status=GetAlsError(Data, AlsData);
-	    if(!status)
-	      Data->lux=AlsData.lux;
-			else
-			  Data->lux=0xFFFFFFFF;
-	 }
-	 return status;	
+   VL6180x_AlsData_t AlsData;
+   int status;
+    
+   status=AlsPollMeasurement(&AlsData);
+   if(!status)
+   {
+      status=GetAlsError(Data, AlsData);
+      if(!status)
+         Data->lux=AlsData.lux;
+      else
+         Data->lux=0xFFFFFFFF;
+   }
+   return status; 
 }
-
-
+ 
+ 
 int VL6180X::RangeMeasPollContinuousMode()
 {
    int status;
-			
-	 status=VL6180x_RangeClearInterrupt(Device);
-	 if(status)
-	 {
-		  VL6180x_ErrLog("VL6180x_RangeClearInterrupt fail");
-		  return status;
-	 }
-	 status=VL6180x_ClearErrorInterrupt(Device);
-	 if(status)
-	 {
-		  VL6180x_ErrLog("VL6180x_ClearErrorInterrupt fail");
-		  return status;
-	 }
-	 return RangeStartContinuousMode();
+            
+   status=VL6180x_RangeClearInterrupt(Device);
+   if(status)
+   {
+      VL6180x_ErrLog("VL6180x_RangeClearInterrupt fail");
+      return status;
+   }
+   status=VL6180x_ClearErrorInterrupt(Device);
+   if(status)
+   {
+      VL6180x_ErrLog("VL6180x_ClearErrorInterrupt fail");
+      return status;
+   }
+   return RangeStartContinuousMode();
 }
-
-
+ 
+ 
 int VL6180X::AlsMeasPollContinuousMode() 
 {
-	 int status;			
-	 
-	 status=VL6180x_AlsClearInterrupt(Device);
-	 if(status)
-	 {
-			VL6180x_ErrLog("VL6180x_AlsClearInterrupt fail");
-			return status;
-	 }
-	 status=VL6180x_ClearErrorInterrupt(Device);
-	 if(status)
-	 {
-		  VL6180x_ErrLog("VL6180x_ClearErrorInterrupt fail");
-			return status;
-	 }
-	 return AlsStartContinuousMode();
+   int status;            
+     
+   status=VL6180x_AlsClearInterrupt(Device);
+   if(status)
+   {
+      VL6180x_ErrLog("VL6180x_AlsClearInterrupt fail");
+      return status;
+   }
+   status=VL6180x_ClearErrorInterrupt(Device);
+   if(status)
+   {
+      VL6180x_ErrLog("VL6180x_ClearErrorInterrupt fail");
+      return status;
+   }
+   return AlsStartContinuousMode();
 }
-
-
+ 
+ 
 int VL6180X::AlsGetMeasurementIfReady(VL6180xDev_t dev, VL6180x_AlsData_t *pAlsData)
 {
    int status;
-	 uint8_t IntStatus;
-	 
-	 status=VL6180x_AlsGetInterruptStatus(dev, &IntStatus);
-	 if(!status)
-	 {
-		  if(IntStatus==RES_INT_STAT_GPIO_NEW_SAMPLE_READY)
-			{
-	       status = VL6180x_AlsGetMeasurement(dev, pAlsData);
-				 if(!status)
-				 {
-				    status=VL6180x_AlsClearInterrupt(Device);
+   uint8_t IntStatus;
+     
+   status=VL6180x_AlsGetInterruptStatus(dev, &IntStatus);
+   if(!status)
+   {
+      if(IntStatus==RES_INT_STAT_GPIO_NEW_SAMPLE_READY)
+      {
+         status = VL6180x_AlsGetMeasurement(dev, pAlsData);
+         if(!status)
+         {
+            status=VL6180x_AlsClearInterrupt(Device);
             if(status)
                VL6180x_ErrLog("VL6180x_AlsClearInterrupt fail");
-				 }
-			}
-			else
-				 status=NOT_READY;
-	 }
-	 else
-			VL6180x_ErrLog("Failed to get interrupt status");
-	 return status;
+         }
+      }
+      else
+         status=NOT_READY;
+   }
+   else
+      VL6180x_ErrLog("Failed to get interrupt status");
+   return status;
 }
-
-
+ 
+ 
 int VL6180X::RangeMeasIntContinuousMode(void (*fptr)(void))
 {
-	 int status, ClrStatus;
-	 
-	 EnableInterruptMeasureDetectionIRQ();
-	 AttachInterruptMeasureDetectionIRQ(fptr);
-	 status=SetupGPIO1(GPIOx_SELECT_GPIO_INTERRUPT_OUTPUT, 1);
-	 ClrStatus=VL6180x_ClearAllInterrupt(Device);
-	 if(ClrStatus)
-			VL6180x_ErrLog("VL6180x_ClearErrorInterrupt fail");
+   int status, ClrStatus;
+     
+   EnableInterruptMeasureDetectionIRQ();
+   AttachInterruptMeasureDetectionIRQ(fptr);
+   status=SetupGPIO1(GPIOx_SELECT_GPIO_INTERRUPT_OUTPUT, 1);
+   ClrStatus=VL6180x_ClearAllInterrupt(Device);
+   if(ClrStatus)
+      VL6180x_ErrLog("VL6180x_ClearErrorInterrupt fail");
    if(!status)
-		 status=RangeStartContinuousMode();
-	 return status;
+      status=RangeStartContinuousMode();
+   return status;
 }
-
-
+ 
+ 
 int VL6180X::AlsMeasIntContinuousMode(void (*fptr)(void))
 {
    int status, ClrStatus;
-	
-	 EnableInterruptMeasureDetectionIRQ();
+    
+   EnableInterruptMeasureDetectionIRQ();
    AttachInterruptMeasureDetectionIRQ(fptr);
    status=SetupGPIO1(GPIOx_SELECT_GPIO_INTERRUPT_OUTPUT, 1);
-	 ClrStatus=VL6180x_ClearAllInterrupt(Device);
-	 if(ClrStatus)
-			VL6180x_ErrLog("VL6180x_ClearErrorInterrupt fail");
+   ClrStatus=VL6180x_ClearAllInterrupt(Device);
+   if(ClrStatus)
+      VL6180x_ErrLog("VL6180x_ClearErrorInterrupt fail");
    if(!status)
-     status=AlsStartContinuousMode();
-	 return status;
-}	
-
-
+      status=AlsStartContinuousMode();
+   return status;
+}   
+ 
+ 
 int VL6180X::StartInterleavedMode()
 {
-	 int status;
-	 uint16_t integration_period, intermeasurement_period_ms;
-	 uint8_t max_convergence_time;
-	 uint8_t buf;
-	
+   int status;
+   uint16_t integration_period, intermeasurement_period_ms;
+   uint8_t max_convergence_time;
+   uint8_t buf;
+    
    status=VL6180x_WrByte(Device, 0x2A3, 1);
    if(status)
    {
-		 VL6180x_ErrLog("Failed to write INTERLEAVED_MODE_ENABLE!\n\r");
-		 return status;
-	 }
-	 status=VL6180x_RdByte(Device, SYSRANGE_MAX_CONVERGENCE_TIME, &max_convergence_time);
-	 if(status)
-	 {
-		 VL6180x_ErrLog("Failed to read SYSRANGE_MAX_CONVERGENCE_TIME!\n\r");
-		 return status;
-	 }
-	 status=VL6180x_RdWord(Device, SYSALS_INTEGRATION_PERIOD, &integration_period);
-	 if(status)
-	 {
-		 VL6180x_ErrLog("Failed to read SYSALS_INTEGRATION_PERIOD!\n\r");
-		 return status;
-	 }
-	 max_convergence_time&=0x3F;
-	 integration_period&=0x01FF;
-	 intermeasurement_period_ms=((max_convergence_time+5)+(integration_period*1.1));
-	 intermeasurement_period_ms=(intermeasurement_period_ms/0.9)+10;
-	 intermeasurement_period_ms=200;
-	 status=VL6180x_AlsSetInterMeasurementPeriod(Device, intermeasurement_period_ms);
-	 VL6180x_RdByte(Device, 0x03E, &buf);
-	 if(status)
+      VL6180x_ErrLog("Failed to write INTERLEAVED_MODE_ENABLE!\n\r");
+      return status;
+   }
+   status=VL6180x_RdByte(Device, SYSRANGE_MAX_CONVERGENCE_TIME, &max_convergence_time);
+   if(status)
+   {
+      VL6180x_ErrLog("Failed to read SYSRANGE_MAX_CONVERGENCE_TIME!\n\r");
+      return status;
+   }
+   status=VL6180x_RdWord(Device, SYSALS_INTEGRATION_PERIOD, &integration_period);
+   if(status)
    {
-		 VL6180x_ErrLog("Failed to write SYSALS_INTERMEASUREMENT_PERIOD!\n\r");
-		 return status;
-	 }
-	 return AlsStartContinuousMode();
+      VL6180x_ErrLog("Failed to read SYSALS_INTEGRATION_PERIOD!\n\r");
+      return status;
+   }
+   max_convergence_time&=0x3F;
+   integration_period&=0x01FF;
+   intermeasurement_period_ms=((max_convergence_time+5)+(integration_period*1.1));
+   intermeasurement_period_ms=(intermeasurement_period_ms/0.9)+10;
+   intermeasurement_period_ms=200;
+   status=VL6180x_AlsSetInterMeasurementPeriod(Device, intermeasurement_period_ms);
+   VL6180x_RdByte(Device, 0x03E, &buf);
+   if(status)
+   {
+      VL6180x_ErrLog("Failed to write SYSALS_INTERMEASUREMENT_PERIOD!\n\r");
+   return status;
+   }
+   return AlsStartContinuousMode();
 }
-
-
+ 
+ 
 int VL6180X::InterleavedMode(void (*fptr)(void))
 {
-	  int status, ClrStatus;
-	
-	  EnableInterruptMeasureDetectionIRQ();
-    AttachInterruptMeasureDetectionIRQ(fptr);
-    status=SetupGPIO1(GPIOx_SELECT_GPIO_INTERRUPT_OUTPUT, 1);
-	  ClrStatus=VL6180x_ClearAllInterrupt(Device);
-		if(ClrStatus)
-			VL6180x_ErrLog("VL6180x_ClearErrorInterrupt fail");
-    if(!status)
+   int status, ClrStatus;
+    
+   EnableInterruptMeasureDetectionIRQ();
+   AttachInterruptMeasureDetectionIRQ(fptr);
+   status=SetupGPIO1(GPIOx_SELECT_GPIO_INTERRUPT_OUTPUT, 1);
+   ClrStatus=VL6180x_ClearAllInterrupt(Device);
+   if(ClrStatus)
+      VL6180x_ErrLog("VL6180x_ClearErrorInterrupt fail");
+   if(!status)
       status=StartInterleavedMode();
-		return status;
+   return status;
 } 
-
-
+ 
+ 
 int VL6180X::HandleIRQ(OperatingMode operating_mode, MeasureData_t *Data)
 {
-	 int status;
-	
-	 status=GetMeasurement(operating_mode, Data);
-	 EnableInterruptMeasureDetectionIRQ();
-	 return status;
+   int status;
+    
+   EnableInterruptMeasureDetectionIRQ();
+   status=GetMeasurement(operating_mode, Data);
+   return status;
 }
-	 
-
+     
+ 
 int VL6180X::RangeSetLowThreshold(uint16_t threshold)
 {
-	 int status;
-	 uint16_t low, high;
-	 
-	 status=VL6180x_RangeGetThresholds(Device, &low, &high);
-	 if(!status)
-	    status=VL6180x_RangeSetThresholds(Device, threshold, high, 1);
-	 return status;
+   int status;
+   uint16_t low, high;
+     
+   status=VL6180x_RangeGetThresholds(Device, &low, &high);
+   if(!status)
+      status=VL6180x_RangeSetThresholds(Device, threshold, high, 1);
+   return status;
 }
-
-
+ 
+ 
 int VL6180X::RangeSetHighThreshold(uint16_t threshold)
 {
-	 int status;
-	 uint16_t low, high;
-	 
-	 status=VL6180x_RangeGetThresholds(Device, &low, &high);
-	 if(!status)
-	    status=VL6180x_RangeSetThresholds(Device, low, threshold, 1);
-	 return status;
+   int status;
+   uint16_t low, high;
+     
+   status=VL6180x_RangeGetThresholds(Device, &low, &high);
+   if(!status)
+      status=VL6180x_RangeSetThresholds(Device, low, threshold, 1);
+   return status;
 }
-	
-
+    
+ 
 int VL6180X::AlsSetLowThreshold(uint16_t threshold)
 {
-	 int status;
-	 uint16_t low, high;
-	 
-	 status=VL6180x_AlsGetThresholds(Device, &low, &high);
-	 if(!status)
-	    status=VL6180x_AlsSetThresholds(Device, threshold, high);
-	 return status;
+   int status;
+   uint16_t low, high;
+     
+   status=VL6180x_AlsGetThresholds(Device, &low, &high);
+   if(!status)
+      status=VL6180x_AlsSetThresholds(Device, threshold, high);
+   return status;
 }
-	
-
+    
+ 
 int VL6180X::AlsSetHighThreshold(uint16_t threshold)
 {
-	 int status;
-	 uint16_t low, high;
-	 
-	 status=VL6180x_AlsGetThresholds(Device, &low, &high);
-	 if(!status)
-	    status=VL6180x_AlsSetThresholds(Device, low, threshold);
-	 return status;
+   int status;
+   uint16_t low, high;
+     
+   status=VL6180x_AlsGetThresholds(Device, &low, &high);
+   if(!status)
+      status=VL6180x_AlsSetThresholds(Device, low, threshold);
+   return status;
 }
-
-	
-int VL6180X::VL6180x_AlsGetThresholds(VL6180xDev_t dev, uint16_t *low, uint16_t *high)	
+ 
+    
+int VL6180X::VL6180x_AlsGetThresholds(VL6180xDev_t dev, uint16_t *low, uint16_t *high)  
 {
    int status;
-	 
-	 status=VL6180x_RdWord(dev, SYSALS_THRESH_LOW, low);
-	 if(status)
-	 {
-		  VL6180x_ErrLog("rd SYSALS_THRESH_LOW fail");
-	    return status;
-	 }
-	 status=VL6180x_RdWord(dev, SYSALS_THRESH_HIGH, high);
-	 if(status)
-	 {
-		  VL6180x_ErrLog("rd SYSALS_THRESH_HIGH fail");
-	    return status;
-	 }
-	 return status;
+     
+   status=VL6180x_RdWord(dev, SYSALS_THRESH_LOW, low);
+   if(status)
+   {
+      VL6180x_ErrLog("rd SYSALS_THRESH_LOW fail");
+      return status;
+   }
+   status=VL6180x_RdWord(dev, SYSALS_THRESH_HIGH, high);
+   if(status)
+   {
+      VL6180x_ErrLog("rd SYSALS_THRESH_HIGH fail");
+      return status;
+   }
+   return status;
 }
-	
-
+    
+ 
 int VL6180X::GetMeasurement(OperatingMode operating_mode, MeasureData_t *Data)
 {
-	 switch(operating_mode)
-	 {
-		 case(range_continuous_polling):
-		 case(range_continuous_interrupt):
-		 case(range_continuous_polling_low_threshold):
-		 case(range_continuous_polling_high_threshold):
-		 case(range_continuous_polling_out_of_window):
-		 case(range_continuous_interrupt_low_threshold):
-		 case(range_continuous_interrrupt_high_threshold):
-		 case(range_continuous_interrupt_out_of_window):
-			 return GetRangeMeas(operating_mode, Data);
-		 
-		 case(als_continuous_polling):
-		 case(als_continuous_interrupt):
-		 case(als_continuous_polling_low_threshold):
-		 case(als_continuous_polling_high_threshold):
-		 case(als_continuous_polling_out_of_window):
-		 case(als_continuous_interrupt_low_threshold):
-		 case(als_continuous_interrupt_high_threshold):
-		 case(als_continuous_interrupt_out_of_window):
-			 return GetAlsMeas(operating_mode, Data);
-			 
-		 case(interleaved_mode_interrupt):
-		   return GetRangeAlsMeas(Data);
-		 
-		 default:
-			 return INVALID_PARAMS;
-	 }
+   switch(operating_mode)
+   {
+      case(range_continuous_polling):
+      case(range_continuous_interrupt):
+      case(range_continuous_polling_low_threshold):
+      case(range_continuous_polling_high_threshold):
+      case(range_continuous_polling_out_of_window):
+      case(range_continuous_interrupt_low_threshold):
+      case(range_continuous_interrrupt_high_threshold):
+      case(range_continuous_interrupt_out_of_window):
+        return GetRangeMeas(operating_mode, Data);
+         
+      case(als_continuous_polling):
+      case(als_continuous_interrupt):
+      case(als_continuous_polling_low_threshold):
+      case(als_continuous_polling_high_threshold):
+      case(als_continuous_polling_out_of_window):
+      case(als_continuous_interrupt_low_threshold):
+      case(als_continuous_interrupt_high_threshold):
+      case(als_continuous_interrupt_out_of_window):
+        return GetAlsMeas(operating_mode, Data);
+             
+      case(interleaved_mode_interrupt):
+        return GetRangeAlsMeas(Data);
+         
+      default:
+        return INVALID_PARAMS;
+   }
 }
-	 
-
+     
+ 
 int VL6180X::GetRangeMeas(OperatingMode operating_mode, MeasureData_t *Data)
 {
    VL6180x_RangeData_t RangeData;
-	 int status, ClrStatus;
-	 IntrStatus_t IntStatus;
-	
-	 status=VL6180x_RangeGetInterruptStatus(Device, &IntStatus.val);
-	 if(!status)
-	 {
-		  Data->int_error=IntStatus.status.Error;
-		  if(IntStatus.status.Error!=0)
-			{
+   int status, ClrStatus;
+   IntrStatus_t IntStatus;
+    
+   status=VL6180x_RangeGetInterruptStatus(Device, &IntStatus.val);
+   if(!status)
+   {
+      Data->int_error=IntStatus.status.Error;
+      if(IntStatus.status.Error!=0)
+      {
          VL6180x_ErrLog("GPIO int Error report %d",(int)IntStatus.val);
-         return RANGE_ERROR;
+         status=RANGE_ERROR;
       } 
-	 }
-	 else
-	 {
-		  VL6180x_ErrLog("Failed to read RESULT_INTERRUPT_STATUS_GPIO");
-	    return status;  
-	 }
-	 if((operating_mode==range_continuous_polling)||(operating_mode==range_continuous_interrupt))
-	 {
-	    if(IntStatus.status.Range==RES_INT_STAT_GPIO_NEW_SAMPLE_READY)
-				 status=VL6180x_RangeGetMeasurement(Device, &RangeData);
-	    else
-				 return NOT_READY;
-	 }
-	 else if((operating_mode==range_continuous_polling_low_threshold)||(operating_mode==range_continuous_interrupt_low_threshold))
-	 {
-		  if(IntStatus.status.Range==RES_INT_STAT_GPIO_LOW_LEVEL_THRESHOLD)
-				 status=VL6180x_RangeGetMeasurement(Device, &RangeData);
-			else
-				 return NOT_READY;
-	 }
-	 else if((operating_mode==range_continuous_polling_high_threshold)||(operating_mode==range_continuous_interrrupt_high_threshold))
-	 {
-		  if(IntStatus.status.Range==RES_INT_STAT_GPIO_HIGH_LEVEL_THRESHOLD)
-				 status=VL6180x_RangeGetMeasurement(Device, &RangeData);
-			else
-				 return NOT_READY;
-	 }
-	 else if((operating_mode==range_continuous_polling_out_of_window)||(operating_mode==range_continuous_interrupt_out_of_window))
-	 {
-		  if(IntStatus.status.Range==RES_INT_STAT_GPIO_OUT_OF_WINDOW)
-				 status=VL6180x_RangeGetMeasurement(Device, &RangeData);
-			else
-				 return NOT_READY;
-	 }
-	 if(!status)
-	 {
-	    status=GetRangeError(Data, RangeData);
-	    if(!status)
-	       Data->range_mm=RangeData.range_mm;
-		  else
-				 Data->range_mm=0xFFFFFFFF;
-	 }
-	 ClrStatus=VL6180x_RangeClearInterrupt(Device);
-	 if(ClrStatus)
-	 {
-		  VL6180x_ErrLog("VL6180x_RangeClearInterrupt fail");
-			return ClrStatus;
-	 }
-	 ClrStatus=VL6180x_ClearErrorInterrupt(Device);
-	 if(ClrStatus)
-	 {
-			VL6180x_ErrLog("VL6180x_ClearErrorInterrupt fail");
-			return ClrStatus;
-	 }
-	 return status;
+   }
+   else
+   {
+      VL6180x_ErrLog("Failed to read RESULT_INTERRUPT_STATUS_GPIO");
+   }  
+   ClrStatus=VL6180x_RangeClearInterrupt(Device);
+   if(ClrStatus)
+   {
+      VL6180x_ErrLog("VL6180x_RangeClearInterrupt fail");
+   }
+   ClrStatus=VL6180x_ClearErrorInterrupt(Device);
+   if(ClrStatus)
+   {
+      VL6180x_ErrLog("VL6180x_ClearErrorInterrupt fail");
+   }
+   if(status)
+      return status;
+   if((operating_mode==range_continuous_polling)||(operating_mode==range_continuous_interrupt))
+   {
+      if(IntStatus.status.Range==RES_INT_STAT_GPIO_NEW_SAMPLE_READY)
+         status=VL6180x_RangeGetMeasurement(Device, &RangeData);
+   else
+         return NOT_READY;
+   }
+   else if((operating_mode==range_continuous_polling_low_threshold)||(operating_mode==range_continuous_interrupt_low_threshold))
+   {
+      if(IntStatus.status.Range==RES_INT_STAT_GPIO_LOW_LEVEL_THRESHOLD)
+         status=VL6180x_RangeGetMeasurement(Device, &RangeData);
+      else
+         return NOT_READY;
+   }
+   else if((operating_mode==range_continuous_polling_high_threshold)||(operating_mode==range_continuous_interrrupt_high_threshold))
+   {
+      if(IntStatus.status.Range==RES_INT_STAT_GPIO_HIGH_LEVEL_THRESHOLD)
+         status=VL6180x_RangeGetMeasurement(Device, &RangeData);
+      else
+         return NOT_READY;
+   }
+   else if((operating_mode==range_continuous_polling_out_of_window)||(operating_mode==range_continuous_interrupt_out_of_window))
+   {
+      if(IntStatus.status.Range==RES_INT_STAT_GPIO_OUT_OF_WINDOW)
+         status=VL6180x_RangeGetMeasurement(Device, &RangeData);
+      else
+         return NOT_READY;
+   }
+   if(!status)
+   {
+      status=GetRangeError(Data, RangeData);
+      if(!status)
+         Data->range_mm=RangeData.range_mm;
+      else
+         Data->range_mm=0xFFFFFFFF;
+   }
+   return status;
 }
-
-
+ 
+ 
 int VL6180X::GetAlsMeas(OperatingMode operating_mode, MeasureData_t *Data)
 {
    VL6180x_AlsData_t AlsData;
-	 int status, ClrStatus;
-	 uint8_t IntStatus;
-	
-	 status=VL6180x_AlsGetInterruptStatus(Device, &IntStatus);
-	 if(status)
-	 {
-		  VL6180x_ErrLog("Failed to read RESULT_INTERRUPT_STATUS_GPIO");
-	    return status;  
-	 }
-	 if((operating_mode==als_continuous_polling)||(operating_mode==als_continuous_interrupt))
-	 {
-	    if(IntStatus==RES_INT_STAT_GPIO_NEW_SAMPLE_READY)
-				 status=VL6180x_AlsGetMeasurement(Device, &AlsData);
-	    else
-				 return NOT_READY;
-	 }
-	 else if((operating_mode==als_continuous_polling_low_threshold)||(operating_mode==als_continuous_interrupt_low_threshold))
-	 {
-		  if(IntStatus==RES_INT_STAT_GPIO_LOW_LEVEL_THRESHOLD)
-				 status=VL6180x_AlsGetMeasurement(Device, &AlsData);
-			else
-				 return NOT_READY;
-	 }
-	 else if((operating_mode==als_continuous_polling_high_threshold)||(operating_mode==als_continuous_interrupt_high_threshold))
-	 {
-		  if(IntStatus==RES_INT_STAT_GPIO_HIGH_LEVEL_THRESHOLD)
-				 status=VL6180x_AlsGetMeasurement(Device, &AlsData);
-			else
-				 return NOT_READY;
-	 }
-	 else if((operating_mode==als_continuous_polling_out_of_window)||(operating_mode==als_continuous_interrupt_out_of_window))
-	 {
-		  if(IntStatus==RES_INT_STAT_GPIO_OUT_OF_WINDOW)
-				 status=VL6180x_AlsGetMeasurement(Device, &AlsData);
-			else
-				 return NOT_READY;
-	 }
-	 if(!status)
-	 {
-	    status=GetAlsError(Data, AlsData);
-	    if(!status)
-	       Data->lux=AlsData.lux;
-			else
-				 Data->lux=0xFFFFFFFF;
-	 }
-	 ClrStatus=VL6180x_AlsClearInterrupt(Device);
-	 if(ClrStatus)
-		  VL6180x_ErrLog("VL6180x_AlsClearInterrupt fail");
-	 ClrStatus=VL6180x_ClearErrorInterrupt(Device);
-	 if(ClrStatus)
-			VL6180x_ErrLog("VL6180x_ClearErrorInterrupt fail");
-	 return status;	
+   int status, ClrStatus;
+   uint8_t IntStatus;
+    
+   status=VL6180x_AlsGetInterruptStatus(Device, &IntStatus);
+   if(status)
+   {
+      VL6180x_ErrLog("Failed to read RESULT_INTERRUPT_STATUS_GPIO");
+   }
+   ClrStatus=VL6180x_AlsClearInterrupt(Device);
+   if(ClrStatus)
+   {
+      VL6180x_ErrLog("VL6180x_AlsClearInterrupt fail");
+   }
+   ClrStatus=VL6180x_ClearErrorInterrupt(Device);
+   if(ClrStatus)
+   {
+      VL6180x_ErrLog("VL6180x_ClearErrorInterrupt fail");
+   }
+   if(status)
+      return status;
+   if((operating_mode==als_continuous_polling)||(operating_mode==als_continuous_interrupt))
+   {
+      if(IntStatus==RES_INT_STAT_GPIO_NEW_SAMPLE_READY)
+         status=VL6180x_AlsGetMeasurement(Device, &AlsData);
+      else
+         return NOT_READY;
+   }
+   else if((operating_mode==als_continuous_polling_low_threshold)||(operating_mode==als_continuous_interrupt_low_threshold))
+   {
+      if(IntStatus==RES_INT_STAT_GPIO_LOW_LEVEL_THRESHOLD)
+         status=VL6180x_AlsGetMeasurement(Device, &AlsData);
+      else
+         return NOT_READY;
+   }
+   else if((operating_mode==als_continuous_polling_high_threshold)||(operating_mode==als_continuous_interrupt_high_threshold))
+   {
+      if(IntStatus==RES_INT_STAT_GPIO_HIGH_LEVEL_THRESHOLD)
+         status=VL6180x_AlsGetMeasurement(Device, &AlsData);
+      else
+         return NOT_READY;
+   }
+   else if((operating_mode==als_continuous_polling_out_of_window)||(operating_mode==als_continuous_interrupt_out_of_window))
+   {
+      if(IntStatus==RES_INT_STAT_GPIO_OUT_OF_WINDOW)
+         status=VL6180x_AlsGetMeasurement(Device, &AlsData);
+      else
+         return NOT_READY;
+   }
+   if(!status)
+   {
+      status=GetAlsError(Data, AlsData);
+      if(!status)
+         Data->lux=AlsData.lux;
+      else
+         Data->lux=0xFFFFFFFF;
+   }
+   return status; 
 }
-
-
+ 
+ 
 int VL6180X::GetRangeAlsMeas(MeasureData_t *Data)
 {
    int status, ClrStatus, r_status, l_status;
-	 IntrStatus_t IntStatus;
-	 VL6180x_RangeData_t RangeData;
-	 VL6180x_AlsData_t AlsData;
-	
-	 status=VL6180x_RdByte(Device, RESULT_INTERRUPT_STATUS_GPIO, &IntStatus.val);
-	 if(!status)
-	 {
-		  Data->int_error=IntStatus.status.Error;
-		  if(IntStatus.status.Error!=0)
-			{
+   IntrStatus_t IntStatus;
+   VL6180x_RangeData_t RangeData;
+   VL6180x_AlsData_t AlsData;
+    
+   status=VL6180x_RdByte(Device, RESULT_INTERRUPT_STATUS_GPIO, &IntStatus.val);
+   if(!status)
+   {
+      Data->int_error=IntStatus.status.Error;
+      if(IntStatus.status.Error!=0)
+      {
          VL6180x_ErrLog("GPIO int Error report %d",(int)IntStatus.val);
-         return RANGE_ERROR;
+         status=RANGE_ERROR;
       } 
-	 }
-	 else
-	 {
-		  VL6180x_ErrLog("Failed to read RESULT_INTERRUPT_STATUS_GPIO");
-	    return status;  
-	 }
-	 
-	 if(IntStatus.status.Als==RES_INT_STAT_GPIO_NEW_SAMPLE_READY)
-	 {
-	    r_status=VL6180x_RangeGetMeasurement(Device, &RangeData);
-	    l_status=VL6180x_AlsGetMeasurement(Device, &AlsData);
-	    if((!r_status)&&(!l_status))
-	    {
-			   r_status=GetRangeError(Data, RangeData);
-			   l_status=GetAlsError(Data, AlsData);
-			   if(!r_status) 
-	          Data->range_mm=RangeData.range_mm;
-			   else
-				    Data->range_mm=0xFFFFFFFF;
-			   if(!l_status)
-				    Data->lux=AlsData.lux;
-			   else
-				    Data->lux=0xFFFFFFFF;
-			   status=r_status|l_status; 
-	    }
-	    else
-	    {
-	       status=r_status|l_status;
-	    }
-	    ClrStatus=VL6180x_ClearAllInterrupt(Device);
-	    if(ClrStatus)
-			   VL6180x_ErrLog("VL6180x_ClearAllInterrupt fail");
-	 }
-	 else
-		  return NOT_READY;
-	 return status;	
+   }
+   else
+   {
+      VL6180x_ErrLog("Failed to read RESULT_INTERRUPT_STATUS_GPIO"); 
+   }
+   ClrStatus=VL6180x_ClearAllInterrupt(Device);
+   if(ClrStatus)
+      VL6180x_ErrLog("VL6180x_ClearAllInterrupt fail");
+   if(status)
+      return status;
+     
+   if(IntStatus.status.Als==RES_INT_STAT_GPIO_NEW_SAMPLE_READY)
+   {
+      r_status=VL6180x_RangeGetMeasurement(Device, &RangeData);
+      l_status=VL6180x_AlsGetMeasurement(Device, &AlsData);
+      if((!r_status)&&(!l_status))
+      {
+         r_status=GetRangeError(Data, RangeData);
+         l_status=GetAlsError(Data, AlsData);
+         if(!r_status) 
+            Data->range_mm=RangeData.range_mm;
+         else
+            Data->range_mm=0xFFFFFFFF;
+         if(!l_status)
+            Data->lux=AlsData.lux;
+         else
+            Data->lux=0xFFFFFFFF;
+         status=r_status|l_status; 
+      }
+      else
+      {
+         status=r_status|l_status;
+      }
+   }
+   else
+      return NOT_READY;
+   return status; 
 }
-
-
+ 
+ 
 int VL6180X::StopMeasurement(OperatingMode operating_mode)
 {
-	 int status;
-	 
-	 switch(operating_mode)
-	 {
-		 case(range_single_shot_polling):
-		 case(range_continuous_polling):
-		 case(range_continuous_interrupt):
-		 case(range_continuous_polling_low_threshold):
-		 case(range_continuous_polling_high_threshold):
-		 case(range_continuous_polling_out_of_window):
-		 case(range_continuous_interrupt_low_threshold):
-		 case(range_continuous_interrrupt_high_threshold):
-		 case(range_continuous_interrupt_out_of_window):
-			 return StopRangeMeasurement(operating_mode);
-		 
-		 case(als_single_shot_polling):
-		 case(als_continuous_polling):
-		 case(als_continuous_interrupt):
-		 case(als_continuous_polling_low_threshold):
-		 case(als_continuous_polling_high_threshold):
-		 case(als_continuous_polling_out_of_window):
-		 case(als_continuous_interrupt_low_threshold):
-		 case(als_continuous_interrupt_high_threshold):
-		 case(als_continuous_interrupt_out_of_window):
-			 return StopAlsMeasurement(operating_mode);
-			 
-		 case(interleaved_mode_interrupt):
-		   status=StopRangeMeasurement(range_continuous_interrupt);
-		   if(!status)
-				  return StopAlsMeasurement(als_continuous_interrupt);
-			 else return status;
-		 
-		 default:
-			 return INVALID_PARAMS;
-	 }
+   int status;
+     
+   switch(operating_mode)
+   {
+      case(range_single_shot_polling):
+      case(range_continuous_polling):
+      case(range_continuous_interrupt):
+      case(range_continuous_polling_low_threshold):
+      case(range_continuous_polling_high_threshold):
+      case(range_continuous_polling_out_of_window):
+      case(range_continuous_interrupt_low_threshold):
+      case(range_continuous_interrrupt_high_threshold):
+      case(range_continuous_interrupt_out_of_window):
+        return StopRangeMeasurement(operating_mode);
+         
+      case(als_single_shot_polling):
+      case(als_continuous_polling):
+      case(als_continuous_interrupt):
+      case(als_continuous_polling_low_threshold):
+      case(als_continuous_polling_high_threshold):
+      case(als_continuous_polling_out_of_window):
+      case(als_continuous_interrupt_low_threshold):
+      case(als_continuous_interrupt_high_threshold):
+      case(als_continuous_interrupt_out_of_window):
+        return StopAlsMeasurement(operating_mode);
+             
+      case(interleaved_mode_interrupt):
+        status=StopRangeMeasurement(range_continuous_interrupt);
+        if(!status)
+           return StopAlsMeasurement(als_continuous_interrupt);
+        else return status;
+         
+      default:
+        return INVALID_PARAMS;
+   }
 }
-
-
+ 
+ 
 int VL6180X::StopRangeMeasurement(OperatingMode operating_mode)
 {
-	 int status;
-	
-	 if(operating_mode==range_single_shot_polling)
-	    status=VL6180x_RangeSetSystemMode(Device, MODE_SINGLESHOT);
-	 else
-		  status=VL6180x_RangeSetSystemMode(Device, MODE_START_STOP|MODE_SINGLESHOT);
-	 if(status)
-		  return status;
-	 status=VL6180x_RangeConfigInterrupt(Device, CONFIG_GPIO_INTERRUPT_DISABLED);
-	 if(status)
-	 {
-		 VL6180x_ErrLog("VL6180x_RangeConfigInterrupt fail"\n\r);
-		 return status;
-	 }
-	 status=VL6180x_RangeClearInterrupt(Device);
-	 if(status)
-	 {
-		  VL6180x_ErrLog("VL6180x_RangeClearInterrupt fail");
-		  return status;
-	 }
-	 status=VL6180x_ClearErrorInterrupt(Device);
-	 if(status)
-	 {
-		  VL6180x_ErrLog("VL6180x_ClearErrorInterrupt fail");
-		  return status;
-	 }
-	 status=VL6180x_RangeSetRawThresholds(Device, 10, 200);
-	 if(status)
-		  VL6180x_ErrLog("VL6180x_RangeSetThresholds fail");
-	 return status;
+   int status;
+    
+   if(operating_mode==range_single_shot_polling)
+      status=VL6180x_RangeSetSystemMode(Device, MODE_SINGLESHOT);
+   else
+      status=VL6180x_RangeSetSystemMode(Device, MODE_START_STOP|MODE_SINGLESHOT);
+   if(status)
+      return status;
+   status=VL6180x_RangeConfigInterrupt(Device, CONFIG_GPIO_INTERRUPT_DISABLED);
+   if(status)
+   {
+      VL6180x_ErrLog("VL6180x_RangeConfigInterrupt fail"\n\r);
+      return status;
+   }
+   status=VL6180x_RangeClearInterrupt(Device);
+   if(status)
+   {
+      VL6180x_ErrLog("VL6180x_RangeClearInterrupt fail");
+      return status;
+   }
+   status=VL6180x_ClearErrorInterrupt(Device);
+   if(status)
+   {
+      VL6180x_ErrLog("VL6180x_ClearErrorInterrupt fail");
+      return status;
+   }
+   status=VL6180x_RangeSetRawThresholds(Device, 10, 200);
+   if(status)
+      VL6180x_ErrLog("VL6180x_RangeSetThresholds fail");
+   return status;
 }
-
-
+ 
+ 
 int VL6180X::StopAlsMeasurement(OperatingMode operating_mode)
 {
-	 int status;
-	
-	 if(operating_mode==als_single_shot_polling)
-	    status=VL6180x_AlsSetSystemMode(Device, MODE_SINGLESHOT);
-	 else
-		  status=VL6180x_AlsSetSystemMode(Device, MODE_START_STOP|MODE_SINGLESHOT);
-	 if(status)
-		  return status;
-	 status=VL6180x_AlsConfigInterrupt(Device, CONFIG_GPIO_INTERRUPT_DISABLED);
-	 if(status)
-	 {
-		 VL6180x_ErrLog("VL6180x_AlsConfigInterrupt fail"\n\r);
-		 return status;
-	 }
-	 status=VL6180x_AlsClearInterrupt(Device);
-	 if(status)
-	 {
-		  VL6180x_ErrLog("VL6180x_AlsClearInterrupt fail");
-		  return status;
-	 }
-	 status=VL6180x_ClearErrorInterrupt(Device);
-	 if(status)
-	 {
-		  VL6180x_ErrLog("VL6180x_ClearErrorInterrupt fail");
-		  return status;
-	 }
-	 status=VL6180x_AlsSetThresholds(Device, 0x0, 0xFF);
-	 if(status)
-		  VL6180x_ErrLog("VL6180x_AlsSetThresholds fail");
-	 return status;
+   int status;
+    
+   if(operating_mode==als_single_shot_polling)
+      status=VL6180x_AlsSetSystemMode(Device, MODE_SINGLESHOT);
+   else
+      status=VL6180x_AlsSetSystemMode(Device, MODE_START_STOP|MODE_SINGLESHOT);
+   if(status)
+      return status;
+   status=VL6180x_AlsConfigInterrupt(Device, CONFIG_GPIO_INTERRUPT_DISABLED);
+   if(status)
+   {
+      VL6180x_ErrLog("VL6180x_AlsConfigInterrupt fail"\n\r);
+      return status;
+   }
+   status=VL6180x_AlsClearInterrupt(Device);
+   if(status)
+   {
+      VL6180x_ErrLog("VL6180x_AlsClearInterrupt fail");
+      return status;
+   }
+   status=VL6180x_ClearErrorInterrupt(Device);
+   if(status)
+   {
+      VL6180x_ErrLog("VL6180x_ClearErrorInterrupt fail");
+      return status;
+   }
+   status=VL6180x_AlsSetThresholds(Device, 0x0, 0xFF);
+   if(status)
+      VL6180x_ErrLog("VL6180x_AlsSetThresholds fail");
+   return status;
 }
-
-
-
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
+ 
+ 
+ 
+ 
+/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
\ No newline at end of file