Condensed Version of Public VL53L0X

Dependents:   ToF-Only-Tryout

Revision:
5:b95f6951f7d5
Parent:
2:d07edeaff6f1
Child:
7:41cbc431e1f4
--- a/VL53L0X_def.h	Mon Dec 18 08:27:21 2017 +0000
+++ b/VL53L0X_def.h	Sat Mar 23 21:28:30 2019 +0000
@@ -47,6 +47,11 @@
  *	@{
  */
 
+/****************** define for i2c configuration *******************************/
+/** Maximum buffer size to be used in i2c */
+#define VL53L0X_MAX_I2C_XFER_SIZE   64 /* Maximum buffer size to be used in i2c */
+#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 */
 #define VL53L0X10_SPECIFICATION_VER_MAJOR   1
@@ -83,13 +88,13 @@
 #define VL53L0X_IMPLEMENTATION_VER_SUB	  21
 /** VL53L0X PAL IMPLEMENTATION sub version */
 #define VL53L0X_IMPLEMENTATION_VER_REVISION	  4823
+
+
 #define VL53L0X_DEFAULT_MAX_LOOP 2000
 #define VL53L0X_MAX_STRING_LENGTH 32
 
 
 #include "VL53L0X_device.h"
-#include "VL53L0X_types.h"
-
 
 /****************************************
  * PRIVATE define do not edit
@@ -190,8 +195,6 @@
 /* ... Modes to be added depending on device */
 /** @} VL53L0X_define_DeviceModes_group */
 
-
-
 /** @defgroup VL53L0X_define_HistogramModes_group Defines Histogram modes
  *	Defines all possible Histogram modes for the device
  *	@{
@@ -228,7 +231,6 @@
 
 /** @} VL53L0X_define_PowerModes_group */
 
-
 /** @brief Defines all parameters for the device
  */
 typedef struct {
@@ -309,7 +311,6 @@
     /*!< Give the Measurement time needed by the device to do the
      * measurement.*/
 
-
     uint16_t RangeMilliMeter;	/*!< range distance in millimeter. */
 
     uint16_t RangeDMaxMilliMeter;
@@ -428,7 +429,7 @@
  * @brief VL53L0X PAL device ST private data structure \n
  * End user should never access any of these field directly
  *
- * These must never access directly but only via macro
+ * These must never be accessed directly, but only via macro
  */
 typedef struct {
     VL53L0X_DMaxData_t DMaxData;
@@ -485,9 +486,68 @@
     FixPoint1616_t DmaxCalSignalRateRtnMegaCps;
     /*!< Dmax Calibration Signal Rate Return MegaCps */
 
-} VL53L0X_DevData_t;
+/* } VL53L0X_DevData_t; */
+
+/**
+ * @struct  VL53L0X_Dev_t
+ * @brief    Generic PAL device type that does link between API and platform abstraction layer
+ *
+ */
+/* typedef struct {
+    VL53L0X_DevData_t Data;         */      /*!< embed ST FlightSense Dev  data as "Data"*/
+
+    /*!< user specific field */
+    uint8_t   I2cDevAddr;                /*!< i2c device address user specific field */
+    uint8_t   comms_type;                /*!< Type of comms : VL53L0X_COMMS_I2C or VL53L0X_COMMS_SPI */
+    uint16_t  comms_speed_khz;           /*!< Comms speed [kHz] : typically 400kHz for I2C           */
+
+} VL53L0X_Dev_t;
+
+/**
+ * @brief   Declare the device Handle as a pointer of the structure @a VL53L0X_Dev_t.
+ */
+typedef VL53L0X_Dev_t *VL53L0X_DEV;
 
+// All the macros that access the above fields
+/**
+ * @def PALDevDataGet
+ * @brief Get ST private structure @a VL53L0X_DevData_t data access
+ *
+ * @param Dev       Device Handle
+ * @param field     ST structure field name
+ * It maybe used and as real data "ref" not just as "get" for sub-structure item
+ * like PALDevDataGet(FilterData.field)[i] or PALDevDataGet(FilterData.MeasurementIndex)++
+ */
+#define PALDevDataGet(Dev, field) (Dev->field)
 
+/**
+ * @def PALDevDataSet(Dev, field, data)
+ * @brief  Set ST private structure @a VL53L0X_DevData_t data field
+ * @param Dev       Device Handle
+ * @param field     ST structure field name
+ * @param data      Data to be set
+ */
+#define PALDevDataSet(Dev, field, data) (Dev->field)=(data)
+
+#define VL53L0X_SETPARAMETERFIELD(Dev, field, value) \
+	PALDevDataSet(Dev, CurrentParameters.field, value)
+
+#define VL53L0X_GETPARAMETERFIELD(Dev, field, variable) \
+	variable = PALDevDataGet(Dev, CurrentParameters).field
+
+#define VL53L0X_SETARRAYPARAMETERFIELD(Dev, field, index, value) \
+	PALDevDataSet(Dev, CurrentParameters.field[index], value)
+
+#define VL53L0X_GETARRAYPARAMETERFIELD(Dev, field, index, variable) \
+	variable = PALDevDataGet(Dev, CurrentParameters).field[index]
+
+#define VL53L0X_SETDEVICESPECIFICPARAMETER(Dev, field, value) \
+		PALDevDataSet(Dev, DeviceSpecificParameters.field, value)
+
+#define VL53L0X_GETDEVICESPECIFICPARAMETER(Dev, field) \
+		PALDevDataGet(Dev, DeviceSpecificParameters).field
+		
+		
 /** @defgroup VL53L0X_define_InterruptPolarity_group Defines the Polarity
  * of the Interrupt
  *	Defines the Polarity of the Interrupt
@@ -555,7 +615,6 @@
 
 /** @} VL53L0X_define_SequenceStepId_group */
 
-
 /* MACRO Definitions */
 /** @defgroup VL53L0X_define_GeneralMacro_group General Macro Defines
  *	General Macro Defines
@@ -563,26 +622,6 @@
  */
 
 /* Defines */
-#define VL53L0X_SETPARAMETERFIELD(Dev, field, value) \
-	PALDevDataSet(Dev, CurrentParameters.field, value)
-
-#define VL53L0X_GETPARAMETERFIELD(Dev, field, variable) \
-	variable = PALDevDataGet(Dev, CurrentParameters).field
-
-
-#define VL53L0X_SETARRAYPARAMETERFIELD(Dev, field, index, value) \
-	PALDevDataSet(Dev, CurrentParameters.field[index], value)
-
-#define VL53L0X_GETARRAYPARAMETERFIELD(Dev, field, index, variable) \
-	variable = PALDevDataGet(Dev, CurrentParameters).field[index]
-
-
-#define VL53L0X_SETDEVICESPECIFICPARAMETER(Dev, field, value) \
-		PALDevDataSet(Dev, DeviceSpecificParameters.field, value)
-
-#define VL53L0X_GETDEVICESPECIFICPARAMETER(Dev, field) \
-		PALDevDataGet(Dev, DeviceSpecificParameters).field
-
 
 #define VL53L0X_FIXPOINT1616TOFIXPOINT97(Value) \
 	(uint16_t)((Value>>9)&0xFFFF)
@@ -626,15 +665,8 @@
 
 /** @} VL53L0X_globaldefine_group */
 
-
-
-
-
-
-
 #ifdef __cplusplus
 }
 #endif
 
-
 #endif /* _VL53L0X_DEF_H_ */