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

Revision:
8:2fd7cb217068
Parent:
7:3a1115c2556b
Child:
10:cd1758e186a4
--- a/VL53L0X_def.h	Thu Jun 20 12:54:25 2019 +0000
+++ b/VL53L0X_def.h	Thu Jun 20 15:19:03 2019 +0000
@@ -592,14 +592,6 @@
     /*!< Reference Spad Good Spad Map */
 } VL53L0X_SpadData_t;
 
-/**
- * @struct VL53L0X_DevData_t
- *
- * @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
- */
 typedef struct {
     // merged in here all parts of "VL53L0X_DeviceSpecificParameters_t DeviceSpecificParameters;"
     FixPoint1616_t OscFrequencyMHz; 	/* Frequency used */
@@ -619,7 +611,7 @@
     uint32_t PartUIDUpper; /*!< Unique Part ID Upper */
     uint32_t PartUIDLower; /*!< Unique Part ID Lower */
     FixPoint1616_t SignalRateMeasFixed400mm; /*!< Peek Signal rate at 400 mm*/
-
+	// Merged in here all parts of DeviceParams_t
     int32_t	 Part2PartOffsetNVMMicroMeter; /*!< backed up NVM value */
     int32_t	 Part2PartOffsetAdjustmentNVMMicroMeter; /*!< backed up NVM value representing additional offset adjustment */
     VL53L0X_DeviceParameters_t CurrentParameters; /*!< Current Device Parameter */
@@ -642,38 +634,49 @@
     uint16_t LinearityCorrectiveGain;	/*!< Linearity Corrective Gain value in x1000 */
     uint16_t DmaxCalRangeMilliMeter; 	/*!< Dmax Calibration Range millimeter */
     FixPoint1616_t DmaxCalSignalRateRtnMegaCps;/*!< Dmax Calibration Signal Rate Return MegaCps */
+    
 } VL53L0X_DevData_t;
 
-/** @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(field) (Data.field)
+ /*  All these macros were replaced with following regulator expressions: 
+a)  Search for: \QVL53L0X_SETARRAYPARAMETERFIELD(\E(\s*)([A-Z\d_]+)[[:punct:]](\s*)([A-Z\d_]+)[[:punct:]](\s*)([A-Z\d_\*]+)\Q);\E
+    Replace by: Data.CurrentParameters.\2[\4] = \6;
+    to replace this:  VL53L0X_SETARRAYPARAMETERFIELD(field, index, value);  
+    by this:  Data.CurrentParameters.field[index] = value; 
+
+b)  Search for: \QVL53L0X_GETARRAYPARAMETERFIELD(\E(\s*)([A-Z\d_]+)[[:punct:]](\s*)([A-Z\d_]+)[[:punct:]](\s*)([A-Z\d_\*]+)\Q);\E
+    Replace by: \6 = Data.CurrentParameters.\2[\4];
+    to replace this: VL53L0X_GETARRAYPARAMETERFIELD(  LimitChecksValue, limit_check_id, temp_fix1616); 
+    by this:  temp_fix1616 = Data.CurrentParameters.LimitChecksValue[limit_check_id]; 
+
+c)  Search for: \QVL53L0X_SETPARAMETERFIELD(\E(\s*)([A-Z\d_]+)[[:punct:]](\s*)([A-Z\d_\*]+)\Q);\E
+    Replace by: Data.CurrentParameters.\2 = \4;
+    to replace this:  VL53L0X_SETPARAMETERFIELD(field, value);  
+    by this:  Data.CurrentParameters.field = value 
 
-/** @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(field, data) (Data.field)=(data)
+d)  Search for: \QVL53L0X_GETPARAMETERFIELD(\E(\s*)([A-Z\d_]+)[[:punct:]](\s*)([A-Z\d_\*]+)\Q);\E
+    Replace by: \4 = Data.CurrentParameters.\2 ;
+    to replace this: VL53L0X_GETPARAMET ERFIELD(field, variable);  
+    by this:  variable = Data.CurrentParameters.field; 
+
+d)  Search for: \QPALDevDataSet(\E(\s*)([A-Z\d_]+)[[:punct:]](\s*)([A-Z\d_\*]+)\Q);\E
+    Replace by: Data.\2 = \4;
+    to replace this: PALDevDataSet(field, value);
+    by this:  Data.field = value;
 
-/* MACRO Definitions */
-/** @defgroup VL53L0X_define_GeneralMacro_group General Macro Defines
- *	General Macro Defines
- *	@{
+d)  Search for: \QPALDevDataGet(\E(\s*)([A-Z\d]+)\Q)\E
+    Replace by: Data.\2
+    to replace this: PALDevDataGet(field)
+    by this:  Data.field
+
+#define PALDevDataSet(field, value) (Data.field)=(value)
+#define PALDevDataGet(field) (Data.field)
+#define VL53L0X_SETPARAMETERFIELD(field, value) Data.CurrentParameters.field = value
+#define VL53L0X_GETPARAMETERFIELD(field, variable) variable = Data.CurrentParameters.field
+#define VL53L0X_SETARRAYPARAMETERFIELD(field, index, value) Data.CurrentParameters.field[index] = value
+#define VL53L0X_GETARRAYPARAMETERFIELD(field, index, variable)	variable = Data.CurrentParameters.field[index]
+#define VL53L0X_SETDEVICESPECIFICPARAMETER(field, value) Data.field = value
+#define VL53L0X_GETDEVICESPECIFICPARAMETER(field) 		 Data.field
  */
-#define VL53L0X_SETPARAMETERFIELD(field, value) PALDevDataSet(CurrentParameters.field, value)
-#define VL53L0X_GETPARAMETERFIELD(field, variable) variable = PALDevDataGet(CurrentParameters).field
-#define VL53L0X_SETARRAYPARAMETERFIELD(field, index, value) PALDevDataSet(CurrentParameters.field[index], value)
-#define VL53L0X_GETARRAYPARAMETERFIELD(field, index, variable)	variable = PALDevDataGet(CurrentParameters).field[index]
-#define VL53L0X_SETDEVICESPECIFICPARAMETER(field, value) PALDevDataSet(field, value)
-#define VL53L0X_GETDEVICESPECIFICPARAMETER(field) 		  PALDevDataGet(field)
-
 /** @defgroup VL53L0X_define_InterruptPolarity_group Defines the Polarity  of the Interrupt
  *	Defines the Polarity of the Interrupt
  *	@{