Greatly simplified Architecture, Identical Functions Removed: Platform Interfaces, STP6001 interface

Files at this revision

API Documentation at this revision

Comitter:
sepp_nepp
Date:
Sat Jul 20 08:48:49 2019 +0000
Parent:
12:81f37e50f8f8
Commit message:
Proven to work with TOF-Synth-III

Changed in this revision

VL53L0X.cpp Show annotated file Show diff for this revision Revisions of this file
VL53L0X.h Show annotated file Show diff for this revision Revisions of this file
diff -r 81f37e50f8f8 -r 253cb4ea3fcc VL53L0X.cpp
--- a/VL53L0X.cpp	Mon Jul 08 14:07:22 2019 +0000
+++ b/VL53L0X.cpp	Sat Jul 20 08:48:49 2019 +0000
@@ -68,102 +68,102 @@
 #include <stdlib.h>
 #include "VL53L0X.h"
 
-void Report_Range_Infos(VL53L0X_RangingMeasurementData_t RangeResults)
+void Report_Range_Infos(VL53L0X_RangingMeasurementData_t RangeResults, Serial *aSerial )
 {    
-	printf("\n\r Reporting All  Fields of VL53L0X_RangingMeasurementData_t structure \n\r" ); 
-    printf(" .Range_mm = %dmm; Ranged distance. \n\r",  RangeResults.Range_mm ); 
-    printf(" .RangeDMax_mm = %dmm; maximum detection distance in current setup and environment conditions \n\r",  RangeResults.RangeDMax_mm ); 
-    printf(" .SignalRateRtn_MHz = %3.3fMHz; effectively a measure of target  reflectance \n\r",  RangeResults.SignalRateRtn_MHz / 65535.01); 
-    printf(" .AmbientRateRtn_MHz = %3.3fMHz; effectively a measure of the ambient light \n\r",  RangeResults.AmbientRateRtn_MHz / 65535.01 ); 
-    printf(" .EffectiveSpadRtnCount = %3.3f; effective SPAD count for the return signal \n\r",  RangeResults.EffectiveSpadRtnCount / 256.001 ); 
-    printf(" .RangeFractionalPart = %d; Fractional part of range distance. \n\r",  RangeResults.RangeFractionalPart >> 6 ); 
-    printf(" .RangeStatus = %d[u8];  Status for the current measurement, 0 = value is valid \n\r",  RangeResults.RangeStatus ); 
-    printf(" .SigmaEstimate = %3.2f;  Estimated Sigma - based on ambient & VCSEL rates and signal_total_events \n\r",  RangeResults.SigmaEstimate/ 65535.01 ); 
+	aSerial->printf("\n\r Reporting All  Fields of VL53L0X_RangingMeasurementData_t structure \n\r" ); 
+    aSerial->printf(" .Range_mm = %dmm; Ranged distance. \n\r",  RangeResults.Range_mm ); 
+    aSerial->printf(" .RangeDMax_mm = %dmm; maximum detection distance in current setup and environment conditions \n\r",  RangeResults.RangeDMax_mm ); 
+    aSerial->printf(" .SignalRateRtn_MHz = %3.3fMHz; effectively a measure of target  reflectance \n\r",  RangeResults.SignalRateRtn_MHz / 65535.01); 
+    aSerial->printf(" .AmbientRateRtn_MHz = %3.3fMHz; effectively a measure of the ambient light \n\r",  RangeResults.AmbientRateRtn_MHz / 65535.01 ); 
+    aSerial->printf(" .EffectiveSpadRtnCount = %3.3f; effective SPAD count for the return signal \n\r",  RangeResults.EffectiveSpadRtnCount / 256.001 ); 
+    aSerial->printf(" .RangeFractionalPart = %d; Fractional part of range distance. \n\r",  RangeResults.RangeFractionalPart >> 6 ); 
+    aSerial->printf(" .RangeStatus = %d[u8];  Status for the current measurement, 0 = value is valid \n\r",  RangeResults.RangeStatus ); 
+    aSerial->printf(" .SigmaEstimate = %3.2f;  Estimated Sigma - based on ambient & VCSEL rates and signal_total_events \n\r",  RangeResults.SigmaEstimate/ 65535.01 ); 
 };
 
-void Report_Deep_Infos(VL53L0X TOF1)
+void Report_Deep_Infos(VL53L0X TOF1, Serial *aSerial)
 {   
-    printf("\n\r Reporting All Top Level Infos of the class \n\r" ); 
-    printf("I2cDevAddr  = %d. \n\r",  TOF1.I2cDevAddr ); 
-    printf("comms_type  = %d. Type of comms: 1=VL53L0X_COMMS_I2C or VL53L0X_COMMS_SPI \n\r",  TOF1.comms_type ); 
-    printf("comms_speed = %d. Communication speed [kHz] : typically 400kHz for I2C   \n\r",  TOF1.comms_speed_khz ); 
+    aSerial->printf("\n\r Reporting All Top Level Infos of the class \n\r" ); 
+    aSerial->printf("I2cDevAddr  = %d. \n\r",  TOF1.I2cDevAddr ); 
+    aSerial->printf("comms_type  = %d. Type of comms: 1=VL53L0X_COMMS_I2C or VL53L0X_COMMS_SPI \n\r",  TOF1.comms_type ); 
+    aSerial->printf("comms_speed = %d. Communication speed [kHz] : typically 400kHz for I2C   \n\r",  TOF1.comms_speed_khz ); 
        
-    printf("\n\r Reporting All Infos of the Device_Info structure: \n\r" ); 
-    printf("Device_Info.ProductType = 0x%2X.  VL53L0X = 1, VL53L1 = 2 \n\r",  TOF1.Device_Info.ProductType );     
-    printf("Device_Info.ProductRevision = %d.%d. Revision NR, major.minor \n\r",  
+    aSerial->printf("\n\r Reporting All Infos of the Device_Info structure: \n\r" ); 
+    aSerial->printf("Device_Info.ProductType = 0x%2X.  VL53L0X = 1, VL53L1 = 2 \n\r",  TOF1.Device_Info.ProductType );     
+    aSerial->printf("Device_Info.ProductRevision = %d.%d. Revision NR, major.minor \n\r",  
        TOF1.Device_Info.ProductRevisionMajor, TOF1.Device_Info.ProductRevisionMinor );
-    printf("Device_Info.Name = %s. Name of Device e.g. Left_Distance\n\r",   TOF1.Device_Info.Name );
-    printf("Device_Info.Type = %s. Type of Device e.g VL53L0X \n\r",   TOF1.Device_Info.Type );
-    printf("Device_Info.ProductId = %s. Product Identifier String \n\r",   TOF1.Device_Info.ProductId );
-
-    printf("\n\r Reporting All  Fields of CurrentParameters \n\r" ); 
-    printf(" .DeviceMode            = %d. Defines type of measurement to be done for the next measurement \n\r", 
+    aSerial->printf("Device_Info.Name = %s. Name of Device e.g. Left_Distance\n\r",   TOF1.Device_Info.Name );
+    aSerial->printf("Device_Info.Type = %s. Type of Device e.g VL53L0X \n\r",   TOF1.Device_Info.Type );
+    aSerial->printf("Device_Info.ProductId = %s. Product Identifier String \n\r",   TOF1.Device_Info.ProductId );
+
+    aSerial->printf("\n\r Reporting All  Fields of CurrentParameters \n\r" ); 
+    aSerial->printf(" .DeviceMode            = %d. Defines type of measurement to be done for the next measurement \n\r", 
        TOF1.CurrentParameters.DeviceMode ); 
-    printf(" .Measure_Time_Budget_us= %dus.  Allowed total time for a single measurement \n\r", 
+    aSerial->printf(" .Measure_Time_Budget_us= %dus.  Allowed total time for a single measurement \n\r", 
        TOF1.CurrentParameters.MeasurementTimingBudget_us ); 
-    printf(" .Measure_Period_ms     = %dms. Time between two consecutive measurements \n\r", 
+    aSerial->printf(" .Measure_Period_ms     = %dms. Time between two consecutive measurements \n\r", 
        TOF1.CurrentParameters.InterMeasurementPeriod_ms ); 
-    printf(" .XTalk_Compens_En      = %d. Crosstalk compensation enable or not (0, default) \n\r", 
+    aSerial->printf(" .XTalk_Compens_En      = %d. Crosstalk compensation enable or not (0, default) \n\r", 
        TOF1.CurrentParameters.XTalkCompensationEnable ); 
-    printf(" .XTalk_CompRange_mm    = %dmm. CrossTalk compensation range, seems never used \n\r", 
+    aSerial->printf(" .XTalk_CompRange_mm    = %dmm. CrossTalk compensation range, seems never used \n\r", 
        TOF1.CurrentParameters.XTalkCompensationRange_mm ); 
-    printf(" .XTalk_CompRate_MHz    = %3.2fMHz. CrossTalk compensation rate . \n\r", 
+    aSerial->printf(" .XTalk_CompRate_MHz    = %3.2fMHz. CrossTalk compensation rate . \n\r", 
        (float) TOF1.CurrentParameters.XTalkCompensationRate_MHz / 65536); 
-    printf(" .RangeOffset_um        = %d. Range offset adjustment (um) last programmed.\n\r", 
+    aSerial->printf(" .RangeOffset_um        = %d. Range offset adjustment (um) last programmed.\n\r", 
        TOF1.CurrentParameters.RangeOffset_um ); 
-    printf(" .LimitChecks ... = SIGMA_FINAL, SIGNAL_RATE_FINAL, SIGNAL_REF_CLIP, IGNORE_THRESHOLD, SIGNAL_RATE_MSRC, SIGNAL_RATE_PRE.\n\r");
-    printf(" .LimitChecksEnable[x]  = %d %d %d %d %d %d. The Limit Checks enabled or not.\n\r", 
+    aSerial->printf(" .LimitChecks ... = SIGMA_FINAL, SIGNAL_RATE_FINAL, SIGNAL_REF_CLIP, IGNORE_THRESHOLD, SIGNAL_RATE_MSRC, SIGNAL_RATE_PRE.\n\r");
+    aSerial->printf(" .LimitChecksEnable[x]  = %d %d %d %d %d %d. The Limit Checks enabled or not.\n\r", 
        TOF1.CurrentParameters.LimitChecksEnable[0],TOF1.CurrentParameters.LimitChecksEnable[1] ,TOF1.CurrentParameters.LimitChecksEnable[2], 
        TOF1.CurrentParameters.LimitChecksEnable[3],TOF1.CurrentParameters.LimitChecksEnable[4] ,TOF1.CurrentParameters.LimitChecksEnable[5]  ); 
-    printf(" .LimitChecksStatus[x]  = %d %d %d %d %d %d.  Status of checks of last measurement.\n\r", 
+    aSerial->printf(" .LimitChecksStatus[x]  = %d %d %d %d %d %d.  Status of checks of last measurement.\n\r", 
        TOF1.CurrentParameters.LimitChecksStatus[0],TOF1.CurrentParameters.LimitChecksStatus[1] ,TOF1.CurrentParameters.LimitChecksStatus[2], 
        TOF1.CurrentParameters.LimitChecksStatus[3],TOF1.CurrentParameters.LimitChecksStatus[4] ,TOF1.CurrentParameters.LimitChecksStatus[5]  ); 
-    printf(" .LimitChecksValue[x]   = %d %d %d %d %d %d [FP1616]. The Limit Check values \n\r", 
+    aSerial->printf(" .LimitChecksValue[x]   = %d %d %d %d %d %d [FP1616]. The Limit Check values \n\r", 
        TOF1.CurrentParameters.LimitChecksValue[0],TOF1.CurrentParameters.LimitChecksValue[1] ,TOF1.CurrentParameters.LimitChecksValue[2], 
        TOF1.CurrentParameters.LimitChecksValue[3],TOF1.CurrentParameters.LimitChecksValue[4] ,TOF1.CurrentParameters.LimitChecksValue[5]  ); 
-    printf(" .WrapAroundCheckEnable = %d. Wrap Around Check enabled or not \n\r", 
+    aSerial->printf(" .WrapAroundCheckEnable = %d. Wrap Around Check enabled or not \n\r", 
        TOF1.CurrentParameters.WrapAroundCheckEnable ); 
 
-    printf("\n\r Reporting All Fields of VL53L0X_DevData_t Data structure \n\r" ); 
-    printf(" .OscFrequency_MHz          = %3.2fMHz; Frequency used \n\r",  (float) TOF1.Data.OscFrequency_MHz/65536 ); 
-    printf(" .LastEncodedTimeout        = %d[u16]; Last encoded Time out used for timing budget \n\r",  TOF1.Data.LastEncodedTimeout ); 
-    printf(" .Pin0GpioFunctionality     = %d[u8]; functionality of the GPIO: pin0  \n\r",  TOF1.Data.Pin0GpioFunctionality ); 
-    printf(" .FinalRangeTimeout_us      = %d[u32]; Execution time of the final ranging \n\r",  TOF1.Data.FinalRangeTimeout_us ); 
-    printf(" .FinalRangeVcselPulsePeriod= %d[u8]; Vcsel pulse period (pll clocks) for the final range measurement \n\r",  TOF1.Data.FinalRangeVcselPulsePeriod ); 
-    printf(" .PreRangeTimeout_us        = %d[u32]; Execution time of the final range \n\r",  TOF1.Data.PreRangeTimeout_us ); 
-    printf(" .PreRangeVcselPulsePeriod  = %d[u8]; Vcsel pulse period (pll clocks) for the pre-range measurement \n\r",  TOF1.Data.PreRangeVcselPulsePeriod ); 
-    printf(" .ReadDataFromDeviceDone    = %2d;  reads from device has been done (>0) or not. \n\r",  TOF1.Data.ReadDataFromDeviceDone ); 
-    printf(" .ModuleId                  = %X; Module ID \n\r",  TOF1.Data.ModuleId ); 
-    printf(" .Revision                  = %d[u8]; test Revision \n\r",  TOF1.Data.Revision ); 
-    printf(" .ProductId                 = %s[char*]; Product Identifier String  \n\r",  TOF1.Data.ProductId ); 
-    printf(" .ReferenceSpadCount        = %d[u8];  used for ref spad management \n\r",  TOF1.Data.ReferenceSpadCount ); 
-    printf(" .ReferenceSpadType         = %d[u8]; used for ref spad management \n\r",  TOF1.Data.ReferenceSpadType ); 
-    printf(" .RefSpadsInitialised       = %d[u8]; reports if ref spads are initialised. \n\r",  TOF1.Data.RefSpadsInitialised ); 
-    printf(" .PartUIDUpper              = %d[u32];  Unique Part ID Upper \n\r",  TOF1.Data.PartUIDUpper ); 
-    printf(" .PartUIDLower              = %d[u32]; Unique Part ID Lower \n\r",  TOF1.Data.PartUIDLower ); 
-    printf(" .SignalRateMeasFixed400mm  = %3.3f; Peak Signal rate at 400 mm \n\r",  1.0 / 65535.0 * TOF1.Data.SignalRateMeasFixed400mm ); 
-    printf(" .RefSpadEnables[x]         = %X %X %X %X %X %X[hex8]; Reference Spad Enables  \n\r",  
+    aSerial->printf("\n\r Reporting All Fields of VL53L0X_DevData_t Data structure \n\r" ); 
+    aSerial->printf(" .OscFrequency_MHz          = %3.2fMHz; Frequency used \n\r",  (float) TOF1.Data.OscFrequency_MHz/65536 ); 
+    aSerial->printf(" .LastEncodedTimeout        = %d[u16]; Last encoded Time out used for timing budget \n\r",  TOF1.Data.LastEncodedTimeout ); 
+    aSerial->printf(" .Pin0GpioFunctionality     = %d[u8]; functionality of the GPIO: pin0  \n\r",  TOF1.Data.Pin0GpioFunctionality ); 
+    aSerial->printf(" .FinalRangeTimeout_us      = %d[u32]; Execution time of the final ranging \n\r",  TOF1.Data.FinalRangeTimeout_us ); 
+    aSerial->printf(" .FinalRangeVcselPulsePeriod= %d[u8]; Vcsel pulse period (pll clocks) for the final range measurement \n\r",  TOF1.Data.FinalRangeVcselPulsePeriod ); 
+    aSerial->printf(" .PreRangeTimeout_us        = %d[u32]; Execution time of the final range \n\r",  TOF1.Data.PreRangeTimeout_us ); 
+    aSerial->printf(" .PreRangeVcselPulsePeriod  = %d[u8]; Vcsel pulse period (pll clocks) for the pre-range measurement \n\r",  TOF1.Data.PreRangeVcselPulsePeriod ); 
+    aSerial->printf(" .ReadDataFromDeviceDone    = %2d;  reads from device has been done (>0) or not. \n\r",  TOF1.Data.ReadDataFromDeviceDone ); 
+    aSerial->printf(" .ModuleId                  = %X; Module ID \n\r",  TOF1.Data.ModuleId ); 
+    aSerial->printf(" .Revision                  = %d[u8]; test Revision \n\r",  TOF1.Data.Revision ); 
+    aSerial->printf(" .ProductId                 = %s[char*]; Product Identifier String  \n\r",  TOF1.Data.ProductId ); 
+    aSerial->printf(" .ReferenceSpadCount        = %d[u8];  used for ref spad management \n\r",  TOF1.Data.ReferenceSpadCount ); 
+    aSerial->printf(" .ReferenceSpadType         = %d[u8]; used for ref spad management \n\r",  TOF1.Data.ReferenceSpadType ); 
+    aSerial->printf(" .RefSpadsInitialised       = %d[u8]; reports if ref spads are initialised. \n\r",  TOF1.Data.RefSpadsInitialised ); 
+    aSerial->printf(" .PartUIDUpper              = %d[u32];  Unique Part ID Upper \n\r",  TOF1.Data.PartUIDUpper ); 
+    aSerial->printf(" .PartUIDLower              = %d[u32]; Unique Part ID Lower \n\r",  TOF1.Data.PartUIDLower ); 
+    aSerial->printf(" .SignalRateMeasFixed400mm  = %3.3f; Peak Signal rate at 400 mm \n\r",  1.0 / 65535.0 * TOF1.Data.SignalRateMeasFixed400mm ); 
+    aSerial->printf(" .RefSpadEnables[x]         = %X %X %X %X %X %X[hex8]; Reference Spad Enables  \n\r",  
         TOF1.Data.RefSpadEnables[0], TOF1.Data.RefSpadEnables[1], TOF1.Data.RefSpadEnables[2], 
         TOF1.Data.RefSpadEnables[3], TOF1.Data.RefSpadEnables[4], TOF1.Data.RefSpadEnables[5] ); 
-    printf(" .RefGoodSpadMap[x]         = %X %X %X %X %X %X[hex8];  Reference Spad Good Spad Map\n\r",
+    aSerial->printf(" .RefGoodSpadMap[x]         = %X %X %X %X %X %X[hex8];  Reference Spad Good Spad Map\n\r",
         TOF1.Data.RefGoodSpadMap[0], TOF1.Data.RefGoodSpadMap[1], TOF1.Data.RefGoodSpadMap[2], 
         TOF1.Data.RefGoodSpadMap[3], TOF1.Data.RefGoodSpadMap[4], TOF1.Data.RefGoodSpadMap[5] );     
-    printf(" .Part2PartOffsetNVM_um     = %d[i32]; backed up NVM value \n\r",  TOF1.Data.Part2PartOffsetNVM_um ); 
-    printf(" .Part2PartOffsetAdjustNVM_um= %d[i32]; backed up NVM value of additional offset adjustment \n\r",  TOF1.Data.Part2PartOffsetAdjustNVM_um ); 
-    printf(" .SequenceConfig            = %d[u8]; Internal value for the sequence config  \n\r",   TOF1.Data.SequenceConfig ); 
-    printf(" .RangeFractionalEnable     = %d[u8]; Enable/Disable fractional part of range data  \n\r",  TOF1.Data.RangeFractionalEnable); 
-    printf(" .PalState                  = %d[u8]; Current state of the PAL \n\r",  TOF1.Data.PalState ); 
-    printf(" .PowerMode                 = %d[u8]; Current Power Mode; Stdby1/2, Idle1/2 \n\r",  TOF1.Data.PowerMode ); 
-    printf(" .SigmaEstRefArray          = %d[u16]; Reference array sigma value in 1/100th of [mm] \n\r",  TOF1.Data.SigmaEstRefArray ); 
-    printf(" .SigmaEstEffPulseWidth     = %d[u16]; Effective Pulse width for sigma estimate in 1/100th of ns \n\r", TOF1.Data.SigmaEstEffPulseWidth ); 
-    printf(" .SigmaEstEffAmbWidth       = %d. Effective Ambient width for sigma estimate in 1/100th of ns \n\r",  TOF1.Data.SigmaEstEffAmbWidth ); 
-    printf(" .StopVariable              = %d[u8]; StopVariable used during the stop sequence  \n\r",  TOF1.Data.StopVariable ); 
-    printf(" .targetRefRate             = %d. Target Ambient Rate for Ref spad management \n\r",   TOF1.Data.targetRefRate ); 
-    printf(" .LastSignalRef_MHz         = %3.3fMHz;  Latest Signal ref \n\r",  TOF1.Data.LastSignalRef_MHz / 65535.01 ); 
-    printf(" .UseInternalTuningSetting  = %d[u8]; Indicate if we use  Tuning Settings table  \n\r",    TOF1.Data.UseInternalTuningSettings ); 
-    printf(" .LinearityCorrectiveGain   = %d[u8]; Linearity Corrective Gain value in x1000 \n\r",  TOF1.Data.LinearityCorrectiveGain ); 
-    printf(" .DmaxCalRange_mm           = %dmm; Dmax Calibration Range \n\r",  TOF1.Data.DmaxCalRange_mm );               
-    printf(" .DmaxCalSignalRateRtn_MHz  = %3.3fMHz; Dmax Calibration Signal Rate Return \n\r",  TOF1.Data.DmaxCalSignalRateRtn_MHz / 65535.01 ); 
+    aSerial->printf(" .Part2PartOffsetNVM_um     = %d[i32]; backed up NVM value \n\r",  TOF1.Data.Part2PartOffsetNVM_um ); 
+    aSerial->printf(" .Part2PartOffsetAdjustNVM_um= %d[i32]; backed up NVM value of additional offset adjustment \n\r",  TOF1.Data.Part2PartOffsetAdjustNVM_um ); 
+    aSerial->printf(" .SequenceConfig            = %d[u8]; Internal value for the sequence config  \n\r",   TOF1.Data.SequenceConfig ); 
+    aSerial->printf(" .RangeFractionalEnable     = %d[u8]; Enable/Disable fractional part of range data  \n\r",  TOF1.Data.RangeFractionalEnable); 
+    aSerial->printf(" .PalState                  = %d[u8]; Current state of the PAL \n\r",  TOF1.Data.PalState ); 
+    aSerial->printf(" .PowerMode                 = %d[u8]; Current Power Mode; Stdby1/2, Idle1/2 \n\r",  TOF1.Data.PowerMode ); 
+    aSerial->printf(" .SigmaEstRefArray          = %d[u16]; Reference array sigma value in 1/100th of [mm] \n\r",  TOF1.Data.SigmaEstRefArray ); 
+    aSerial->printf(" .SigmaEstEffPulseWidth     = %d[u16]; Effective Pulse width for sigma estimate in 1/100th of ns \n\r", TOF1.Data.SigmaEstEffPulseWidth ); 
+    aSerial->printf(" .SigmaEstEffAmbWidth       = %d. Effective Ambient width for sigma estimate in 1/100th of ns \n\r",  TOF1.Data.SigmaEstEffAmbWidth ); 
+    aSerial->printf(" .StopVariable              = %d[u8]; StopVariable used during the stop sequence  \n\r",  TOF1.Data.StopVariable ); 
+    aSerial->printf(" .targetRefRate             = %d. Target Ambient Rate for Ref spad management \n\r",   TOF1.Data.targetRefRate ); 
+    aSerial->printf(" .LastSignalRef_MHz         = %3.3fMHz;  Latest Signal ref \n\r",  TOF1.Data.LastSignalRef_MHz / 65535.01 ); 
+    aSerial->printf(" .UseInternalTuningSetting  = %d[u8]; Indicate if we use  Tuning Settings table  \n\r",    TOF1.Data.UseInternalTuningSettings ); 
+    aSerial->printf(" .LinearityCorrectiveGain   = %d[u8]; Linearity Corrective Gain value in x1000 \n\r",  TOF1.Data.LinearityCorrectiveGain ); 
+    aSerial->printf(" .DmaxCalRange_mm           = %dmm; Dmax Calibration Range \n\r",  TOF1.Data.DmaxCalRange_mm );               
+    aSerial->printf(" .DmaxCalSignalRateRtn_MHz  = %3.3fMHz; Dmax Calibration Signal Rate Return \n\r",  TOF1.Data.DmaxCalSignalRateRtn_MHz / 65535.01 ); 
 }
 
 int VL53L0X::read_id(uint8_t *id)
@@ -187,12 +187,12 @@
     uint8_t id = 0;
     status = read_id(&id);
     if (status != 0) { 
-    	printf("VL53L0X sensor is not present!\n\r");
+    	//aSerial->printf("VL53L0X sensor is not present!\n\r");
     	return 99; } // device is not present
     
     status = VL53L0X_data_init();
     if (status != VL53L0X_ERROR_NONE) {
-        printf("Failed to init VL53L0X sensor!\n\r");
+        //aSerial->printf("Failed to init VL53L0X sensor!\n\r");
         return status;
     }
 
@@ -201,14 +201,14 @@
 
     status = prepare();
     if (status != VL53L0X_ERROR_NONE) {
-        printf("Failed to prepare VL53L0X!\n\r");
+        //aSerial->printf("Failed to prepare VL53L0X!\n\r");
         return status;
     }
 
     if (new_addr != VL53L0X_DEFAULT_ADDRESS) {
         status = set_device_address(new_addr);
         if (status) {
-            printf("Failed to change I2C address!\n\r");
+            //aSerial->printf("Failed to change I2C address!\n\r");
             return status;
         }
     } 
@@ -366,14 +366,14 @@
     uint8_t PhaseCal;
     // default settings, for normal range.
     FixPoint1616_t signalLimit = (FixPoint1616_t)(0.25 * 65536);
-    FixPoint1616_t sigmaLimit = (FixPoint1616_t)(18 * 65536);
+    FixPoint1616_t sigmaLimit = (FixPoint1616_t)(25 * 65536);
     uint32_t timingBudget = 33000;
     uint8_t preRangeVcselPeriod = 14;
     uint8_t finalRangeVcselPeriod = 10;
 
     if (operating_mode == range_continuous_interrupt) {
         if (_gpio1Int == NULL) {
-            printf("GPIO1 Error\r\n");
+            //aSerial->printf("GPIO1 Error\r\n");
             return 1;
         }
 
@@ -394,10 +394,7 @@
         if (ClrStatus) { Status = 97; } // VL53L0X_ClearErrorInterrupt fail
 
         if (Status == VL53L0X_ERROR_NONE) {
-            Status = VL53L0X_set_device_mode(VL53L0X_DEVICEMODE_CONTINUOUS_RANGING); // Setup in continuous ranging mode
-        }
-
-        if (Status == VL53L0X_ERROR_NONE) {
+            CurrentParameters.DeviceMode = VL53L0X_DEVICEMODE_CONTINUOUS_RANGING; // Setup in continuous ranging mode
             Status = VL53L0X_start_measurement();
         }
     }
@@ -406,11 +403,8 @@
         // singelshot, polled ranging
         if (Status == VL53L0X_ERROR_NONE) {
             // no need to do this when we use VL53L0X_PerformSingleRangingMeasurement
-            Status = VL53L0X_set_device_mode( VL53L0X_DEVICEMODE_SINGLE_RANGING); // Setup in single ranging mode
-        }
-
-        // Enable/Disable Sigma and Signal check
-        if (Status == VL53L0X_ERROR_NONE) {
+            CurrentParameters.DeviceMode = VL53L0X_DEVICEMODE_SINGLE_RANGING; // Setup in single ranging mode
+        	// Enable/Disable Sigma and Signal check
             Status = VL53L0X_set_limit_check_enable(VL53L0X_CHECKENABLE_SIGMA_FINAL_RANGE, 1);
         }
         if (Status == VL53L0X_ERROR_NONE) {
@@ -422,7 +416,7 @@
 		case Range_Config_DEFAULT:
 			// default settings, for normal range.
 		    signalLimit = (FixPoint1616_t)(0.25 * 65536);
-		    sigmaLimit = (FixPoint1616_t)(18 * 65536);
+		    sigmaLimit = (FixPoint1616_t)(16 * 65536);
 		    timingBudget = 33000;
 		    preRangeVcselPeriod = 14;
 		    finalRangeVcselPeriod = 10;
@@ -443,7 +437,7 @@
 			break;
         case Range_Config_HIGH_SPEED:
 			signalLimit = (FixPoint1616_t)(0.25*65536);
-			sigmaLimit = (FixPoint1616_t)(32*65536);
+			sigmaLimit = (FixPoint1616_t)(60*65536);
 			timingBudget = 20000;
 			preRangeVcselPeriod = 14;
 			finalRangeVcselPeriod = 10;
@@ -474,12 +468,7 @@
 
     if (operating_mode == range_continuous_polling) {
         if (Status == VL53L0X_ERROR_NONE) {
-            //printf("Call of VL53L0X_SetDeviceMode\n");
-            Status = VL53L0X_set_device_mode( VL53L0X_DEVICEMODE_CONTINUOUS_RANGING); // Setup in continuous ranging mode
-        }
-
-        if (Status == VL53L0X_ERROR_NONE) {
-            //printf("Call of VL53L0X_StartMeasurement\n");
+            CurrentParameters.DeviceMode = VL53L0X_DEVICEMODE_CONTINUOUS_RANGING; // Setup in continuous ranging mode
             Status = VL53L0X_start_measurement();
         }
     }
@@ -494,8 +483,7 @@
 //   status = VL53L0X_SetInterruptThresholds(Device, VL53L0X_DEVICEMODE_CONTINUOUS_RANGING, 0, 300);
 
     status = VL53L0X_set_gpio_config( 0, VL53L0X_DEVICEMODE_CONTINUOUS_RANGING,
-                                     VL53L0X_REG_SYSTEM_INTERRUPT_GPIO_NEW_SAMPLE_READY,
-                                     VL53L0X_INTERRUPTPOLARITY_HIGH);
+        VL53L0X_REG_SYSTEM_INTERRUPT_GPIO_NEW_SAMPLE_READY, VL53L0X_INTERRUPTPOLARITY_HIGH);
 
     if (!status) {
         attach_interrupt_measure_detection_irq(fptr);
@@ -542,7 +530,7 @@
     int status = 0;
     VL53L0X_RangingMeasurementData_t p_ranging_measurement_data;
 
-    status = start_measurement(range_single_shot_polling, NULL);
+    status = start_measurement(range_single_shot_polling, NULL, Range_Config_DEFAULT);
     if (!status) {
         status = get_measurement(range_single_shot_polling, &p_ranging_measurement_data);
     }
@@ -621,12 +609,12 @@
     if (operating_mode == range_continuous_interrupt || operating_mode == range_continuous_polling) {
         // continuous mode
         if (status == VL53L0X_ERROR_NONE) {
-            //printf("Call of VL53L0X_StopMeasurement\n");
+            //aSerial->printf("Call of VL53L0X_StopMeasurement\n");
             status = VL53L0X_stop_measurement();
         }
 
         if (status == VL53L0X_ERROR_NONE) {
-            //printf("Wait Stop to be competed\n");
+            //aSerial->printf("Wait Stop to be competed\n");
             status = wait_stop_completed();
         }
 
@@ -645,13 +633,10 @@
 }
 
 int VL53L0X::range_start_continuous_mode()
-{   int status;
-    status = VL53L0X_set_device_mode( VL53L0X_DEVICEMODE_CONTINUOUS_RANGING);
-
-    if (status == VL53L0X_ERROR_NONE) 
-    	{  status = VL53L0X_start_measurement(); }
-
-    return status;
+{   CurrentParameters.DeviceMode =  VL53L0X_DEVICEMODE_CONTINUOUS_RANGING;
+
+    return VL53L0X_start_measurement();
+
 }
 
 VL53L0X_Error VL53L0X::VL53L0X_device_read_strobe(void)
@@ -824,7 +809,6 @@
             status |= VL53L0X_write_byte( 0x94, 0x7B);
             status |= VL53L0X_device_read_strobe();
             status |= VL53L0X_read_dword( 0x90, &part_uid_upper);
-
             status |= VL53L0X_write_byte( 0x94, 0x7C);
             status |= VL53L0X_device_read_strobe();
             status |= VL53L0X_read_dword( 0x90, &part_uid_lower);
@@ -832,25 +816,21 @@
             status |= VL53L0X_write_byte( 0x94, 0x73);
             status |= VL53L0X_device_read_strobe();
             status |= VL53L0X_read_dword( 0x90, &tmp_dword);
-
             signal_rate_meas_fixed1104_400_mm = (tmp_dword & 0x0000000ff) << 8;
 
             status |= VL53L0X_write_byte( 0x94, 0x74);
             status |= VL53L0X_device_read_strobe();
             status |= VL53L0X_read_dword( 0x90, &tmp_dword);
-
             signal_rate_meas_fixed1104_400_mm |= ((tmp_dword & 0xff000000) >> 24);
 
             status |= VL53L0X_write_byte( 0x94, 0x75);
             status |= VL53L0X_device_read_strobe();
             status |= VL53L0X_read_dword( 0x90, &tmp_dword);
-
             dist_meas_fixed1104_400_mm = (tmp_dword & 0x0000000ff) << 8;
 
             status |= VL53L0X_write_byte( 0x94, 0x76);
             status |= VL53L0X_device_read_strobe();
             status |= VL53L0X_read_dword( 0x90, &tmp_dword);
-
             dist_meas_fixed1104_400_mm |= ((tmp_dword & 0xff000000) >> 24);
         }
 
@@ -860,7 +840,6 @@
         status |= VL53L0X_write_byte( 0x83, byte & 0xfb);
         status |= VL53L0X_write_byte( 0xFF, 0x01);
         status |= VL53L0X_write_byte( 0x00, 0x01);
-
         status |= VL53L0X_write_byte( 0xFF, 0x00);
         status |= VL53L0X_write_byte( 0x80, 0x00);
     }
@@ -913,14 +892,13 @@
     return status;
 }
 
-VL53L0X_Error VL53L0X::wrapped_VL53L0X_get_offset_calibration_data_micro_meter(int32_t *p_offset_calibration_data_micro_meter)
+VL53L0X_Error VL53L0X::VL53L0X_get_offset_calibration_data_micro_meter(int32_t *p_offset_calibration_data_micro_meter)
 {   VL53L0X_Error status = VL53L0X_ERROR_NONE;
     uint16_t range_offset_register;
     int16_t c_max_offset = 2047;
     int16_t c_offset_range = 4096;
 
-    /* Note that offset has 10.2 format */
-
+    /* Note, that offset has 10.2 format */
     status = VL53L0X_read_word(VL53L0X_REG_ALGO_PART_TO_PART_RANGE_OFFSET_MM,
                                &range_offset_register);
 
@@ -930,37 +908,22 @@
         /* Apply 12 bit 2's compliment conversion */
         if (range_offset_register > c_max_offset) {
             *p_offset_calibration_data_micro_meter =
-                (int16_t)(range_offset_register - c_offset_range)
-                * 250;
+                (int16_t)(range_offset_register - c_offset_range) * 250;
         } else {
             *p_offset_calibration_data_micro_meter =
-                (int16_t)range_offset_register * 250;
-        }
-
+                (int16_t)range_offset_register * 250; }
     }
 
     return status;
 }
 
-VL53L0X_Error VL53L0X::VL53L0X_get_offset_calibration_data_micro_meter(int32_t *p_offset_calibration_data_micro_meter)
-{   VL53L0X_Error status = VL53L0X_ERROR_NONE;
-    
-
-    status = wrapped_VL53L0X_get_offset_calibration_data_micro_meter(p_offset_calibration_data_micro_meter);
-
-    
-    return status;
-}
-
-VL53L0X_Error VL53L0X::wrapped_VL53L0X_set_offset_calibration_data_micro_meter(int32_t offset_calibration_data_micro_meter)
+VL53L0X_Error VL53L0X::VL53L0X_set_offset_calibration_data_micro_meter(int32_t offset_calibration_data_micro_meter)
 {   VL53L0X_Error status = VL53L0X_ERROR_NONE;
     int32_t c_max_offset_micro_meter = 511000;
     int32_t c_min_offset_micro_meter = -512000;
     int16_t c_offset_range = 4096;
     uint32_t encoded_offset_val;
 
-    
-
     if (offset_calibration_data_micro_meter > c_max_offset_micro_meter) {
         offset_calibration_data_micro_meter = c_max_offset_micro_meter;
     } else {
@@ -970,32 +933,16 @@
     }
 
     /* The offset register is 10.2 format and units are mm
-     * therefore conversion is applied by a division of
-     * 250.
-     */
+     * therefore conversion is applied by a division of 250. */
     if (offset_calibration_data_micro_meter >= 0) {
-        encoded_offset_val =
-            offset_calibration_data_micro_meter / 250;
+        encoded_offset_val = offset_calibration_data_micro_meter / 250;
     } else {
         encoded_offset_val =
-            c_offset_range +
-            offset_calibration_data_micro_meter / 250;
+            c_offset_range + offset_calibration_data_micro_meter / 250;
     }
 
     status = VL53L0X_write_word(VL53L0X_REG_ALGO_PART_TO_PART_RANGE_OFFSET_MM,
                                 encoded_offset_val);
-
-    
-    return status;
-}
-
-VL53L0X_Error VL53L0X::VL53L0X_set_offset_calibration_data_micro_meter(int32_t offset_calibration_data_micro_meter)
-{   VL53L0X_Error status = VL53L0X_ERROR_NONE;
-    
-
-    status = wrapped_VL53L0X_set_offset_calibration_data_micro_meter(offset_calibration_data_micro_meter);
-
-    
     return status;
 }
 
@@ -1028,17 +975,6 @@
             CurrentParameters.RangeOffset_um = corrected_offset_micro_meters;
         }
     }
-
-    return status;
-}
-
-VL53L0X_Error VL53L0X::VL53L0X_get_device_mode(VL53L0X_DeviceModes *p_device_mode)
-{   VL53L0X_Error status = VL53L0X_ERROR_NONE;
-    
-
-    *p_device_mode = CurrentParameters.DeviceMode ;
-
-    
     return status;
 }
 
@@ -1064,7 +1000,6 @@
         }
         CurrentParameters.InterMeasurementPeriod_ms = *p_inter_measurement_period_ms;
     }
-
     
     return status;
 }
@@ -1074,8 +1009,6 @@
     uint16_t value;
     FixPoint1616_t temp_fix1616;
 
-    
-
     status = VL53L0X_read_word(VL53L0X_REG_CROSSTALK_COMPENSATION_PEAK_RATE_MHz, (uint16_t *)&value);
     if (status == VL53L0X_ERROR_NONE) {
         if (value == 0) {
@@ -1091,7 +1024,6 @@
         }
     }
 
-    
     return status;
 }
 
@@ -1102,8 +1034,6 @@
     uint16_t temp16;
     FixPoint1616_t temp_fix1616;
 
-    
-
     switch (limit_check_id) {
 
         case VL53L0X_CHECKENABLE_SIGMA_FINAL_RANGE:
@@ -1113,12 +1043,10 @@
             break;
 
         case VL53L0X_CHECKENABLE_SIGNAL_RATE_FINAL_RANGE:
-            status = VL53L0X_read_word(VL53L0X_REG_FINAL_RANGE_CONFIG_MIN_COUNT_RATE_RTN_LIMIT,
-                                       &temp16);
+            status = VL53L0X_read_word(VL53L0X_REG_FINAL_RANGE_CONFIG_MIN_COUNT_RATE_RTN_LIMIT, &temp16);
             if (status == VL53L0X_ERROR_NONE) {
                 temp_fix1616 = VL53L0X_FP97TOFP1616(temp16);
             }
-
             enable_zero_value = 1;
             break;
 
@@ -1151,7 +1079,6 @@
     }
 
     if (status == VL53L0X_ERROR_NONE) {
-
         if (enable_zero_value == 1) {
 
             if (temp_fix1616 == 0) {
@@ -1164,14 +1091,10 @@
                 CurrentParameters.LimitChecksValue[limit_check_id] = temp_fix1616;
                 CurrentParameters.LimitChecksEnable[limit_check_id] = 1;
             }
-        } else {
-            *p_limit_check_value = temp_fix1616;
-        }
+        } else { *p_limit_check_value = temp_fix1616; }
     }
 
-    
     return status;
-
 }
 
 VL53L0X_Error VL53L0X::VL53L0X_get_limit_check_enable( uint16_t limit_check_id,
@@ -1179,8 +1102,6 @@
 {   VL53L0X_Error status = VL53L0X_ERROR_NONE;
     uint8_t temp8;
 
-    
-
     if (limit_check_id >= VL53L0X_CHECKENABLE_NUMBER_OF_CHECKS) {
         status = VL53L0X_ERROR_INVALID_PARAMS;
         *p_limit_check_enable = 0;
@@ -1189,7 +1110,6 @@
         *p_limit_check_enable = temp8;
     }
 
-    
     return status;
 }
 
@@ -1197,8 +1117,6 @@
 {   VL53L0X_Error status = VL53L0X_ERROR_NONE;
     uint8_t data;
 
-    
-
     status = VL53L0X_read_byte( VL53L0X_REG_SYSTEM_SEQUENCE_CONFIG, &data);
     if (status == VL53L0X_ERROR_NONE) {
         Data.SequenceConfig = data;
@@ -1212,7 +1130,6 @@
         CurrentParameters.WrapAroundCheckEnable = *p_wrap_around_check_enable;
     }
 
-    
     return status;
 }
 
@@ -1221,7 +1138,6 @@
 {   VL53L0X_Error Status = VL53L0X_ERROR_NONE;
     *p_sequence_step_enabled = 0;
     
-
     switch (sequence_step_id) {
         case VL53L0X_SEQUENCESTEP_TCC:
             *p_sequence_step_enabled = (sequence_config & 0x10) >> 4;
@@ -1241,8 +1157,6 @@
         default:
             Status = VL53L0X_ERROR_INVALID_PARAMS;
     }
-
-    
     return Status;
 }
 
@@ -1250,7 +1164,6 @@
 {   VL53L0X_Error status = VL53L0X_ERROR_NONE;
     uint8_t sequence_config = 0;
     
-
     status = VL53L0X_read_byte( VL53L0X_REG_SYSTEM_SEQUENCE_CONFIG,
                                &sequence_config);
 
@@ -1274,17 +1187,11 @@
         status = sequence_step_enabled(VL53L0X_SEQUENCESTEP_FINAL_RANGE, sequence_config,
                                        &p_scheduler_sequence_steps->FinalRangeOn);
     }
-
-    
     return status;
 }
 
 uint8_t VL53L0X::VL53L0X_decode_vcsel_period(uint8_t vcsel_period_reg)
-{   /*!
-     * Converts the encoded VCSEL period register value into the real
-     * period in PLL clocks
-     */
-
+{   /*! Converts the encoded VCSEL period register value into the real period in PLL clocks  */
     uint8_t vcsel_period_pclks = 0;
 
     vcsel_period_pclks = (vcsel_period_reg + 1) << 1;
@@ -1293,10 +1200,7 @@
 }
 
 uint8_t VL53L0X::lv53l0x_encode_vcsel_period(uint8_t vcsel_period_pclks)
-{   /*!
-     * Converts the encoded VCSEL period register value into the real period
-     * in PLL clocks
-     */
+{   /*! Converts the encoded VCSEL period register value into the real period  in PLL clocks */
 
     uint8_t vcsel_period_reg = 0;
 
@@ -1336,9 +1240,7 @@
 
     /* Apply specific settings for the requested clock period */
 
-    if (status != VL53L0X_ERROR_NONE) {
-        return status;
-    }
+    if (status != VL53L0X_ERROR_NONE) { return status; }
 
     if (vcsel_period_type == VL53L0X_VCSEL_PERIOD_PRE_RANGE) {
 
@@ -1369,52 +1271,35 @@
                                         0x08);
         }
     } else if (vcsel_period_type == VL53L0X_VCSEL_PERIOD_FINAL_RANGE) {
-
         if (vcsel_pulse_period_pclk == 8) {
-
             status = VL53L0X_write_byte(VL53L0X_REG_FINAL_RANGE_CONFIG_VALID_PHASE_HIGH,0x10);
             status = VL53L0X_write_byte(VL53L0X_REG_FINAL_RANGE_CONFIG_VALID_PHASE_LOW,0x08);
-
             status |= VL53L0X_write_byte(VL53L0X_REG_GLOBAL_CONFIG_VCSEL_WIDTH, 0x02);
             status |= VL53L0X_write_byte(VL53L0X_REG_ALGO_PHASECAL_CONFIG_TIMEOUT, 0x0C);
-
             status |= VL53L0X_write_byte( 0xff, 0x01);
             status |= VL53L0X_write_byte(VL53L0X_REG_ALGO_PHASECAL_LIM,0x30);
             status |= VL53L0X_write_byte( 0xff, 0x00);
         } else if (vcsel_pulse_period_pclk == 10) {
-
             status = VL53L0X_write_byte(VL53L0X_REG_FINAL_RANGE_CONFIG_VALID_PHASE_HIGH,0x28);
             status = VL53L0X_write_byte(VL53L0X_REG_FINAL_RANGE_CONFIG_VALID_PHASE_LOW,0x08);
-
             status |= VL53L0X_write_byte(VL53L0X_REG_GLOBAL_CONFIG_VCSEL_WIDTH, 0x03);
             status |= VL53L0X_write_byte(VL53L0X_REG_ALGO_PHASECAL_CONFIG_TIMEOUT, 0x09);
-
             status |= VL53L0X_write_byte( 0xff, 0x01);
             status |= VL53L0X_write_byte(VL53L0X_REG_ALGO_PHASECAL_LIM,0x20);
             status |= VL53L0X_write_byte( 0xff, 0x00);
         } else if (vcsel_pulse_period_pclk == 12) {
-
-            status = VL53L0X_write_byte(VL53L0X_REG_FINAL_RANGE_CONFIG_VALID_PHASE_HIGH,
-                                        0x38);
-            status = VL53L0X_write_byte(VL53L0X_REG_FINAL_RANGE_CONFIG_VALID_PHASE_LOW,
-                                        0x08);
-
+            status = VL53L0X_write_byte(VL53L0X_REG_FINAL_RANGE_CONFIG_VALID_PHASE_HIGH, 0x38);
+            status = VL53L0X_write_byte(VL53L0X_REG_FINAL_RANGE_CONFIG_VALID_PHASE_LOW, 0x08);
             status |= VL53L0X_write_byte(VL53L0X_REG_GLOBAL_CONFIG_VCSEL_WIDTH, 0x03);
             status |= VL53L0X_write_byte(VL53L0X_REG_ALGO_PHASECAL_CONFIG_TIMEOUT, 0x08);
-
             status |= VL53L0X_write_byte( 0xff, 0x01);
-            status |= VL53L0X_write_byte(VL53L0X_REG_ALGO_PHASECAL_LIM,
-                                         0x20);
+            status |= VL53L0X_write_byte(VL53L0X_REG_ALGO_PHASECAL_LIM,0x20);
             status |= VL53L0X_write_byte( 0xff, 0x00);
         } else if (vcsel_pulse_period_pclk == 14) {
-
-            status = VL53L0X_write_byte(VL53L0X_REG_FINAL_RANGE_CONFIG_VALID_PHASE_HIGH,
-                                        0x048);
+            status = VL53L0X_write_byte(VL53L0X_REG_FINAL_RANGE_CONFIG_VALID_PHASE_HIGH,0x048);
             status = VL53L0X_write_byte(VL53L0X_REG_FINAL_RANGE_CONFIG_VALID_PHASE_LOW,0x08);
-
             status |= VL53L0X_write_byte(VL53L0X_REG_GLOBAL_CONFIG_VCSEL_WIDTH, 0x03);
             status |= VL53L0X_write_byte(VL53L0X_REG_ALGO_PHASECAL_CONFIG_TIMEOUT, 0x07);
-
             status |= VL53L0X_write_byte( 0xff, 0x01);
             status |= VL53L0X_write_byte(VL53L0X_REG_ALGO_PHASECAL_LIM,0x20);
             status |= VL53L0X_write_byte( 0xff, 0x00);
@@ -1424,8 +1309,7 @@
     /* Re-calculate and apply timeouts, in macro periods */
 
     if (status == VL53L0X_ERROR_NONE) {
-        vcsel_period_reg = lv53l0x_encode_vcsel_period((uint8_t)
-                           vcsel_pulse_period_pclk);
+        vcsel_period_reg = lv53l0x_encode_vcsel_period((uint8_t) vcsel_pulse_period_pclk);
 
         /* When the VCSEL period for the pre or final range is changed,
         * the corresponding timeout must be read from the device using
@@ -1481,13 +1365,11 @@
     /* Finally, the timing budget must be re-applied */
     if (status == VL53L0X_ERROR_NONE) {
         measurement_timing_budget_us = CurrentParameters.MeasurementTimingBudget_us ;
-
         status = VL53L0X_set_measurement_timing_budget_us(measurement_timing_budget_us);
     }
 
     /* Perform the phase calibration. This is needed after changing on
-     * vcsel period.
-     * get_data_enable = 0, restore_config = 1 */
+     * vcsel period. get_data_enable = 0, restore_config = 1 */
     if (status == VL53L0X_ERROR_NONE)
         status = VL53L0X_perform_phase_calibration(&phase_cal_int, 0, 1);
 
@@ -1496,16 +1378,13 @@
 
 VL53L0X_Error VL53L0X::VL53L0X_set_vcsel_pulse_period(VL53L0X_VcselPeriod vcsel_period_type, uint8_t vcsel_pulse_period)
 {   VL53L0X_Error status = VL53L0X_ERROR_NONE;
-    
-
-    status = wrapped_VL53L0X_set_vcsel_pulse_period( vcsel_period_type,
-             vcsel_pulse_period);
-
-    
+
+    status = wrapped_VL53L0X_set_vcsel_pulse_period( vcsel_period_type,  vcsel_pulse_period);
+
     return status;
 }
 
-VL53L0X_Error VL53L0X::wrapped_VL53L0X_get_vcsel_pulse_period(VL53L0X_VcselPeriod vcsel_period_type, uint8_t *p_vcsel_pulse_period_pclk)
+VL53L0X_Error VL53L0X::VL53L0X_get_vcsel_pulse_period(VL53L0X_VcselPeriod vcsel_period_type, uint8_t *p_vcsel_pulse_period_pclk)
 {   VL53L0X_Error status = VL53L0X_ERROR_NONE;
     uint8_t vcsel_period_reg;
 
@@ -1523,28 +1402,13 @@
     }
 
     if (status == VL53L0X_ERROR_NONE)
-        *p_vcsel_pulse_period_pclk =
-            VL53L0X_decode_vcsel_period(vcsel_period_reg);
-
-    return status;
-}
-
-VL53L0X_Error VL53L0X::VL53L0X_get_vcsel_pulse_period(VL53L0X_VcselPeriod vcsel_period_type, uint8_t *p_vcsel_pulse_period_pclk)
-{   VL53L0X_Error status = VL53L0X_ERROR_NONE;
-    
-
-    status = wrapped_VL53L0X_get_vcsel_pulse_period( vcsel_period_type,
-             p_vcsel_pulse_period_pclk);
-
-    
+        *p_vcsel_pulse_period_pclk = VL53L0X_decode_vcsel_period(vcsel_period_reg);
+
     return status;
 }
 
 uint32_t VL53L0X::VL53L0X_decode_timeout(uint16_t encoded_timeout)
-{   /*!
-     * Decode 16-bit timeout register value - format (LSByte * 2^MSByte) + 1
-     */
-
+{   /*! Decode 16-bit timeout register value - format (LSByte * 2^MSByte) + 1 */
     uint32_t timeout_macro_clks = 0;
 
     timeout_macro_clks = ((uint32_t)(encoded_timeout & 0x00FF)
@@ -1558,17 +1422,11 @@
     uint32_t macro_period_vclks;
     uint32_t macro_period_ps;
 
-    
-
-    /* The above calculation will produce rounding errors,
-       therefore set fixed value
-    */
+    /* The above calculation will produce rounding errors,  therefore set fixed value*/
     pll_period_ps = 1655;
-
     macro_period_vclks = 2304;
     macro_period_ps = (uint32_t)(macro_period_vclks
                                  * vcsel_period_pclks * pll_period_ps);
-
     return macro_period_ps;
 }
 
@@ -1679,7 +1537,7 @@
     return status;
 }
 
-VL53L0X_Error VL53L0X::wrapped_VL53L0X_get_measurement_timing_budget_us(uint32_t *p_measurement_timing_budget_us)
+VL53L0X_Error VL53L0X::VL53L0X_get_measurement_timing_budget_us(uint32_t *p_measurement_timing_budget_us)
 {   VL53L0X_Error status = VL53L0X_ERROR_NONE;
     VL53L0X_SchedulerSequenceSteps_t scheduler_sequence_steps;
     uint32_t final_range_timeout_us;
@@ -1693,18 +1551,13 @@
     uint32_t final_range_overhead_us = 550;
     uint32_t pre_range_timeout_us	= 0;
 
-    
-
     /* Start and end overhead times always present */
     *p_measurement_timing_budget_us
         = start_overhead_us + end_overhead_us;
 
     status = VL53L0X_get_sequence_step_enables( &scheduler_sequence_steps);
 
-    if (status != VL53L0X_ERROR_NONE) {
-        
-        return status;
-    }
+    if (status != VL53L0X_ERROR_NONE) { return status; }
 
     if (scheduler_sequence_steps.TccOn  ||
             scheduler_sequence_steps.MsrcOn ||
@@ -1716,18 +1569,15 @@
         if (status == VL53L0X_ERROR_NONE) {
             if (scheduler_sequence_steps.TccOn) {
                 *p_measurement_timing_budget_us +=
-                    msrc_dcc_tcc_timeout_us +
-                    tcc_overhead_us;
+                    msrc_dcc_tcc_timeout_us +  tcc_overhead_us;
             }
 
             if (scheduler_sequence_steps.DssOn) {
                 *p_measurement_timing_budget_us +=
-                    2 * (msrc_dcc_tcc_timeout_us +
-                         dss_overhead_us);
+                    2 * (msrc_dcc_tcc_timeout_us +  dss_overhead_us);
             } else if (scheduler_sequence_steps.MsrcOn) {
                 *p_measurement_timing_budget_us +=
-                    msrc_dcc_tcc_timeout_us +
-                    msrc_overhead_us;
+                    msrc_dcc_tcc_timeout_us + msrc_overhead_us;
             }
         }
     }
@@ -1737,8 +1587,7 @@
             status = get_sequence_step_timeout(VL53L0X_SEQUENCESTEP_PRE_RANGE,
                                                &pre_range_timeout_us);
             *p_measurement_timing_budget_us +=
-                pre_range_timeout_us +
-                pre_range_overhead_us;
+                pre_range_timeout_us +  pre_range_overhead_us;
         }
     }
 
@@ -1747,26 +1596,13 @@
             status = get_sequence_step_timeout(VL53L0X_SEQUENCESTEP_FINAL_RANGE,
                                                &final_range_timeout_us);
             *p_measurement_timing_budget_us +=
-                (final_range_timeout_us +
-                 final_range_overhead_us);
+                (final_range_timeout_us + final_range_overhead_us);
         }
     }
 
     if (status == VL53L0X_ERROR_NONE) {
-        CurrentParameters.MeasurementTimingBudget_us = *p_measurement_timing_budget_us;
-    }
-
-    
-    return status;
-}
-
-VL53L0X_Error VL53L0X::VL53L0X_get_measurement_timing_budget_us(uint32_t *p_measurement_timing_budget_us)
-{   VL53L0X_Error status = VL53L0X_ERROR_NONE;
-    
-
-    status = wrapped_VL53L0X_get_measurement_timing_budget_us(p_measurement_timing_budget_us);
-
-    
+        CurrentParameters.MeasurementTimingBudget_us = *p_measurement_timing_budget_us;}
+  
     return status;
 }
 
@@ -1774,9 +1610,7 @@
 {   VL53L0X_Error status = VL53L0X_ERROR_NONE;
     int i;
 
-    
-
-    status = VL53L0X_get_device_mode( &(p_device_parameters->DeviceMode));
+    p_device_parameters->DeviceMode = CurrentParameters.DeviceMode;
 
     if (status == VL53L0X_ERROR_NONE)
         status = VL53L0X_get_inter_measurement_period_ms(&(p_device_parameters->InterMeasurementPeriod_ms));
@@ -1830,8 +1664,6 @@
 {   VL53L0X_Error status = VL53L0X_ERROR_NONE;
     uint8_t temp8;
 
-    
-
     temp8 = CurrentParameters.LimitChecksEnable[limit_check_id];
 
     if (temp8 == 0) { /* disabled write only internal value */
@@ -1840,27 +1672,20 @@
 
         switch (limit_check_id) {
 
-            case VL53L0X_CHECKENABLE_SIGMA_FINAL_RANGE:
-                /* internal computation: */
+            case VL53L0X_CHECKENABLE_SIGMA_FINAL_RANGE:/* internal computation: */
                 CurrentParameters.LimitChecksValue[VL53L0X_CHECKENABLE_SIGMA_FINAL_RANGE] = limit_check_value;
                 break;
 
             case VL53L0X_CHECKENABLE_SIGNAL_RATE_FINAL_RANGE:
-
                 status = VL53L0X_write_word(VL53L0X_REG_FINAL_RANGE_CONFIG_MIN_COUNT_RATE_RTN_LIMIT,
                                             VL53L0X_FP1616TOFP97(limit_check_value));
-
                 break;
 
-            case VL53L0X_CHECKENABLE_SIGNAL_REF_CLIP:
-
-                /* internal computation: */
+            case VL53L0X_CHECKENABLE_SIGNAL_REF_CLIP:/* internal computation: */
                 CurrentParameters.LimitChecksValue[VL53L0X_CHECKENABLE_SIGNAL_REF_CLIP] = limit_check_value;
                 break;
 
-            case VL53L0X_CHECKENABLE_RANGE_IGNORE_THRESHOLD:
-
-                /* internal computation: */
+            case VL53L0X_CHECKENABLE_RANGE_IGNORE_THRESHOLD:/* internal computation: */
                 CurrentParameters.LimitChecksValue[VL53L0X_CHECKENABLE_RANGE_IGNORE_THRESHOLD] = limit_check_value;
                 break;
 
@@ -2554,7 +2379,7 @@
     
 
     /* Get Current DeviceMode */
-    VL53L0X_get_device_mode( &device_mode);
+    device_mode = CurrentParameters.DeviceMode;
 
     status = VL53L0X_write_byte( 0x80, 0x01);
     status = VL53L0X_write_byte( 0xFF, 0x01);
@@ -2626,7 +2451,7 @@
     VL53L0X_DeviceModes device_mode;  
 
     /* Get Current DeviceMode */
-    status = VL53L0X_get_device_mode( &device_mode);
+    device_mode = CurrentParameters.DeviceMode;
 
     /* Start immediately to run a single ranging measurement in case of
      * single ranging or single histogram */
@@ -3521,7 +3346,7 @@
 
     /* This function will do a complete single ranging
      * Here we fix the mode! */
-    status = VL53L0X_set_device_mode( VL53L0X_DEVICEMODE_SINGLE_RANGING);
+    CurrentParameters.DeviceMode = VL53L0X_DEVICEMODE_SINGLE_RANGING;
 
     if (status == VL53L0X_ERROR_NONE) {
         status = VL53L0X_perform_single_measurement();  }
@@ -4157,8 +3982,7 @@
         }
 
     final_range_timing_budget_us =
-        measurement_timing_budget_us -
-        (start_overhead_us + end_overhead_us);
+        measurement_timing_budget_us - (start_overhead_us + end_overhead_us);
 
     status = VL53L0X_get_sequence_step_enables( &scheduler_sequence_steps);
 
diff -r 81f37e50f8f8 -r 253cb4ea3fcc VL53L0X.h
--- a/VL53L0X.h	Mon Jul 08 14:07:22 2019 +0000
+++ b/VL53L0X.h	Sat Jul 20 08:48:49 2019 +0000
@@ -96,7 +96,7 @@
      * @return      "0" on success
      */
     int start_measurement(OperatingMode operating_mode, void (*fptr)(void), 
-                               VL53L0X_RangingConfig rangingConfig = Range_Config_DEFAULT);
+                               VL53L0X_RangingConfig rangingConfig );
 
     /**
      * @brief       Get results for the measure indicated by operating mode
@@ -474,26 +474,6 @@
      */
     VL53L0X_Error VL53L0X_set_device_mode( VL53L0X_DeviceModes device_mode);
 
-    /**
-     * @brief  Get current new device mode
-     * @par Function Description
-     * Get actual mode of the device(ranging, histogram ...)
-     *
-     * @note This function doesn't Access to the device
-     *
-     * @param   p_device_mode         Pointer to current apply mode value
-     *                                Valid values are:
-     *                                VL53L0X_DEVICEMODE_SINGLE_RANGING
-     *                                VL53L0X_DEVICEMODE_CONTINUOUS_RANGING
-     *                                VL53L0X_DEVICEMODE_CONTINUOUS_TIMED_RANGING
-     *                                VL53L0X_DEVICEMODE_SINGLE_HISTOGRAM
-     *
-     * @return  VL53L0X_ERROR_NONE                   Success
-     * @return  VL53L0X_ERROR_MODE_NOT_SUPPORTED     This error occurs when
-     *                                               DeviceMode is not in the
-     *                                               supported list
-     */
-    VL53L0X_Error VL53L0X_get_device_mode(VL53L0X_DeviceModes *p_device_mode);
 
     /**
     * @brief Get current configuration for GPIO pin for a given device
@@ -1218,12 +1198,6 @@
 
     VL53L0X_Error VL53L0X_device_read_strobe(void);
 
-    VL53L0X_Error wrapped_VL53L0X_get_measurement_timing_budget_us(
-            uint32_t *p_measurement_timing_budget_us);
-
-    VL53L0X_Error wrapped_VL53L0X_get_vcsel_pulse_period(
-            VL53L0X_VcselPeriod vcsel_period_type, uint8_t *p_vcsel_pulse_period_pclk);
-
     uint8_t VL53L0X_decode_vcsel_period(uint8_t vcsel_period_reg);
 
     uint32_t VL53L0X_decode_timeout(uint16_t encoded_timeout);
@@ -1274,10 +1248,6 @@
 
     /* api_calibration.h functions */
     VL53L0X_Error VL53L0X_apply_offset_adjustment(void);
-    VL53L0X_Error wrapped_VL53L0X_get_offset_calibration_data_micro_meter(
-            int32_t *p_offset_calibration_data_micro_meter);
-    VL53L0X_Error wrapped_VL53L0X_set_offset_calibration_data_micro_meter(
-            int32_t offset_calibration_data_micro_meter);
     VL53L0X_Error wrapped_VL53L0X_perform_ref_spad_management(
             uint32_t *ref_spad_count,
             uint8_t *is_aperture_spads);
@@ -1848,7 +1818,7 @@
     VL53L0X_Error VL53L0X_i2c_read(uint8_t index, uint8_t *p_data, uint16_t number_of_bytes);
 };
 
-void Report_Deep_Infos (VL53L0X TOF1);
-void Report_Range_Infos(VL53L0X_RangingMeasurementData_t RangeResults);
+void Report_Deep_Infos (VL53L0X TOF1, Serial *aSerial);
+void Report_Range_Infos(VL53L0X_RangingMeasurementData_t RangeResults, Serial *aSerial);
 
 #endif /* _VL53L0X_CLASS_H_ */