Condensed Version of Public VL53L0X
Diff: VL53L0X_def.h
- 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_ */