INSAT Mini Project

Dependencies:   ST_INTERFACES X_NUCLEO_COMMON

Fork of X_NUCLEO_6180XA1 by ST

Revision:
16:0d4776564733
Parent:
15:454710d17358
Child:
18:c98aa73dc4a5
--- a/Components/VL6180X/vl6180x_class.h	Tue Oct 20 16:44:28 2015 +0200
+++ b/Components/VL6180X/vl6180x_class.h	Tue Oct 27 15:25:11 2015 +0100
@@ -54,38 +54,38 @@
    in case of invalid data range_mm=0xFFFFFFFF and lux=0xFFFFFFFF */	
 typedef struct MeasureData 
 {
-	int32_t range_mm;
-	uint32_t lux;
-	uint32_t range_error;
-	uint32_t als_error;
-	uint32_t int_error;
+   uint32_t range_mm;
+   uint32_t lux;
+   uint32_t range_error;
+   uint32_t als_error;
+   uint32_t int_error;
 }MeasureData_t;
 
 /* sensor operating modes */ 
 typedef enum
 {
-	range_single_shot_polling=1,
-	als_single_shot_polling,
-	range_continuous_polling,
-	als_continuous_polling,
-	range_continuous_interrupt,
-	als_continuous_interrupt,
-	interleaved_mode_interrupt,
-	range_continuous_polling_low_threshold,
-	range_continuous_polling_high_threshold,
-	range_continuous_polling_out_of_window,
-	als_continuous_polling_low_threshold,
-	als_continuous_polling_high_threshold,
-	als_continuous_polling_out_of_window,
-	range_continuous_interrupt_low_threshold,
-	range_continuous_interrrupt_high_threshold,
-	range_continuous_interrupt_out_of_window,
-	als_continuous_interrupt_low_threshold,
-	als_continuous_interrupt_high_threshold,
-	als_continuous_interrupt_out_of_window,
-	//interleaved con soglie
-	range_continuous_als_single_shot,
-	range_single_shot_als_continuous,
+   range_single_shot_polling=1,
+   als_single_shot_polling,
+   range_continuous_polling,
+   als_continuous_polling,
+   range_continuous_interrupt,
+   als_continuous_interrupt,
+   interleaved_mode_interrupt,
+   range_continuous_polling_low_threshold,
+   range_continuous_polling_high_threshold,
+   range_continuous_polling_out_of_window,
+   als_continuous_polling_low_threshold,
+   als_continuous_polling_high_threshold,
+   als_continuous_polling_out_of_window,
+   range_continuous_interrupt_low_threshold,
+   range_continuous_interrrupt_high_threshold,
+   range_continuous_interrupt_out_of_window,
+   als_continuous_interrupt_low_threshold,
+   als_continuous_interrupt_high_threshold,
+   als_continuous_interrupt_out_of_window,
+   //interleaved con soglie
+   range_continuous_als_single_shot,
+   range_single_shot_als_continuous,
 }OperatingMode;
 
 /** default device address */
@@ -103,183 +103,183 @@
      * @param[in] gpio1 pin
      * @param[in] device address, 0x29 by default  
      */
-		 VL6180X(DevI2C &i2c, DigitalOut &pin, PinName pin_gpio1, uint8_t DevAddr=DEFAULT_DEVICE_ADDRESS) : RangeSensor(), LightSensor(), dev_i2c(i2c), gpio0(&pin), interrupt_measure(pin_gpio1)
-		 {
-			  MyDevice.I2cAddr=DevAddr;		 
-        MyDevice.Present=0;
-        MyDevice.Ready=0;
-        Device=&MyDevice;;
-				expgpio0=NULL;
-		 }  
+    VL6180X(DevI2C &i2c, DigitalOut &pin, PinName pin_gpio1, uint8_t DevAddr=DEFAULT_DEVICE_ADDRESS) : RangeSensor(), LightSensor(), dev_i2c(i2c), gpio0(&pin), interrupt_measure(pin_gpio1)
+    {
+       MyDevice.I2cAddr=DevAddr;		 
+       MyDevice.Present=0;
+       MyDevice.Ready=0;
+       Device=&MyDevice;;
+       expgpio0=NULL;
+    }  
 		
-     VL6180X(DevI2C &i2c, STMPE1600DigiOut &pin, PinName pin_gpio1, uint8_t DevAddr=DEFAULT_DEVICE_ADDRESS) : RangeSensor(), LightSensor(), dev_i2c(i2c), expgpio0(&pin), interrupt_measure(pin_gpio1)
-		 {
-			  MyDevice.I2cAddr=DevAddr;		 
-        MyDevice.Present=0;
-        MyDevice.Ready=0;
-        Device=&MyDevice;
-			  gpio0=NULL;			 		 
-		 }  	 
+    VL6180X(DevI2C &i2c, STMPE1600DigiOut &pin, PinName pin_gpio1, uint8_t DevAddr=DEFAULT_DEVICE_ADDRESS) : RangeSensor(), LightSensor(), dev_i2c(i2c), expgpio0(&pin), interrupt_measure(pin_gpio1)
+    {
+       MyDevice.I2cAddr=DevAddr;		 
+       MyDevice.Present=0;
+       MyDevice.Ready=0;
+       Device=&MyDevice;
+       gpio0=NULL;			 		 
+    }  	 
     
    /** Destructor
     */
     //~VL6180X(){} 		 
 		
     /* turns on the sensor */		 
-		void VL6180x_On(void)
-		{
-			if(gpio0) 
-				 *gpio0=1;
-			else if(expgpio0) 
-				 *expgpio0=1;
-		} 
+    void VL6180x_On(void)
+    {
+       if(gpio0) 
+	  *gpio0=1;
+       else if(expgpio0) 
+	  *expgpio0=1;
+    } 
 		
-		/* turns off the sensor */
+    /* turns off the sensor */
     void VL6180x_Off(void) 
-		{
-			if(gpio0) 
-				 *gpio0=0;
-			else if(expgpio0) 
-				 *expgpio0=0;			
-		}
+    {
+       if(gpio0) 
+	  *gpio0=0;
+       else if(expgpio0) 
+	  *expgpio0=0;			
+    }
 		
-		int InitSensor(uint8_t NewAddr);
-		int StartMeasurement(OperatingMode operating_mode, void (*fptr)(void), MeasureData_t *Data, uint16_t low, uint16_t high);
-		int GetMeasurement(OperatingMode operating_mode, MeasureData_t *Data);		
-		int StopMeasurement(OperatingMode operating_mode);
+    int InitSensor(uint8_t NewAddr);
+    int StartMeasurement(OperatingMode operating_mode, void (*fptr)(void), MeasureData_t *Data, uint16_t low, uint16_t high);
+    int GetMeasurement(OperatingMode operating_mode, MeasureData_t *Data);		
+    int StopMeasurement(OperatingMode operating_mode);
 
-		/* handling functions of the interrupt_measure */
+    /* handling functions of the interrupt_measure */
 		
-		/** Attach a function to call when an interrupt is detected, i.e. measurement is ready
-	  *
-	  *  @param[in] fptr A pointer to a void function, or 0 to set as none
-	  */
-	  void AttachInterruptMeasureDetectionIRQ(void (*fptr)(void))
-		{
-		  interrupt_measure.rise(fptr);
-	  }
+    /** Attach a function to call when an interrupt is detected, i.e. measurement is ready
+     *
+     *  @param[in] fptr A pointer to a void function, or 0 to set as none
+     */
+    void AttachInterruptMeasureDetectionIRQ(void (*fptr)(void))
+    {
+       interrupt_measure.rise(fptr);
+    }
 
-	  /** Enable interrupt measure IRQ
-	  */
-	  void EnableInterruptMeasureDetectionIRQ(void) 
-		{
-		  interrupt_measure.enable_irq();
-	  }
+    /** Enable interrupt measure IRQ
+     */
+    void EnableInterruptMeasureDetectionIRQ(void) 
+    {
+       interrupt_measure.enable_irq();
+    }
 
-	  /** Disable interrupt measure IRQ
-	  */
-	  void DisableInterruptMeasureDetectionIRQ(void) 
-		{
-		  interrupt_measure.disable_irq();
-	  }
+    /** Disable interrupt measure IRQ
+     */
+    void DisableInterruptMeasureDetectionIRQ(void) 
+    {
+       interrupt_measure.disable_irq();
+    }
 		
-		int HandleIRQ(OperatingMode operating_mode, MeasureData_t *Data);
+    int HandleIRQ(OperatingMode operating_mode, MeasureData_t *Data);
 		
-		unsigned Present()
-		{
-			 return Device->Present;
-		}
+    unsigned Present()
+    {
+       return Device->Present;
+    }
 		
-		/* Wrapper functions */	
-		int WaitDeviceBooted()
-		{
-			 return VL6180x_WaitDeviceBooted(Device);
-		}
+    /* Wrapper functions */	
+    int WaitDeviceBooted()
+    {
+       return VL6180x_WaitDeviceBooted(Device);
+    }
 		
-		int Init() 
+    int Init() 
     {
        return VL6180x_InitData(Device);
     }
 		
-		int SetupGPIO1(uint8_t InitFunction, int ActiveHigh)
-		{
-			 return VL6180x_SetupGPIO1(Device, InitFunction, ActiveHigh);
-		}
+    int SetupGPIO1(uint8_t InitFunction, int ActiveHigh)
+    {
+       return VL6180x_SetupGPIO1(Device, InitFunction, ActiveHigh);
+    }
 		
-		int Prepare()
-		{
-			 return VL6180x_Prepare(Device);
-		}
+    int Prepare()
+    {
+       return VL6180x_Prepare(Device);
+    }
 		
-		int RangeStartContinuousMode()
-		{
-			 return VL6180x_RangeStartContinuousMode(Device);
-		}
+    int RangeStartContinuousMode()
+    {
+       return VL6180x_RangeStartContinuousMode(Device);
+    }
 		
-		int RangeStartSingleShot()
-		{
-			return VL6180x_RangeStartSingleShot(Device);
-		}
+    int RangeStartSingleShot()
+    {
+       return VL6180x_RangeStartSingleShot(Device);
+    }
 		
-		int RangeSetMaxConvergenceTime(uint8_t MaxConTime_msec)
-		{
-			 return VL6180x_RangeSetMaxConvergenceTime(Device, MaxConTime_msec);
-		}
+    int RangeSetMaxConvergenceTime(uint8_t MaxConTime_msec)
+    {
+       return VL6180x_RangeSetMaxConvergenceTime(Device, MaxConTime_msec);
+    }
 		
-		int RangePollMeasurement(VL6180x_RangeData_t *pRangeData)
-		{
-			 return VL6180x_RangePollMeasurement(Device, pRangeData);
-		}
+    int RangePollMeasurement(VL6180x_RangeData_t *pRangeData)
+    {
+       return VL6180x_RangePollMeasurement(Device, pRangeData);
+    }
 		
-		int RangeGetMeasurementIfReady(VL6180x_RangeData_t *pRangeData)
-		{
-		   return VL6180x_RangeGetMeasurementIfReady(Device, pRangeData);
-		}
+    int RangeGetMeasurementIfReady(VL6180x_RangeData_t *pRangeData)
+    {
+       return VL6180x_RangeGetMeasurementIfReady(Device, pRangeData);
+    }
 		
-		int RangeGetMeasurement(VL6180x_RangeData_t *pRangeData)
-		{
-			 return VL6180x_RangeGetMeasurement(Device, pRangeData);
-		}
+    int RangeGetMeasurement(VL6180x_RangeData_t *pRangeData)
+    {
+       return VL6180x_RangeGetMeasurement(Device, pRangeData);
+    }
 		
-		int GetRange(int32_t *piData)
-		{
-			 return VL6180x_RangeGetResult(Device, piData);
-		}
+    int GetRange(int32_t *piData)
+    {
+       return VL6180x_RangeGetResult(Device, piData);
+    }
 		
-		int RangeConfigInterrupt(uint8_t ConfigGpioInt)
-		{
-			 return VL6180x_RangeConfigInterrupt(Device, ConfigGpioInt);
-		}
+    int RangeConfigInterrupt(uint8_t ConfigGpioInt)
+    {
+       return VL6180x_RangeConfigInterrupt(Device, ConfigGpioInt);
+    }
 		
-		int RangeGetInterruptStatus(uint8_t *pIntStatus)
-		{
-			 return VL6180x_RangeGetInterruptStatus(Device, pIntStatus);
-		}
+    int RangeGetInterruptStatus(uint8_t *pIntStatus)
+    {
+       return VL6180x_RangeGetInterruptStatus(Device, pIntStatus);
+    }
 		
-		int AlsPollMeasurement(VL6180x_AlsData_t *pAlsData)
-		{
-			 return VL6180x_AlsPollMeasurement(Device, pAlsData);
-		}
+    int AlsPollMeasurement(VL6180x_AlsData_t *pAlsData)
+    {
+       return VL6180x_AlsPollMeasurement(Device, pAlsData);
+    }
 		
-		int AlsGetMeasurement(VL6180x_AlsData_t *pAlsData)
-		{
-			 return VL6180x_AlsGetMeasurement(Device, pAlsData);
-		}
+    int AlsGetMeasurement(VL6180x_AlsData_t *pAlsData)
+    {
+       return VL6180x_AlsGetMeasurement(Device, pAlsData);
+    }
 	
-		int AlsConfigInterrupt(uint8_t ConfigGpioInt)
-		{
-			 return VL6180x_AlsConfigInterrupt(Device, ConfigGpioInt);
-		}
+    int AlsConfigInterrupt(uint8_t ConfigGpioInt)
+    {
+       return VL6180x_AlsConfigInterrupt(Device, ConfigGpioInt);
+    }
 		
-		int AlsSetIntegrationPeriod(uint16_t period_ms)
-		{
+    int AlsSetIntegrationPeriod(uint16_t period_ms)
+    {
        return VL6180x_AlsSetIntegrationPeriod(Device, period_ms);	
-		}
+    }
 		
-		int AlsSetInterMeasurementPeriod(uint16_t intermeasurement_period_ms)
-		{
+    int AlsSetInterMeasurementPeriod(uint16_t intermeasurement_period_ms)
+    {
        return VL6180x_AlsSetInterMeasurementPeriod(Device, intermeasurement_period_ms);
     }
 
     int AlsSetAnalogueGain(uint8_t gain)
-		{
-			 return VL6180x_AlsSetAnalogueGain(Device, gain);
-		}
+    {
+       return VL6180x_AlsSetAnalogueGain(Device, gain);
+    }
 		
-		int AlsSetThresholds(uint8_t low, uint8_t high)
-		{
-			 return VL6180x_AlsSetThresholds(Device, low, high);
-		}
+    int AlsSetThresholds(uint8_t low, uint8_t high)
+    {
+       return VL6180x_AlsSetThresholds(Device, low, high);
+    }
 
     int AlsGetInterruptStatus(uint8_t *pIntStatus)
 		{
@@ -287,231 +287,231 @@
     }
 
     int StaticInit()
-		{
-			 return VL6180x_StaticInit(Device);
-		}
+    {
+       return VL6180x_StaticInit(Device);
+    }
 		
-		int RangeWaitDeviceReady(int MaxLoop )
-		{
-			 return VL6180x_RangeWaitDeviceReady(Device, MaxLoop);
-		}
+    int RangeWaitDeviceReady(int MaxLoop )
+    {
+       return VL6180x_RangeWaitDeviceReady(Device, MaxLoop);
+    }
 		
-		int RangeSetInterMeasPeriod(uint32_t  InterMeasTime_msec)
-		{
-			 return VL6180x_RangeSetInterMeasPeriod(Device, InterMeasTime_msec);
-	  }
+    int RangeSetInterMeasPeriod(uint32_t  InterMeasTime_msec)
+    {
+       return VL6180x_RangeSetInterMeasPeriod(Device, InterMeasTime_msec);
+    }
 		
-		int UpscaleSetScaling(uint8_t scaling)
-		{
-			 return VL6180x_UpscaleSetScaling(Device, scaling);
-		}
+    int UpscaleSetScaling(uint8_t scaling)
+    {
+       return VL6180x_UpscaleSetScaling(Device, scaling);
+    }
 		
-		int UpscaleGetScaling()
-		{
-			 return VL6180x_UpscaleGetScaling(Device);
-		}
+    int UpscaleGetScaling()
+    {
+       return VL6180x_UpscaleGetScaling(Device);
+    }
 		
-		uint16_t GetUpperLimit()
-		{
-			 return VL6180x_GetUpperLimit(Device);
-		}
+    uint16_t GetUpperLimit()
+    {
+       return VL6180x_GetUpperLimit(Device);
+    }
 		
-		int RangeSetThresholds(uint16_t low, uint16_t high, int SafeHold)
-		{
-			 return VL6180x_RangeSetThresholds(Device, low, high, SafeHold);
-		}
+    int RangeSetThresholds(uint16_t low, uint16_t high, int SafeHold)
+    {
+       return VL6180x_RangeSetThresholds(Device, low, high, SafeHold);
+    }
 
-		int RangeGetThresholds(uint16_t *low, uint16_t *high)
-		{
-			 return VL6180x_RangeGetThresholds(Device, low, high);
-		}
+    int RangeGetThresholds(uint16_t *low, uint16_t *high)
+    {
+       return VL6180x_RangeGetThresholds(Device, low, high);
+    }
 			
-		int RangeSetRawThresholds(uint8_t low, uint8_t high)
-		{
-			 return VL6180x_RangeSetRawThresholds(Device, low, high);
-		}
+    int RangeSetRawThresholds(uint8_t low, uint8_t high)
+    {
+       return VL6180x_RangeSetRawThresholds(Device, low, high);
+    }
 		
-		int RangeSetEceFactor(uint16_t  FactorM, uint16_t FactorD)
-		{
-			 return VL6180x_RangeSetEceFactor(Device, FactorM, FactorD);
-		}
+    int RangeSetEceFactor(uint16_t  FactorM, uint16_t FactorD)
+    {
+       return VL6180x_RangeSetEceFactor(Device, FactorM, FactorD);
+    }
 		
-		int RangeSetEceState(int enable)
-		{
-			 return VL6180x_RangeSetEceState(Device, enable);
-		}
+    int RangeSetEceState(int enable)
+    {
+       return VL6180x_RangeSetEceState(Device, enable);
+    }
 			
-		int FilterSetState(int state)
-		{
-			 return VL6180x_FilterSetState(Device, state);
-		}
+    int FilterSetState(int state)
+    {
+       return VL6180x_FilterSetState(Device, state);
+    }
 			
-		int FilterGetState()
-		{
-			 return VL6180x_FilterGetState(Device);
-		}
+    int FilterGetState()
+    {
+       return VL6180x_FilterGetState(Device);
+    }
 		
-		int DMaxSetState(int state)
-		{
-			 return VL6180x_DMaxSetState(Device, state);
-		}
+    int DMaxSetState(int state)
+    {
+       return VL6180x_DMaxSetState(Device, state);
+    }
 		
-		int DMaxGetState()
-		{
-			 return VL6180x_DMaxGetState(Device);
-		}
+    int DMaxGetState()
+    {
+       return VL6180x_DMaxGetState(Device);
+    }
 		
-		int RangeSetSystemMode(uint8_t mode)
-		{
-			 return VL6180x_RangeSetSystemMode(Device, mode);
-		}
+    int RangeSetSystemMode(uint8_t mode)
+    {
+       return VL6180x_RangeSetSystemMode(Device, mode);
+    }
 		
-		int8_t GetOffsetCalibrationData()
-		{
-			 return VL6180x_GetOffsetCalibrationData(Device);
-		}
+    int8_t GetOffsetCalibrationData()
+    {
+       return VL6180x_GetOffsetCalibrationData(Device);
+    }
 		
-		void SetOffsetCalibrationData(int8_t offset)
-		{
-			 return VL6180x_SetOffsetCalibrationData(Device, offset);
-		}
+    void SetOffsetCalibrationData(int8_t offset)
+    {
+       return VL6180x_SetOffsetCalibrationData(Device, offset);
+    }
 		
-		int SetXTalkCompensationRate(FixPoint97_t Rate)
-		{
-			 return VL6180x_SetXTalkCompensationRate(Device, Rate);
-		}
+    int SetXTalkCompensationRate(FixPoint97_t Rate)
+    {
+       return VL6180x_SetXTalkCompensationRate(Device, Rate);
+    }
 		
-		int AlsWaitDeviceReady(int MaxLoop)
-		{
-			 return VL6180x_AlsWaitDeviceReady(Device, MaxLoop);
-		}
+    int AlsWaitDeviceReady(int MaxLoop)
+    {
+       return VL6180x_AlsWaitDeviceReady(Device, MaxLoop);
+    }
 		
-		int AlsSetSystemMode(uint8_t mode)
-		{
-			 return VL6180x_AlsSetSystemMode(Device, mode);
-		}
+    int AlsSetSystemMode(uint8_t mode)
+    {
+       return VL6180x_AlsSetSystemMode(Device, mode);
+    }
 
-		int SetGroupParamHold(int Hold)
-		{
-			 return VL6180x_SetGroupParamHold(Device, Hold);
-		}		
+    int SetGroupParamHold(int Hold)
+    {
+       return VL6180x_SetGroupParamHold(Device, Hold);
+    }		
 		
-		int SetI2CAddress(int NewAddr)
-		{
-			 int status;
+    int SetI2CAddress(int NewAddr)
+    {
+       int status;
 			
-			 status=VL6180x_SetI2CAddress(Device, NewAddr);
-			 if(!status)
-				  Device->I2cAddr=NewAddr;
-			 return status;
-		}
+       status=VL6180x_SetI2CAddress(Device, NewAddr);
+       if(!status)
+          Device->I2cAddr=NewAddr;
+       return status;
+    }
 		
-		int SetupGPIOx(int pin, uint8_t IntFunction, int ActiveHigh)
-		{
-			 return VL6180x_SetupGPIOx(Device, pin, IntFunction, ActiveHigh);
-		}
+    int SetupGPIOx(int pin, uint8_t IntFunction, int ActiveHigh)
+    {
+       return VL6180x_SetupGPIOx(Device, pin, IntFunction, ActiveHigh);
+    }
 		
-		int SetGPIOxPolarity(int pin, int active_high)
-		{
-			 return VL6180x_SetGPIOxPolarity(Device, pin, active_high);
-		}
+    int SetGPIOxPolarity(int pin, int active_high)
+    {
+       return VL6180x_SetGPIOxPolarity(Device, pin, active_high);
+    }
 		 
-		int SetGPIOxFunctionality(int pin, uint8_t functionality)
-		{
-			 return VL6180x_SetGPIOxFunctionality(Device, pin, functionality);
-		}
+    int SetGPIOxFunctionality(int pin, uint8_t functionality)
+    {
+       return VL6180x_SetGPIOxFunctionality(Device, pin, functionality);
+    }
 	
-		int DisableGPIOxOut(int pin)
-		{
-			 return VL6180x_DisableGPIOxOut(Device, pin);
-		}
+    int DisableGPIOxOut(int pin)
+    {
+       return VL6180x_DisableGPIOxOut(Device, pin);
+    }
 		
-		int GetInterruptStatus(uint8_t *status)
-		{
-			 return VL6180x_GetInterruptStatus(Device, status);
-		}
+    int GetInterruptStatus(uint8_t *status)
+    {
+       return VL6180x_GetInterruptStatus(Device, status);
+    }
 		
-		int ClearInterrupt(uint8_t IntClear)
-		{
-			 return VL6180x_ClearInterrupt(Device, IntClear );
-		}
+    int ClearInterrupt(uint8_t IntClear)
+    {
+       return VL6180x_ClearInterrupt(Device, IntClear );
+    }
 		
-		int GetLight(uint32_t *piData)
-		{
-		   return VL6180x_AlsGetLux(Device, piData);
-	  }
+    int GetLight(uint32_t *piData)
+    {
+       return VL6180x_AlsGetLux(Device, piData);
+    }
 		
-		int AlsStartContinuousMode()
-		{
-			 return VL6180x_AlsSetSystemMode(Device, MODE_START_STOP|MODE_CONTINUOUS);
-		}
+    int AlsStartContinuousMode()
+    {
+       return VL6180x_AlsSetSystemMode(Device, MODE_START_STOP|MODE_CONTINUOUS);
+    }
 		
-private:		
-		/* api.h functions */
-		int VL6180x_WaitDeviceBooted(VL6180xDev_t dev);
-		int VL6180x_InitData(VL6180xDev_t dev );
-		int VL6180x_SetupGPIO1(VL6180xDev_t dev, uint8_t IntFunction, int ActiveHigh);
-		int VL6180x_Prepare(VL6180xDev_t dev);
-		int VL6180x_RangeStartContinuousMode(VL6180xDev_t dev);
-		int VL6180x_RangeStartSingleShot(VL6180xDev_t dev);
-		int VL6180x_RangeSetMaxConvergenceTime(VL6180xDev_t dev, uint8_t  MaxConTime_msec);
-		int VL6180x_RangePollMeasurement(VL6180xDev_t dev, VL6180x_RangeData_t *pRangeData);
-		int VL6180x_RangeGetMeasurementIfReady(VL6180xDev_t dev, VL6180x_RangeData_t *pRangeData);
-		int VL6180x_RangeGetMeasurement(VL6180xDev_t dev, VL6180x_RangeData_t *pRangeData);
-		int VL6180x_RangeGetResult(VL6180xDev_t dev, int32_t *pRange_mm);
-		int VL6180x_RangeConfigInterrupt(VL6180xDev_t dev, uint8_t ConfigGpioInt);
-		int VL6180x_RangeGetInterruptStatus(VL6180xDev_t dev, uint8_t *pIntStatus);
-		int VL6180x_AlsPollMeasurement(VL6180xDev_t dev, VL6180x_AlsData_t *pAlsData);
-		int VL6180x_AlsGetMeasurement(VL6180xDev_t dev, VL6180x_AlsData_t *pAlsData);
-		int VL6180x_AlsConfigInterrupt(VL6180xDev_t dev, uint8_t ConfigGpioInt);
-		int VL6180x_AlsSetIntegrationPeriod(VL6180xDev_t dev, uint16_t period_ms);
-		int VL6180x_AlsSetInterMeasurementPeriod(VL6180xDev_t dev,  uint16_t intermeasurement_period_ms);
-		int VL6180x_AlsSetAnalogueGain(VL6180xDev_t dev, uint8_t gain);
-		int VL6180x_AlsSetThresholds(VL6180xDev_t dev, uint8_t low, uint8_t high);
-		int VL6180x_AlsGetInterruptStatus(VL6180xDev_t dev, uint8_t *pIntStatus);
-		int VL6180x_StaticInit(VL6180xDev_t dev);
-		int VL6180x_RangeWaitDeviceReady(VL6180xDev_t dev, int MaxLoop );
-		int VL6180x_RangeSetInterMeasPeriod(VL6180xDev_t dev, uint32_t  InterMeasTime_msec);
-		int VL6180x_UpscaleSetScaling(VL6180xDev_t dev, uint8_t scaling);
-		int VL6180x_UpscaleGetScaling(VL6180xDev_t dev);
-		uint16_t VL6180x_GetUpperLimit(VL6180xDev_t dev);
-		int VL6180x_RangeSetThresholds(VL6180xDev_t dev, uint16_t low, uint16_t high, int SafeHold);
-		int VL6180x_RangeGetThresholds(VL6180xDev_t dev, uint16_t *low, uint16_t *high);
-		int VL6180x_RangeSetRawThresholds(VL6180xDev_t dev, uint8_t low, uint8_t high);
-		int VL6180x_RangeSetEceFactor(VL6180xDev_t dev, uint16_t  FactorM, uint16_t FactorD);
-		int VL6180x_RangeSetEceState(VL6180xDev_t dev, int enable );
-		int VL6180x_FilterSetState(VL6180xDev_t dev, int state);
-		int VL6180x_FilterGetState(VL6180xDev_t dev);
-		int VL6180x_DMaxSetState(VL6180xDev_t dev, int state);
-		int VL6180x_DMaxGetState(VL6180xDev_t dev);
-		int VL6180x_RangeSetSystemMode(VL6180xDev_t dev, uint8_t mode);
-		int8_t VL6180x_GetOffsetCalibrationData(VL6180xDev_t dev);
-		void VL6180x_SetOffsetCalibrationData(VL6180xDev_t dev, int8_t offset);
-		int VL6180x_SetXTalkCompensationRate(VL6180xDev_t dev, FixPoint97_t Rate);
-		int VL6180x_AlsWaitDeviceReady(VL6180xDev_t dev, int MaxLoop );
-		int VL6180x_AlsSetSystemMode(VL6180xDev_t dev, uint8_t mode); 
-		int VL6180x_SetGroupParamHold(VL6180xDev_t dev, int Hold);
-		int VL6180x_SetI2CAddress(VL6180xDev_t dev, uint8_t NewAddr);
-		int VL6180x_SetupGPIOx(VL6180xDev_t dev, int pin, uint8_t IntFunction, int ActiveHigh);
-		int VL6180x_SetGPIOxPolarity(VL6180xDev_t dev, int pin, int active_high);
-		int VL6180x_SetGPIOxFunctionality(VL6180xDev_t dev, int pin, uint8_t functionality);
-		int VL6180x_DisableGPIOxOut(VL6180xDev_t dev, int pin);
-		int VL6180x_GetInterruptStatus(VL6180xDev_t dev, uint8_t *status);
-		int VL6180x_ClearInterrupt(VL6180xDev_t dev, uint8_t IntClear );
+ private:		
+    /* api.h functions */
+    int VL6180x_WaitDeviceBooted(VL6180xDev_t dev);
+    int VL6180x_InitData(VL6180xDev_t dev );
+    int VL6180x_SetupGPIO1(VL6180xDev_t dev, uint8_t IntFunction, int ActiveHigh);
+    int VL6180x_Prepare(VL6180xDev_t dev);
+    int VL6180x_RangeStartContinuousMode(VL6180xDev_t dev);
+    int VL6180x_RangeStartSingleShot(VL6180xDev_t dev);
+    int VL6180x_RangeSetMaxConvergenceTime(VL6180xDev_t dev, uint8_t  MaxConTime_msec);
+    int VL6180x_RangePollMeasurement(VL6180xDev_t dev, VL6180x_RangeData_t *pRangeData);
+    int VL6180x_RangeGetMeasurementIfReady(VL6180xDev_t dev, VL6180x_RangeData_t *pRangeData);
+    int VL6180x_RangeGetMeasurement(VL6180xDev_t dev, VL6180x_RangeData_t *pRangeData);
+    int VL6180x_RangeGetResult(VL6180xDev_t dev, int32_t *pRange_mm);
+    int VL6180x_RangeConfigInterrupt(VL6180xDev_t dev, uint8_t ConfigGpioInt);
+    int VL6180x_RangeGetInterruptStatus(VL6180xDev_t dev, uint8_t *pIntStatus);
+    int VL6180x_AlsPollMeasurement(VL6180xDev_t dev, VL6180x_AlsData_t *pAlsData);
+    int VL6180x_AlsGetMeasurement(VL6180xDev_t dev, VL6180x_AlsData_t *pAlsData);
+    int VL6180x_AlsConfigInterrupt(VL6180xDev_t dev, uint8_t ConfigGpioInt);
+    int VL6180x_AlsSetIntegrationPeriod(VL6180xDev_t dev, uint16_t period_ms);
+    int VL6180x_AlsSetInterMeasurementPeriod(VL6180xDev_t dev,  uint16_t intermeasurement_period_ms);
+    int VL6180x_AlsSetAnalogueGain(VL6180xDev_t dev, uint8_t gain);
+    int VL6180x_AlsSetThresholds(VL6180xDev_t dev, uint8_t low, uint8_t high);
+    int VL6180x_AlsGetInterruptStatus(VL6180xDev_t dev, uint8_t *pIntStatus);
+    int VL6180x_StaticInit(VL6180xDev_t dev);
+    int VL6180x_RangeWaitDeviceReady(VL6180xDev_t dev, int MaxLoop );
+    int VL6180x_RangeSetInterMeasPeriod(VL6180xDev_t dev, uint32_t  InterMeasTime_msec);
+    int VL6180x_UpscaleSetScaling(VL6180xDev_t dev, uint8_t scaling);
+    int VL6180x_UpscaleGetScaling(VL6180xDev_t dev);
+    uint16_t VL6180x_GetUpperLimit(VL6180xDev_t dev);
+    int VL6180x_RangeSetThresholds(VL6180xDev_t dev, uint16_t low, uint16_t high, int SafeHold);
+    int VL6180x_RangeGetThresholds(VL6180xDev_t dev, uint16_t *low, uint16_t *high);
+    int VL6180x_RangeSetRawThresholds(VL6180xDev_t dev, uint8_t low, uint8_t high);
+    int VL6180x_RangeSetEceFactor(VL6180xDev_t dev, uint16_t  FactorM, uint16_t FactorD);
+    int VL6180x_RangeSetEceState(VL6180xDev_t dev, int enable );
+    int VL6180x_FilterSetState(VL6180xDev_t dev, int state);
+    int VL6180x_FilterGetState(VL6180xDev_t dev);
+    int VL6180x_DMaxSetState(VL6180xDev_t dev, int state);
+    int VL6180x_DMaxGetState(VL6180xDev_t dev);
+    int VL6180x_RangeSetSystemMode(VL6180xDev_t dev, uint8_t mode);
+    int8_t VL6180x_GetOffsetCalibrationData(VL6180xDev_t dev);
+    void VL6180x_SetOffsetCalibrationData(VL6180xDev_t dev, int8_t offset);
+    int VL6180x_SetXTalkCompensationRate(VL6180xDev_t dev, FixPoint97_t Rate);
+    int VL6180x_AlsWaitDeviceReady(VL6180xDev_t dev, int MaxLoop );
+    int VL6180x_AlsSetSystemMode(VL6180xDev_t dev, uint8_t mode); 
+    int VL6180x_SetGroupParamHold(VL6180xDev_t dev, int Hold);
+    int VL6180x_SetI2CAddress(VL6180xDev_t dev, uint8_t NewAddr);
+    int VL6180x_SetupGPIOx(VL6180xDev_t dev, int pin, uint8_t IntFunction, int ActiveHigh);
+    int VL6180x_SetGPIOxPolarity(VL6180xDev_t dev, int pin, int active_high);
+    int VL6180x_SetGPIOxFunctionality(VL6180xDev_t dev, int pin, uint8_t functionality);
+    int VL6180x_DisableGPIOxOut(VL6180xDev_t dev, int pin);
+    int VL6180x_GetInterruptStatus(VL6180xDev_t dev, uint8_t *status);
+    int VL6180x_ClearInterrupt(VL6180xDev_t dev, uint8_t IntClear );
 		
-		/*  Other functions defined in api.c */
-		int VL6180x_RangeStaticInit(VL6180xDev_t dev); 
-		int VL6180x_UpscaleRegInit(VL6180xDev_t dev);
-		int VL6180x_UpscaleStaticInit(VL6180xDev_t dev); 
-		int VL6180x_AlsGetLux(VL6180xDev_t dev, lux_t *pLux);
-		int _UpscaleInitPatch0(VL6180xDev_t dev); 
-		int VL6180x_RangeGetDeviceReady(VL6180xDev_t dev, int * Ready);
-		int VL6180x_RangeSetEarlyConvergenceEestimateThreshold(VL6180xDev_t dev);
-		int32_t _GetAveTotalTime(VL6180xDev_t dev); 
-		int32_t _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 _filter_GetResult(VL6180xDev_t dev, VL6180x_RangeData_t *pRangeData);
-		int _GetRateResult(VL6180xDev_t dev, VL6180x_RangeData_t *pRangeData); 
-		int _DMax_InitData(VL6180xDev_t dev);
+    /*  Other functions defined in api.c */
+    int VL6180x_RangeStaticInit(VL6180xDev_t dev); 
+    int VL6180x_UpscaleRegInit(VL6180xDev_t dev);
+    int VL6180x_UpscaleStaticInit(VL6180xDev_t dev); 
+    int VL6180x_AlsGetLux(VL6180xDev_t dev, lux_t *pLux);
+    int _UpscaleInitPatch0(VL6180xDev_t dev); 
+    int VL6180x_RangeGetDeviceReady(VL6180xDev_t dev, int * Ready);
+    int VL6180x_RangeSetEarlyConvergenceEestimateThreshold(VL6180xDev_t dev);
+    int32_t _GetAveTotalTime(VL6180xDev_t dev); 
+    int32_t _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 _filter_GetResult(VL6180xDev_t dev, VL6180x_RangeData_t *pRangeData);
+    int _GetRateResult(VL6180xDev_t dev, VL6180x_RangeData_t *pRangeData); 
+    int _DMax_InitData(VL6180xDev_t dev);
 		
     /* Read function of the ID device */
     int ReadID();
@@ -523,41 +523,41 @@
     int VL6180x_RdByte(VL6180xDev_t dev, uint16_t index, uint8_t *data);
     int VL6180x_RdWord(VL6180xDev_t dev, uint16_t index, uint16_t *data);
     int VL6180x_RdDWord(VL6180xDev_t dev, uint16_t index, uint32_t *data);
-		int VL6180x_UpdateByte(VL6180xDev_t dev, uint16_t index, uint8_t AndData, uint8_t OrData);
+    int VL6180x_UpdateByte(VL6180xDev_t dev, uint16_t index, uint8_t AndData, uint8_t OrData);
     int VL6180x_I2CWrite(uint8_t DeviceAddr, uint16_t RegisterAddr, uint8_t *pBuffer, uint16_t NumByteToWrite);
     int VL6180x_I2CRead(uint8_t DeviceAddr, uint16_t RegisterAddr, uint8_t *pBuffer, uint16_t NumByteToRead);
 		
 		
-		int IsPresent()
-		{
-			 int status;
+    int IsPresent()
+    {
+       int status;
 			
-			 status=ReadID();
+       status=ReadID();
        if(status)
-				 printf("Failed to read ID device! Device not present!\n\r"); //FIXME da sistemare la funzione di stampa errore ErrLog da platform.h
-			 return status;
-		}	
-		int StopRangeMeasurement(OperatingMode operating_mode);
-		int StopAlsMeasurement(OperatingMode operating_mode);
-		int GetRangeMeas(OperatingMode operating_mode, MeasureData_t *Data);	
-		int GetAlsMeas(OperatingMode operating_mode, MeasureData_t *Data);
-		int GetRangeAlsMeas(MeasureData_t *Data);
-		int RangeSetLowThreshold(uint16_t threshold);
-		int RangeSetHighThreshold(uint16_t threshold);
-		int AlsSetLowThreshold(uint16_t threshold);	
-		int AlsSetHighThreshold(uint16_t threshold);
-		int GetRangeError(MeasureData_t *Data, VL6180x_RangeData_t RangeData);
-		int GetAlsError(MeasureData_t *Data, VL6180x_AlsData_t AlsData);
-		int RangeMeasPollSingleShot(MeasureData_t *Data);
-		int AlsMeasPollSingleShot(MeasureData_t *Data);		
-		int RangeMeasPollContinuousMode();	
-		int AlsMeasPollContinuousMode();
-		int AlsGetMeasurementIfReady(VL6180xDev_t dev, VL6180x_AlsData_t *pAlsData);
-		int RangeMeasIntContinuousMode(void (*fptr)(void));
-		int AlsMeasIntContinuousMode(void (*fptr)(void));
-		int InterleavedMode(void (*fptr)(void));
-		int StartInterleavedMode();
-		int VL6180x_AlsGetThresholds(VL6180xDev_t dev, uint16_t *low, uint16_t *high);
+          printf("Failed to read ID device! Device not present!\n\r"); //FIXME da sistemare la funzione di stampa errore ErrLog da platform.h
+       return status;
+    }	
+    int StopRangeMeasurement(OperatingMode operating_mode);
+    int StopAlsMeasurement(OperatingMode operating_mode);
+    int GetRangeMeas(OperatingMode operating_mode, MeasureData_t *Data);	
+    int GetAlsMeas(OperatingMode operating_mode, MeasureData_t *Data);
+    int GetRangeAlsMeas(MeasureData_t *Data);
+    int RangeSetLowThreshold(uint16_t threshold);
+    int RangeSetHighThreshold(uint16_t threshold);
+    int AlsSetLowThreshold(uint16_t threshold);	
+    int AlsSetHighThreshold(uint16_t threshold);
+    int GetRangeError(MeasureData_t *Data, VL6180x_RangeData_t RangeData);
+    int GetAlsError(MeasureData_t *Data, VL6180x_AlsData_t AlsData);
+    int RangeMeasPollSingleShot(MeasureData_t *Data);
+    int AlsMeasPollSingleShot(MeasureData_t *Data);		
+    int RangeMeasPollContinuousMode();	
+    int AlsMeasPollContinuousMode();
+    int AlsGetMeasurementIfReady(VL6180xDev_t dev, VL6180x_AlsData_t *pAlsData);
+    int RangeMeasIntContinuousMode(void (*fptr)(void));
+    int AlsMeasIntContinuousMode(void (*fptr)(void));
+    int InterleavedMode(void (*fptr)(void));
+    int StartInterleavedMode();
+    int VL6180x_AlsGetThresholds(VL6180xDev_t dev, uint16_t *low, uint16_t *high);
 
 		
     /* IO Device */