Condensed Version of Public VL53L0X

Dependents:   ToF-Only-Tryout

Revision:
11:c6f95a42d4d7
Parent:
10:cd251e0fc2fd
Child:
12:aa177f0e4c10
--- a/VL53L0X_def.h	Sun Mar 24 22:24:16 2019 +0000
+++ b/VL53L0X_def.h	Mon Apr 08 16:26:19 2019 +0000
@@ -53,46 +53,77 @@
 #define VL53L0X_I2C_USER_VAR         /* none but could be for a flag var to get/pass to mutex interruptible  return flags and try again */
 
 
-/** PAL SPECIFICATION major version */
+/** Device SPECIFICATION major version */
 #define VL53L0X10_SPECIFICATION_VER_MAJOR   1
-/** PAL SPECIFICATION minor version */
+/** Device SPECIFICATION minor version */
 #define VL53L0X10_SPECIFICATION_VER_MINOR   2
-/** PAL SPECIFICATION sub version */
+/** Device SPECIFICATION sub version */
 #define VL53L0X10_SPECIFICATION_VER_SUB	   7
-/** PAL SPECIFICATION sub version */
+/** Device SPECIFICATION sub version */
 #define VL53L0X10_SPECIFICATION_VER_REVISION 1440
 
-/** VL53L0X PAL IMPLEMENTATION major version */
+/** VL53L0X Device IMPLEMENTATION major version */
 #define VL53L0X10_IMPLEMENTATION_VER_MAJOR	1
-/** VL53L0X PAL IMPLEMENTATION minor version */
+/** VL53L0X Device IMPLEMENTATION minor version */
 #define VL53L0X10_IMPLEMENTATION_VER_MINOR	0
-/** VL53L0X PAL IMPLEMENTATION sub version */
+/** VL53L0X Device IMPLEMENTATION sub version */
 #define VL53L0X10_IMPLEMENTATION_VER_SUB		9
-/** VL53L0X PAL IMPLEMENTATION sub version */
+/** VL53L0X Device IMPLEMENTATION sub version */
 #define VL53L0X10_IMPLEMENTATION_VER_REVISION	3673
 
-/** PAL SPECIFICATION major version */
+/** Device SPECIFICATION major version */
 #define VL53L0X_SPECIFICATION_VER_MAJOR	 1
-/** PAL SPECIFICATION minor version */
+/** Device SPECIFICATION minor version */
 #define VL53L0X_SPECIFICATION_VER_MINOR	 2
-/** PAL SPECIFICATION sub version */
+/** Device SPECIFICATION sub version */
 #define VL53L0X_SPECIFICATION_VER_SUB	 7
-/** PAL SPECIFICATION sub version */
+/** Device SPECIFICATION sub version */
 #define VL53L0X_SPECIFICATION_VER_REVISION 1440
 
-/** VL53L0X PAL IMPLEMENTATION major version */
+/** VL53L0X Device IMPLEMENTATION major version */
 #define VL53L0X_IMPLEMENTATION_VER_MAJOR	  1
-/** VL53L0X PAL IMPLEMENTATION minor version */
+/** VL53L0X Device IMPLEMENTATION minor version */
 #define VL53L0X_IMPLEMENTATION_VER_MINOR	  1
-/** VL53L0X PAL IMPLEMENTATION sub version */
+/** VL53L0X Device IMPLEMENTATION sub version */
 #define VL53L0X_IMPLEMENTATION_VER_SUB	  21
-/** VL53L0X PAL IMPLEMENTATION sub version */
+/** VL53L0X Device IMPLEMENTATION sub version */
 #define VL53L0X_IMPLEMENTATION_VER_REVISION	  4823
 
 
 #define VL53L0X_DEFAULT_MAX_LOOP 2000
 #define VL53L0X_MAX_STRING_LENGTH 32
 
+/**  The device model ID   */
+#define IDENTIFICATION_MODEL_ID  0x000
+#define STATUS_OK                0x00
+#define STATUS_FAIL              0x01
+
+/** default device address */
+#define VL53L0X_DEFAULT_ADDRESS		0x52 /* (8-bit) */
+
+#define  VL53L0X_STRING_DEVICE_INFO_NAME_TS0      "VL53L0X TS0"
+#define  VL53L0X_STRING_DEVICE_INFO_NAME_TS1      "VL53L0X TS1"
+#define  VL53L0X_STRING_DEVICE_INFO_NAME_TS2      "VL53L0X TS2"
+#define  VL53L0X_STRING_DEVICE_INFO_NAME_ES1      "VL53L0X ES1 or later"
+#define  VL53L0X_STRING_DEVICE_INFO_TYPE          "VL53L0X"
+
+#define REF_ARRAY_SPAD_0  0
+#define REF_ARRAY_SPAD_5  5
+#define REF_ARRAY_SPAD_10 10
+
+
+/* sensor operating modes */
+typedef enum {
+    op_single_shot_poll = 1,
+    op_poll,  // was range_continuous_polling
+    op_INT,
+    op_poll_low_threshold,
+    op_poll_high_threshold,
+    op_poll_out_of_window,
+    op_INT_low_threshold,
+    op_INT_high_threshold,
+    op_INT_out_of_window,
+} TOperatingMode;
 
 /**
  * Device specific defines. To be adapted by implementer for the targeted
@@ -101,8 +132,8 @@
 
 /** use where fractional values are expected
  *
- * Given a floating point value f it's .16 bit point is (int)(f*(1<<16))*/
-typedef uint32_t FixPoint1616_t;
+ * Given a floating point value f it's 16.16 bit point is (int)(f*(1<<16))*/
+typedef uint32_t TFP1616;
 
 /** @defgroup VL53L0X_DevSpecDefines_group VL53L0X cut1.1 Device Specific Defines
  *  @brief VL53L0X cut1.1 Device Specific Defines
@@ -117,63 +148,55 @@
  *  It is related to Status Register of the Device.
  *  @{
  */
-typedef uint8_t VL53L0X_DeviceError;
+typedef uint8_t TDevError;
 
-#define VL53L0X_DEVICEERROR_NONE                        ((VL53L0X_DeviceError) 0)
+#define VL53L0X_DEVICEERROR_NONE                        ((TDevError) 0)
 /*!< 0  NoError  */
-#define VL53L0X_DEVICEERROR_VCSELCONTINUITYTESTFAILURE  ((VL53L0X_DeviceError) 1)
-#define VL53L0X_DEVICEERROR_VCSELWATCHDOGTESTFAILURE    ((VL53L0X_DeviceError) 2)
-#define VL53L0X_DEVICEERROR_NOVHVVALUEFOUND             ((VL53L0X_DeviceError) 3)
-#define VL53L0X_DEVICEERROR_MSRCNOTARGET                ((VL53L0X_DeviceError) 4)
-#define VL53L0X_DEVICEERROR_SNRCHECK                    ((VL53L0X_DeviceError) 5)
-#define VL53L0X_DEVICEERROR_RANGEPHASECHECK             ((VL53L0X_DeviceError) 6)
-#define VL53L0X_DEVICEERROR_SIGMATHRESHOLDCHECK         ((VL53L0X_DeviceError) 7)
-#define VL53L0X_DEVICEERROR_TCC                         ((VL53L0X_DeviceError) 8)
-#define VL53L0X_DEVICEERROR_MINCLIP                     ((VL53L0X_DeviceError) 10)
-#define VL53L0X_DEVICEERROR_RANGECOMPLETE               ((VL53L0X_DeviceError) 11)
-#define VL53L0X_DEVICEERROR_ALGOUNDERFLOW               ((VL53L0X_DeviceError) 12)
-#define VL53L0X_DEVICEERROR_ALGOOVERFLOW                ((VL53L0X_DeviceError) 13)
-#define VL53L0X_DEVICEERROR_RANGEIGNORETHRESHOLD        ((VL53L0X_DeviceError) 14)
+#define VL53L0X_DEVICEERROR_VCSELCONTINUITYTESTFAILURE  ((TDevError) 1)
+#define VL53L0X_DEVICEERROR_VCSELWATCHDOGTESTFAILURE    ((TDevError) 2)
+#define VL53L0X_DEVICEERROR_NOVHVVALUEFOUND             ((TDevError) 3)
+#define VL53L0X_DEVICEERROR_MSRCNOTARGET                ((TDevError) 4)
+#define VL53L0X_DEVICEERROR_SNRCHECK                    ((TDevError) 5)
+#define VL53L0X_DEVICEERROR_RANGEPHASECHECK             ((TDevError) 6)
+#define VL53L0X_DEVICEERROR_SIGMATHRESHOLDCHECK         ((TDevError) 7)
+#define VL53L0X_DEVICEERROR_TCC                         ((TDevError) 8)
+#define VL53L0X_DEVICEERROR_MINCLIP                     ((TDevError) 10)
+#define VL53L0X_DEVICEERROR_RANGECOMPLETE               ((TDevError) 11)
+#define VL53L0X_DEVICEERROR_ALGOUNDERFLOW               ((TDevError) 12)
+#define VL53L0X_DEVICEERROR_ALGOOVERFLOW                ((TDevError) 13)
+#define VL53L0X_DEVICEERROR_RANGEIGNORETHRESHOLD        ((TDevError) 14)
 
 /** @} end of VL53L0X_DeviceError_group */
 
 
-/** @defgroup VL53L0X_CheckEnable_group Check Enable list
+/** @defgroup VL53L0X_CHECKEN_group Check Enable list
  *  @brief Check Enable code
  *
  *  Define used to specify the LimitCheckId.
  *  Use @a VL53L0X_GetLimitCheckInfo() to get the string.
  *  @{
  */
-
-#define VL53L0X_CHECKENABLE_SIGMA_FINAL_RANGE           0
-#define VL53L0X_CHECKENABLE_SIGNAL_RATE_FINAL_RANGE     1
-#define VL53L0X_CHECKENABLE_SIGNAL_REF_CLIP             2
-#define VL53L0X_CHECKENABLE_RANGE_IGNORE_THRESHOLD      3
-#define VL53L0X_CHECKENABLE_SIGNAL_RATE_MSRC            4
-#define VL53L0X_CHECKENABLE_SIGNAL_RATE_PRE_RANGE       5
-#define VL53L0X_CHECKENABLE_NUMBER_OF_CHECKS            6
-/** @}  end of VL53L0X_CheckEnable_group */
+#define VL53L0X_CHECKEN_SIGMA_FINAL_RANGE        0
+#define VL53L0X_CHECKEN_SIG_RATE_FINAL_RANGE     1
+#define VL53L0X_CHECKEN_SIG_REF_CLIP             2
+#define VL53L0X_CHECKEN_RANGE_IGNORE_THRESHOLD   3
+#define VL53L0X_CHECKEN_SIG_RATE_MSRC            4
+#define VL53L0X_CHECKEN_SIG_RATE_PRE_RANGE       5
+#define VL53L0X_CHECKEN_NUMBER_OF_CHECKS         6
+/** @}  end of VL53L0X_CHECKEN_group */
 
 
-/** @defgroup VL53L0X_GpioFunctionality_group Gpio Functionality
+/** @defgroup GPIO_Func_group Gpio Functionality
  *  @brief Defines the different functionalities for the device GPIO(s)
- *  @{
- */
-typedef uint8_t VL53L0X_GpioFunctionality;
-
-#define VL53L0X_GPIOFUNCTIONALITY_OFF                     \
-	((VL53L0X_GpioFunctionality)  0) /*!< NO Interrupt  */
-#define VL53L0X_GPIOFUNCTIONALITY_THRESHOLD_CROSSED_LOW   \
-	((VL53L0X_GpioFunctionality)  1) /*!< Level Low (value < thresh_low)  */
-#define VL53L0X_GPIOFUNCTIONALITY_THRESHOLD_CROSSED_HIGH   \
-	((VL53L0X_GpioFunctionality)  2) /*!< Level High (value > thresh_high) */
-#define VL53L0X_GPIOFUNCTIONALITY_THRESHOLD_CROSSED_OUT    \
-	((VL53L0X_GpioFunctionality)  3)
-/*!< Out Of Window (value < thresh_low OR value > thresh_high)  */
-#define VL53L0X_GPIOFUNCTIONALITY_NEW_MEASURE_READY        \
-	((VL53L0X_GpioFunctionality)  4) /*!< New Sample Ready  */
-/** @} end of VL53L0X_GpioFunctionality_group */
+ *  @{   */
+typedef enum {
+    GPIO_FUNC_OFF = 0, /*!< NO Interrupt  */
+    GPIO_FUNC_THRESHOLD_CROSSED_LOW,  /*!< Level Low (value < thresh_low)  */
+    GPIO_FUNC_THRESHOLD_CROSSED_HIGH, /*!< Level High (value > thresh_high) */
+    GPIO_FUNC_THRESHOLD_CROSSED_OUT, /*!< Out Of Window (value < thresh_low OR value > thresh_high)  */
+    GPIO_FUNC_NEW_MEASURE_READY /*!< New Sample Ready  */
+} TGPIO_Func;
+/** @} end of GPIO_FUNC_group */
 
 
 /* Device register map */
@@ -182,117 +205,116 @@
  *  @brief List of all the defined registers
  *  @{
  */
-#define VL53L0X_REG_SYSRANGE_START              0x000
-/** mask existing bit in #VL53L0X_REG_SYSRANGE_START*/
-#define VL53L0X_REG_SYSRANGE_MODE_MASK          0x0F
-/** bit 0 in #VL53L0X_REG_SYSRANGE_START write 1 toggle state in
+#define REG_SYSRANGE_START              0x000
+/** mask existing bit in #REG_SYSRANGE_START*/
+#define REG_SYSRANGE_MODE_MASK          0x0F
+/** bit 0 in #REG_SYSRANGE_START write 1 toggle state in
  * continuous mode and arm next shot in single shot mode */
-#define VL53L0X_REG_SYSRANGE_MODE_START_STOP    0x01
-/** bit 1 write 0 in #VL53L0X_REG_SYSRANGE_START set single shot mode */
-#define VL53L0X_REG_SYSRANGE_MODE_SINGLESHOT    0x00
-/** bit 1 write 1 in #VL53L0X_REG_SYSRANGE_START set back-to-back
+#define REG_SYSRANGE_MODE_START_STOP    0x01
+/** bit 1 write 0 in #REG_SYSRANGE_START set single shot mode */
+#define REG_SYSRANGE_MODE_SINGLESHOT    0x00
+/** bit 1 write 1 in #REG_SYSRANGE_START set back-to-back
  *  operation mode */
-#define VL53L0X_REG_SYSRANGE_MODE_BACKTOBACK    0x02
-/** bit 2 write 1 in #VL53L0X_REG_SYSRANGE_START set timed operation
+#define REG_SYSRANGE_MODE_BACKTOBACK    0x02
+/** bit 2 write 1 in #REG_SYSRANGE_START set timed operation
  *  mode */
-#define VL53L0X_REG_SYSRANGE_MODE_TIMED         0x04
-/** bit 3 write 1 in #VL53L0X_REG_SYSRANGE_START set histogram operation
+#define REG_SYSRANGE_MODE_TIMED         0x04
+/** bit 3 write 1 in #REG_SYSRANGE_START set histogram operation
  *  mode */
-#define VL53L0X_REG_SYSRANGE_MODE_HISTOGRAM     0x08
+#define REG_SYSRANGE_MODE_HISTOGRAM     0x08
 
-#define VL53L0X_REG_SYSTEM_THRESH_HIGH              0x000C
-#define VL53L0X_REG_SYSTEM_THRESH_LOW               0x000E
-
-#define VL53L0X_REG_SYSTEM_SEQUENCE_CONFIG			0x0001
-#define VL53L0X_REG_SYSTEM_RANGE_CONFIG				0x0009
-#define VL53L0X_REG_SYSTEM_INTERMEASUREMENT_PERIOD	0x0004
+#define REG_SYSTEM_THRESH_HIGH          0x0C
+#define REG_SYSTEM_THRESH_LOW           0x0E
+#define REG_SYSTEM_SEQUENCE_CONFIG		0x01
+#define REG_SYSTEM_RANGE_CONFIG			0x09
+#define REG_SYSTEM_MEASURE_PERIOD		0x04
 
-#define VL53L0X_REG_SYSTEM_INTERRUPT_CONFIG_GPIO            0x000A
-#define VL53L0X_REG_SYSTEM_INTERRUPT_GPIO_DISABLED			0x00
-#define VL53L0X_REG_SYSTEM_INTERRUPT_GPIO_LEVEL_LOW			0x01
-#define VL53L0X_REG_SYSTEM_INTERRUPT_GPIO_LEVEL_HIGH		0x02
-#define VL53L0X_REG_SYSTEM_INTERRUPT_GPIO_OUT_OF_WINDOW		0x03
-#define VL53L0X_REG_SYSTEM_INTERRUPT_GPIO_NEW_SAMPLE_READY	0x04
+#define REG_SYSINT_CONFIG_GPIO          0x0A
+#define REG_SYSINT_GPIO_DISABLED		0x00
+#define REG_SYSINT_GPIO_LEVEL_LOW		0x01
+#define REG_SYSINT_GPIO_LEVEL_HIGH		0x02
+#define REG_SYSINT_GPIO_OUT_OF_WINDOW	0x03
+#define REG_SYSINT_GPIO_NEW_SAMPLE_READY 0x04
 
-#define VL53L0X_REG_GPIO_HV_MUX_ACTIVE_HIGH          0x0084
-#define VL53L0X_REG_SYSTEM_INTERRUPT_CLEAR           0x000B
+#define REG_GPIO_HV_MUX_ACTIVE_HIGH     0x84
+#define REG_SYSINT_CLEAR           		0x0B
 
 /* Result registers */
-#define VL53L0X_REG_RESULT_INTERRUPT_STATUS          0x0013
-#define VL53L0X_REG_RESULT_RANGE_STATUS              0x0014
+#define REG_RESULT_INTERRUPT_STATUS     0x13
+#define REG_RESULT_RANGE_STATUS         0x14
 
-#define VL53L0X_REG_RESULT_CORE_PAGE  1
-#define VL53L0X_REG_RESULT_CORE_AMBIENT_WINDOW_EVENTS_RTN   0x00BC
-#define VL53L0X_REG_RESULT_CORE_RANGING_TOTAL_EVENTS_RTN    0x00C0
-#define VL53L0X_REG_RESULT_CORE_AMBIENT_WINDOW_EVENTS_REF   0x00D0
-#define VL53L0X_REG_RESULT_CORE_RANGING_TOTAL_EVENTS_REF    0x00D4
-#define VL53L0X_REG_RESULT_PEAK_SIGNAL_RATE_REF             0x00B6
+#define REG_RESULT_CORE_PAGE  1
+#define REG_RESULT_CORE_AMBIENT_WINDOW_EVENTS_RTN   0xBC
+#define REG_RESULT_CORE_RANGING_TOTAL_EVENTS_RTN    0xC0
+#define REG_RESULT_CORE_AMBIENT_WINDOW_EVENTS_REF   0xD0
+#define REG_RESULT_CORE_RANGING_TOTAL_EVENTS_REF    0xD4
+#define REG_RESULT_PEAK_SIG_RATE_REF                0xB6
 
 /* Algo register */
-#define VL53L0X_REG_ALGO_PART_TO_PART_RANGE_OFFSET_MM       0x0028
-#define VL53L0X_REG_I2C_SLAVE_DEVICE_ADDRESS                0x008a
+#define REG_ALGO_PART_TO_PART_RANGE_OFFSET_MM       0x28
+#define REG_I2C_SLAVE_DEVICE_ADDRESS                0x8a
 
 /* Check Limit registers */
-#define VL53L0X_REG_MSRC_CONFIG_CONTROL                     0x0060
+#define REG_MSRC_CONFIG_CONTROL                     0x60
 
-#define VL53L0X_REG_PRE_RANGE_CONFIG_MIN_SNR                      0X0027
-#define VL53L0X_REG_PRE_RANGE_CONFIG_VALID_PHASE_LOW              0x0056
-#define VL53L0X_REG_PRE_RANGE_CONFIG_VALID_PHASE_HIGH             0x0057
-#define VL53L0X_REG_PRE_RANGE_MIN_COUNT_RATE_RTN_LIMIT            0x0064
+#define REG_PRE_RANGE_CONFIG_MIN_SNR                0X27
+#define REG_PRE_RANGE_CONFIG_VALID_PHASE_LOW        0x56
+#define REG_PRE_RANGE_CONFIG_VALID_PHASE_HIGH       0x57
+#define REG_PRE_RANGE_MIN_COUNT_RATE_RTN_LIMIT      0x64
 
-#define VL53L0X_REG_FINAL_RANGE_CONFIG_MIN_SNR                    0X0067
-#define VL53L0X_REG_FINAL_RANGE_CONFIG_VALID_PHASE_LOW            0x0047
-#define VL53L0X_REG_FINAL_RANGE_CONFIG_VALID_PHASE_HIGH           0x0048
-#define VL53L0X_REG_FINAL_RANGE_CONFIG_MIN_COUNT_RATE_RTN_LIMIT   0x0044
+#define REG_FINAL_RANGE_CONFIG_MIN_SNR              0X67
+#define REG_FINAL_RANGE_CONFIG_VALID_PHASE_LOW      0x47
+#define REG_FINAL_RANGE_CONFIG_VALID_PHASE_HIGH     0x48
+#define REG_FINAL_RANGE_CONFIG_MIN_COUNT_RATE_RTN_LIMIT   0x44
 
-#define VL53L0X_REG_PRE_RANGE_CONFIG_SIGMA_THRESH_HI              0X0061
-#define VL53L0X_REG_PRE_RANGE_CONFIG_SIGMA_THRESH_LO              0X0062
+#define REG_PRE_RANGE_CONFIG_SIGMA_THRESH_HI        0x61
+#define REG_PRE_RANGE_CONFIG_SIGMA_THRESH_LO        0x62
 
 /* PRE RANGE registers */
-#define VL53L0X_REG_PRE_RANGE_CONFIG_VCSEL_PERIOD                 0x0050
-#define VL53L0X_REG_PRE_RANGE_CONFIG_TIMEOUT_MACROP_HI            0x0051
-#define VL53L0X_REG_PRE_RANGE_CONFIG_TIMEOUT_MACROP_LO            0x0052
+#define REG_PRE_RANGE_CONFIG_VCSEL_PERIOD           0x50
+#define REG_PRE_RANGE_CONFIG_TIMEOUT_MACROP_HI      0x51
+#define REG_PRE_RANGE_CONFIG_TIMEOUT_MACROP_LO      0x52
 
-#define VL53L0X_REG_SYSTEM_HISTOGRAM_BIN                          0x0081
-#define VL53L0X_REG_HISTOGRAM_CONFIG_INITIAL_PHASE_SELECT         0x0033
-#define VL53L0X_REG_HISTOGRAM_CONFIG_READOUT_CTRL                 0x0055
+#define REG_SYSTEM_HISTOGRAM_BIN                    0x81
+#define REG_HISTOGRAM_CONFIG_INITIAL_PHASE_SELECT   0x33
+#define REG_HISTOGRAM_CONFIG_READOUT_CTRL           0x55
 
-#define VL53L0X_REG_FINAL_RANGE_CONFIG_VCSEL_PERIOD               0x0070
-#define VL53L0X_REG_FINAL_RANGE_CONFIG_TIMEOUT_MACROP_HI          0x0071
-#define VL53L0X_REG_FINAL_RANGE_CONFIG_TIMEOUT_MACROP_LO          0x0072
-#define VL53L0X_REG_CROSSTALK_COMPENSATION_PEAK_RATE_MCPS         0x0020
+#define REG_FINAL_RANGE_CONFIG_VCSEL_PERIOD         0x70
+#define REG_FINAL_RANGE_CONFIG_TIMEOUT_MACROP_HI    0x71
+#define REG_FINAL_RANGE_CONFIG_TIMEOUT_MACROP_LO    0x72
+#define REG_XTALK_COMPENS_RATE_MHz                  0x20
 
-#define VL53L0X_REG_MSRC_CONFIG_TIMEOUT_MACROP                    0x0046
+#define REG_MSRC_CONFIG_TIMEOUT_MACROP              0x46
 
-#define VL53L0X_REG_SOFT_RESET_GO2_SOFT_RESET_N	                  0x00bf
-#define VL53L0X_REG_IDENTIFICATION_MODEL_ID                       0x00c0
-#define VL53L0X_REG_IDENTIFICATION_REVISION_ID                    0x00c2
+#define REG_SOFT_RESET_GO2_SOFT_RESET_N	            0xbf
+#define REG_IDENTIFICATION_MODEL_ID                 0xc0
+#define REG_IDENTIFICATION_REVISION_ID              0xc2
 
-#define VL53L0X_REG_OSC_CALIBRATE_VAL                             0x00f8
+#define REG_OSC_CALIBRATE_VAL                       0xf8
 
-#define VL53L0X_SIGMA_ESTIMATE_MAX_VALUE                          65535
+#define VL53L0X_SIGMA_ESTIMATE_MAX_VALUE                    0xffff
 /* equivalent to a range sigma of 655.35mm */
 
-#define VL53L0X_REG_GLOBAL_CONFIG_VCSEL_WIDTH          0x032
-#define VL53L0X_REG_GLOBAL_CONFIG_SPAD_ENABLES_REF_0   0x0B0
-#define VL53L0X_REG_GLOBAL_CONFIG_SPAD_ENABLES_REF_1   0x0B1
-#define VL53L0X_REG_GLOBAL_CONFIG_SPAD_ENABLES_REF_2   0x0B2
-#define VL53L0X_REG_GLOBAL_CONFIG_SPAD_ENABLES_REF_3   0x0B3
-#define VL53L0X_REG_GLOBAL_CONFIG_SPAD_ENABLES_REF_4   0x0B4
-#define VL53L0X_REG_GLOBAL_CONFIG_SPAD_ENABLES_REF_5   0x0B5
+#define REG_GLOBAL_CONFIG_VCSEL_WIDTH          		0x32
+#define REG_GLOBAL_CONFIG_SPAD_ENABLES_REF_0   		0xB0
+#define REG_GLOBAL_CONFIG_SPAD_ENABLES_REF_1   		0xB1
+#define REG_GLOBAL_CONFIG_SPAD_ENABLES_REF_2   		0xB2
+#define REG_GLOBAL_CONFIG_SPAD_ENABLES_REF_3   		0xB3
+#define REG_GLOBAL_CONFIG_SPAD_ENABLES_REF_4   		0xB4
+#define REG_GLOBAL_CONFIG_SPAD_ENABLES_REF_5   		0xB5
 
-#define VL53L0X_REG_GLOBAL_CONFIG_REF_EN_START_SELECT   0xB6
-#define VL53L0X_REG_DYNAMIC_SPAD_NUM_REQUESTED_REF_SPAD 0x4E /* 0x14E */
-#define VL53L0X_REG_DYNAMIC_SPAD_REF_EN_START_OFFSET    0x4F /* 0x14F */
-#define VL53L0X_REG_POWER_MANAGEMENT_GO1_POWER_FORCE    0x80
+#define REG_GLOBAL_CONFIG_REF_EN_START_SELECT   	0xB6
+#define REG_DYNAMIC_SPAD_NUM_REQUESTED_REF_SPAD 	0x4E
+#define REG_DYNAMIC_SPAD_REF_EN_START_OFFSET    	0x4F
+#define REG_POWER_MANAGEMENT_GO1_POWER_FORCE    	0x80
 
 /*  Speed of light in um per 1E-10 Seconds */
 #define VL53L0X_SPEED_OF_LIGHT_IN_AIR 2997
 
-#define VL53L0X_REG_VHV_CONFIG_PAD_SCL_SDA__EXTSUP_HV     	  0x0089
+#define REG_VHV_CONFIG_PAD_SCL_SDA__EXTSUP_HV   0x89
 
-#define VL53L0X_REG_ALGO_PHASECAL_LIM                         0x0030 /* 0x130 */
-#define VL53L0X_REG_ALGO_PHASECAL_CONFIG_TIMEOUT              0x0030
+#define REG_ALGO_PHASECAL_LIM                   0x30
+#define REG_ALGO_PHASECAL_CONFIG_TIMEOUT        0x30
 
 /** @} VL53L0X_DefineRegisters_group */
 
@@ -328,17 +350,19 @@
     /*!< Product revision major */
     uint8_t ProductRevisionMinor;
     /*!< Product revision minor */
-} VL53L0X_DeviceInfo_t;
+} TVL53L0X_DeviceInfo;
 
 
+typedef  TVL53L0X_DeviceInfo* PVL53L0X_DeviceInfo;
+
 /** @defgroup VL53L0X_define_Error_group Error and Warning code returned by API
- *	The following DEFINE are used to identify the PAL ERROR
+ *	The following DEFINE are used to identify the Device ERROR
  *	@{
  */
 
 typedef int8_t VL53L0X_Error;
 
-#define VL53L0X_ERROR_NONE		((VL53L0X_Error)	0)
+#define VL53L0X_OK					((VL53L0X_Error)  0)
 #define VL53L0X_ERROR_CALIBRATION_WARNING	((VL53L0X_Error) -1)
 /*!< Warning invalid calibration data may be in used
 	\a	VL53L0X_InitData()
@@ -346,10 +370,9 @@
 	\a VL53L0X_SetOffsetCalibrationData */
 #define VL53L0X_ERROR_MIN_CLIPPED			((VL53L0X_Error) -2)
 /*!< Warning parameter passed was clipped to min before to be applied */
-
 #define VL53L0X_ERROR_UNDEFINED				((VL53L0X_Error) -3)
 /*!< Unqualified error */
-#define VL53L0X_ERROR_INVALID_PARAMS			((VL53L0X_Error) -4)
+#define VL53L0X_ERROR_INVALID_PARAMS		((VL53L0X_Error) -4)
 /*!< Parameter passed is invalid or out of range */
 #define VL53L0X_ERROR_NOT_SUPPORTED			((VL53L0X_Error) -5)
 /*!< Function is not supported in current mode or configuration */
@@ -357,26 +380,27 @@
 /*!< Device report a ranging error interrupt status */
 #define VL53L0X_ERROR_TIME_OUT				((VL53L0X_Error) -7)
 /*!< Aborted due to time out */
-#define VL53L0X_ERROR_MODE_NOT_SUPPORTED			((VL53L0X_Error) -8)
+#define VL53L0X_ERROR_MODE_NOT_SUPPORTED	((VL53L0X_Error) -8)
 /*!< Asked mode is not supported by the device */
-#define VL53L0X_ERROR_BUFFER_TOO_SMALL			((VL53L0X_Error) -9)
+#define VL53L0X_ERROR_BUFFER_TOO_SMALL		((VL53L0X_Error) -9)
 /*!< ... */
-#define VL53L0X_ERROR_GPIO_NOT_EXISTING			((VL53L0X_Error) -10)
+#define VL53L0X_ERROR_GPIO_NOT_EXISTING		((VL53L0X_Error) -10)
 /*!< User tried to setup a non-existing GPIO pin */
-#define VL53L0X_ERROR_GPIO_FUNCTIONALITY_NOT_SUPPORTED  ((VL53L0X_Error) -11)
+#define VL53L0X_ERROR_GPIO_FUNC_NOT_SUPPORTED ((VL53L0X_Error) -11)
 /*!< unsupported GPIO functionality */
-#define VL53L0X_ERROR_INTERRUPT_NOT_CLEARED		((VL53L0X_Error) -12)
+#define VL53L0X_ERROR_INTERRUPT_NOT_CLEARED	((VL53L0X_Error) -12)
 /*!< Error during interrupt clear */
-#define VL53L0X_ERROR_CONTROL_INTERFACE			((VL53L0X_Error) -20)
+#define VL53L0X_ERROR_CONTROL_INTERFACE		((VL53L0X_Error) -20)
+#define VL53L0X_ERROR_I2C_BUF_OVERFLOW		((VL53L0X_Error) -22)
+#define VL53L0X_ERROR_I2C_WRONG_DEV_ID		((VL53L0X_Error) -23)
 /*!< error reported from IO functions */
-#define VL53L0X_ERROR_INVALID_COMMAND			((VL53L0X_Error) -30)
-/*!< The command is not allowed in the current device state
- *	(power down) */
-#define VL53L0X_ERROR_DIVISION_BY_ZERO			((VL53L0X_Error) -40)
+#define VL53L0X_ERROR_INVALID_COMMAND		((VL53L0X_Error) -30)
+/*!< The command is not allowed in the current device state (power down) */
+#define VL53L0X_ERROR_DIVISION_BY_ZERO		((VL53L0X_Error) -40)
 /*!< In the function a division by zero occurs */
 #define VL53L0X_ERROR_REF_SPAD_INIT			((VL53L0X_Error) -50)
 /*!< Error during reference SPAD initialization */
-#define VL53L0X_ERROR_NOT_IMPLEMENTED			((VL53L0X_Error) -99)
+#define VL53L0X_ERROR_NOT_IMPLEMENTED		((VL53L0X_Error) -99)
 /*!< Tells requested functionality has not been implemented yet or
  * not compatible with the device */
 /** @} VL53L0X_define_Error_group */
@@ -442,32 +466,31 @@
     VL53L0X_HistogramModes HistogramMode;
     /*!< Defines type of histogram measurement to be done for the next
      *	measure */
-    uint32_t MeasurementTimingBudget_us;
+    uint32_t Measure_Time_Budget_us; // was MeasurementTimingBudget_us
     /*!< Defines the allowed total time for a single measurement */
-    uint32_t InterMeasurementPeriod_ms;
+    uint32_t Measure_Period_ms;
     /*!< Defines time between two consecutive measurements (between two
      *	measurement starts). If set to 0 means back-to-back mode */
-    uint8_t XTalkCompensationEnable;
+    uint8_t XTalk_Compens_En;
     /*!< Tells if Crosstalk compensation shall be enable or not	 */
     uint16_t XTalkCompensationRangeMilliMeter;
     /*!< CrossTalk compensation range in millimeter	 */
-    FixPoint1616_t XTalkCompensationRateMegaCps;
+    TFP1616 Xtalk_CompRate_MHz;
     /*!< CrossTalk compensation rate in Mega counts per seconds.
      *	Expressed in 16.16 fixed point format.	*/
-    int32_t RangeOffsetMicroMeters;
-    /*!< Range offset adjustment (mm).	*/
+    int32_t Offset_Cal_um;
+    /*!< Range offset adjustment (um) last programmed.	*/
 
-    uint8_t LimitChecksEnable[VL53L0X_CHECKENABLE_NUMBER_OF_CHECKS];
+    uint8_t Limit_Chk_En[VL53L0X_CHECKEN_NUMBER_OF_CHECKS];
     /*!< This Array store all the Limit Check enable for this device. */
-    uint8_t LimitChecksStatus[VL53L0X_CHECKENABLE_NUMBER_OF_CHECKS];
+    uint8_t LimitChecksStatus[VL53L0X_CHECKEN_NUMBER_OF_CHECKS];
     /*!< This Array store all the Status of the check linked to last
     * measurement. */
-    FixPoint1616_t LimitChecksValue[VL53L0X_CHECKENABLE_NUMBER_OF_CHECKS];
+    TFP1616 Limit_Chk_Val[VL53L0X_CHECKEN_NUMBER_OF_CHECKS];
     /*!< This Array store all the Limit Check value for this device */
-
-    uint8_t WrapAroundCheckEnable;
+    uint8_t Wrap_Around_Chk_En;
     /*!< Tells if Wrap Around Check shall be enable or not */
-} VL53L0X_DeviceParameters_t;
+} VL53L0X_DeviceParams_t;
 
 
 /** @defgroup VL53L0X_define_State_group Defines the current status of the device
@@ -476,19 +499,19 @@
  */
 typedef uint8_t VL53L0X_State;
 
-#define VL53L0X_STATE_POWERDOWN		 ((VL53L0X_State)  0)
+#define VL53L0X_STATE_POWERDOWN		  ((VL53L0X_State)  0)
 /*!< Device is in HW reset	*/
 #define VL53L0X_STATE_WAIT_STATICINIT ((VL53L0X_State)  1)
 /*!< Device is initialized and wait for static initialization  */
-#define VL53L0X_STATE_STANDBY		 ((VL53L0X_State)  2)
+#define VL53L0X_STATE_STANDBY		  ((VL53L0X_State)  2)
 /*!< Device is in Low power Standby mode   */
-#define VL53L0X_STATE_IDLE			 ((VL53L0X_State)  3)
+#define VL53L0X_STATE_IDLE			  ((VL53L0X_State)  3)
 /*!< Device has been initialized and ready to do measurements  */
-#define VL53L0X_STATE_RUNNING		 ((VL53L0X_State)  4)
+#define VL53L0X_STATE_RUNNING		  ((VL53L0X_State)  4)
 /*!< Device is performing measurement */
-#define VL53L0X_STATE_UNKNOWN		 ((VL53L0X_State)  98)
+#define VL53L0X_STATE_UNKNOWN		  ((VL53L0X_State)  98)
 /*!< Device is in unknown state and need to be rebooted	 */
-#define VL53L0X_STATE_ERROR			 ((VL53L0X_State)  99)
+#define VL53L0X_STATE_ERROR			  ((VL53L0X_State)  99)
 /*!< Device is in error state and need to be rebooted  */
 /** @} VL53L0X_define_State_group */
 
@@ -518,16 +541,16 @@
      * in current setup and environment conditions (Filled when
      *	applicable) */
 
-    FixPoint1616_t SignalRateRtnMegaCps;
-    /*!< Return signal rate (MCPS)\n these is a 16.16 fix point
+    TFP1616 SignalRateRtnMHz;
+    /*!< Return signal rate (MHz)\n these is a 16.16 fix point
      *	value, which is effectively a measure of target
      *	 reflectance.*/
-    FixPoint1616_t AmbientRateRtnMegaCps;
-    /*!< Return ambient rate (MCPS)\n these is a 16.16 fix point
+    TFP1616 AmbientRateRtnMHz;
+    /*!< Return ambient rate (MHz)\n these is a 16.16 fix point
      *	value, which is effectively a measure of the ambien
      *	t light.*/
 
-    uint16_t EffectiveSpadRtnCount;
+    uint16_t EffectiveSPADRtnCount;
     /*!< Return the effective SPAD count for the return signal.
      *	To obtain Real value it should be divided by 256 */
 
@@ -541,7 +564,7 @@
     /*!< Range Status for the current measurement. This is device
      *	dependent. Value = 0 means value is valid.
      *	See \ref RangeStatusPage */
-} VL53L0X_RangingMeasurementData_t;
+} TRangeResults; // was VL53L0X_RangingMeasurementData_t
 
 
 #define VL53L0X_HISTOGRAM_BUFFER_SIZE 24
@@ -558,63 +581,59 @@
     uint8_t FirstBin; /*!< First Bin value */
     uint8_t BufferSize; /*!< Buffer Size - Set by the user.*/
     uint8_t NumberOfBins;/*!< Number of bins filled by the histogram measurement */
-    VL53L0X_DeviceError ErrorStatus;
+    TDevError ErrorStatus;
     /*!< Error status of the current measurement. \n
-    see @a ::VL53L0X_DeviceError @a VL53L0X_GetStatusErrorString() */
+    see @a ::TDevError @a VL53L0X_GetStatusErrorString() */
 } VL53L0X_HistogramMeasurementData_t;
 
-#define VL53L0X_REF_SPAD_BUFFER_SIZE 6
+#define REF_SPAD_BUFFER_SIZE 6
+
+#define VL53L0X_PLL_PERIOD_PS = 1655;
+#define VL53L0X_MACRO_PERIOD_VCLKS = 2304;
 
 /**
- * @struct VL53L0X_SpadData_t
- * @brief Spad Configuration Data.
+ * @struct VL53L0X_SPADData_t
+ * @brief SPAD Configuration Data.
  */
 typedef struct {
-    uint8_t RefSpadEnables[VL53L0X_REF_SPAD_BUFFER_SIZE];
-    /*!< Reference Spad Enables */
-    uint8_t RefGoodSpadMap[VL53L0X_REF_SPAD_BUFFER_SIZE];
-    /*!< Reference Spad Good Spad Map */
-} VL53L0X_SpadData_t;
+    uint8_t RefSPADEnables[REF_SPAD_BUFFER_SIZE];
+    /*!< Reference SPAD Enables */
+    uint8_t RefGoodSPADMap[REF_SPAD_BUFFER_SIZE];
+    /*!< Reference SPAD Good SPAD Map */
+} VL53L0X_SPADData_t;
 
 typedef struct {
-    FixPoint1616_t OscFrequencyMHz; /* Frequency used */
-
+    TFP1616 OscFrequencyMHz; 
+    /* Frequency used */
     uint16_t LastEncodedTimeout;
     /* last encoded Time out used for timing budget*/
-    VL53L0X_GpioFunctionality Pin0GpioFunctionality;
+    TGPIO_Func GpioFunctionality;
     /* store the functionality of the GPIO: pin0 */
-
     uint32_t FinalRangeTimeoutMicroSecs;
     /*!< Execution time of the final range*/
-    uint8_t FinalRangeVcselPulsePeriod;
+    uint8_t FinalRangeVcselPPeriod;
     /*!< Vcsel pulse period (pll clocks) for the final range measurement*/
     uint32_t PreRangeTimeoutMicroSecs;
     /*!< Execution time of the final range*/
-    uint8_t PreRangeVcselPulsePeriod;
+    uint8_t PreRangeVcselPPeriod;
     /*!< Vcsel pulse period (pll clocks) for the pre-range measurement*/
-
     uint16_t SigmaEstRefArray;
     /*!< Reference array sigma value in 1/100th of [mm] e.g. 100 = 1mm */
     uint16_t SigmaEstEffPulseWidth;
     /*!< Effective Pulse width for sigma estimate in 1/100th of ns e.g. 900 = 9.0ns */
     uint16_t SigmaEstEffAmbWidth;
-    /*!< Effective Ambient width for sigma estimate in 1/100th of ns
-     * e.g. 500 = 5.0ns */
-
+    /*!< Effective Ambient width for sigma estimate in 1/100th of ns e.g. 500 = 5.0ns */
     uint8_t ReadDataFromDeviceDone; /* Indicate if read from device has
 	been done (==1) or not (==0) */
     uint8_t ModuleId; /* Module ID */
     uint8_t Revision; /* test Revision */
-    char ProductId[VL53L0X_MAX_STRING_LENGTH];
-    /* Product Identifier String  */
-    uint8_t ReferenceSpadCount; /* used for ref spad management */
-    uint8_t ReferenceSpadType;	/* used for ref spad management */
-    uint8_t RefSpadsInitialised; /* reports if ref spads are initialised. */
+    char ProductId[VL53L0X_MAX_STRING_LENGTH]; /* Product Identifier String  */
+    uint8_t ReferenceSPADCount; /* used for ref SPAD management */
+    uint8_t ReferenceSPADType;	/* used for ref SPAD management */
+    uint8_t RefSPADSInitialised; /* reports if ref SPADS are initialised. */
     uint32_t PartUIDUpper; /*!< Unique Part ID Upper */
     uint32_t PartUIDLower; /*!< Unique Part ID Lower */
-    FixPoint1616_t SignalRateMeasFixed400mm; /*!< Peek Signal rate
-	at 400 mm*/
-
+    TFP1616 SignalRateMeasFixed400mm; /*!< Peek Signal rate at 400 mm*/
 } VL53L0X_DeviceSpecificParameters_t;
 
 /** @defgroup VL53L0X_define_InterruptPolarity_group Defines the Polarity
@@ -623,7 +642,6 @@
  *	@{
  */
 typedef uint8_t VL53L0X_InterruptPolarity;
-
 #define VL53L0X_INTERRUPTPOLARITY_LOW	   ((VL53L0X_InterruptPolarity)	0)
 /*!< Set active low polarity best setup for falling edge. */
 #define VL53L0X_INTERRUPTPOLARITY_HIGH	   ((VL53L0X_InterruptPolarity)	1)
@@ -633,15 +651,15 @@
 
 
 /** @defgroup VL53L0X_define_VcselPeriod_group Vcsel Period Defines
- *	Defines the range measurement for which to access the vcsel period.
+ *	Defines the range measurement for which to access the vcsel Phase.
  *	@{
  */
-typedef uint8_t VL53L0X_VcselPeriod;
+typedef uint8_t VL53L0X_Range_Phase;
 
-#define VL53L0X_VCSEL_PERIOD_PRE_RANGE	((VL53L0X_VcselPeriod) 0)
-/*!<Identifies the pre-range vcsel period. */
-#define VL53L0X_VCSEL_PERIOD_FINAL_RANGE ((VL53L0X_VcselPeriod) 1)
-/*!<Identifies the final range vcsel period. */
+#define VL53L0X_VCSEL_PRE_RANGE	 ((VL53L0X_Range_Phase) 0)
+/*!<Identifies the pre-range vcsel Phase. */
+#define VL53L0X_VCSEL_FINAL_RANGE ((VL53L0X_Range_Phase) 1)
+/*!<Identifies the final range vcsel Phase . */
 
 /** @} VL53L0X_define_VcselPeriod_group */
 
@@ -657,7 +675,7 @@
     uint8_t		 DssOn;		   /*!<Reports if DSS On  */
     uint8_t		 PreRangeOn;   /*!<Reports if Pre-Range On	*/
     uint8_t		 FinalRangeOn; /*!<Reports if Final-Range On  */
-} VL53L0X_SchedulerSequenceSteps_t;
+} VL53L0X_Sequence_Steps_t;
 
 /** @} VL53L0X_define_SchedulerSequence_group */
 
@@ -668,15 +686,15 @@
  */
 typedef uint8_t VL53L0X_SequenceStepId;
 
-#define	 VL53L0X_SEQUENCESTEP_TCC		 ((VL53L0X_VcselPeriod) 0)
+#define	 VL53L0X_SEQUENCESTEP_TCC		 ((VL53L0X_SequenceStepId) 0)
 /*!<Target CentreCheck identifier. */
-#define	 VL53L0X_SEQUENCESTEP_DSS		 ((VL53L0X_VcselPeriod) 1)
-/*!<Dynamic Spad Selection function Identifier. */
-#define	 VL53L0X_SEQUENCESTEP_MSRC		 ((VL53L0X_VcselPeriod) 2)
+#define	 VL53L0X_SEQUENCESTEP_DSS		 ((VL53L0X_SequenceStepId) 1)
+/*!<Dynamic SPAD Selection function Identifier. */
+#define	 VL53L0X_SEQUENCESTEP_MSRC		 ((VL53L0X_SequenceStepId) 2)
 /*!<Minimum Signal Rate Check function Identifier. */
-#define	 VL53L0X_SEQUENCESTEP_PRE_RANGE	 ((VL53L0X_VcselPeriod) 3)
+#define	 VL53L0X_SEQUENCESTEP_PRE_RANGE	 ((VL53L0X_SequenceStepId) 3)
 /*!<Pre-Range check Identifier. */
-#define	 VL53L0X_SEQUENCESTEP_FINAL_RANGE ((VL53L0X_VcselPeriod) 4)
+#define	 VL53L0X_SEQUENCESTEP_FINAL_RANGE ((VL53L0X_SequenceStepId) 4)
 /*!<Final Range Check Identifier. */
 
 #define	 VL53L0X_SEQUENCESTEP_NUMBER_OF_CHECKS			 5
@@ -691,26 +709,26 @@
  */
 
 /* Defines */
-#define VL53L0X_FIXPOINT1616TOFIXPOINT97(Value) (uint16_t)((Value>>9)&0xFFFF)
-#define VL53L0X_FIXPOINT97TOFIXPOINT1616(Value) (FixPoint1616_t)(Value<<9)
+#define FP1616_TO_FP97(Value) (uint16_t)((Value>>9)&0xFFFF)
+#define FP97_TO_FP1616(Value) (TFP1616)(Value<<9)
 
-#define VL53L0X_FIXPOINT1616TOFIXPOINT88(Value) (uint16_t)((Value>>8)&0xFFFF)
-#define VL53L0X_FIXPOINT88TOFIXPOINT1616(Value) (FixPoint1616_t)(Value<<8)
+#define FP1616_TO_FP88(Value) (uint16_t)((Value>>8)&0xFFFF)
+#define FP88_TO_FP1616(Value) (TFP1616)(Value<<8)
 
-#define VL53L0X_FIXPOINT1616TOFIXPOINT412(Value) (uint16_t)((Value>>4)&0xFFFF)
-#define VL53L0X_FIXPOINT412TOFIXPOINT1616(Value) (FixPoint1616_t)(Value<<4)
+#define FP1616_TO_FP412(Value) (uint16_t)((Value>>4)&0xFFFF)
+#define FP412_TO_FP1616(Value) (TFP1616)(Value<<4)
 
-#define VL53L0X_FIXPOINT1616TOFIXPOINT313(Value) (uint16_t)((Value>>3)&0xFFFF)
-#define VL53L0X_FIXPOINT313TOFIXPOINT1616(Value) (FixPoint1616_t)(Value<<3)
+#define FP1616_TO_FP313(Value) (uint16_t)((Value>>3)&0xFFFF)
+#define FP313_TO_FP1616(Value) (TFP1616)(Value<<3)
 
-#define VL53L0X_FIXPOINT1616TOFIXPOINT08(Value) (uint8_t)((Value>>8)&0x00FF)
-#define VL53L0X_FIXPOINT08TOFIXPOINT1616(Value) (FixPoint1616_t)(Value<<8)
+#define FP1616_TO_FP08(Value) (uint8_t)((Value>>8)&0x00FF)
+#define FP08_TO_FP1616(Value) (TFP1616)(Value<<8)
 
-#define VL53L0X_FIXPOINT1616TOFIXPOINT53(Value) (uint8_t)((Value>>13)&0x00FF)
-#define VL53L0X_FIXPOINT53TOFIXPOINT1616(Value) (FixPoint1616_t)(Value<<13)
+#define FP1616_TO_FP53(Value) (uint8_t)((Value>>13)&0x00FF)
+#define FP53_TO_FP1616(Value) (TFP1616)(Value<<13)
 
-#define VL53L0X_FIXPOINT1616TOFIXPOINT102(Value) (uint16_t)((Value>>14)&0x0FFF)
-#define VL53L0X_FIXPOINT102TOFIXPOINT1616(Value) (FixPoint1616_t)(Value<<12)
+#define FP1616_TO_FP102(Value) (uint16_t)((Value>>14)&0x0FFF)
+#define FP102_TO_FP1616(Value) (TFP1616)(Value<<12)
 
 #define VL53L0X_MAKEUINT16(lsb, msb) (uint16_t)((((uint16_t)msb)<<8) + (uint16_t)lsb)