MRMS
vl53l0x_api.h
1 /*******************************************************************************
2  Copyright © 2016, STMicroelectronics International N.V.
3  All rights reserved.
4 
5  Redistribution and use in source and binary forms, with or without
6  modification, are permitted provided that the following conditions are met:
7  * Redistributions of source code must retain the above copyright
8  notice, this list of conditions and the following disclaimer.
9  * Redistributions in binary form must reproduce the above copyright
10  notice, this list of conditions and the following disclaimer in the
11  documentation and/or other materials provided with the distribution.
12  * Neither the name of STMicroelectronics nor the
13  names of its contributors may be used to endorse or promote products
14  derived from this software without specific prior written permission.
15 
16  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
17  ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18  WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND
19  NON-INFRINGEMENT OF INTELLECTUAL PROPERTY RIGHTS ARE DISCLAIMED.
20  IN NO EVENT SHALL STMICROELECTRONICS INTERNATIONAL N.V. BE LIABLE FOR ANY
21  DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
22  (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
23  LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
24  ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
26  SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27  *****************************************************************************/
28 
29 #ifndef _VL53L0X_API_H_
30 #define _VL53L0X_API_H_
31 
32 #include "vl53l0x_api_strings.h"
33 #include "vl53l0x_def.h"
34 #include "vl53l0x_platform.h"
35 
36 #ifdef __cplusplus
37 extern "C"
38 {
39 #endif
40 
41 #ifdef _MSC_VER
42 # ifdef VL53L0X_API_EXPORTS
43 # define VL53L0X_API __declspec(dllexport)
44 # else
45 # define VL53L0X_API
46 # endif
47 #else
48 # define VL53L0X_API
49 #endif
50 
70 VL53L0X_API VL53L0X_Error VL53L0X_GetVersion(VL53L0X_Version_t *pVersion);
71 
82 VL53L0X_API VL53L0X_Error VL53L0X_GetPalSpecVersion(
83  VL53L0X_Version_t *pPalSpecVersion);
84 
99 VL53L0X_API VL53L0X_Error VL53L0X_GetProductRevision(VL53L0X_DEV Dev,
100  uint8_t *pProductRevisionMajor, uint8_t *pProductRevisionMinor);
101 
113 VL53L0X_API VL53L0X_Error VL53L0X_GetDeviceInfo(VL53L0X_DEV Dev,
114  VL53L0X_DeviceInfo_t *pVL53L0X_DeviceInfo);
115 
126 VL53L0X_API VL53L0X_Error VL53L0X_GetDeviceErrorStatus(VL53L0X_DEV Dev,
127  VL53L0X_DeviceError *pDeviceErrorStatus);
128 
140 VL53L0X_API VL53L0X_Error VL53L0X_GetRangeStatusString(uint8_t RangeStatus,
141  char *pRangeStatusString);
142 
153 VL53L0X_API VL53L0X_Error VL53L0X_GetDeviceErrorString(
154  VL53L0X_DeviceError ErrorCode, char *pDeviceErrorString);
155 
167 VL53L0X_API VL53L0X_Error VL53L0X_GetPalErrorString(VL53L0X_Error PalErrorCode,
168  char *pPalErrorString);
169 
181 VL53L0X_API VL53L0X_Error VL53L0X_GetPalStateString(VL53L0X_State PalStateCode,
182  char *pPalStateString);
183 
195 VL53L0X_API VL53L0X_Error VL53L0X_GetPalState(VL53L0X_DEV Dev,
196  VL53L0X_State *pPalState);
197 
217 VL53L0X_API VL53L0X_Error VL53L0X_SetPowerMode(VL53L0X_DEV Dev,
218  VL53L0X_PowerModes PowerMode);
219 
234 VL53L0X_API VL53L0X_Error VL53L0X_GetPowerMode(VL53L0X_DEV Dev,
235  VL53L0X_PowerModes *pPowerMode);
236 
248 VL53L0X_API VL53L0X_Error VL53L0X_SetOffsetCalibrationDataMicroMeter(
249  VL53L0X_DEV Dev, int32_t OffsetCalibrationDataMicroMeter);
250 
266 VL53L0X_API VL53L0X_Error VL53L0X_GetOffsetCalibrationDataMicroMeter(
267  VL53L0X_DEV Dev, int32_t *pOffsetCalibrationDataMicroMeter);
268 
281 VL53L0X_API VL53L0X_Error VL53L0X_SetLinearityCorrectiveGain(VL53L0X_DEV Dev,
282  int16_t LinearityCorrectiveGain);
283 
300 VL53L0X_API VL53L0X_Error VL53L0X_GetLinearityCorrectiveGain(VL53L0X_DEV Dev,
301  uint16_t *pLinearityCorrectiveGain);
302 
315 VL53L0X_API VL53L0X_Error VL53L0X_SetGroupParamHold(VL53L0X_DEV Dev,
316  uint8_t GroupParamHold);
317 
336 VL53L0X_API VL53L0X_Error VL53L0X_GetUpperLimitMilliMeter(VL53L0X_DEV Dev,
337  uint16_t *pUpperLimitMilliMeter);
338 
339 
352 VL53L0X_Error VL53L0X_GetTotalSignalRate(VL53L0X_DEV Dev,
353  FixPoint1616_t *pTotalSignalRate);
354 
377 VL53L0X_API VL53L0X_Error VL53L0X_SetDeviceAddress(VL53L0X_DEV Dev,
378  uint8_t DeviceAddress);
379 
404 VL53L0X_API VL53L0X_Error VL53L0X_DataInit(VL53L0X_DEV Dev);
405 
423 VL53L0X_API VL53L0X_Error VL53L0X_SetTuningSettingBuffer(VL53L0X_DEV Dev,
424  uint8_t *pTuningSettingBuffer, uint8_t UseInternalTuningSettings);
425 
443 VL53L0X_API VL53L0X_Error VL53L0X_GetTuningSettingBuffer(VL53L0X_DEV Dev,
444  uint8_t **ppTuningSettingBuffer, uint8_t *pUseInternalTuningSettings);
445 
458 VL53L0X_API VL53L0X_Error VL53L0X_StaticInit(VL53L0X_DEV Dev);
459 
470 VL53L0X_API VL53L0X_Error VL53L0X_WaitDeviceBooted(VL53L0X_DEV Dev);
471 
484 VL53L0X_API VL53L0X_Error VL53L0X_ResetDevice(VL53L0X_DEV Dev);
485 
506 VL53L0X_API VL53L0X_Error VL53L0X_SetDeviceParameters(VL53L0X_DEV Dev,
507  const VL53L0X_DeviceParameters_t *pDeviceParameters);
508 
522 VL53L0X_API VL53L0X_Error VL53L0X_GetDeviceParameters(VL53L0X_DEV Dev,
523  VL53L0X_DeviceParameters_t *pDeviceParameters);
524 
548 VL53L0X_API VL53L0X_Error VL53L0X_SetDeviceMode(VL53L0X_DEV Dev,
549  VL53L0X_DeviceModes DeviceMode);
550 
573 VL53L0X_API VL53L0X_Error VL53L0X_GetDeviceMode(VL53L0X_DEV Dev,
574  VL53L0X_DeviceModes *pDeviceMode);
575 
590 VL53L0X_API VL53L0X_Error VL53L0X_SetRangeFractionEnable(VL53L0X_DEV Dev,
591  uint8_t Enable);
592 
610 VL53L0X_API VL53L0X_Error VL53L0X_GetFractionEnable(VL53L0X_DEV Dev,
611  uint8_t *pEnable);
612 
634 VL53L0X_API VL53L0X_Error VL53L0X_SetHistogramMode(VL53L0X_DEV Dev,
635  VL53L0X_HistogramModes HistogramMode);
636 
655 VL53L0X_API VL53L0X_Error VL53L0X_GetHistogramMode(VL53L0X_DEV Dev,
656  VL53L0X_HistogramModes *pHistogramMode);
657 
678 VL53L0X_API VL53L0X_Error VL53L0X_SetMeasurementTimingBudgetMicroSeconds(
679  VL53L0X_DEV Dev, uint32_t MeasurementTimingBudgetMicroSeconds);
680 
700 VL53L0X_API VL53L0X_Error VL53L0X_GetMeasurementTimingBudgetMicroSeconds(
701  VL53L0X_DEV Dev, uint32_t *pMeasurementTimingBudgetMicroSeconds);
702 
719 VL53L0X_API VL53L0X_Error VL53L0X_GetVcselPulsePeriod(VL53L0X_DEV Dev,
720  VL53L0X_VcselPeriod VcselPeriodType, uint8_t *pVCSELPulsePeriod);
721 
738 VL53L0X_API VL53L0X_Error VL53L0X_SetVcselPulsePeriod(VL53L0X_DEV Dev,
739  VL53L0X_VcselPeriod VcselPeriodType, uint8_t VCSELPulsePeriod);
740 
758 VL53L0X_API VL53L0X_Error VL53L0X_SetSequenceStepEnable(VL53L0X_DEV Dev,
759  VL53L0X_SequenceStepId SequenceStepId, uint8_t SequenceStepEnabled);
760 
778 VL53L0X_API VL53L0X_Error VL53L0X_GetSequenceStepEnable(VL53L0X_DEV Dev,
779  VL53L0X_SequenceStepId SequenceStepId, uint8_t *pSequenceStepEnabled);
780 
794 VL53L0X_API VL53L0X_Error VL53L0X_GetSequenceStepEnables(VL53L0X_DEV Dev,
795  VL53L0X_SchedulerSequenceSteps_t *pSchedulerSequenceSteps);
796 
813 VL53L0X_API VL53L0X_Error VL53L0X_SetSequenceStepTimeout(VL53L0X_DEV Dev,
814  VL53L0X_SequenceStepId SequenceStepId, FixPoint1616_t TimeOutMilliSecs);
815 
832 VL53L0X_API VL53L0X_Error VL53L0X_GetSequenceStepTimeout(VL53L0X_DEV Dev,
833  VL53L0X_SequenceStepId SequenceStepId,
834  FixPoint1616_t *pTimeOutMilliSecs);
835 
851 VL53L0X_API VL53L0X_Error VL53L0X_GetNumberOfSequenceSteps(VL53L0X_DEV Dev,
852  uint8_t *pNumberOfSequenceSteps);
853 
869 VL53L0X_API VL53L0X_Error VL53L0X_GetSequenceStepsInfo(
870  VL53L0X_SequenceStepId SequenceStepId, char *pSequenceStepsString);
871 
885 VL53L0X_API VL53L0X_Error VL53L0X_SetInterMeasurementPeriodMilliSeconds(
886  VL53L0X_DEV Dev, uint32_t InterMeasurementPeriodMilliSeconds);
887 
902 VL53L0X_API VL53L0X_Error VL53L0X_GetInterMeasurementPeriodMilliSeconds(
903  VL53L0X_DEV Dev, uint32_t *pInterMeasurementPeriodMilliSeconds);
904 
917 VL53L0X_API VL53L0X_Error VL53L0X_SetXTalkCompensationEnable(VL53L0X_DEV Dev,
918  uint8_t XTalkCompensationEnable);
919 
932 VL53L0X_API VL53L0X_Error VL53L0X_GetXTalkCompensationEnable(VL53L0X_DEV Dev,
933  uint8_t *pXTalkCompensationEnable);
934 
949 VL53L0X_API VL53L0X_Error VL53L0X_SetXTalkCompensationRateMegaCps(VL53L0X_DEV Dev,
950  FixPoint1616_t XTalkCompensationRateMegaCps);
951 
966 VL53L0X_API VL53L0X_Error VL53L0X_GetXTalkCompensationRateMegaCps(VL53L0X_DEV Dev,
967  FixPoint1616_t *pXTalkCompensationRateMegaCps);
968 
983 VL53L0X_API VL53L0X_Error VL53L0X_SetRefCalibration(VL53L0X_DEV Dev,
984  uint8_t VhvSettings, uint8_t PhaseCal);
985 
1000 VL53L0X_API VL53L0X_Error VL53L0X_GetRefCalibration(VL53L0X_DEV Dev,
1001  uint8_t *pVhvSettings, uint8_t *pPhaseCal);
1002 
1015 VL53L0X_API VL53L0X_Error VL53L0X_GetNumberOfLimitCheck(
1016  uint16_t *pNumberOfLimitCheck);
1017 
1037 VL53L0X_API VL53L0X_Error VL53L0X_GetLimitCheckInfo(VL53L0X_DEV Dev,
1038  uint16_t LimitCheckId, char *pLimitCheckString);
1039 
1064 VL53L0X_API VL53L0X_Error VL53L0X_GetLimitCheckStatus(VL53L0X_DEV Dev,
1065  uint16_t LimitCheckId, uint8_t *pLimitCheckStatus);
1066 
1088 VL53L0X_API VL53L0X_Error VL53L0X_SetLimitCheckEnable(VL53L0X_DEV Dev,
1089  uint16_t LimitCheckId, uint8_t LimitCheckEnable);
1090 
1114 VL53L0X_API VL53L0X_Error VL53L0X_GetLimitCheckEnable(VL53L0X_DEV Dev,
1115  uint16_t LimitCheckId, uint8_t *pLimitCheckEnable);
1116 
1136 VL53L0X_API VL53L0X_Error VL53L0X_SetLimitCheckValue(VL53L0X_DEV Dev,
1137  uint16_t LimitCheckId, FixPoint1616_t LimitCheckValue);
1138 
1159 VL53L0X_API VL53L0X_Error VL53L0X_GetLimitCheckValue(VL53L0X_DEV Dev,
1160  uint16_t LimitCheckId, FixPoint1616_t *pLimitCheckValue);
1161 
1183 VL53L0X_API VL53L0X_Error VL53L0X_GetLimitCheckCurrent(VL53L0X_DEV Dev,
1184  uint16_t LimitCheckId, FixPoint1616_t *pLimitCheckCurrent);
1185 
1197 VL53L0X_API VL53L0X_Error VL53L0X_SetWrapAroundCheckEnable(VL53L0X_DEV Dev,
1198  uint8_t WrapAroundCheckEnable);
1199 
1214 VL53L0X_API VL53L0X_Error VL53L0X_GetWrapAroundCheckEnable(VL53L0X_DEV Dev,
1215  uint8_t *pWrapAroundCheckEnable);
1216 
1229 VL53L0X_API VL53L0X_Error VL53L0X_SetDmaxCalParameters(VL53L0X_DEV Dev,
1230  uint16_t RangeMilliMeter, FixPoint1616_t SignalRateRtnMegaCps);
1231 
1244 VL53L0X_API VL53L0X_Error VL53L0X_GetDmaxCalParameters(VL53L0X_DEV Dev,
1245  uint16_t *pRangeMilliMeter, FixPoint1616_t *pSignalRateRtnMegaCps);
1246 
1274 VL53L0X_API VL53L0X_Error VL53L0X_PerformSingleMeasurement(VL53L0X_DEV Dev);
1275 
1296 VL53L0X_API VL53L0X_Error VL53L0X_PerformRefCalibration(VL53L0X_DEV Dev,
1297  uint8_t *pVhvSettings, uint8_t *pPhaseCal);
1298 
1326 VL53L0X_API VL53L0X_Error VL53L0X_PerformXTalkMeasurement(VL53L0X_DEV Dev,
1327  uint32_t TimeoutMs, FixPoint1616_t *pXtalkPerSpad,
1328  uint8_t *pAmbientTooHigh);
1329 
1356 VL53L0X_API VL53L0X_Error VL53L0X_PerformXTalkCalibration(VL53L0X_DEV Dev,
1357  FixPoint1616_t XTalkCalDistance,
1358  FixPoint1616_t *pXTalkCompensationRateMegaCps);
1359 
1385 VL53L0X_API VL53L0X_Error VL53L0X_PerformOffsetCalibration(VL53L0X_DEV Dev,
1386  FixPoint1616_t CalDistanceMilliMeter, int32_t *pOffsetMicroMeter);
1387 
1412 VL53L0X_API VL53L0X_Error VL53L0X_StartMeasurement(VL53L0X_DEV Dev);
1413 
1429 VL53L0X_API VL53L0X_Error VL53L0X_StopMeasurement(VL53L0X_DEV Dev);
1430 
1450 VL53L0X_API VL53L0X_Error VL53L0X_GetMeasurementDataReady(VL53L0X_DEV Dev,
1451  uint8_t *pMeasurementDataReady);
1452 
1463 VL53L0X_API VL53L0X_Error VL53L0X_WaitDeviceReadyForNewMeasurement(VL53L0X_DEV Dev,
1464  uint32_t MaxLoop);
1465 
1481 VL53L0X_API VL53L0X_Error VL53L0X_GetMeasurementRefSignal(VL53L0X_DEV Dev,
1482  FixPoint1616_t *pMeasurementRefSignal);
1483 
1501 VL53L0X_API VL53L0X_Error VL53L0X_GetRangingMeasurementData(VL53L0X_DEV Dev,
1502  VL53L0X_RangingMeasurementData_t *pRangingMeasurementData);
1503 
1520 VL53L0X_API VL53L0X_Error VL53L0X_GetHistogramMeasurementData(VL53L0X_DEV Dev,
1521  VL53L0X_HistogramMeasurementData_t *pHistogramMeasurementData);
1522 
1545 VL53L0X_API VL53L0X_Error VL53L0X_PerformSingleRangingMeasurement(VL53L0X_DEV Dev,
1546  VL53L0X_RangingMeasurementData_t *pRangingMeasurementData);
1547 
1564 VL53L0X_API VL53L0X_Error VL53L0X_PerformSingleHistogramMeasurement(VL53L0X_DEV Dev,
1565  VL53L0X_HistogramMeasurementData_t *pHistogramMeasurementData);
1566 
1583 VL53L0X_API VL53L0X_Error VL53L0X_SetNumberOfROIZones(VL53L0X_DEV Dev,
1584  uint8_t NumberOfROIZones);
1585 
1602 VL53L0X_API VL53L0X_Error VL53L0X_GetNumberOfROIZones(VL53L0X_DEV Dev,
1603  uint8_t *pNumberOfROIZones);
1604 
1618 VL53L0X_API VL53L0X_Error VL53L0X_GetMaxNumberOfROIZones(VL53L0X_DEV Dev,
1619  uint8_t *pMaxNumberOfROIZones);
1620 
1652 VL53L0X_API VL53L0X_Error VL53L0X_SetGpioConfig(VL53L0X_DEV Dev, uint8_t Pin,
1653  VL53L0X_DeviceModes DeviceMode, VL53L0X_GpioFunctionality Functionality,
1654  VL53L0X_InterruptPolarity Polarity);
1655 
1680 VL53L0X_API VL53L0X_Error VL53L0X_GetGpioConfig(VL53L0X_DEV Dev, uint8_t Pin,
1681  VL53L0X_DeviceModes *pDeviceMode,
1682  VL53L0X_GpioFunctionality *pFunctionality,
1683  VL53L0X_InterruptPolarity *pPolarity);
1684 
1704 VL53L0X_API VL53L0X_Error VL53L0X_SetInterruptThresholds(VL53L0X_DEV Dev,
1705  VL53L0X_DeviceModes DeviceMode, FixPoint1616_t ThresholdLow,
1706  FixPoint1616_t ThresholdHigh);
1707 
1727 VL53L0X_API VL53L0X_Error VL53L0X_GetInterruptThresholds(VL53L0X_DEV Dev,
1728  VL53L0X_DeviceModes DeviceMode, FixPoint1616_t *pThresholdLow,
1729  FixPoint1616_t *pThresholdHigh);
1730 
1745 VL53L0X_API VL53L0X_Error VL53L0X_GetStopCompletedStatus(VL53L0X_DEV Dev,
1746  uint32_t *pStopStatus);
1747 
1748 
1764 VL53L0X_API VL53L0X_Error VL53L0X_ClearInterruptMask(VL53L0X_DEV Dev,
1765  uint32_t InterruptMask);
1766 
1782 VL53L0X_API VL53L0X_Error VL53L0X_GetInterruptMaskStatus(VL53L0X_DEV Dev,
1783  uint32_t *pInterruptMaskStatus);
1784 
1795 VL53L0X_API VL53L0X_Error VL53L0X_EnableInterruptMask(VL53L0X_DEV Dev,
1796  uint32_t InterruptMask);
1797 
1818 VL53L0X_API VL53L0X_Error VL53L0X_SetSpadAmbientDamperThreshold(VL53L0X_DEV Dev,
1819  uint16_t SpadAmbientDamperThreshold);
1820 
1835 VL53L0X_API VL53L0X_Error VL53L0X_GetSpadAmbientDamperThreshold(VL53L0X_DEV Dev,
1836  uint16_t *pSpadAmbientDamperThreshold);
1837 
1851 VL53L0X_API VL53L0X_Error VL53L0X_SetSpadAmbientDamperFactor(VL53L0X_DEV Dev,
1852  uint16_t SpadAmbientDamperFactor);
1853 
1868 VL53L0X_API VL53L0X_Error VL53L0X_GetSpadAmbientDamperFactor(VL53L0X_DEV Dev,
1869  uint16_t *pSpadAmbientDamperFactor);
1870 
1893 VL53L0X_API VL53L0X_Error VL53L0X_PerformRefSpadManagement(VL53L0X_DEV Dev,
1894  uint32_t *refSpadCount, uint8_t *isApertureSpads);
1895 
1917 VL53L0X_API VL53L0X_Error VL53L0X_SetReferenceSpads(VL53L0X_DEV Dev,
1918  uint32_t refSpadCount, uint8_t isApertureSpads);
1919 
1939 VL53L0X_API VL53L0X_Error VL53L0X_GetReferenceSpads(VL53L0X_DEV Dev,
1940  uint32_t *refSpadCount, uint8_t *isApertureSpads);
1941 
1946 #ifdef __cplusplus
1947 }
1948 #endif
1949 
1950 #endif /* _VL53L0X_API_H_ */
VL53L0X_API VL53L0X_Error VL53L0X_GetReferenceSpads(VL53L0X_DEV Dev, uint32_t *refSpadCount, uint8_t *isApertureSpads)
Retrieves SPAD configuration.
Definition: vl53l0x_api.cpp:3010
VL53L0X_API VL53L0X_Error VL53L0X_SetReferenceSpads(VL53L0X_DEV Dev, uint32_t refSpadCount, uint8_t isApertureSpads)
Applies Reference SPAD configuration.
Definition: vl53l0x_api.cpp:2997
VL53L0X_API VL53L0X_Error VL53L0X_PerformRefSpadManagement(VL53L0X_DEV Dev, uint32_t *refSpadCount, uint8_t *isApertureSpads)
Performs Reference Spad Management.
Definition: vl53l0x_api.cpp:3023
VL53L0X_API VL53L0X_Error VL53L0X_SetSpadAmbientDamperFactor(VL53L0X_DEV Dev, uint16_t SpadAmbientDamperFactor)
Set the SPAD Ambient Damper Factor value.
Definition: vl53l0x_api.cpp:2958
VL53L0X_API VL53L0X_Error VL53L0X_SetSpadAmbientDamperThreshold(VL53L0X_DEV Dev, uint16_t SpadAmbientDamperThreshold)
Set the SPAD Ambient Damper Threshold value.
Definition: vl53l0x_api.cpp:2930
VL53L0X_API VL53L0X_Error VL53L0X_GetSpadAmbientDamperThreshold(VL53L0X_DEV Dev, uint16_t *pSpadAmbientDamperThreshold)
Get the current SPAD Ambient Damper Threshold value.
Definition: vl53l0x_api.cpp:2944
VL53L0X_API VL53L0X_Error VL53L0X_GetSpadAmbientDamperFactor(VL53L0X_DEV Dev, uint16_t *pSpadAmbientDamperFactor)
Get the current SPAD Ambient Damper Factor value.
Definition: vl53l0x_api.cpp:2975
VL53L0X_API VL53L0X_Error VL53L0X_GetPalStateString(VL53L0X_State PalStateCode, char *pPalStateString)
Human readable PAL State string.
Definition: vl53l0x_api.cpp:172
VL53L0X_API VL53L0X_Error VL53L0X_GetDeviceErrorString(VL53L0X_DeviceError ErrorCode, char *pDeviceErrorString)
Human readable error string for a given Error Code.
Definition: vl53l0x_api.cpp:134
VL53L0X_API VL53L0X_Error VL53L0X_GetPowerMode(VL53L0X_DEV Dev, VL53L0X_PowerModes *pPowerMode)
Get the power mode for a given Device.
Definition: vl53l0x_api.cpp:230
VL53L0X_API VL53L0X_Error VL53L0X_GetDeviceInfo(VL53L0X_DEV Dev, VL53L0X_DeviceInfo_t *pVL53L0X_DeviceInfo)
Reads the Device information for given Device.
Definition: vl53l0x_api.cpp:104
VL53L0X_API VL53L0X_Error VL53L0X_GetProductRevision(VL53L0X_DEV Dev, uint8_t *pProductRevisionMajor, uint8_t *pProductRevisionMinor)
Reads the Product Revision for a for given Device This function can be used to distinguish cut1....
Definition: vl53l0x_api.cpp:86
VL53L0X_API VL53L0X_Error VL53L0X_SetOffsetCalibrationDataMicroMeter(VL53L0X_DEV Dev, int32_t OffsetCalibrationDataMicroMeter)
Definition: vl53l0x_api.cpp:253
VL53L0X_API VL53L0X_Error VL53L0X_GetOffsetCalibrationDataMicroMeter(VL53L0X_DEV Dev, int32_t *pOffsetCalibrationDataMicroMeter)
Get part to part calibration offset.
Definition: vl53l0x_api.cpp:266
VL53L0X_API VL53L0X_Error VL53L0X_SetPowerMode(VL53L0X_DEV Dev, VL53L0X_PowerModes PowerMode)
Set the power mode for a given Device The power mode can be Standby or Idle. Different level of both ...
Definition: vl53l0x_api.cpp:195
VL53L0X_API VL53L0X_Error VL53L0X_SetGroupParamHold(VL53L0X_DEV Dev, uint8_t GroupParamHold)
Definition: vl53l0x_api.cpp:314
VL53L0X_API VL53L0X_Error VL53L0X_GetLinearityCorrectiveGain(VL53L0X_DEV Dev, uint16_t *pLinearityCorrectiveGain)
Get the linearity corrective gain.
Definition: vl53l0x_api.cpp:302
VL53L0X_API VL53L0X_Error VL53L0X_SetLinearityCorrectiveGain(VL53L0X_DEV Dev, int16_t LinearityCorrectiveGain)
Definition: vl53l0x_api.cpp:279
VL53L0X_API VL53L0X_Error VL53L0X_GetPalErrorString(VL53L0X_Error PalErrorCode, char *pPalErrorString)
Human readable error string for current PAL error status.
Definition: vl53l0x_api.cpp:160
VL53L0X_API VL53L0X_Error VL53L0X_GetPalState(VL53L0X_DEV Dev, VL53L0X_State *pPalState)
Reads the internal state of the PAL for a given Device.
Definition: vl53l0x_api.cpp:184
VL53L0X_API VL53L0X_Error VL53L0X_GetPalSpecVersion(VL53L0X_Version_t *pPalSpecVersion)
Return the PAL Specification Version used for the current implementation.
Definition: vl53l0x_api.cpp:70
VL53L0X_API VL53L0X_Error VL53L0X_GetDeviceErrorStatus(VL53L0X_DEV Dev, VL53L0X_DeviceError *pDeviceErrorStatus)
Read current status of the error register for the selected device.
Definition: vl53l0x_api.cpp:116
VL53L0X_API VL53L0X_Error VL53L0X_GetRangeStatusString(uint8_t RangeStatus, char *pRangeStatusString)
Human readable Range Status string for a given RangeStatus.
Definition: vl53l0x_api.cpp:147
VL53L0X_API VL53L0X_Error VL53L0X_GetVersion(VL53L0X_Version_t *pVersion)
Return the VL53L0X PAL Implementation Version.
Definition: vl53l0x_api.cpp:55
VL53L0X_Error VL53L0X_GetTotalSignalRate(VL53L0X_DEV Dev, FixPoint1616_t *pTotalSignalRate)
Get the Total Signal Rate.
Definition: vl53l0x_api.cpp:337
VL53L0X_API VL53L0X_Error VL53L0X_GetUpperLimitMilliMeter(VL53L0X_DEV Dev, uint16_t *pUpperLimitMilliMeter)
Get the maximal distance for actual setup.
Definition: vl53l0x_api.cpp:325
VL53L0X_API VL53L0X_Error VL53L0X_WaitDeviceBooted(VL53L0X_DEV Dev)
Wait for device booted after chip enable (hardware standby) This function can be run only when VL53L0...
Definition: vl53l0x_api.cpp:738
VL53L0X_API VL53L0X_Error VL53L0X_GetTuningSettingBuffer(VL53L0X_DEV Dev, uint8_t **ppTuningSettingBuffer, uint8_t *pUseInternalTuningSettings)
Get the tuning settings pointer and the internal external switch value.
Definition: vl53l0x_api.cpp:544
VL53L0X_API VL53L0X_Error VL53L0X_SetDeviceAddress(VL53L0X_DEV Dev, uint8_t DeviceAddress)
Set new device address.
Definition: vl53l0x_api.cpp:357
VL53L0X_API VL53L0X_Error VL53L0X_StaticInit(VL53L0X_DEV Dev)
Do basic device init (and eventually patch loading) This function will change the VL53L0X_State from ...
Definition: vl53l0x_api.cpp:559
VL53L0X_API VL53L0X_Error VL53L0X_ResetDevice(VL53L0X_DEV Dev)
Do an hard reset or soft reset (depending on implementation) of the device \nAfter call of this funct...
Definition: vl53l0x_api.cpp:749
VL53L0X_API VL53L0X_Error VL53L0X_DataInit(VL53L0X_DEV Dev)
One time device initialization.
Definition: vl53l0x_api.cpp:369
VL53L0X_API VL53L0X_Error VL53L0X_SetTuningSettingBuffer(VL53L0X_DEV Dev, uint8_t *pTuningSettingBuffer, uint8_t UseInternalTuningSettings)
Set the tuning settings pointer.
Definition: vl53l0x_api.cpp:517
VL53L0X_API VL53L0X_Error VL53L0X_SetInterruptThresholds(VL53L0X_DEV Dev, VL53L0X_DeviceModes DeviceMode, FixPoint1616_t ThresholdLow, FixPoint1616_t ThresholdHigh)
Set low and high Interrupt thresholds for a given mode (ranging, ALS, ...) for a given device.
Definition: vl53l0x_api.cpp:2786
VL53L0X_API VL53L0X_Error VL53L0X_GetStopCompletedStatus(VL53L0X_DEV Dev, uint32_t *pStopStatus)
Return device stop completion status.
Definition: vl53l0x_api.cpp:2836
VL53L0X_API VL53L0X_Error VL53L0X_SetGpioConfig(VL53L0X_DEV Dev, uint8_t Pin, VL53L0X_DeviceModes DeviceMode, VL53L0X_GpioFunctionality Functionality, VL53L0X_InterruptPolarity Polarity)
Set the configuration of GPIO pin for a given device.
Definition: vl53l0x_api.cpp:2620
VL53L0X_API VL53L0X_Error VL53L0X_EnableInterruptMask(VL53L0X_DEV Dev, uint32_t InterruptMask)
Configure ranging interrupt reported to system.
Definition: vl53l0x_api.cpp:2915
VL53L0X_API VL53L0X_Error VL53L0X_GetInterruptMaskStatus(VL53L0X_DEV Dev, uint32_t *pInterruptMaskStatus)
Return device interrupt status.
Definition: vl53l0x_api.cpp:2898
VL53L0X_API VL53L0X_Error VL53L0X_GetInterruptThresholds(VL53L0X_DEV Dev, VL53L0X_DeviceModes DeviceMode, FixPoint1616_t *pThresholdLow, FixPoint1616_t *pThresholdHigh)
Get high and low Interrupt thresholds for a given mode (ranging, ALS, ...) for a given device.
Definition: vl53l0x_api.cpp:2810
VL53L0X_API VL53L0X_Error VL53L0X_ClearInterruptMask(VL53L0X_DEV Dev, uint32_t InterruptMask)
Clear given system interrupt condition.
Definition: vl53l0x_api.cpp:2869
VL53L0X_API VL53L0X_Error VL53L0X_GetGpioConfig(VL53L0X_DEV Dev, uint8_t Pin, VL53L0X_DeviceModes *pDeviceMode, VL53L0X_GpioFunctionality *pFunctionality, VL53L0X_InterruptPolarity *pPolarity)
Get current configuration for GPIO pin for a given device.
Definition: vl53l0x_api.cpp:2715
VL53L0X_API VL53L0X_Error VL53L0X_GetMeasurementDataReady(VL53L0X_DEV Dev, uint8_t *pMeasurementDataReady)
Return Measurement Data Ready.
Definition: vl53l0x_api.cpp:2324
VL53L0X_API VL53L0X_Error VL53L0X_PerformXTalkMeasurement(VL53L0X_DEV Dev, uint32_t TimeoutMs, FixPoint1616_t *pXtalkPerSpad, uint8_t *pAmbientTooHigh)
Perform XTalk Measurement.
Definition: vl53l0x_api.cpp:2128
VL53L0X_API VL53L0X_Error VL53L0X_GetRangingMeasurementData(VL53L0X_DEV Dev, VL53L0X_RangingMeasurementData_t *pRangingMeasurementData)
Retrieve the measurements from device for a given setup.
Definition: vl53l0x_api.cpp:2372
VL53L0X_API VL53L0X_Error VL53L0X_WaitDeviceReadyForNewMeasurement(VL53L0X_DEV Dev, uint32_t MaxLoop)
Wait for device ready for a new measurement command. Blocking function.
Definition: vl53l0x_api.cpp:2359
VL53L0X_API VL53L0X_Error VL53L0X_PerformXTalkCalibration(VL53L0X_DEV Dev, FixPoint1616_t XTalkCalDistance, FixPoint1616_t *pXTalkCompensationRateMegaCps)
Perform XTalk Calibration.
Definition: vl53l0x_api.cpp:2141
VL53L0X_API VL53L0X_Error VL53L0X_GetMeasurementRefSignal(VL53L0X_DEV Dev, FixPoint1616_t *pMeasurementRefSignal)
Retrieve the Reference Signal after a measurements.
Definition: vl53l0x_api.cpp:2527
VL53L0X_API VL53L0X_Error VL53L0X_GetHistogramMeasurementData(VL53L0X_DEV Dev, VL53L0X_HistogramMeasurementData_t *pHistogramMeasurementData)
Retrieve the measurements from device for a given setup.
Definition: vl53l0x_api.cpp:2540
VL53L0X_API VL53L0X_Error VL53L0X_StopMeasurement(VL53L0X_DEV Dev)
Stop device measurement.
Definition: vl53l0x_api.cpp:2297
VL53L0X_API VL53L0X_Error VL53L0X_SetNumberOfROIZones(VL53L0X_DEV Dev, uint8_t NumberOfROIZones)
Set the number of ROI Zones to be used for a specific Device.
Definition: vl53l0x_api.cpp:2577
VL53L0X_API VL53L0X_Error VL53L0X_PerformSingleHistogramMeasurement(VL53L0X_DEV Dev, VL53L0X_HistogramMeasurementData_t *pHistogramMeasurementData)
Performs a single histogram measurement and retrieve the histogram measurement data Is equivalent to ...
Definition: vl53l0x_api.cpp:2103
VL53L0X_API VL53L0X_Error VL53L0X_PerformOffsetCalibration(VL53L0X_DEV Dev, FixPoint1616_t CalDistanceMilliMeter, int32_t *pOffsetMicroMeter)
Perform Offset Calibration.
Definition: vl53l0x_api.cpp:2155
VL53L0X_API VL53L0X_Error VL53L0X_GetNumberOfROIZones(VL53L0X_DEV Dev, uint8_t *pNumberOfROIZones)
Get the number of ROI Zones managed by the Device.
Definition: vl53l0x_api.cpp:2592
VL53L0X_API VL53L0X_Error VL53L0X_GetMaxNumberOfROIZones(VL53L0X_DEV Dev, uint8_t *pMaxNumberOfROIZones)
Get the Maximum number of ROI Zones managed by the Device.
Definition: vl53l0x_api.cpp:2605
VL53L0X_API VL53L0X_Error VL53L0X_PerformSingleMeasurement(VL53L0X_DEV Dev)
Single shot measurement.
Definition: vl53l0x_api.cpp:2072
VL53L0X_API VL53L0X_Error VL53L0X_StartMeasurement(VL53L0X_DEV Dev)
Start device measurement.
Definition: vl53l0x_api.cpp:2214
VL53L0X_API VL53L0X_Error VL53L0X_PerformSingleRangingMeasurement(VL53L0X_DEV Dev, VL53L0X_RangingMeasurementData_t *pRangingMeasurementData)
Performs a single ranging measurement and retrieve the ranging measurement data.
Definition: vl53l0x_api.cpp:2550
VL53L0X_API VL53L0X_Error VL53L0X_PerformRefCalibration(VL53L0X_DEV Dev, uint8_t *pVhvSettings, uint8_t *pPhaseCal)
Perform Reference Calibration.
Definition: vl53l0x_api.cpp:2115
VL53L0X_API VL53L0X_Error VL53L0X_GetLimitCheckValue(VL53L0X_DEV Dev, uint16_t LimitCheckId, FixPoint1616_t *pLimitCheckValue)
Get a specific limit check value.
Definition: vl53l0x_api.cpp:1798
VL53L0X_API VL53L0X_Error VL53L0X_GetNumberOfSequenceSteps(VL53L0X_DEV Dev, uint8_t *pNumberOfSequenceSteps)
Gets number of sequence steps managed by the API.
Definition: vl53l0x_api.cpp:1227
VL53L0X_API VL53L0X_Error VL53L0X_GetWrapAroundCheckEnable(VL53L0X_DEV Dev, uint8_t *pWrapAroundCheckEnable)
Get setup of Wrap around Check.
Definition: vl53l0x_api.cpp:1995
VL53L0X_API VL53L0X_Error VL53L0X_SetSequenceStepTimeout(VL53L0X_DEV Dev, VL53L0X_SequenceStepId SequenceStepId, FixPoint1616_t TimeOutMilliSecs)
Sets the timeout of a requested sequence step.
Definition: vl53l0x_api.cpp:1254
VL53L0X_API VL53L0X_Error VL53L0X_GetDeviceMode(VL53L0X_DEV Dev, VL53L0X_DeviceModes *pDeviceMode)
Get current new device mode.
Definition: vl53l0x_api.cpp:929
VL53L0X_API VL53L0X_Error VL53L0X_SetDeviceParameters(VL53L0X_DEV Dev, const VL53L0X_DeviceParameters_t *pDeviceParameters)
Prepare device for operation.
Definition: vl53l0x_api.cpp:790
VL53L0X_API VL53L0X_Error VL53L0X_GetSequenceStepEnable(VL53L0X_DEV Dev, VL53L0X_SequenceStepId SequenceStepId, uint8_t *pSequenceStepEnabled)
Gets the (on/off) state of a requested sequence step.
Definition: vl53l0x_api.cpp:1168
VL53L0X_API VL53L0X_Error VL53L0X_SetWrapAroundCheckEnable(VL53L0X_DEV Dev, uint8_t WrapAroundCheckEnable)
Enable (or disable) Wrap around Check.
Definition: vl53l0x_api.cpp:1963
VL53L0X_API VL53L0X_Error VL53L0X_SetXTalkCompensationEnable(VL53L0X_DEV Dev, uint8_t XTalkCompensationEnable)
Enable/Disable Cross talk compensation feature.
Definition: vl53l0x_api.cpp:1398
VL53L0X_API VL53L0X_Error VL53L0X_SetLimitCheckEnable(VL53L0X_DEV Dev, uint16_t LimitCheckId, uint8_t LimitCheckEnable)
Enable/Disable a specific limit check.
Definition: vl53l0x_api.cpp:1597
VL53L0X_API VL53L0X_Error VL53L0X_SetDmaxCalParameters(VL53L0X_DEV Dev, uint16_t RangeMilliMeter, FixPoint1616_t SignalRateRtnMegaCps)
Set Dmax Calibration Parameters for a given device When one of the parameter is zero,...
Definition: vl53l0x_api.cpp:2020
VL53L0X_API VL53L0X_Error VL53L0X_GetInterMeasurementPeriodMilliSeconds(VL53L0X_DEV Dev, uint32_t *pInterMeasurementPeriodMilliSeconds)
Definition: vl53l0x_api.cpp:1366
VL53L0X_API VL53L0X_Error VL53L0X_GetLimitCheckInfo(VL53L0X_DEV Dev, uint16_t LimitCheckId, char *pLimitCheckString)
Return a description string for a given limit check number.
Definition: vl53l0x_api.cpp:1560
VL53L0X_API VL53L0X_Error VL53L0X_GetSequenceStepsInfo(VL53L0X_SequenceStepId SequenceStepId, char *pSequenceStepsString)
Gets the name of a given sequence step.
Definition: vl53l0x_api.cpp:1239
VL53L0X_API VL53L0X_Error VL53L0X_GetVcselPulsePeriod(VL53L0X_DEV Dev, VL53L0X_VcselPeriod VcselPeriodType, uint8_t *pVCSELPulsePeriod)
Gets the VCSEL pulse period.
Definition: vl53l0x_api.cpp:1034
VL53L0X_API VL53L0X_Error VL53L0X_SetDeviceMode(VL53L0X_DEV Dev, VL53L0X_DeviceModes DeviceMode)
Set a new device mode.
Definition: vl53l0x_api.cpp:905
VL53L0X_API VL53L0X_Error VL53L0X_GetMeasurementTimingBudgetMicroSeconds(VL53L0X_DEV Dev, uint32_t *pMeasurementTimingBudgetMicroSeconds)
Get Ranging Timing Budget in microseconds.
Definition: vl53l0x_api.cpp:1008
VL53L0X_API VL53L0X_Error VL53L0X_SetXTalkCompensationRateMegaCps(VL53L0X_DEV Dev, FixPoint1616_t XTalkCompensationRateMegaCps)
Set Cross talk compensation rate.
Definition: vl53l0x_api.cpp:1450
VL53L0X_API VL53L0X_Error VL53L0X_SetLimitCheckValue(VL53L0X_DEV Dev, uint16_t LimitCheckId, FixPoint1616_t LimitCheckValue)
Set a specific limit check value.
Definition: vl53l0x_api.cpp:1721
VL53L0X_API VL53L0X_Error VL53L0X_GetRefCalibration(VL53L0X_DEV Dev, uint8_t *pVhvSettings, uint8_t *pPhaseCal)
Get Reference Calibration Parameters.
Definition: vl53l0x_api.cpp:1533
VL53L0X_API VL53L0X_Error VL53L0X_GetLimitCheckCurrent(VL53L0X_DEV Dev, uint16_t LimitCheckId, FixPoint1616_t *pLimitCheckCurrent)
Get the current value of the signal used for the limit check.
Definition: vl53l0x_api.cpp:1889
VL53L0X_API VL53L0X_Error VL53L0X_SetVcselPulsePeriod(VL53L0X_DEV Dev, VL53L0X_VcselPeriod VcselPeriodType, uint8_t VCSELPulsePeriod)
Sets the VCSEL pulse period.
Definition: vl53l0x_api.cpp:1021
VL53L0X_API VL53L0X_Error VL53L0X_GetXTalkCompensationRateMegaCps(VL53L0X_DEV Dev, FixPoint1616_t *pXTalkCompensationRateMegaCps)
Get Cross talk compensation rate.
Definition: vl53l0x_api.cpp:1488
VL53L0X_API VL53L0X_Error VL53L0X_SetHistogramMode(VL53L0X_DEV Dev, VL53L0X_HistogramModes HistogramMode)
Set a new Histogram mode.
Definition: vl53l0x_api.cpp:970
VL53L0X_API VL53L0X_Error VL53L0X_GetDeviceParameters(VL53L0X_DEV Dev, VL53L0X_DeviceParameters_t *pDeviceParameters)
Retrieve current device parameters.
Definition: vl53l0x_api.cpp:841
VL53L0X_API VL53L0X_Error VL53L0X_GetSequenceStepEnables(VL53L0X_DEV Dev, VL53L0X_SchedulerSequenceSteps_t *pSchedulerSequenceSteps)
Gets the (on/off) state of all sequence steps.
Definition: vl53l0x_api.cpp:1187
VL53L0X_API VL53L0X_Error VL53L0X_SetRefCalibration(VL53L0X_DEV Dev, uint8_t VhvSettings, uint8_t PhaseCal)
Set Reference Calibration Parameters.
Definition: vl53l0x_api.cpp:1521
VL53L0X_API VL53L0X_Error VL53L0X_GetDmaxCalParameters(VL53L0X_DEV Dev, uint16_t *pRangeMilliMeter, FixPoint1616_t *pSignalRateRtnMegaCps)
Get Dmax Calibration Parameters for a given device.
Definition: vl53l0x_api.cpp:2054
VL53L0X_API VL53L0X_Error VL53L0X_SetRangeFractionEnable(VL53L0X_DEV Dev, uint8_t Enable)
Sets the resolution of range measurements.
Definition: vl53l0x_api.cpp:941
VL53L0X_API VL53L0X_Error VL53L0X_GetNumberOfLimitCheck(uint16_t *pNumberOfLimitCheck)
Get the number of the check limit managed by a given Device.
Definition: vl53l0x_api.cpp:1549
VL53L0X_API VL53L0X_Error VL53L0X_GetLimitCheckStatus(VL53L0X_DEV Dev, uint16_t LimitCheckId, uint8_t *pLimitCheckStatus)
Return a the Status of the specified check limit.
Definition: vl53l0x_api.cpp:1574
VL53L0X_API VL53L0X_Error VL53L0X_SetSequenceStepEnable(VL53L0X_DEV Dev, VL53L0X_SequenceStepId SequenceStepId, uint8_t SequenceStepEnabled)
Sets the (on/off) state of a requested sequence step.
Definition: vl53l0x_api.cpp:1047
VL53L0X_API VL53L0X_Error VL53L0X_GetFractionEnable(VL53L0X_DEV Dev, uint8_t *pEnable)
Gets the fraction enable parameter indicating the resolution of range measurements.
Definition: vl53l0x_api.cpp:956
VL53L0X_API VL53L0X_Error VL53L0X_SetInterMeasurementPeriodMilliSeconds(VL53L0X_DEV Dev, uint32_t InterMeasurementPeriodMilliSeconds)
Definition: vl53l0x_api.cpp:1330
VL53L0X_API VL53L0X_Error VL53L0X_GetSequenceStepTimeout(VL53L0X_DEV Dev, VL53L0X_SequenceStepId SequenceStepId, FixPoint1616_t *pTimeOutMilliSecs)
Gets the timeout of a requested sequence step.
Definition: vl53l0x_api.cpp:1308
VL53L0X_API VL53L0X_Error VL53L0X_SetMeasurementTimingBudgetMicroSeconds(VL53L0X_DEV Dev, uint32_t MeasurementTimingBudgetMicroSeconds)
Set Ranging Timing Budget in microseconds.
Definition: vl53l0x_api.cpp:994
VL53L0X_API VL53L0X_Error VL53L0X_GetXTalkCompensationEnable(VL53L0X_DEV Dev, uint8_t *pXTalkCompensationEnable)
Get Cross talk compensation rate.
Definition: vl53l0x_api.cpp:1436
VL53L0X_API VL53L0X_Error VL53L0X_GetHistogramMode(VL53L0X_DEV Dev, VL53L0X_HistogramModes *pHistogramMode)
Get current new device mode.
Definition: vl53l0x_api.cpp:982
VL53L0X_API VL53L0X_Error VL53L0X_GetLimitCheckEnable(VL53L0X_DEV Dev, uint16_t LimitCheckId, uint8_t *pLimitCheckEnable)
Get specific limit check enable state.
Definition: vl53l0x_api.cpp:1700
Generic PAL device type that does link between API and platform abstraction layer.
Definition: vl53l0x_platform.h:58
Defines the parameters of the Get Device Info Functions.
Definition: vl53l0x_def.h:110
Defines all parameters for the device.
Definition: vl53l0x_def.h:234
Definition: vl53l0x_def.h:352
Definition: vl53l0x_def.h:306
Definition: vl53l0x_def.h:525
Defines the parameters of the Get Version Functions.
Definition: vl53l0x_def.h:100
Type definitions for VL53L0X API.