Greatly simplified Architecture, Identical Functions Removed: Platform Interfaces, STP6001 interface
Diff: VL53L0X_def.h
- 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 * @{