Fork, renaming of VL53L1CB-2

Dependencies:   X_NUCLEO_COMMON ST_INTERFACES

Dependents:   X_NUCLEO_53L1CB

Committer:
Charles MacNeill
Date:
Fri Jun 11 17:08:27 2021 +0100
Revision:
13:3f1b341901dd
Parent:
7:1add29d51e72
changing case of vl53l1cb.* so it works in linux

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Charles MacNeill 7:1add29d51e72 1
Charles MacNeill 7:1add29d51e72 2 /* SPDX-License-Identifier: GPL-2.0+ OR BSD-3-Clause */
Charles MacNeill 7:1add29d51e72 3 /******************************************************************************
Charles MacNeill 7:1add29d51e72 4 * Copyright (c) 2020, STMicroelectronics - All Rights Reserved
Charles MacNeill 7:1add29d51e72 5
Charles MacNeill 7:1add29d51e72 6 This file is part of VL53L1 and is dual licensed,
Charles MacNeill 7:1add29d51e72 7 either GPL-2.0+
Charles MacNeill 7:1add29d51e72 8 or 'BSD 3-clause "New" or "Revised" License' , at your option.
Charles MacNeill 7:1add29d51e72 9 ******************************************************************************
Charles MacNeill 7:1add29d51e72 10 */
Charles MacNeill 7:1add29d51e72 11
Charles MacNeill 7:1add29d51e72 12 #ifndef _VL53L1_API_H_
Charles MacNeill 7:1add29d51e72 13 #define _VL53L1_API_H_
Charles MacNeill 7:1add29d51e72 14
Charles MacNeill 7:1add29d51e72 15 #include "vl53l1_api_strings.h"
Charles MacNeill 7:1add29d51e72 16 #include "vl53l1_api_core.h"
Charles MacNeill 7:1add29d51e72 17 #include "vl53l1_preset_setup.h"
Charles MacNeill 7:1add29d51e72 18
Charles MacNeill 7:1add29d51e72 19 #ifdef __cplusplus
Charles MacNeill 7:1add29d51e72 20 extern "C"
Charles MacNeill 7:1add29d51e72 21 {
Charles MacNeill 7:1add29d51e72 22 #endif
Charles MacNeill 7:1add29d51e72 23
Charles MacNeill 7:1add29d51e72 24 #if !defined(VL53L1DevDataGet)
Charles MacNeill 7:1add29d51e72 25 #warning "PALDevDataGet is deprecated define VL53L1DevDataGet instead"
Charles MacNeill 7:1add29d51e72 26 #define VL53L1DevDataGet(Dev, field) (Dev->Data.field)
Charles MacNeill 7:1add29d51e72 27 #endif
Charles MacNeill 7:1add29d51e72 28
Charles MacNeill 7:1add29d51e72 29 #if !defined(VL53L1DevDataSet)
Charles MacNeill 7:1add29d51e72 30 #warning "PALDevDataSet is deprecated define VL53L1DevDataSet instead"
Charles MacNeill 7:1add29d51e72 31 #define VL53L1DevDataSet(Dev, field, data) ((Dev->Data.field) = (data))
Charles MacNeill 7:1add29d51e72 32 #endif
Charles MacNeill 7:1add29d51e72 33
Charles MacNeill 7:1add29d51e72 34 /** @defgroup VL53L1_cut11_group VL53L1 cut1.1 Function Definition
Charles MacNeill 7:1add29d51e72 35 * @brief VL53L1 cut1.1 Function Definition
Charles MacNeill 7:1add29d51e72 36 * @{
Charles MacNeill 7:1add29d51e72 37 */
Charles MacNeill 7:1add29d51e72 38
Charles MacNeill 7:1add29d51e72 39 /** @defgroup VL53L1_general_group VL53L1 General Functions
Charles MacNeill 7:1add29d51e72 40 * @brief General functions and definitions
Charles MacNeill 7:1add29d51e72 41 * @{
Charles MacNeill 7:1add29d51e72 42 */
Charles MacNeill 7:1add29d51e72 43
Charles MacNeill 7:1add29d51e72 44 /**
Charles MacNeill 7:1add29d51e72 45 * @brief Return the VL53L1 driver Version
Charles MacNeill 7:1add29d51e72 46 *
Charles MacNeill 7:1add29d51e72 47 * @note This function doesn't access to the device
Charles MacNeill 7:1add29d51e72 48 *
Charles MacNeill 7:1add29d51e72 49 * @param pVersion Rer to current driver Version
Charles MacNeill 7:1add29d51e72 50 * @return VL53L1_ERROR_NONE Success
Charles MacNeill 7:1add29d51e72 51 * @return "Other error code" See ::VL53L1_Error
Charles MacNeill 7:1add29d51e72 52 */
Charles MacNeill 7:1add29d51e72 53 VL53L1_Error VL53L1_GetVersion(VL53L1_Version_t *pVersion);
Charles MacNeill 7:1add29d51e72 54
Charles MacNeill 7:1add29d51e72 55 /**
Charles MacNeill 7:1add29d51e72 56 * @brief Reads the Product Revision for a for given Device
Charles MacNeill 7:1add29d51e72 57 * This function can be used to distinguish cut1.0 from cut1.1.
Charles MacNeill 7:1add29d51e72 58 *
Charles MacNeill 7:1add29d51e72 59 * @param Dev Device Handle
Charles MacNeill 7:1add29d51e72 60 * @param pProductRevisionMajor Pointer to Product Revision Major
Charles MacNeill 7:1add29d51e72 61 * for a given Device
Charles MacNeill 7:1add29d51e72 62 * @param pProductRevisionMinor Pointer to Product Revision Minor
Charles MacNeill 7:1add29d51e72 63 * for a given Device
Charles MacNeill 7:1add29d51e72 64 * @return VL53L1_ERROR_NONE Success
Charles MacNeill 7:1add29d51e72 65 * @return "Other error code" See ::VL53L1_Error
Charles MacNeill 7:1add29d51e72 66 */
Charles MacNeill 7:1add29d51e72 67 VL53L1_Error VL53L1_GetProductRevision(VL53L1_DEV Dev,
Charles MacNeill 7:1add29d51e72 68 uint8_t *pProductRevisionMajor, uint8_t *pProductRevisionMinor);
Charles MacNeill 7:1add29d51e72 69
Charles MacNeill 7:1add29d51e72 70 /**
Charles MacNeill 7:1add29d51e72 71 * @brief Reads the Device information for given Device
Charles MacNeill 7:1add29d51e72 72 *
Charles MacNeill 7:1add29d51e72 73 * @note This function Access to the device
Charles MacNeill 7:1add29d51e72 74 *
Charles MacNeill 7:1add29d51e72 75 * @param Dev Device Handle
Charles MacNeill 7:1add29d51e72 76 * @param pVL53L1_DeviceInfo Pointer to current device info for a given
Charles MacNeill 7:1add29d51e72 77 * Device
Charles MacNeill 7:1add29d51e72 78 * @return VL53L1_ERROR_NONE Success
Charles MacNeill 7:1add29d51e72 79 * @return "Other error code" See ::VL53L1_Error
Charles MacNeill 7:1add29d51e72 80 */
Charles MacNeill 7:1add29d51e72 81 VL53L1_Error VL53L1_GetDeviceInfo(VL53L1_DEV Dev,
Charles MacNeill 7:1add29d51e72 82 VL53L1_DeviceInfo_t *pVL53L1_DeviceInfo);
Charles MacNeill 7:1add29d51e72 83
Charles MacNeill 7:1add29d51e72 84 /**
Charles MacNeill 7:1add29d51e72 85 * @brief Reads the Device unique identifier
Charles MacNeill 7:1add29d51e72 86 *
Charles MacNeill 7:1add29d51e72 87 * @note This function Access to the device
Charles MacNeill 7:1add29d51e72 88 *
Charles MacNeill 7:1add29d51e72 89 * @param Dev Device Handle
Charles MacNeill 7:1add29d51e72 90 * @param pUid Pointer to current device unique ID
Charles MacNeill 7:1add29d51e72 91 * @return VL53L1_ERROR_NONE Success
Charles MacNeill 7:1add29d51e72 92 * @return "Other error code" See ::VL53L1_Error
Charles MacNeill 7:1add29d51e72 93 */
Charles MacNeill 7:1add29d51e72 94 VL53L1_Error VL53L1_GetUID(VL53L1_DEV Dev, uint64_t *pUid);
Charles MacNeill 7:1add29d51e72 95
Charles MacNeill 7:1add29d51e72 96 /**
Charles MacNeill 7:1add29d51e72 97 * @brief Human readable Range Status string for a given RangeStatus
Charles MacNeill 7:1add29d51e72 98 *
Charles MacNeill 7:1add29d51e72 99 * @note This function doesn't access to the device
Charles MacNeill 7:1add29d51e72 100 *
Charles MacNeill 7:1add29d51e72 101 * @param RangeStatus The RangeStatus code as stored on
Charles MacNeill 7:1add29d51e72 102 * @a VL53L1_RangingMeasurementData_t
Charles MacNeill 7:1add29d51e72 103 * @param pRangeStatusString The returned RangeStatus string. Shall be
Charles MacNeill 7:1add29d51e72 104 * defined as char buf[VL53L1_MAX_STRING_LENGTH]
Charles MacNeill 7:1add29d51e72 105 * @return VL53L1_ERROR_NONE Success
Charles MacNeill 7:1add29d51e72 106 * @return "Other error code" See ::VL53L1_Error
Charles MacNeill 7:1add29d51e72 107 */
Charles MacNeill 7:1add29d51e72 108 VL53L1_Error VL53L1_GetRangeStatusString(uint8_t RangeStatus,
Charles MacNeill 7:1add29d51e72 109 char *pRangeStatusString);
Charles MacNeill 7:1add29d51e72 110
Charles MacNeill 7:1add29d51e72 111 /**
Charles MacNeill 7:1add29d51e72 112 * @brief Human readable error string for driver error status
Charles MacNeill 7:1add29d51e72 113 *
Charles MacNeill 7:1add29d51e72 114 * @note This function doesn't access to the device
Charles MacNeill 7:1add29d51e72 115 *
Charles MacNeill 7:1add29d51e72 116 * @param PalErrorCode The error code as stored on @a VL53L1_Error
Charles MacNeill 7:1add29d51e72 117 * @param pPalErrorString The error string corresponding to the
Charles MacNeill 7:1add29d51e72 118 * PalErrorCode. Shall be defined as char buf[VL53L1_MAX_STRING_LENGTH]
Charles MacNeill 7:1add29d51e72 119 * @return VL53L1_ERROR_NONE Success
Charles MacNeill 7:1add29d51e72 120 * @return "Other error code" See ::VL53L1_Error
Charles MacNeill 7:1add29d51e72 121 */
Charles MacNeill 7:1add29d51e72 122 VL53L1_Error VL53L1_GetPalErrorString(VL53L1_Error PalErrorCode,
Charles MacNeill 7:1add29d51e72 123 char *pPalErrorString);
Charles MacNeill 7:1add29d51e72 124
Charles MacNeill 7:1add29d51e72 125 /**
Charles MacNeill 7:1add29d51e72 126 * @brief Human readable driver State string
Charles MacNeill 7:1add29d51e72 127 *
Charles MacNeill 7:1add29d51e72 128 * @note This function doesn't access to the device
Charles MacNeill 7:1add29d51e72 129 *
Charles MacNeill 7:1add29d51e72 130 * @param PalStateCode The State code as stored on @a VL53L1_State
Charles MacNeill 7:1add29d51e72 131 * @param pPalStateString The State string corresponding to the
Charles MacNeill 7:1add29d51e72 132 * PalStateCode. Shall be defined as char buf[VL53L1_MAX_STRING_LENGTH]
Charles MacNeill 7:1add29d51e72 133 * @return VL53L1_ERROR_NONE Success
Charles MacNeill 7:1add29d51e72 134 * @return "Other error code" See ::VL53L1_Error
Charles MacNeill 7:1add29d51e72 135 */
Charles MacNeill 7:1add29d51e72 136 VL53L1_Error VL53L1_GetPalStateString(VL53L1_State PalStateCode,
Charles MacNeill 7:1add29d51e72 137 char *pPalStateString);
Charles MacNeill 7:1add29d51e72 138
Charles MacNeill 7:1add29d51e72 139 /**
Charles MacNeill 7:1add29d51e72 140 * @brief Reads the internal state of the driver for a given Device
Charles MacNeill 7:1add29d51e72 141 *
Charles MacNeill 7:1add29d51e72 142 * @note This function doesn't access to the device
Charles MacNeill 7:1add29d51e72 143 *
Charles MacNeill 7:1add29d51e72 144 * @param Dev Device Handle
Charles MacNeill 7:1add29d51e72 145 * @param pPalState Pointer to current state of the PAL for a
Charles MacNeill 7:1add29d51e72 146 * given Device
Charles MacNeill 7:1add29d51e72 147 * @return VL53L1_ERROR_NONE Success
Charles MacNeill 7:1add29d51e72 148 * @return "Other error code" See ::VL53L1_Error
Charles MacNeill 7:1add29d51e72 149 */
Charles MacNeill 7:1add29d51e72 150 VL53L1_Error VL53L1_GetPalState(VL53L1_DEV Dev,
Charles MacNeill 7:1add29d51e72 151 VL53L1_State *pPalState);
Charles MacNeill 7:1add29d51e72 152
Charles MacNeill 7:1add29d51e72 153
Charles MacNeill 7:1add29d51e72 154
Charles MacNeill 7:1add29d51e72 155 /** @} VL53L1_general_group */
Charles MacNeill 7:1add29d51e72 156
Charles MacNeill 7:1add29d51e72 157 /** @defgroup VL53L1_init_group VL53L1 Init Functions
Charles MacNeill 7:1add29d51e72 158 * @brief VL53L1 Init Functions
Charles MacNeill 7:1add29d51e72 159 * @{
Charles MacNeill 7:1add29d51e72 160 */
Charles MacNeill 7:1add29d51e72 161
Charles MacNeill 7:1add29d51e72 162 /**
Charles MacNeill 7:1add29d51e72 163 * @brief Set new device address
Charles MacNeill 7:1add29d51e72 164 *
Charles MacNeill 7:1add29d51e72 165 * After completion the device will answer to the new address programmed.
Charles MacNeill 7:1add29d51e72 166 * This function should be called when several devices are used in parallel
Charles MacNeill 7:1add29d51e72 167 * before start programming the sensor.
Charles MacNeill 7:1add29d51e72 168 * When a single device us used, there is no need to call this function.
Charles MacNeill 7:1add29d51e72 169 *
Charles MacNeill 7:1add29d51e72 170 * When it is requested for multi devices system this function MUST be called
Charles MacNeill 7:1add29d51e72 171 * prior to VL53L1_DataInit()
Charles MacNeill 7:1add29d51e72 172 *
Charles MacNeill 7:1add29d51e72 173 * @note This function Access to the device
Charles MacNeill 7:1add29d51e72 174 *
Charles MacNeill 7:1add29d51e72 175 * @param Dev Device Handle
Charles MacNeill 7:1add29d51e72 176 * @param DeviceAddress The new Device address
Charles MacNeill 7:1add29d51e72 177 * @return VL53L1_ERROR_NONE Success
Charles MacNeill 7:1add29d51e72 178 * @return "Other error code" See ::VL53L1_Error
Charles MacNeill 7:1add29d51e72 179 */
Charles MacNeill 7:1add29d51e72 180 VL53L1_Error VL53L1_SetDeviceAddress(VL53L1_DEV Dev,
Charles MacNeill 7:1add29d51e72 181 uint8_t DeviceAddress);
Charles MacNeill 7:1add29d51e72 182
Charles MacNeill 7:1add29d51e72 183 /**
Charles MacNeill 7:1add29d51e72 184 *
Charles MacNeill 7:1add29d51e72 185 * @brief One time device initialization
Charles MacNeill 7:1add29d51e72 186 *
Charles MacNeill 7:1add29d51e72 187 * To be called after device has been powered on and booted
Charles MacNeill 7:1add29d51e72 188 * see @a VL53L1_WaitDeviceBooted()
Charles MacNeill 7:1add29d51e72 189 *
Charles MacNeill 7:1add29d51e72 190 * @par Function Description
Charles MacNeill 7:1add29d51e72 191 * When not used after a fresh device "power up", it may return
Charles MacNeill 7:1add29d51e72 192 * @a #VL53L1_ERROR_CALIBRATION_WARNING meaning wrong calibration data
Charles MacNeill 7:1add29d51e72 193 * may have been fetched from device that can result in ranging offset error\n
Charles MacNeill 7:1add29d51e72 194 * If VL53L1_DataInit is called several times then the application must restore
Charles MacNeill 7:1add29d51e72 195 * calibration calling @a VL53L1_SetOffsetCalibrationData()
Charles MacNeill 7:1add29d51e72 196 * It implies application has gathered calibration data thanks to
Charles MacNeill 7:1add29d51e72 197 * @a VL53L1_GetOffsetCalibrationData() after an initial calibration stage.
Charles MacNeill 7:1add29d51e72 198 * This function will change the VL53L1_State from VL53L1_STATE_POWERDOWN to
Charles MacNeill 7:1add29d51e72 199 * VL53L1_STATE_WAIT_STATICINIT.
Charles MacNeill 7:1add29d51e72 200 *
Charles MacNeill 7:1add29d51e72 201 * @note This function Access to the device
Charles MacNeill 7:1add29d51e72 202 *
Charles MacNeill 7:1add29d51e72 203 * @param Dev Device Handle
Charles MacNeill 7:1add29d51e72 204 * @return VL53L1_ERROR_NONE Success
Charles MacNeill 7:1add29d51e72 205 * @return "Other error code" See ::VL53L1_Error
Charles MacNeill 7:1add29d51e72 206 */
Charles MacNeill 7:1add29d51e72 207 VL53L1_Error VL53L1_DataInit(VL53L1_DEV Dev);
Charles MacNeill 7:1add29d51e72 208
Charles MacNeill 7:1add29d51e72 209
Charles MacNeill 7:1add29d51e72 210 /**
Charles MacNeill 7:1add29d51e72 211 * @brief Do basic device init (and eventually patch loading)
Charles MacNeill 7:1add29d51e72 212 * This function will change the VL53L1_State from
Charles MacNeill 7:1add29d51e72 213 * VL53L1_STATE_WAIT_STATICINIT to VL53L1_STATE_IDLE.
Charles MacNeill 7:1add29d51e72 214 * In this stage all default setting will be applied.
Charles MacNeill 7:1add29d51e72 215 *
Charles MacNeill 7:1add29d51e72 216 * @note This function Access to the device
Charles MacNeill 7:1add29d51e72 217 *
Charles MacNeill 7:1add29d51e72 218 * @param Dev Device Handle
Charles MacNeill 7:1add29d51e72 219 * @return VL53L1_ERROR_NONE Success
Charles MacNeill 7:1add29d51e72 220 * @return "Other error code" See ::VL53L1_Error
Charles MacNeill 7:1add29d51e72 221 */
Charles MacNeill 7:1add29d51e72 222 VL53L1_Error VL53L1_StaticInit(VL53L1_DEV Dev);
Charles MacNeill 7:1add29d51e72 223
Charles MacNeill 7:1add29d51e72 224 /**
Charles MacNeill 7:1add29d51e72 225 * @brief Wait for device booted after chip enable (hardware standby)
Charles MacNeill 7:1add29d51e72 226 * This function can be run only when VL53L1_State is VL53L1_STATE_POWERDOWN.
Charles MacNeill 7:1add29d51e72 227 *
Charles MacNeill 7:1add29d51e72 228 * @param Dev Device Handle
Charles MacNeill 7:1add29d51e72 229 * @return VL53L1_ERROR_NONE Success
Charles MacNeill 7:1add29d51e72 230 * @return "Other error code" See ::VL53L1_Error
Charles MacNeill 7:1add29d51e72 231 *
Charles MacNeill 7:1add29d51e72 232 */
Charles MacNeill 7:1add29d51e72 233 VL53L1_Error VL53L1_WaitDeviceBooted(VL53L1_DEV Dev);
Charles MacNeill 7:1add29d51e72 234
Charles MacNeill 7:1add29d51e72 235
Charles MacNeill 7:1add29d51e72 236 /** @} VL53L1_init_group */
Charles MacNeill 7:1add29d51e72 237
Charles MacNeill 7:1add29d51e72 238 /** @defgroup VL53L1_parameters_group VL53L1 Parameters Functions
Charles MacNeill 7:1add29d51e72 239 * @brief Functions used to prepare and setup the device
Charles MacNeill 7:1add29d51e72 240 * @{
Charles MacNeill 7:1add29d51e72 241 */
Charles MacNeill 7:1add29d51e72 242
Charles MacNeill 7:1add29d51e72 243 /**
Charles MacNeill 7:1add29d51e72 244 * @brief Set a new Preset Mode
Charles MacNeill 7:1add29d51e72 245 * @par Function Description
Charles MacNeill 7:1add29d51e72 246 * Set device to a new Operating Mode (High speed ranging, Multi objects ...)
Charles MacNeill 7:1add29d51e72 247 *
Charles MacNeill 7:1add29d51e72 248 * @note This function doesn't Access to the device
Charles MacNeill 7:1add29d51e72 249 *
Charles MacNeill 7:1add29d51e72 250 * @warning This function change the timing budget to 16 ms and the inter-
Charles MacNeill 7:1add29d51e72 251 * measurement period to 1000 ms. Also the VL53L1_DISTANCEMODE_LONG is used.
Charles MacNeill 7:1add29d51e72 252 *
Charles MacNeill 7:1add29d51e72 253 * @param Dev Device Handle
Charles MacNeill 7:1add29d51e72 254 * @param PresetMode New Preset mode to apply
Charles MacNeill 7:1add29d51e72 255 * <br>Valid values are:
Charles MacNeill 7:1add29d51e72 256 */
Charles MacNeill 7:1add29d51e72 257 /**
Charles MacNeill 7:1add29d51e72 258 * @li VL53L1_PRESETMODE_MULTIZONES_SCANNING
Charles MacNeill 7:1add29d51e72 259 * @li VL53L1_PRESETMODE_RANGING
Charles MacNeill 7:1add29d51e72 260 * @li VL53L1_PRESETMODE_AUTONOMOUS
Charles MacNeill 7:1add29d51e72 261 * @li VL53L1_PRESETMODE_LOWPOWER_AUTONOMOUS
Charles MacNeill 7:1add29d51e72 262 * @li VL53L1_PRESETMODE_LITE_RANGING
Charles MacNeill 7:1add29d51e72 263 * @li VL53L1_PRESETMODE_OLT
Charles MacNeill 7:1add29d51e72 264 */
Charles MacNeill 7:1add29d51e72 265 /**
Charles MacNeill 7:1add29d51e72 266 *
Charles MacNeill 7:1add29d51e72 267 * @return VL53L1_ERROR_NONE Success
Charles MacNeill 7:1add29d51e72 268 * @return VL53L1_ERROR_MODE_NOT_SUPPORTED This error occurs when PresetMode is
Charles MacNeill 7:1add29d51e72 269 * not in the supported list
Charles MacNeill 7:1add29d51e72 270 */
Charles MacNeill 7:1add29d51e72 271 VL53L1_Error VL53L1_SetPresetMode(VL53L1_DEV Dev,
Charles MacNeill 7:1add29d51e72 272 VL53L1_PresetModes PresetMode);
Charles MacNeill 7:1add29d51e72 273
Charles MacNeill 7:1add29d51e72 274 /**
Charles MacNeill 7:1add29d51e72 275 * @brief Get current Preset Mode
Charles MacNeill 7:1add29d51e72 276 * @par Function Description
Charles MacNeill 7:1add29d51e72 277 * Get actual mode of the device(ranging, histogram ...)
Charles MacNeill 7:1add29d51e72 278 *
Charles MacNeill 7:1add29d51e72 279 * @note This function doesn't Access to the device
Charles MacNeill 7:1add29d51e72 280 *
Charles MacNeill 7:1add29d51e72 281 * @param Dev Device Handle
Charles MacNeill 7:1add29d51e72 282 * @param pPresetMode Pointer to current apply mode value
Charles MacNeill 7:1add29d51e72 283 *
Charles MacNeill 7:1add29d51e72 284 * @return VL53L1_ERROR_NONE Success
Charles MacNeill 7:1add29d51e72 285 * @return VL53L1_ERROR_MODE_NOT_SUPPORTED This error occurs when
Charles MacNeill 7:1add29d51e72 286 * DeviceMode is not in the supported list
Charles MacNeill 7:1add29d51e72 287 */
Charles MacNeill 7:1add29d51e72 288 VL53L1_Error VL53L1_GetPresetMode(VL53L1_DEV Dev,
Charles MacNeill 7:1add29d51e72 289 VL53L1_PresetModes *pPresetMode);
Charles MacNeill 7:1add29d51e72 290
Charles MacNeill 7:1add29d51e72 291
Charles MacNeill 7:1add29d51e72 292 /**
Charles MacNeill 7:1add29d51e72 293 * @brief Set the distance mode
Charles MacNeill 7:1add29d51e72 294 * @par Function Description
Charles MacNeill 7:1add29d51e72 295 * Set the distance mode to be used for the next ranging.<br>
Charles MacNeill 7:1add29d51e72 296 * The modes Short, Medium and Long are used to optimize the ranging accuracy
Charles MacNeill 7:1add29d51e72 297 * in a specific range of distance.<br> The user select one of these modes to
Charles MacNeill 7:1add29d51e72 298 * select the distance range. <br>
Charles MacNeill 7:1add29d51e72 299 * Two additional modes are supported: AUTO and AUTO_LITE the difference between
Charles MacNeill 7:1add29d51e72 300 * these modes is the following.<br>
Charles MacNeill 7:1add29d51e72 301 * The mode AUTO take into account both the ranging distance (RangeMilliMeter)
Charles MacNeill 7:1add29d51e72 302 * and the dmax distance (DmaxMilliMeter).<br> The algorithm uses the ranging
Charles MacNeill 7:1add29d51e72 303 * distance when the range status is ok and uses the dmax distance when the
Charles MacNeill 7:1add29d51e72 304 * range status is not ok.<br>
Charles MacNeill 7:1add29d51e72 305 * The AUTO_LITE take into account only the ranging distance, so nothing is done
Charles MacNeill 7:1add29d51e72 306 * in case of range error i.e. the distance mode will not be changed.
Charles MacNeill 7:1add29d51e72 307 * @note This function doesn't Access to the device
Charles MacNeill 7:1add29d51e72 308 *
Charles MacNeill 7:1add29d51e72 309 * @warning This function should be called after @a VL53L1_SetPresetMode().
Charles MacNeill 7:1add29d51e72 310
Charles MacNeill 7:1add29d51e72 311 * @param Dev Device Handle
Charles MacNeill 7:1add29d51e72 312 * @param DistanceMode Distance mode to apply valid values are:
Charles MacNeill 7:1add29d51e72 313 * @li VL53L1_DISTANCEMODE_SHORT
Charles MacNeill 7:1add29d51e72 314 * @li VL53L1_DISTANCEMODE_MEDIUM
Charles MacNeill 7:1add29d51e72 315 * @li VL53L1_DISTANCEMODE_LONG
Charles MacNeill 7:1add29d51e72 316 * @li VL53L1_DISTANCEMODE_AUTO_LITE
Charles MacNeill 7:1add29d51e72 317 * @li VL53L1_DISTANCEMODE_AUTO
Charles MacNeill 7:1add29d51e72 318 * @return VL53L1_ERROR_NONE Success
Charles MacNeill 7:1add29d51e72 319 * @return VL53L1_ERROR_MODE_NOT_SUPPORTED This error occurs when DistanceMode
Charles MacNeill 7:1add29d51e72 320 * is not in the supported list
Charles MacNeill 7:1add29d51e72 321 * @return "Other error code" See ::VL53L1_Error
Charles MacNeill 7:1add29d51e72 322 */
Charles MacNeill 7:1add29d51e72 323 VL53L1_Error VL53L1_SetDistanceMode(VL53L1_DEV Dev,
Charles MacNeill 7:1add29d51e72 324 VL53L1_DistanceModes DistanceMode);
Charles MacNeill 7:1add29d51e72 325
Charles MacNeill 7:1add29d51e72 326 /**
Charles MacNeill 7:1add29d51e72 327 * @brief Get the distance mode
Charles MacNeill 7:1add29d51e72 328 * @par Function Description
Charles MacNeill 7:1add29d51e72 329 * Get the distance mode used for the next ranging.
Charles MacNeill 7:1add29d51e72 330 *
Charles MacNeill 7:1add29d51e72 331 * @param Dev Device Handle
Charles MacNeill 7:1add29d51e72 332 * @param *pDistanceMode Pointer to Distance mode
Charles MacNeill 7:1add29d51e72 333 * @return VL53L1_ERROR_NONE Success
Charles MacNeill 7:1add29d51e72 334 * @return "Other error code" See ::VL53L1_Error
Charles MacNeill 7:1add29d51e72 335 */
Charles MacNeill 7:1add29d51e72 336 VL53L1_Error VL53L1_GetDistanceMode(VL53L1_DEV Dev,
Charles MacNeill 7:1add29d51e72 337 VL53L1_DistanceModes *pDistanceMode);
Charles MacNeill 7:1add29d51e72 338
Charles MacNeill 7:1add29d51e72 339
Charles MacNeill 7:1add29d51e72 340 /**
Charles MacNeill 7:1add29d51e72 341 * @brief Set the output mode
Charles MacNeill 7:1add29d51e72 342 * @par Function Description
Charles MacNeill 7:1add29d51e72 343 * Set the output mode to be used for the next ranging. The output mode is used
Charles MacNeill 7:1add29d51e72 344 * to select, in case of multiple objects, which one will be used in
Charles MacNeill 7:1add29d51e72 345 * function @a VL53L1_GetRangingMeasurementData().
Charles MacNeill 7:1add29d51e72 346 * VL53L1_SetOutputMode also sets the object used by automatic
Charles MacNeill 7:1add29d51e72 347 * distance mode algorithm when @a VL53L1_SetDistanceMode() is
Charles MacNeill 7:1add29d51e72 348 * set to automatic mode.
Charles MacNeill 7:1add29d51e72 349 *
Charles MacNeill 7:1add29d51e72 350 * @note This function doesn't Access to the device
Charles MacNeill 7:1add29d51e72 351 *
Charles MacNeill 7:1add29d51e72 352 * @warning This function should be called after @a VL53L1_SetPresetMode().
Charles MacNeill 7:1add29d51e72 353
Charles MacNeill 7:1add29d51e72 354 * @param Dev Device Handle
Charles MacNeill 7:1add29d51e72 355 * @param OutputMode Output mode to apply valid values are:
Charles MacNeill 7:1add29d51e72 356 * @li VL53L1_OUTPUTMODE_NEAREST
Charles MacNeill 7:1add29d51e72 357 * @li VL53L1_OUTPUTMODE_STRONGEST
Charles MacNeill 7:1add29d51e72 358 *
Charles MacNeill 7:1add29d51e72 359 * @return VL53L1_ERROR_NONE Success
Charles MacNeill 7:1add29d51e72 360 * @return VL53L1_ERROR_MODE_NOT_SUPPORTED This error occurs when OutputMode
Charles MacNeill 7:1add29d51e72 361 * is not in the supported list
Charles MacNeill 7:1add29d51e72 362 * @return "Other error code" See ::VL53L1_Error
Charles MacNeill 7:1add29d51e72 363 */
Charles MacNeill 7:1add29d51e72 364 VL53L1_Error VL53L1_SetOutputMode(VL53L1_DEV Dev,
Charles MacNeill 7:1add29d51e72 365 VL53L1_OutputModes OutputMode);
Charles MacNeill 7:1add29d51e72 366
Charles MacNeill 7:1add29d51e72 367 /**
Charles MacNeill 7:1add29d51e72 368 * @brief Get the output mode
Charles MacNeill 7:1add29d51e72 369 * @par Function Description
Charles MacNeill 7:1add29d51e72 370 * Get the output mode used for the next ranging.
Charles MacNeill 7:1add29d51e72 371 *
Charles MacNeill 7:1add29d51e72 372 * @param Dev Device Handle
Charles MacNeill 7:1add29d51e72 373 * @param *pOutputMode Pointer to Output mode
Charles MacNeill 7:1add29d51e72 374 * @return VL53L1_ERROR_NONE Success
Charles MacNeill 7:1add29d51e72 375 * @return "Other error code" See ::VL53L1_Error
Charles MacNeill 7:1add29d51e72 376 */
Charles MacNeill 7:1add29d51e72 377 VL53L1_Error VL53L1_GetOutputMode(VL53L1_DEV Dev,
Charles MacNeill 7:1add29d51e72 378 VL53L1_OutputModes *pOutputMode);
Charles MacNeill 7:1add29d51e72 379
Charles MacNeill 7:1add29d51e72 380
Charles MacNeill 7:1add29d51e72 381 /**
Charles MacNeill 7:1add29d51e72 382 * @brief Set Ranging Timing Budget in microseconds
Charles MacNeill 7:1add29d51e72 383 *
Charles MacNeill 7:1add29d51e72 384 * @par Function Description
Charles MacNeill 7:1add29d51e72 385 * Defines the maximum time allowed by the user to the device to run a
Charles MacNeill 7:1add29d51e72 386 * full ranging sequence for the current mode (ranging, histogram, ASL ...)
Charles MacNeill 7:1add29d51e72 387 *
Charles MacNeill 7:1add29d51e72 388 * @param Dev Device Handle
Charles MacNeill 7:1add29d51e72 389 * @param MeasurementTimingBudgetMicroSeconds Max measurement time in
Charles MacNeill 7:1add29d51e72 390 * microseconds.
Charles MacNeill 7:1add29d51e72 391 * @return VL53L1_ERROR_NONE Success
Charles MacNeill 7:1add29d51e72 392 * @return VL53L1_ERROR_INVALID_PARAMS Error timing parameter not
Charles MacNeill 7:1add29d51e72 393 * supported.
Charles MacNeill 7:1add29d51e72 394 * The maximum accepted value for the
Charles MacNeill 7:1add29d51e72 395 * computed timing budget is 10 seconds
Charles MacNeill 7:1add29d51e72 396 * the minimum value depends on the preset
Charles MacNeill 7:1add29d51e72 397 * mode selected.
Charles MacNeill 7:1add29d51e72 398 * @return "Other error code" See ::VL53L1_Error
Charles MacNeill 7:1add29d51e72 399 */
Charles MacNeill 7:1add29d51e72 400 VL53L1_Error VL53L1_SetMeasurementTimingBudgetMicroSeconds(
Charles MacNeill 7:1add29d51e72 401 VL53L1_DEV Dev, uint32_t MeasurementTimingBudgetMicroSeconds);
Charles MacNeill 7:1add29d51e72 402
Charles MacNeill 7:1add29d51e72 403 /**
Charles MacNeill 7:1add29d51e72 404 * @brief Get Ranging Timing Budget in microseconds
Charles MacNeill 7:1add29d51e72 405 *
Charles MacNeill 7:1add29d51e72 406 * @par Function Description
Charles MacNeill 7:1add29d51e72 407 * Returns the programmed the maximum time allowed by the user to the
Charles MacNeill 7:1add29d51e72 408 * device to run a full ranging sequence for the current mode
Charles MacNeill 7:1add29d51e72 409 * (ranging, histogram, ASL ...)
Charles MacNeill 7:1add29d51e72 410 *
Charles MacNeill 7:1add29d51e72 411 * @param Dev Device Handle
Charles MacNeill 7:1add29d51e72 412 * @param pMeasurementTimingBudgetMicroSeconds Max measurement time in
Charles MacNeill 7:1add29d51e72 413 * microseconds.
Charles MacNeill 7:1add29d51e72 414 * @return VL53L1_ERROR_NONE Success
Charles MacNeill 7:1add29d51e72 415 * @return "Other error code" See ::VL53L1_Error
Charles MacNeill 7:1add29d51e72 416 */
Charles MacNeill 7:1add29d51e72 417 VL53L1_Error VL53L1_GetMeasurementTimingBudgetMicroSeconds(
Charles MacNeill 7:1add29d51e72 418 VL53L1_DEV Dev, uint32_t *pMeasurementTimingBudgetMicroSeconds);
Charles MacNeill 7:1add29d51e72 419
Charles MacNeill 7:1add29d51e72 420
Charles MacNeill 7:1add29d51e72 421 /**
Charles MacNeill 7:1add29d51e72 422 * Program continuous mode Inter-Measurement period in milliseconds
Charles MacNeill 7:1add29d51e72 423 *
Charles MacNeill 7:1add29d51e72 424 * @par Function Description
Charles MacNeill 7:1add29d51e72 425 * When trying to set too short time return INVALID_PARAMS minimal value
Charles MacNeill 7:1add29d51e72 426 *
Charles MacNeill 7:1add29d51e72 427 * @param Dev Device Handle
Charles MacNeill 7:1add29d51e72 428 * @param InterMeasurementPeriodMilliSeconds Inter-Measurement Period in ms.
Charles MacNeill 7:1add29d51e72 429 * this value should be greater than the duration set in
Charles MacNeill 7:1add29d51e72 430 * @a VL53L1_SetMeasurementTimingBudgetMicroSeconds() to ensure smooth ranging
Charles MacNeill 7:1add29d51e72 431 * operation.
Charles MacNeill 7:1add29d51e72 432 * @return VL53L1_ERROR_NONE Success
Charles MacNeill 7:1add29d51e72 433 * @return "Other error code" See ::VL53L1_Error
Charles MacNeill 7:1add29d51e72 434 */
Charles MacNeill 7:1add29d51e72 435 VL53L1_Error VL53L1_SetInterMeasurementPeriodMilliSeconds(
Charles MacNeill 7:1add29d51e72 436 VL53L1_DEV Dev, uint32_t InterMeasurementPeriodMilliSeconds);
Charles MacNeill 7:1add29d51e72 437
Charles MacNeill 7:1add29d51e72 438 /**
Charles MacNeill 7:1add29d51e72 439 * Get continuous mode Inter-Measurement period in milliseconds
Charles MacNeill 7:1add29d51e72 440 *
Charles MacNeill 7:1add29d51e72 441 * @par Function Description
Charles MacNeill 7:1add29d51e72 442 *
Charles MacNeill 7:1add29d51e72 443 * @param Dev Device Handle
Charles MacNeill 7:1add29d51e72 444 * @param pInterMeasurementPeriodMilliSeconds Pointer to programmed
Charles MacNeill 7:1add29d51e72 445 * Inter-Measurement Period in milliseconds.
Charles MacNeill 7:1add29d51e72 446 * @return VL53L1_ERROR_NONE
Charles MacNeill 7:1add29d51e72 447 */
Charles MacNeill 7:1add29d51e72 448 VL53L1_Error VL53L1_GetInterMeasurementPeriodMilliSeconds(
Charles MacNeill 7:1add29d51e72 449 VL53L1_DEV Dev, uint32_t *pInterMeasurementPeriodMilliSeconds);
Charles MacNeill 7:1add29d51e72 450
Charles MacNeill 7:1add29d51e72 451 /**
Charles MacNeill 7:1add29d51e72 452 * @brief target reflectance for Dmax setting
Charles MacNeill 7:1add29d51e72 453 * @par Function Description
Charles MacNeill 7:1add29d51e72 454 * Allow user to set the value for target reflectance @ 940nm to calculate the
Charles MacNeill 7:1add29d51e72 455 * ambient DMAX values for. Set to 50% by default by @a VL53L1_DataInit()
Charles MacNeill 7:1add29d51e72 456 *
Charles MacNeill 7:1add29d51e72 457 * @param Dev Device Handle
Charles MacNeill 7:1add29d51e72 458 * @param DmaxReflectance Reflectance % in 16.16 fixed point
Charles MacNeill 7:1add29d51e72 459 * @return VL53L1_ERROR_NONE Success
Charles MacNeill 7:1add29d51e72 460 * @return VL53L1_ERROR_INVALID_PARAMS in case input value is not in range
Charles MacNeill 7:1add29d51e72 461 * from 0 to 100. Note that this is a fix point value so the max value is
Charles MacNeill 7:1add29d51e72 462 * 100 * 65536.
Charles MacNeill 7:1add29d51e72 463 * @return "Other error code" See ::VL53L1_Error
Charles MacNeill 7:1add29d51e72 464 */
Charles MacNeill 7:1add29d51e72 465 VL53L1_Error VL53L1_SetDmaxReflectance(VL53L1_DEV Dev,
Charles MacNeill 7:1add29d51e72 466 FixPoint1616_t DmaxReflectance);
Charles MacNeill 7:1add29d51e72 467
Charles MacNeill 7:1add29d51e72 468 /**
Charles MacNeill 7:1add29d51e72 469 * @brief Get target reflectance for Dmax
Charles MacNeill 7:1add29d51e72 470 * @par Function Description
Charles MacNeill 7:1add29d51e72 471 * Retrieves the value for target reflectance @ 940nm to calculate the
Charles MacNeill 7:1add29d51e72 472 * ambient DMAX values for. Set to 50% by default by @a VL53L1_DataInit()
Charles MacNeill 7:1add29d51e72 473 *
Charles MacNeill 7:1add29d51e72 474 * @param Dev Device Handle
Charles MacNeill 7:1add29d51e72 475 * @param pDmaxReflectance pointer to Reflectance % in 16.16 fixed point
Charles MacNeill 7:1add29d51e72 476 * @return VL53L1_ERROR_NONE Success
Charles MacNeill 7:1add29d51e72 477 * @return "Other error code" See ::VL53L1_Error
Charles MacNeill 7:1add29d51e72 478 */
Charles MacNeill 7:1add29d51e72 479 VL53L1_Error VL53L1_GetDmaxReflectance(VL53L1_DEV Dev,
Charles MacNeill 7:1add29d51e72 480 FixPoint1616_t *pDmaxReflectance);
Charles MacNeill 7:1add29d51e72 481 /**
Charles MacNeill 7:1add29d51e72 482 * @brief Set function for ambient Dmax mode
Charles MacNeill 7:1add29d51e72 483 *
Charles MacNeill 7:1add29d51e72 484 *
Charles MacNeill 7:1add29d51e72 485 * @param Dev Device Handle
Charles MacNeill 7:1add29d51e72 486 * @param DmaxMode DMAX mode to be used in ranging
Charles MacNeill 7:1add29d51e72 487 *
Charles MacNeill 7:1add29d51e72 488 * @return VL53L1_ERROR_NONE Success
Charles MacNeill 7:1add29d51e72 489 * @return "Other error code" See ::VL53L1_Error
Charles MacNeill 7:1add29d51e72 490 */
Charles MacNeill 7:1add29d51e72 491
Charles MacNeill 7:1add29d51e72 492
Charles MacNeill 7:1add29d51e72 493 VL53L1_Error VL53L1_SetDmaxMode(VL53L1_DEV Dev,
Charles MacNeill 7:1add29d51e72 494 VL53L1_DeviceDmaxModes DmaxMode);
Charles MacNeill 7:1add29d51e72 495
Charles MacNeill 7:1add29d51e72 496 /**
Charles MacNeill 7:1add29d51e72 497 * @brief Get function for ambient Dmax mode
Charles MacNeill 7:1add29d51e72 498 *
Charles MacNeill 7:1add29d51e72 499 * @param Dev Device Handle
Charles MacNeill 7:1add29d51e72 500 * @param pDmaxMode output pointer to DMAX mode currently in use
Charles MacNeill 7:1add29d51e72 501 *
Charles MacNeill 7:1add29d51e72 502 * @return VL53L1_ERROR_NONE Success
Charles MacNeill 7:1add29d51e72 503 * @return "Other error code" See ::VL53L1_Error
Charles MacNeill 7:1add29d51e72 504 */
Charles MacNeill 7:1add29d51e72 505
Charles MacNeill 7:1add29d51e72 506 VL53L1_Error VL53L1_GetDmaxMode(VL53L1_DEV Dev,
Charles MacNeill 7:1add29d51e72 507 VL53L1_DeviceDmaxModes *pDmaxMode);
Charles MacNeill 7:1add29d51e72 508
Charles MacNeill 7:1add29d51e72 509 /** @} VL53L1_parameters_group */
Charles MacNeill 7:1add29d51e72 510
Charles MacNeill 7:1add29d51e72 511
Charles MacNeill 7:1add29d51e72 512 /** @defgroup VL53L1_limitcheck_group VL53L1 Limit Check Functions
Charles MacNeill 7:1add29d51e72 513 * @brief Functions used for the Limit checks
Charles MacNeill 7:1add29d51e72 514 * @{
Charles MacNeill 7:1add29d51e72 515 */
Charles MacNeill 7:1add29d51e72 516
Charles MacNeill 7:1add29d51e72 517
Charles MacNeill 7:1add29d51e72 518
Charles MacNeill 7:1add29d51e72 519 /**
Charles MacNeill 7:1add29d51e72 520 * @brief Get the number of the check limit managed by a given Device
Charles MacNeill 7:1add29d51e72 521 *
Charles MacNeill 7:1add29d51e72 522 * @par Function Description
Charles MacNeill 7:1add29d51e72 523 * This function give the number of the check limit managed by the Device
Charles MacNeill 7:1add29d51e72 524 *
Charles MacNeill 7:1add29d51e72 525 * @param pNumberOfLimitCheck Pointer to the number of check limit.
Charles MacNeill 7:1add29d51e72 526 * @return VL53L1_ERROR_NONE Success
Charles MacNeill 7:1add29d51e72 527 * @return "Other error code" See ::VL53L1_Error
Charles MacNeill 7:1add29d51e72 528 */
Charles MacNeill 7:1add29d51e72 529 VL53L1_Error VL53L1_GetNumberOfLimitCheck(
Charles MacNeill 7:1add29d51e72 530 uint16_t *pNumberOfLimitCheck);
Charles MacNeill 7:1add29d51e72 531
Charles MacNeill 7:1add29d51e72 532 /**
Charles MacNeill 7:1add29d51e72 533 * @brief Return a description string for a given limit check number
Charles MacNeill 7:1add29d51e72 534 *
Charles MacNeill 7:1add29d51e72 535 * @par Function Description
Charles MacNeill 7:1add29d51e72 536 * This function returns a description string for a given limit check number.
Charles MacNeill 7:1add29d51e72 537 * The limit check is identified with the LimitCheckId.
Charles MacNeill 7:1add29d51e72 538 *
Charles MacNeill 7:1add29d51e72 539 * @param LimitCheckId Limit Check ID
Charles MacNeill 7:1add29d51e72 540 * (0<= LimitCheckId < VL53L1_GetNumberOfLimitCheck() ).
Charles MacNeill 7:1add29d51e72 541 * @param pLimitCheckString Pointer to the description string of
Charles MacNeill 7:1add29d51e72 542 * the given check limit. Shall be defined as char buf[VL53L1_MAX_STRING_LENGTH]
Charles MacNeill 7:1add29d51e72 543 * @return VL53L1_ERROR_NONE Success
Charles MacNeill 7:1add29d51e72 544 * @return "Other error code" See ::VL53L1_Error
Charles MacNeill 7:1add29d51e72 545 */
Charles MacNeill 7:1add29d51e72 546 VL53L1_Error VL53L1_GetLimitCheckInfo(uint16_t LimitCheckId,
Charles MacNeill 7:1add29d51e72 547 char *pLimitCheckString);
Charles MacNeill 7:1add29d51e72 548
Charles MacNeill 7:1add29d51e72 549 /**
Charles MacNeill 7:1add29d51e72 550 * @brief Return a the Status of the specified check limit
Charles MacNeill 7:1add29d51e72 551 *
Charles MacNeill 7:1add29d51e72 552 * @par Function Description
Charles MacNeill 7:1add29d51e72 553 * This function returns the Status of the specified check limit.
Charles MacNeill 7:1add29d51e72 554 * The value indicate if the check is fail or not.
Charles MacNeill 7:1add29d51e72 555 * The limit check is identified with the LimitCheckId.
Charles MacNeill 7:1add29d51e72 556 *
Charles MacNeill 7:1add29d51e72 557 * @param Dev Device Handle
Charles MacNeill 7:1add29d51e72 558 * @param LimitCheckId Limit Check ID
Charles MacNeill 7:1add29d51e72 559 (0<= LimitCheckId < VL53L1_GetNumberOfLimitCheck() ).
Charles MacNeill 7:1add29d51e72 560 * @param pLimitCheckStatus Pointer to the
Charles MacNeill 7:1add29d51e72 561 Limit Check Status of the given check limit.
Charles MacNeill 7:1add29d51e72 562 * LimitCheckStatus :
Charles MacNeill 7:1add29d51e72 563 * 0 the check is not fail or not enabled
Charles MacNeill 7:1add29d51e72 564 * 1 the check if fail
Charles MacNeill 7:1add29d51e72 565 *
Charles MacNeill 7:1add29d51e72 566 * <p><ul>
Charles MacNeill 7:1add29d51e72 567 * <li>VL53L1_CHECKENABLE_SIGMA_FINAL_RANGE: the sigma indicate the quality
Charles MacNeill 7:1add29d51e72 568 * of the measure. The more it is little the better it is.
Charles MacNeill 7:1add29d51e72 569 * The status is 1 when current sigma is greater then the limit.</li>
Charles MacNeill 7:1add29d51e72 570 * <li>VL53L1_CHECKENABLE_SIGNAL_RATE_FINAL_RANGE: the signal rate indicate
Charles MacNeill 7:1add29d51e72 571 * the strength of the returned signal. The more it is big the better it is.
Charles MacNeill 7:1add29d51e72 572 * The status is 1 when current signal is lower then the limit.</li>
Charles MacNeill 7:1add29d51e72 573 * </ul></p>
Charles MacNeill 7:1add29d51e72 574 *
Charles MacNeill 7:1add29d51e72 575 *
Charles MacNeill 7:1add29d51e72 576 * @return VL53L1_ERROR_NONE Success
Charles MacNeill 7:1add29d51e72 577 * @return "Other error code" See ::VL53L1_Error
Charles MacNeill 7:1add29d51e72 578 */
Charles MacNeill 7:1add29d51e72 579 VL53L1_Error VL53L1_GetLimitCheckStatus(VL53L1_DEV Dev,
Charles MacNeill 7:1add29d51e72 580 uint16_t LimitCheckId, uint8_t *pLimitCheckStatus);
Charles MacNeill 7:1add29d51e72 581
Charles MacNeill 7:1add29d51e72 582 /**
Charles MacNeill 7:1add29d51e72 583 * @brief Enable/Disable a specific limit check
Charles MacNeill 7:1add29d51e72 584 *
Charles MacNeill 7:1add29d51e72 585 * @par Function Description
Charles MacNeill 7:1add29d51e72 586 * This function Enable/Disable a specific limit check.
Charles MacNeill 7:1add29d51e72 587 * The limit check is identified with the LimitCheckId.
Charles MacNeill 7:1add29d51e72 588 *
Charles MacNeill 7:1add29d51e72 589 * @note This function doesn't Access to the device
Charles MacNeill 7:1add29d51e72 590 *
Charles MacNeill 7:1add29d51e72 591 * @param Dev Device Handle
Charles MacNeill 7:1add29d51e72 592 * @param LimitCheckId Limit Check ID
Charles MacNeill 7:1add29d51e72 593 * (0<= LimitCheckId < VL53L1_GetNumberOfLimitCheck() ).
Charles MacNeill 7:1add29d51e72 594 * @param LimitCheckEnable
Charles MacNeill 7:1add29d51e72 595 * @li set LimitCheckEnable=1 enables the LimitCheckId limit
Charles MacNeill 7:1add29d51e72 596 * @li set LimitCheckEnable=0 disables the LimitCheckId limit
Charles MacNeill 7:1add29d51e72 597 * @return VL53L1_ERROR_NONE Success
Charles MacNeill 7:1add29d51e72 598 * @return VL53L1_ERROR_INVALID_PARAMS This error is returned
Charles MacNeill 7:1add29d51e72 599 * when LimitCheckId value is out of range.
Charles MacNeill 7:1add29d51e72 600 * @return "Other error code" See ::VL53L1_Error
Charles MacNeill 7:1add29d51e72 601 */
Charles MacNeill 7:1add29d51e72 602 VL53L1_Error VL53L1_SetLimitCheckEnable(VL53L1_DEV Dev,
Charles MacNeill 7:1add29d51e72 603 uint16_t LimitCheckId, uint8_t LimitCheckEnable);
Charles MacNeill 7:1add29d51e72 604
Charles MacNeill 7:1add29d51e72 605 /**
Charles MacNeill 7:1add29d51e72 606 * @brief Get specific limit check enable state
Charles MacNeill 7:1add29d51e72 607 *
Charles MacNeill 7:1add29d51e72 608 * @par Function Description
Charles MacNeill 7:1add29d51e72 609 * This function get the enable state of a specific limit check.
Charles MacNeill 7:1add29d51e72 610 * The limit check is identified with the LimitCheckId.
Charles MacNeill 7:1add29d51e72 611 *
Charles MacNeill 7:1add29d51e72 612 * @note This function Access to the device
Charles MacNeill 7:1add29d51e72 613 *
Charles MacNeill 7:1add29d51e72 614 * @param Dev Device Handle
Charles MacNeill 7:1add29d51e72 615 * @param LimitCheckId Limit Check ID
Charles MacNeill 7:1add29d51e72 616 * (0<= LimitCheckId < VL53L1_GetNumberOfLimitCheck() ).
Charles MacNeill 7:1add29d51e72 617 * @param pLimitCheckEnable Pointer to the check limit enable
Charles MacNeill 7:1add29d51e72 618 * value.
Charles MacNeill 7:1add29d51e72 619 * @li if 1 the check limit corresponding to LimitCheckId is Enabled
Charles MacNeill 7:1add29d51e72 620 * @li if 0 the check limit corresponding to LimitCheckId is disabled
Charles MacNeill 7:1add29d51e72 621 * @return VL53L1_ERROR_NONE Success
Charles MacNeill 7:1add29d51e72 622 * @return VL53L1_ERROR_INVALID_PARAMS This error is returned
Charles MacNeill 7:1add29d51e72 623 * when LimitCheckId value is out of range.
Charles MacNeill 7:1add29d51e72 624 * @return "Other error code" See ::VL53L1_Error
Charles MacNeill 7:1add29d51e72 625 */
Charles MacNeill 7:1add29d51e72 626 VL53L1_Error VL53L1_GetLimitCheckEnable(VL53L1_DEV Dev,
Charles MacNeill 7:1add29d51e72 627 uint16_t LimitCheckId, uint8_t *pLimitCheckEnable);
Charles MacNeill 7:1add29d51e72 628
Charles MacNeill 7:1add29d51e72 629 /**
Charles MacNeill 7:1add29d51e72 630 * @brief Set a specific limit check value
Charles MacNeill 7:1add29d51e72 631 *
Charles MacNeill 7:1add29d51e72 632 * @par Function Description
Charles MacNeill 7:1add29d51e72 633 * This function set a specific limit check value.
Charles MacNeill 7:1add29d51e72 634 * The limit check is identified with the LimitCheckId.
Charles MacNeill 7:1add29d51e72 635 *
Charles MacNeill 7:1add29d51e72 636 * @note Note that the value written with that function will not be applied if
Charles MacNeill 7:1add29d51e72 637 * the limit is not enabled. In other words this function will not enable the
Charles MacNeill 7:1add29d51e72 638 * limit but change only the value. In case the limit is not enabled the value
Charles MacNeill 7:1add29d51e72 639 * is saved internally and applied with VL53L1_SetLimitCheckEnable.
Charles MacNeill 7:1add29d51e72 640 *
Charles MacNeill 7:1add29d51e72 641 * @param Dev Device Handle
Charles MacNeill 7:1add29d51e72 642 * @param LimitCheckId Limit Check ID
Charles MacNeill 7:1add29d51e72 643 * (0<= LimitCheckId < VL53L1_GetNumberOfLimitCheck() ).
Charles MacNeill 7:1add29d51e72 644 * @param LimitCheckValue Limit check Value for a given
Charles MacNeill 7:1add29d51e72 645 * LimitCheckId
Charles MacNeill 7:1add29d51e72 646 * @return VL53L1_ERROR_NONE Success
Charles MacNeill 7:1add29d51e72 647 * @return "Other error code" See ::VL53L1_Error
Charles MacNeill 7:1add29d51e72 648 */
Charles MacNeill 7:1add29d51e72 649 VL53L1_Error VL53L1_SetLimitCheckValue(VL53L1_DEV Dev,
Charles MacNeill 7:1add29d51e72 650 uint16_t LimitCheckId, FixPoint1616_t LimitCheckValue);
Charles MacNeill 7:1add29d51e72 651
Charles MacNeill 7:1add29d51e72 652 /**
Charles MacNeill 7:1add29d51e72 653 * @brief Get a specific limit check value
Charles MacNeill 7:1add29d51e72 654 *
Charles MacNeill 7:1add29d51e72 655 * @par Function Description
Charles MacNeill 7:1add29d51e72 656 * This function get a specific limit check value from device then it updates
Charles MacNeill 7:1add29d51e72 657 * internal values and check enables.
Charles MacNeill 7:1add29d51e72 658 * The limit check is identified with the LimitCheckId.
Charles MacNeill 7:1add29d51e72 659 *
Charles MacNeill 7:1add29d51e72 660 * @note This function get the current value from device if zero then the value
Charles MacNeill 7:1add29d51e72 661 * returned is the one stored by the user, but in that case the check is store
Charles MacNeill 7:1add29d51e72 662 * as disabled. If the value from device is not zero, this is returned and set
Charles MacNeill 7:1add29d51e72 663 * into the memory at the same way that user call VL53L1_SetLimitCheckValue()
Charles MacNeill 7:1add29d51e72 664 *
Charles MacNeill 7:1add29d51e72 665 * @param Dev Device Handle
Charles MacNeill 7:1add29d51e72 666 * @param LimitCheckId Limit Check ID
Charles MacNeill 7:1add29d51e72 667 * (0<= LimitCheckId < VL53L1_GetNumberOfLimitCheck() ).
Charles MacNeill 7:1add29d51e72 668 * @param pLimitCheckValue Pointer to Limit
Charles MacNeill 7:1add29d51e72 669 * check Value for a given LimitCheckId.
Charles MacNeill 7:1add29d51e72 670 * @return VL53L1_ERROR_NONE Success
Charles MacNeill 7:1add29d51e72 671 * @return "Other error code" See ::VL53L1_Error
Charles MacNeill 7:1add29d51e72 672 */
Charles MacNeill 7:1add29d51e72 673 VL53L1_Error VL53L1_GetLimitCheckValue(VL53L1_DEV Dev,
Charles MacNeill 7:1add29d51e72 674 uint16_t LimitCheckId, FixPoint1616_t *pLimitCheckValue);
Charles MacNeill 7:1add29d51e72 675
Charles MacNeill 7:1add29d51e72 676 /**
Charles MacNeill 7:1add29d51e72 677 * @brief Get the current value of the signal used for the limit check
Charles MacNeill 7:1add29d51e72 678 *
Charles MacNeill 7:1add29d51e72 679 * @par Function Description
Charles MacNeill 7:1add29d51e72 680 * This function get a the current value of the signal used for the limit check.
Charles MacNeill 7:1add29d51e72 681 * To obtain the latest value you should run a valid ranging before.
Charles MacNeill 7:1add29d51e72 682 * The value reported is linked to the limit check identified with the
Charles MacNeill 7:1add29d51e72 683 * LimitCheckId.
Charles MacNeill 7:1add29d51e72 684 *
Charles MacNeill 7:1add29d51e72 685 * @param Dev Device Handle
Charles MacNeill 7:1add29d51e72 686 * @param LimitCheckId Limit Check ID
Charles MacNeill 7:1add29d51e72 687 * (0<= LimitCheckId < VL53L1_GetNumberOfLimitCheck() ).
Charles MacNeill 7:1add29d51e72 688 * @param pLimitCheckCurrent Pointer to current Value for a
Charles MacNeill 7:1add29d51e72 689 * given LimitCheckId.
Charles MacNeill 7:1add29d51e72 690 * @return VL53L1_ERROR_NONE Success
Charles MacNeill 7:1add29d51e72 691 * @return "Other error code" See ::VL53L1_Error
Charles MacNeill 7:1add29d51e72 692 */
Charles MacNeill 7:1add29d51e72 693 VL53L1_Error VL53L1_GetLimitCheckCurrent(VL53L1_DEV Dev,
Charles MacNeill 7:1add29d51e72 694 uint16_t LimitCheckId, FixPoint1616_t *pLimitCheckCurrent);
Charles MacNeill 7:1add29d51e72 695
Charles MacNeill 7:1add29d51e72 696 /** @} VL53L1_limitcheck_group */
Charles MacNeill 7:1add29d51e72 697
Charles MacNeill 7:1add29d51e72 698
Charles MacNeill 7:1add29d51e72 699
Charles MacNeill 7:1add29d51e72 700 /** @defgroup VL53L1_ROI_group VL53L1 ROI Functions
Charles MacNeill 7:1add29d51e72 701 * @brief Functions used to select ROIs
Charles MacNeill 7:1add29d51e72 702 * @{
Charles MacNeill 7:1add29d51e72 703 */
Charles MacNeill 7:1add29d51e72 704
Charles MacNeill 7:1add29d51e72 705 /**
Charles MacNeill 7:1add29d51e72 706 * @brief Get the Maximum number of ROI Zones managed by the Device
Charles MacNeill 7:1add29d51e72 707 *
Charles MacNeill 7:1add29d51e72 708 * @par Function Description
Charles MacNeill 7:1add29d51e72 709 * Get Maximum number of ROI Zones managed by the Device.
Charles MacNeill 7:1add29d51e72 710 *
Charles MacNeill 7:1add29d51e72 711 * @note The number of Zone depends on the preset mode used so to have the
Charles MacNeill 7:1add29d51e72 712 * right number this function should be call after @a VL53L1_SetPresetMode()
Charles MacNeill 7:1add29d51e72 713 * @note This function doesn't Access to the device
Charles MacNeill 7:1add29d51e72 714 *
Charles MacNeill 7:1add29d51e72 715 * @param Dev Device Handle
Charles MacNeill 7:1add29d51e72 716 * @param pMaxNumberOfROI Pointer to the Maximum Number
Charles MacNeill 7:1add29d51e72 717 * of ROI Zones value.
Charles MacNeill 7:1add29d51e72 718 * @return VL53L1_ERROR_NONE Success
Charles MacNeill 7:1add29d51e72 719 * @return "Other error code" See ::VL53L1_Error
Charles MacNeill 7:1add29d51e72 720 */
Charles MacNeill 7:1add29d51e72 721 VL53L1_Error VL53L1_GetMaxNumberOfROI(VL53L1_DEV Dev,
Charles MacNeill 7:1add29d51e72 722 uint8_t *pMaxNumberOfROI);
Charles MacNeill 7:1add29d51e72 723 /**
Charles MacNeill 7:1add29d51e72 724 * @brief Set the ROI to be used for ranging
Charles MacNeill 7:1add29d51e72 725 *
Charles MacNeill 7:1add29d51e72 726 * @par Function Description
Charles MacNeill 7:1add29d51e72 727 * The user defined ROIs are rectangles described as per the following system
Charles MacNeill 7:1add29d51e72 728 * from the Top Left corner to the Bottom Right corner.
Charles MacNeill 7:1add29d51e72 729 * <br>Minimal ROI size is 4x4 spads
Charles MacNeill 7:1add29d51e72 730 * @image html roi_coord.png
Charles MacNeill 7:1add29d51e72 731 *
Charles MacNeill 7:1add29d51e72 732 * @param Dev Device Handle
Charles MacNeill 7:1add29d51e72 733 * @param pRoiConfig Pointer to the Structure containing all the
Charles MacNeill 7:1add29d51e72 734 * ROI to be used.
Charles MacNeill 7:1add29d51e72 735 * @return VL53L1_ERROR_NONE Success
Charles MacNeill 7:1add29d51e72 736 * @return "Other error code" See ::VL53L1_Error
Charles MacNeill 7:1add29d51e72 737 */
Charles MacNeill 7:1add29d51e72 738 VL53L1_Error VL53L1_SetROI(VL53L1_DEV Dev,
Charles MacNeill 7:1add29d51e72 739 VL53L1_RoiConfig_t *pRoiConfig);
Charles MacNeill 7:1add29d51e72 740
Charles MacNeill 7:1add29d51e72 741 /**
Charles MacNeill 7:1add29d51e72 742 * @brief Get the ROI managed by the Device
Charles MacNeill 7:1add29d51e72 743 *
Charles MacNeill 7:1add29d51e72 744 * @par Function Description
Charles MacNeill 7:1add29d51e72 745 * Get the ROI managed by the Device
Charles MacNeill 7:1add29d51e72 746 *
Charles MacNeill 7:1add29d51e72 747 * @param Dev Device Handle
Charles MacNeill 7:1add29d51e72 748 * @param pRoiConfig Pointer to the Structure containing all the
Charles MacNeill 7:1add29d51e72 749 * ROI to be used.
Charles MacNeill 7:1add29d51e72 750 * @return VL53L1_ERROR_NONE Success
Charles MacNeill 7:1add29d51e72 751 * @return "Other error code" See ::VL53L1_Error
Charles MacNeill 7:1add29d51e72 752 */
Charles MacNeill 7:1add29d51e72 753 VL53L1_Error VL53L1_GetROI(VL53L1_DEV Dev,
Charles MacNeill 7:1add29d51e72 754 VL53L1_RoiConfig_t *pRoiConfig);
Charles MacNeill 7:1add29d51e72 755
Charles MacNeill 7:1add29d51e72 756 /** @} VL53L1_ROI_group */
Charles MacNeill 7:1add29d51e72 757
Charles MacNeill 7:1add29d51e72 758 /* \internal */
Charles MacNeill 7:1add29d51e72 759 /** @defgroup VL53L1_sequencestep_group VL53L1 Sequence Step Functions
Charles MacNeill 7:1add29d51e72 760 * @brief Functions used to select Steps done on each ranging
Charles MacNeill 7:1add29d51e72 761 * @{
Charles MacNeill 7:1add29d51e72 762 */
Charles MacNeill 7:1add29d51e72 763
Charles MacNeill 7:1add29d51e72 764 /**
Charles MacNeill 7:1add29d51e72 765 * @brief Gets number of sequence steps managed by the API.
Charles MacNeill 7:1add29d51e72 766 *
Charles MacNeill 7:1add29d51e72 767 * @par Function Description
Charles MacNeill 7:1add29d51e72 768 * This function retrieves the number of sequence steps currently managed
Charles MacNeill 7:1add29d51e72 769 * by the API
Charles MacNeill 7:1add29d51e72 770 *
Charles MacNeill 7:1add29d51e72 771 * @note This function Accesses the device
Charles MacNeill 7:1add29d51e72 772 *
Charles MacNeill 7:1add29d51e72 773 * @param Dev Device Handle
Charles MacNeill 7:1add29d51e72 774 * @param pNumberOfSequenceSteps Out parameter reporting the number of
Charles MacNeill 7:1add29d51e72 775 * sequence steps.
Charles MacNeill 7:1add29d51e72 776 * @return VL53L1_ERROR_NONE Success
Charles MacNeill 7:1add29d51e72 777 * @return "Other error code" See ::VL53L1_Error
Charles MacNeill 7:1add29d51e72 778 */
Charles MacNeill 7:1add29d51e72 779 VL53L1_Error VL53L1_GetNumberOfSequenceSteps(VL53L1_DEV Dev,
Charles MacNeill 7:1add29d51e72 780 uint8_t *pNumberOfSequenceSteps);
Charles MacNeill 7:1add29d51e72 781
Charles MacNeill 7:1add29d51e72 782 /**
Charles MacNeill 7:1add29d51e72 783 * @brief Gets the name of a given sequence step.
Charles MacNeill 7:1add29d51e72 784 *
Charles MacNeill 7:1add29d51e72 785 * @par Function Description
Charles MacNeill 7:1add29d51e72 786 * This function retrieves the name of sequence steps corresponding to
Charles MacNeill 7:1add29d51e72 787 * SequenceStepId.
Charles MacNeill 7:1add29d51e72 788 *
Charles MacNeill 7:1add29d51e72 789 * @note This function doesn't Accesses the device
Charles MacNeill 7:1add29d51e72 790 *
Charles MacNeill 7:1add29d51e72 791 * @param SequenceStepId Sequence step identifier.
Charles MacNeill 7:1add29d51e72 792 * @param pSequenceStepsString Pointer to Info string. Shall be
Charles MacNeill 7:1add29d51e72 793 * defined as char buf[VL53L1_MAX_STRING_LENGTH]
Charles MacNeill 7:1add29d51e72 794 * @return VL53L1_ERROR_NONE Success
Charles MacNeill 7:1add29d51e72 795 * @return "Other error code" See ::VL53L1_Error
Charles MacNeill 7:1add29d51e72 796 */
Charles MacNeill 7:1add29d51e72 797 VL53L1_Error VL53L1_GetSequenceStepsInfo(
Charles MacNeill 7:1add29d51e72 798 VL53L1_SequenceStepId SequenceStepId, char *pSequenceStepsString);
Charles MacNeill 7:1add29d51e72 799
Charles MacNeill 7:1add29d51e72 800
Charles MacNeill 7:1add29d51e72 801
Charles MacNeill 7:1add29d51e72 802 /**
Charles MacNeill 7:1add29d51e72 803 * @brief Sets the (on/off) state of a requested sequence step.
Charles MacNeill 7:1add29d51e72 804 *
Charles MacNeill 7:1add29d51e72 805 * @par Function Description
Charles MacNeill 7:1add29d51e72 806 * This function enables/disables a requested sequence step.
Charles MacNeill 7:1add29d51e72 807 *
Charles MacNeill 7:1add29d51e72 808 * @note This function Accesses the device
Charles MacNeill 7:1add29d51e72 809 *
Charles MacNeill 7:1add29d51e72 810 * @param Dev Device Handle
Charles MacNeill 7:1add29d51e72 811 * @param SequenceStepId Sequence step identifier.
Charles MacNeill 7:1add29d51e72 812 * @param SequenceStepEnabled Demanded state {0=Off,1=On}
Charles MacNeill 7:1add29d51e72 813 * is enabled.
Charles MacNeill 7:1add29d51e72 814 * @return VL53L1_ERROR_NONE Success
Charles MacNeill 7:1add29d51e72 815 * @return VL53L1_ERROR_INVALID_PARAMS Error SequenceStepId parameter not
Charles MacNeill 7:1add29d51e72 816 * supported.
Charles MacNeill 7:1add29d51e72 817 * @return "Other error code" See ::VL53L1_Error
Charles MacNeill 7:1add29d51e72 818 */
Charles MacNeill 7:1add29d51e72 819 VL53L1_Error VL53L1_SetSequenceStepEnable(VL53L1_DEV Dev,
Charles MacNeill 7:1add29d51e72 820 VL53L1_SequenceStepId SequenceStepId, uint8_t SequenceStepEnabled);
Charles MacNeill 7:1add29d51e72 821
Charles MacNeill 7:1add29d51e72 822 /**
Charles MacNeill 7:1add29d51e72 823 * @brief Gets the (on/off) state of a requested sequence step.
Charles MacNeill 7:1add29d51e72 824 *
Charles MacNeill 7:1add29d51e72 825 * @par Function Description
Charles MacNeill 7:1add29d51e72 826 * This function retrieves the state of a requested sequence step, i.e. on/off.
Charles MacNeill 7:1add29d51e72 827 *
Charles MacNeill 7:1add29d51e72 828 * @note This function Accesses the device
Charles MacNeill 7:1add29d51e72 829 *
Charles MacNeill 7:1add29d51e72 830 * @param Dev Device Handle
Charles MacNeill 7:1add29d51e72 831 * @param SequenceStepId Sequence step identifier.
Charles MacNeill 7:1add29d51e72 832 * @param pSequenceStepEnabled Out parameter reporting if the sequence step
Charles MacNeill 7:1add29d51e72 833 * is enabled {0=Off,1=On}.
Charles MacNeill 7:1add29d51e72 834 * @return VL53L1_ERROR_NONE Success
Charles MacNeill 7:1add29d51e72 835 * @return VL53L1_ERROR_INVALID_PARAMS Error SequenceStepId parameter not
Charles MacNeill 7:1add29d51e72 836 * supported.
Charles MacNeill 7:1add29d51e72 837 * @return "Other error code" See ::VL53L1_Error
Charles MacNeill 7:1add29d51e72 838 */
Charles MacNeill 7:1add29d51e72 839 VL53L1_Error VL53L1_GetSequenceStepEnable(VL53L1_DEV Dev,
Charles MacNeill 7:1add29d51e72 840 VL53L1_SequenceStepId SequenceStepId, uint8_t *pSequenceStepEnabled);
Charles MacNeill 7:1add29d51e72 841
Charles MacNeill 7:1add29d51e72 842
Charles MacNeill 7:1add29d51e72 843 /** @} VL53L1_sequencestep_group */
Charles MacNeill 7:1add29d51e72 844 /* \endinternal */
Charles MacNeill 7:1add29d51e72 845
Charles MacNeill 7:1add29d51e72 846
Charles MacNeill 7:1add29d51e72 847
Charles MacNeill 7:1add29d51e72 848 /** @defgroup VL53L1_measurement_group VL53L1 Measurement Functions
Charles MacNeill 7:1add29d51e72 849 * @brief Functions used for the measurements
Charles MacNeill 7:1add29d51e72 850 * @{
Charles MacNeill 7:1add29d51e72 851 */
Charles MacNeill 7:1add29d51e72 852
Charles MacNeill 7:1add29d51e72 853 /**
Charles MacNeill 7:1add29d51e72 854 * @brief Start device measurement
Charles MacNeill 7:1add29d51e72 855 *
Charles MacNeill 7:1add29d51e72 856 * @details Started measurement will depend on preset parameters set through
Charles MacNeill 7:1add29d51e72 857 * @a VL53L1_SetPreseMode()
Charles MacNeill 7:1add29d51e72 858 * This function will change the VL53L1_State from VL53L1_STATE_IDLE to
Charles MacNeill 7:1add29d51e72 859 * VL53L1_STATE_RUNNING.
Charles MacNeill 7:1add29d51e72 860 *
Charles MacNeill 7:1add29d51e72 861 * @note This function Access to the device
Charles MacNeill 7:1add29d51e72 862 *
Charles MacNeill 7:1add29d51e72 863 * @param Dev Device Handle
Charles MacNeill 7:1add29d51e72 864 * @return VL53L1_ERROR_NONE Success
Charles MacNeill 7:1add29d51e72 865 * @return VL53L1_ERROR_MODE_NOT_SUPPORTED This error occurs when
Charles MacNeill 7:1add29d51e72 866 * PresetMode programmed with @a VL53L1_SetPresetMode
Charles MacNeill 7:1add29d51e72 867 * @return VL53L1_ERROR_TIME_OUT Time out on start measurement
Charles MacNeill 7:1add29d51e72 868 * @return VL53L1_ERROR_INVALID_PARAMS This error might occur in timed mode
Charles MacNeill 7:1add29d51e72 869 * when inter measurement period is smaller or too close to the timing budget.
Charles MacNeill 7:1add29d51e72 870 * In such case measurements are not started and user must correct the timings
Charles MacNeill 7:1add29d51e72 871 * passed to @a VL53L1_SetMeasurementTimingBudgetMicroSeconds() and
Charles MacNeill 7:1add29d51e72 872 * @a VL53L1_SetInterMeasurementPeriodMilliSeconds() functions.
Charles MacNeill 7:1add29d51e72 873 * @return "Other error code" See ::VL53L1_Error
Charles MacNeill 7:1add29d51e72 874 */
Charles MacNeill 7:1add29d51e72 875 VL53L1_Error VL53L1_StartMeasurement(VL53L1_DEV Dev);
Charles MacNeill 7:1add29d51e72 876
Charles MacNeill 7:1add29d51e72 877 /**
Charles MacNeill 7:1add29d51e72 878 * @brief Stop device measurement
Charles MacNeill 7:1add29d51e72 879 *
Charles MacNeill 7:1add29d51e72 880 * @details Will set the device in standby mode at end of current measurement\n
Charles MacNeill 7:1add29d51e72 881 * Not necessary in single mode as device shall return automatically
Charles MacNeill 7:1add29d51e72 882 * in standby mode at end of measurement.
Charles MacNeill 7:1add29d51e72 883 * This function will change the VL53L1_State from VL53L1_STATE_RUNNING
Charles MacNeill 7:1add29d51e72 884 * to VL53L1_STATE_IDLE.
Charles MacNeill 7:1add29d51e72 885 *
Charles MacNeill 7:1add29d51e72 886 * @note This function Access to the device
Charles MacNeill 7:1add29d51e72 887 *
Charles MacNeill 7:1add29d51e72 888 * @param Dev Device Handle
Charles MacNeill 7:1add29d51e72 889 * @return VL53L1_ERROR_NONE Success
Charles MacNeill 7:1add29d51e72 890 * @return "Other error code" See ::VL53L1_Error
Charles MacNeill 7:1add29d51e72 891 */
Charles MacNeill 7:1add29d51e72 892 VL53L1_Error VL53L1_StopMeasurement(VL53L1_DEV Dev);
Charles MacNeill 7:1add29d51e72 893
Charles MacNeill 7:1add29d51e72 894 /**
Charles MacNeill 7:1add29d51e72 895 * @brief Clear the Interrupt flag and start new measurement
Charles MacNeill 7:1add29d51e72 896 * *
Charles MacNeill 7:1add29d51e72 897 * @note This function Access to the device
Charles MacNeill 7:1add29d51e72 898 *
Charles MacNeill 7:1add29d51e72 899 * @param Dev Device Handle
Charles MacNeill 7:1add29d51e72 900 * @return VL53L1_ERROR_NONE Success
Charles MacNeill 7:1add29d51e72 901 * @return "Other error code" See ::VL53L1_Error
Charles MacNeill 7:1add29d51e72 902 */
Charles MacNeill 7:1add29d51e72 903 VL53L1_Error VL53L1_ClearInterruptAndStartMeasurement(VL53L1_DEV Dev);
Charles MacNeill 7:1add29d51e72 904
Charles MacNeill 7:1add29d51e72 905 /**
Charles MacNeill 7:1add29d51e72 906 * @brief Return Measurement Data Ready
Charles MacNeill 7:1add29d51e72 907 *
Charles MacNeill 7:1add29d51e72 908 * @par Function Description
Charles MacNeill 7:1add29d51e72 909 * This function indicate that a measurement data is ready.
Charles MacNeill 7:1add29d51e72 910 * This function is used for non-blocking capture.
Charles MacNeill 7:1add29d51e72 911 *
Charles MacNeill 7:1add29d51e72 912 * @note This function Access to the device
Charles MacNeill 7:1add29d51e72 913 *
Charles MacNeill 7:1add29d51e72 914 * @param Dev Device Handle
Charles MacNeill 7:1add29d51e72 915 * @param pMeasurementDataReady Pointer to Measurement Data Ready.
Charles MacNeill 7:1add29d51e72 916 * 0 = data not ready, 1 = data ready
Charles MacNeill 7:1add29d51e72 917 * @return VL53L1_ERROR_NONE Success
Charles MacNeill 7:1add29d51e72 918 * @return "Other error code" See ::VL53L1_Error
Charles MacNeill 7:1add29d51e72 919 */
Charles MacNeill 7:1add29d51e72 920 VL53L1_Error VL53L1_GetMeasurementDataReady(VL53L1_DEV Dev,
Charles MacNeill 7:1add29d51e72 921 uint8_t *pMeasurementDataReady);
Charles MacNeill 7:1add29d51e72 922
Charles MacNeill 7:1add29d51e72 923 /**
Charles MacNeill 7:1add29d51e72 924 * @brief Wait for measurement data ready.
Charles MacNeill 7:1add29d51e72 925 * Blocking function.
Charles MacNeill 7:1add29d51e72 926 * Note that the timeout is given by:
Charles MacNeill 7:1add29d51e72 927 * VL53L1_RANGE_COMPLETION_POLLING_TIMEOUT_MS defined in def.h
Charles MacNeill 7:1add29d51e72 928 *
Charles MacNeill 7:1add29d51e72 929 *
Charles MacNeill 7:1add29d51e72 930 * @note This function Access to the device
Charles MacNeill 7:1add29d51e72 931 *
Charles MacNeill 7:1add29d51e72 932 * @param Dev Device Handle
Charles MacNeill 7:1add29d51e72 933 * @return VL53L1_ERROR_NONE Success
Charles MacNeill 7:1add29d51e72 934 * @return VL53L1_ERROR_TIME_OUT In case of timeout
Charles MacNeill 7:1add29d51e72 935 */
Charles MacNeill 7:1add29d51e72 936 VL53L1_Error VL53L1_WaitMeasurementDataReady(VL53L1_DEV Dev);
Charles MacNeill 7:1add29d51e72 937
Charles MacNeill 7:1add29d51e72 938
Charles MacNeill 7:1add29d51e72 939 /**
Charles MacNeill 7:1add29d51e72 940 * @brief Retrieve the measurements from device for a given setup
Charles MacNeill 7:1add29d51e72 941 *
Charles MacNeill 7:1add29d51e72 942 * @par Function Description
Charles MacNeill 7:1add29d51e72 943 * Get data from last successful Ranging measurement
Charles MacNeill 7:1add29d51e72 944 */
Charles MacNeill 7:1add29d51e72 945 /**
Charles MacNeill 7:1add29d51e72 946 * @warning this function will return only the first ROI data and only the
Charles MacNeill 7:1add29d51e72 947 * first object. For multi objects or multi ROI use:
Charles MacNeill 7:1add29d51e72 948 * @a Vl53L1_GetMultiRangingData.
Charles MacNeill 7:1add29d51e72 949 * In case of RANGING only one output is given, this can
Charles MacNeill 7:1add29d51e72 950 * be selected with the help of @a VL53L1_SetOutputMode()
Charles MacNeill 7:1add29d51e72 951 * In case of MULTIZONES_SCANNING and error will be raised because not
Charles MacNeill 7:1add29d51e72 952 * supported in that function.
Charles MacNeill 7:1add29d51e72 953 */
Charles MacNeill 7:1add29d51e72 954 /**
Charles MacNeill 7:1add29d51e72 955 *
Charles MacNeill 7:1add29d51e72 956 * @warning USER must call @a VL53L1_ClearInterruptAndStartMeasurement() prior
Charles MacNeill 7:1add29d51e72 957 * to call again this function
Charles MacNeill 7:1add29d51e72 958 *
Charles MacNeill 7:1add29d51e72 959 * @note This function Access to the device
Charles MacNeill 7:1add29d51e72 960 *
Charles MacNeill 7:1add29d51e72 961 * @note The first valid value returned by this function will have a range
Charles MacNeill 7:1add29d51e72 962 * status equal to VL53L1_RANGESTATUS_RANGE_VALID_NO_WRAP_CHECK which means that
Charles MacNeill 7:1add29d51e72 963 * the data is valid but no wrap around check have been done. User should take
Charles MacNeill 7:1add29d51e72 964 * care about that.
Charles MacNeill 7:1add29d51e72 965 *
Charles MacNeill 7:1add29d51e72 966 * @param Dev Device Handle
Charles MacNeill 7:1add29d51e72 967 * @param pRangingMeasurementData Pointer to the data structure to fill up.
Charles MacNeill 7:1add29d51e72 968 * @return VL53L1_ERROR_NONE Success
Charles MacNeill 7:1add29d51e72 969 * @return VL53L1_ERROR_MODE_NOT_SUPPORTED in case of MULTIZONES_SCANNING
Charles MacNeill 7:1add29d51e72 970 * @return "Other error code" See ::VL53L1_Error
Charles MacNeill 7:1add29d51e72 971 */
Charles MacNeill 7:1add29d51e72 972 VL53L1_Error VL53L1_GetRangingMeasurementData(VL53L1_DEV Dev,
Charles MacNeill 7:1add29d51e72 973 VL53L1_RangingMeasurementData_t *pRangingMeasurementData);
Charles MacNeill 7:1add29d51e72 974
Charles MacNeill 7:1add29d51e72 975 /**
Charles MacNeill 7:1add29d51e72 976 * @brief Retrieve all ROI's measurements from device for a given setup
Charles MacNeill 7:1add29d51e72 977 *
Charles MacNeill 7:1add29d51e72 978 * @par Function Description
Charles MacNeill 7:1add29d51e72 979 * Get data from last successful Ranging measurement
Charles MacNeill 7:1add29d51e72 980 * @warning USER should take care about @a VL53L1_GetNumberOfROI()
Charles MacNeill 7:1add29d51e72 981 * before get data.
Charles MacNeill 7:1add29d51e72 982 * Bare driver will fill a NumberOfROI times the corresponding data
Charles MacNeill 7:1add29d51e72 983 * structure used in the measurement function.
Charles MacNeill 7:1add29d51e72 984 *
Charles MacNeill 7:1add29d51e72 985 * @warning USER must call @a VL53L1_ClearInterruptAndStartMeasurement() prior
Charles MacNeill 7:1add29d51e72 986 * to call again this function
Charles MacNeill 7:1add29d51e72 987 *
Charles MacNeill 7:1add29d51e72 988 * @note This function Access to the device
Charles MacNeill 7:1add29d51e72 989 *
Charles MacNeill 7:1add29d51e72 990 * @note The first valid value returned by this function will have a range
Charles MacNeill 7:1add29d51e72 991 * status equal to VL53L1_RANGESTATUS_RANGE_VALID_NO_WRAP_CHECK which means that
Charles MacNeill 7:1add29d51e72 992 * the data is valid but no wrap around check have been done. User should take
Charles MacNeill 7:1add29d51e72 993 * care about that.
Charles MacNeill 7:1add29d51e72 994 *
Charles MacNeill 7:1add29d51e72 995 * @param Dev Device Handle
Charles MacNeill 7:1add29d51e72 996 * @param pMultiRangingData Pointer to the data structure to fill up.
Charles MacNeill 7:1add29d51e72 997 * @return VL53L1_ERROR_NONE Success
Charles MacNeill 7:1add29d51e72 998 * @return "Other error code" See ::VL53L1_Error
Charles MacNeill 7:1add29d51e72 999 */
Charles MacNeill 7:1add29d51e72 1000 VL53L1_Error VL53L1_GetMultiRangingData(VL53L1_DEV Dev,
Charles MacNeill 7:1add29d51e72 1001 VL53L1_MultiRangingData_t *pMultiRangingData);
Charles MacNeill 7:1add29d51e72 1002
Charles MacNeill 7:1add29d51e72 1003 /**
Charles MacNeill 7:1add29d51e72 1004 * @brief Get Additional Data
Charles MacNeill 7:1add29d51e72 1005 *
Charles MacNeill 7:1add29d51e72 1006 * @par Function Description
Charles MacNeill 7:1add29d51e72 1007 * This function is used to get lld debugging data on the last histogram
Charles MacNeill 7:1add29d51e72 1008 * measurement. shall be called when a new measurement is ready (interrupt or
Charles MacNeill 7:1add29d51e72 1009 * positive VL53L1_GetMeasurementDataReady() polling) and before a call to
Charles MacNeill 7:1add29d51e72 1010 * VL53L1_ClearInterruptAndStartMeasurement(). Depending on the PresetMode
Charles MacNeill 7:1add29d51e72 1011 * currently set parts of the returned data structure may be not relevant.
Charles MacNeill 7:1add29d51e72 1012 *
Charles MacNeill 7:1add29d51e72 1013 * @param Dev Device Handle
Charles MacNeill 7:1add29d51e72 1014 * @param pAdditionalData Pointer to Additional data
Charles MacNeill 7:1add29d51e72 1015 * @return VL53L1_ERROR_NONE Success
Charles MacNeill 7:1add29d51e72 1016 * @return "Other error code" See ::VL53L1_Error
Charles MacNeill 7:1add29d51e72 1017 */
Charles MacNeill 7:1add29d51e72 1018 VL53L1_Error VL53L1_GetAdditionalData(VL53L1_DEV Dev,
Charles MacNeill 7:1add29d51e72 1019 VL53L1_AdditionalData_t *pAdditionalData);
Charles MacNeill 7:1add29d51e72 1020
Charles MacNeill 7:1add29d51e72 1021
Charles MacNeill 7:1add29d51e72 1022 /** @} VL53L1_measurement_group */
Charles MacNeill 7:1add29d51e72 1023
Charles MacNeill 7:1add29d51e72 1024 /** @defgroup VL53L1_Calibration_group VL53L1 Calibration Functions
Charles MacNeill 7:1add29d51e72 1025 * @brief Functions used for Calibration
Charles MacNeill 7:1add29d51e72 1026 * @{
Charles MacNeill 7:1add29d51e72 1027 */
Charles MacNeill 7:1add29d51e72 1028
Charles MacNeill 7:1add29d51e72 1029
Charles MacNeill 7:1add29d51e72 1030 /**
Charles MacNeill 7:1add29d51e72 1031 * @brief Set Tuning Parameter value for a given parameter ID
Charles MacNeill 7:1add29d51e72 1032 *
Charles MacNeill 7:1add29d51e72 1033 * @par Function Description
Charles MacNeill 7:1add29d51e72 1034 * This function is used to improve the performance of the device. It permit to
Charles MacNeill 7:1add29d51e72 1035 * change a particular value used for a timeout or a threshold or a constant
Charles MacNeill 7:1add29d51e72 1036 * in an algorithm. The function will change the value of the parameter
Charles MacNeill 7:1add29d51e72 1037 * identified by an unique ID.
Charles MacNeill 7:1add29d51e72 1038 *
Charles MacNeill 7:1add29d51e72 1039 * @note This function doesn't Access to the device
Charles MacNeill 7:1add29d51e72 1040 *
Charles MacNeill 7:1add29d51e72 1041 * @param Dev Device Handle
Charles MacNeill 7:1add29d51e72 1042 * @param TuningParameterId Tuning Parameter ID
Charles MacNeill 7:1add29d51e72 1043 * @param TuningParameterValue Tuning Parameter Value
Charles MacNeill 7:1add29d51e72 1044 * @return VL53L1_ERROR_NONE Success
Charles MacNeill 7:1add29d51e72 1045 * @return "Other error code" See ::VL53L1_Error
Charles MacNeill 7:1add29d51e72 1046 */
Charles MacNeill 7:1add29d51e72 1047 VL53L1_Error VL53L1_SetTuningParameter(VL53L1_DEV Dev,
Charles MacNeill 7:1add29d51e72 1048 uint16_t TuningParameterId, int32_t TuningParameterValue);
Charles MacNeill 7:1add29d51e72 1049
Charles MacNeill 7:1add29d51e72 1050 /**
Charles MacNeill 7:1add29d51e72 1051 * @brief Get Tuning Parameter value for a given parameter ID
Charles MacNeill 7:1add29d51e72 1052 *
Charles MacNeill 7:1add29d51e72 1053 * @par Function Description
Charles MacNeill 7:1add29d51e72 1054 * This function is used to get the value of the parameter
Charles MacNeill 7:1add29d51e72 1055 * identified by an unique ID.
Charles MacNeill 7:1add29d51e72 1056 *
Charles MacNeill 7:1add29d51e72 1057 * @note This function doesn't Access to the device
Charles MacNeill 7:1add29d51e72 1058 *
Charles MacNeill 7:1add29d51e72 1059 * @param Dev Device Handle
Charles MacNeill 7:1add29d51e72 1060 * @param TuningParameterId Tuning Parameter ID
Charles MacNeill 7:1add29d51e72 1061 * @param pTuningParameterValue Pointer to Tuning Parameter Value
Charles MacNeill 7:1add29d51e72 1062 * for a given TuningParameterId.
Charles MacNeill 7:1add29d51e72 1063 * @return VL53L1_ERROR_NONE Success
Charles MacNeill 7:1add29d51e72 1064 * @return "Other error code" See ::VL53L1_Error
Charles MacNeill 7:1add29d51e72 1065 */
Charles MacNeill 7:1add29d51e72 1066 VL53L1_Error VL53L1_GetTuningParameter(VL53L1_DEV Dev,
Charles MacNeill 7:1add29d51e72 1067 uint16_t TuningParameterId, int32_t *pTuningParameterValue);
Charles MacNeill 7:1add29d51e72 1068
Charles MacNeill 7:1add29d51e72 1069 /**
Charles MacNeill 7:1add29d51e72 1070 * @brief Performs Reference Spad Management
Charles MacNeill 7:1add29d51e72 1071 *
Charles MacNeill 7:1add29d51e72 1072 * @par Function Description
Charles MacNeill 7:1add29d51e72 1073 * The reference SPAD initialization procedure determines the minimum amount
Charles MacNeill 7:1add29d51e72 1074 * of reference spads to be enables to achieve a target reference signal rate
Charles MacNeill 7:1add29d51e72 1075 * and should be performed once during initialization.
Charles MacNeill 7:1add29d51e72 1076 *
Charles MacNeill 7:1add29d51e72 1077 * @note This function Access to the device
Charles MacNeill 7:1add29d51e72 1078 *
Charles MacNeill 7:1add29d51e72 1079 * @param Dev Device Handle
Charles MacNeill 7:1add29d51e72 1080 * @return VL53L1_ERROR_NONE Success
Charles MacNeill 7:1add29d51e72 1081 * @return "Other error code" See ::VL53L1_Error
Charles MacNeill 7:1add29d51e72 1082 */
Charles MacNeill 7:1add29d51e72 1083 VL53L1_Error VL53L1_PerformRefSpadManagement(VL53L1_DEV Dev);
Charles MacNeill 7:1add29d51e72 1084
Charles MacNeill 7:1add29d51e72 1085 /**
Charles MacNeill 7:1add29d51e72 1086 * @brief Enable/Disable dynamic Xtalk compensation feature
Charles MacNeill 7:1add29d51e72 1087 *
Charles MacNeill 7:1add29d51e72 1088 * Enable/Disable dynamic Xtalk compensation (aka smudge correction).
Charles MacNeill 7:1add29d51e72 1089 *
Charles MacNeill 7:1add29d51e72 1090 * @param Dev Device Handle
Charles MacNeill 7:1add29d51e72 1091 * @param Mode Set the smudge correction mode
Charles MacNeill 7:1add29d51e72 1092 * See ::VL53L1_SmudgeCorrectionModes
Charles MacNeill 7:1add29d51e72 1093 * @return VL53L1_ERROR_NONE Success
Charles MacNeill 7:1add29d51e72 1094 * @return "Other error code" See ::VL53L1_Error
Charles MacNeill 7:1add29d51e72 1095 */
Charles MacNeill 7:1add29d51e72 1096 VL53L1_Error VL53L1_SmudgeCorrectionEnable(VL53L1_DEV Dev,
Charles MacNeill 7:1add29d51e72 1097 VL53L1_SmudgeCorrectionModes Mode);
Charles MacNeill 7:1add29d51e72 1098
Charles MacNeill 7:1add29d51e72 1099 /**
Charles MacNeill 7:1add29d51e72 1100 * @brief Enable/Disable Cross talk compensation feature
Charles MacNeill 7:1add29d51e72 1101 *
Charles MacNeill 7:1add29d51e72 1102 * Enable/Disable Cross Talk correction.
Charles MacNeill 7:1add29d51e72 1103 *
Charles MacNeill 7:1add29d51e72 1104 * @param Dev Device Handle
Charles MacNeill 7:1add29d51e72 1105 * @param XTalkCompensationEnable Cross talk compensation
Charles MacNeill 7:1add29d51e72 1106 * to be set 0 = disabled or 1 = enabled.
Charles MacNeill 7:1add29d51e72 1107 * @return VL53L1_ERROR_NONE Success
Charles MacNeill 7:1add29d51e72 1108 * @return "Other error code" See ::VL53L1_Error
Charles MacNeill 7:1add29d51e72 1109 */
Charles MacNeill 7:1add29d51e72 1110 VL53L1_Error VL53L1_SetXTalkCompensationEnable(VL53L1_DEV Dev,
Charles MacNeill 7:1add29d51e72 1111 uint8_t XTalkCompensationEnable);
Charles MacNeill 7:1add29d51e72 1112
Charles MacNeill 7:1add29d51e72 1113 /**
Charles MacNeill 7:1add29d51e72 1114 * @brief Get Cross talk compensation rate enable
Charles MacNeill 7:1add29d51e72 1115 *
Charles MacNeill 7:1add29d51e72 1116 * Get if the Cross Talk is Enabled or Disabled.
Charles MacNeill 7:1add29d51e72 1117 *
Charles MacNeill 7:1add29d51e72 1118 * @note This function doesn't access to the device
Charles MacNeill 7:1add29d51e72 1119 *
Charles MacNeill 7:1add29d51e72 1120 * @param Dev Device Handle
Charles MacNeill 7:1add29d51e72 1121 * @param pXTalkCompensationEnable Pointer to the Cross talk compensation
Charles MacNeill 7:1add29d51e72 1122 * state 0=disabled or 1 = enabled
Charles MacNeill 7:1add29d51e72 1123 * @return VL53L1_ERROR_NONE Success
Charles MacNeill 7:1add29d51e72 1124 * @return "Other error code" See ::VL53L1_Error
Charles MacNeill 7:1add29d51e72 1125 */
Charles MacNeill 7:1add29d51e72 1126 VL53L1_Error VL53L1_GetXTalkCompensationEnable(VL53L1_DEV Dev,
Charles MacNeill 7:1add29d51e72 1127 uint8_t *pXTalkCompensationEnable);
Charles MacNeill 7:1add29d51e72 1128
Charles MacNeill 7:1add29d51e72 1129
Charles MacNeill 7:1add29d51e72 1130 /**
Charles MacNeill 7:1add29d51e72 1131 * @brief Perform XTalk Calibration
Charles MacNeill 7:1add29d51e72 1132 *
Charles MacNeill 7:1add29d51e72 1133 * @details Perform a XTalk calibration of the Device.
Charles MacNeill 7:1add29d51e72 1134 * This function will launch a ranging measurement, if interrupts
Charles MacNeill 7:1add29d51e72 1135 * are enabled an interrupt will be done.
Charles MacNeill 7:1add29d51e72 1136 * This function will clear the interrupt generated automatically.
Charles MacNeill 7:1add29d51e72 1137 * This function will program a new value for the XTalk compensation
Charles MacNeill 7:1add29d51e72 1138 * and it will enable the cross talk before exit.
Charles MacNeill 7:1add29d51e72 1139 *
Charles MacNeill 7:1add29d51e72 1140 * @warning This function is a blocking function
Charles MacNeill 7:1add29d51e72 1141 *
Charles MacNeill 7:1add29d51e72 1142 * @note This function Access to the device
Charles MacNeill 7:1add29d51e72 1143 *
Charles MacNeill 7:1add29d51e72 1144 * @param Dev Device Handle
Charles MacNeill 7:1add29d51e72 1145 * @param CalibrationOption Select the Calibration to be run :
Charles MacNeill 7:1add29d51e72 1146 * @param CalibrationOption
Charles MacNeill 7:1add29d51e72 1147 * @li VL53L1_XTALKCALIBRATIONMODE_SINGLE_TARGET the calibration uses current
Charles MacNeill 7:1add29d51e72 1148 * preset and distance mode without altering them.<br>
Charles MacNeill 7:1add29d51e72 1149 * User must call @a VL53L1_SetPresetMode() with VL53L1_PRESETMODE_AUTONOMOUS,
Charles MacNeill 7:1add29d51e72 1150 * VL53L1_PRESETMODE_LITE_RANGING or VL53L1_PRESETMODE_LOWPOWER_AUTONOMOUS
Charles MacNeill 7:1add29d51e72 1151 * parameter prior to launch calibration
Charles MacNeill 7:1add29d51e72 1152 * @li VL53L1_XTALKCALIBRATIONMODE_NO_TARGET the calibration sets appropriate
Charles MacNeill 7:1add29d51e72 1153 * preset and distance mode and thus override existing ones<br>
Charles MacNeill 7:1add29d51e72 1154 * User must call @a VL53L1_SetPresetMode() again after calibration to set the
Charles MacNeill 7:1add29d51e72 1155 * desired one. during this calibration mode no object must be put below a 80cm
Charles MacNeill 7:1add29d51e72 1156 * distance from the target
Charles MacNeill 7:1add29d51e72 1157 * @li VL53L1_XTALKCALIBRATIONMODE_FULL_ROI the calibration sets appropriate
Charles MacNeill 7:1add29d51e72 1158 * preset and distance mode and thus override existing ones<br>
Charles MacNeill 7:1add29d51e72 1159 * User must call @a VL53L1_SetPresetMode() again after calibration to set the
Charles MacNeill 7:1add29d51e72 1160 * desired one.
Charles MacNeill 7:1add29d51e72 1161 * The ROI settings must define a single 16x16 ROI before to launch this
Charles MacNeill 7:1add29d51e72 1162 * function.
Charles MacNeill 7:1add29d51e72 1163 * The calibration uses a target which should be located at least @60cm from the
Charles MacNeill 7:1add29d51e72 1164 * device. The actual location of the target shall be passed
Charles MacNeill 7:1add29d51e72 1165 * through the bare driver tuning parameters table
Charles MacNeill 7:1add29d51e72 1166 *
Charles MacNeill 7:1add29d51e72 1167 * @return VL53L1_ERROR_NONE Success
Charles MacNeill 7:1add29d51e72 1168 * @return "Other error code" See ::VL53L1_Error
Charles MacNeill 7:1add29d51e72 1169 */
Charles MacNeill 7:1add29d51e72 1170 VL53L1_Error VL53L1_PerformXTalkCalibration(VL53L1_DEV Dev,
Charles MacNeill 7:1add29d51e72 1171 uint8_t CalibrationOption);
Charles MacNeill 7:1add29d51e72 1172
Charles MacNeill 7:1add29d51e72 1173 /**
Charles MacNeill 7:1add29d51e72 1174 * @brief Define the mode to be used for the offset calibration
Charles MacNeill 7:1add29d51e72 1175 *
Charles MacNeill 7:1add29d51e72 1176 * Define the mode to be used for the offset calibration. This function should
Charles MacNeill 7:1add29d51e72 1177 * be called before run the @a VL53L1_PerformOffsetCalibration()
Charles MacNeill 7:1add29d51e72 1178 *
Charles MacNeill 7:1add29d51e72 1179 * @param Dev Device Handle
Charles MacNeill 7:1add29d51e72 1180 * @param OffsetCalibrationMode Offset Calibration Mode valid values are:
Charles MacNeill 7:1add29d51e72 1181 * @li VL53L1_OFFSETCALIBRATIONMODE_STANDARD
Charles MacNeill 7:1add29d51e72 1182 * @li VL53L1_OFFSETCALIBRATIONMODE_PRERANGE_ONLY
Charles MacNeill 7:1add29d51e72 1183 * @li VL53L1_OFFSETCALIBRATIONMODE_MULTI_ZONE
Charles MacNeill 7:1add29d51e72 1184 *
Charles MacNeill 7:1add29d51e72 1185 * @return VL53L1_ERROR_NONE Success
Charles MacNeill 7:1add29d51e72 1186 * @return "Other error code" See ::VL53L1_Error
Charles MacNeill 7:1add29d51e72 1187 */
Charles MacNeill 7:1add29d51e72 1188 VL53L1_Error VL53L1_SetOffsetCalibrationMode(VL53L1_DEV Dev,
Charles MacNeill 7:1add29d51e72 1189 VL53L1_OffsetCalibrationModes OffsetCalibrationMode);
Charles MacNeill 7:1add29d51e72 1190
Charles MacNeill 7:1add29d51e72 1191 /**
Charles MacNeill 7:1add29d51e72 1192 * @brief Define the mode to be used for the offset correction
Charles MacNeill 7:1add29d51e72 1193 *
Charles MacNeill 7:1add29d51e72 1194 * Define the mode to be used for the offset correction.
Charles MacNeill 7:1add29d51e72 1195 *
Charles MacNeill 7:1add29d51e72 1196 * @param Dev Device Handle
Charles MacNeill 7:1add29d51e72 1197 * @param OffsetCorrectionMode Offset Correction Mode valid values are:
Charles MacNeill 7:1add29d51e72 1198 * @li VL53L1_OFFSETCORRECTIONMODE_STANDARD
Charles MacNeill 7:1add29d51e72 1199 * @li VL53L1_OFFSETCORRECTIONMODE_PERZONE
Charles MacNeill 7:1add29d51e72 1200 * @li VL53L1_OFFSETCORRECTIONMODE_PERVCSEL
Charles MacNeill 7:1add29d51e72 1201 *
Charles MacNeill 7:1add29d51e72 1202 * @return VL53L1_ERROR_NONE Success
Charles MacNeill 7:1add29d51e72 1203 * @return "Other error code" See ::VL53L1_Error
Charles MacNeill 7:1add29d51e72 1204 */
Charles MacNeill 7:1add29d51e72 1205 VL53L1_Error VL53L1_SetOffsetCorrectionMode(VL53L1_DEV Dev,
Charles MacNeill 7:1add29d51e72 1206 VL53L1_OffsetCorrectionModes OffsetCorrectionMode);
Charles MacNeill 7:1add29d51e72 1207
Charles MacNeill 7:1add29d51e72 1208
Charles MacNeill 7:1add29d51e72 1209 /**
Charles MacNeill 7:1add29d51e72 1210 * @brief Perform Offset Calibration
Charles MacNeill 7:1add29d51e72 1211 *
Charles MacNeill 7:1add29d51e72 1212 * @details Perform a Offset calibration of the Device.
Charles MacNeill 7:1add29d51e72 1213 * This function will launch a ranging measurement, if interrupts are
Charles MacNeill 7:1add29d51e72 1214 * enabled interrupts will be done.
Charles MacNeill 7:1add29d51e72 1215 * This function will program a new value for the Offset calibration value
Charles MacNeill 7:1add29d51e72 1216 *
Charles MacNeill 7:1add29d51e72 1217 * @warning This function is a blocking function
Charles MacNeill 7:1add29d51e72 1218 *
Charles MacNeill 7:1add29d51e72 1219 * @note This function Access to the device
Charles MacNeill 7:1add29d51e72 1220 *
Charles MacNeill 7:1add29d51e72 1221 * @param Dev Device Handle
Charles MacNeill 7:1add29d51e72 1222 * @param CalDistanceMilliMeter Calibration distance value used for the
Charles MacNeill 7:1add29d51e72 1223 * offset compensation.
Charles MacNeill 7:1add29d51e72 1224 * @param CalReflectancePercent Calibration Target reflectance @ 940nm
Charles MacNeill 7:1add29d51e72 1225 * in percentage.
Charles MacNeill 7:1add29d51e72 1226 *
Charles MacNeill 7:1add29d51e72 1227 * @return VL53L1_ERROR_NONE
Charles MacNeill 7:1add29d51e72 1228 * @return "Other error code" See ::VL53L1_Error
Charles MacNeill 7:1add29d51e72 1229 */
Charles MacNeill 7:1add29d51e72 1230 VL53L1_Error VL53L1_PerformOffsetCalibration(VL53L1_DEV Dev,
Charles MacNeill 7:1add29d51e72 1231 int32_t CalDistanceMilliMeter,
Charles MacNeill 7:1add29d51e72 1232 FixPoint1616_t CalReflectancePercent);
Charles MacNeill 7:1add29d51e72 1233
Charles MacNeill 7:1add29d51e72 1234 /**
Charles MacNeill 7:1add29d51e72 1235 * @brief Perform Offset simple Calibration
Charles MacNeill 7:1add29d51e72 1236 *
Charles MacNeill 7:1add29d51e72 1237 * @details Perform a very simple offset calibration of the Device.
Charles MacNeill 7:1add29d51e72 1238 * This function will launch few ranging measurements and computes offset
Charles MacNeill 7:1add29d51e72 1239 * calibration. The preset mode and the distance mode MUST be set by the
Charles MacNeill 7:1add29d51e72 1240 * application before to call this function.
Charles MacNeill 7:1add29d51e72 1241 *
Charles MacNeill 7:1add29d51e72 1242 * @warning This function is a blocking function
Charles MacNeill 7:1add29d51e72 1243 *
Charles MacNeill 7:1add29d51e72 1244 * @note This function Access to the device
Charles MacNeill 7:1add29d51e72 1245 *
Charles MacNeill 7:1add29d51e72 1246 * @param Dev Device Handle
Charles MacNeill 7:1add29d51e72 1247 * @param CalDistanceMilliMeter Calibration distance value used for the
Charles MacNeill 7:1add29d51e72 1248 * offset compensation.
Charles MacNeill 7:1add29d51e72 1249 *
Charles MacNeill 7:1add29d51e72 1250 * @return VL53L1_ERROR_NONE
Charles MacNeill 7:1add29d51e72 1251 * @return VL53L1_ERROR_OFFSET_CAL_NO_SAMPLE_FAIL the calibration failed by
Charles MacNeill 7:1add29d51e72 1252 * lack of valid measurements
Charles MacNeill 7:1add29d51e72 1253 * @return VL53L1_WARNING_OFFSET_CAL_SIGMA_TOO_HIGH means that the target
Charles MacNeill 7:1add29d51e72 1254 * distance combined to the number of loops performed in the calibration lead to
Charles MacNeill 7:1add29d51e72 1255 * an internal overflow. Try to reduce the distance of the target (140 mm)
Charles MacNeill 7:1add29d51e72 1256 * @return "Other error code" See ::VL53L1_Error
Charles MacNeill 7:1add29d51e72 1257 */
Charles MacNeill 7:1add29d51e72 1258 VL53L1_Error VL53L1_PerformOffsetSimpleCalibration(VL53L1_DEV Dev,
Charles MacNeill 7:1add29d51e72 1259 int32_t CalDistanceMilliMeter);
Charles MacNeill 7:1add29d51e72 1260
Charles MacNeill 7:1add29d51e72 1261 /**
Charles MacNeill 7:1add29d51e72 1262 * @brief Perform Offset simple Calibration with a "zero distance" target
Charles MacNeill 7:1add29d51e72 1263 *
Charles MacNeill 7:1add29d51e72 1264 * @details Perform a simple offset calibration of the Device.
Charles MacNeill 7:1add29d51e72 1265 * This function will launch few ranging measurements and computes offset
Charles MacNeill 7:1add29d51e72 1266 * calibration. The preset mode and the distance mode MUST be set by the
Charles MacNeill 7:1add29d51e72 1267 * application before to call this function.
Charles MacNeill 7:1add29d51e72 1268 * A target must be place very close to the device.
Charles MacNeill 7:1add29d51e72 1269 * Ideally the target shall be touching the coverglass.
Charles MacNeill 7:1add29d51e72 1270 *
Charles MacNeill 7:1add29d51e72 1271 * @warning This function is a blocking function
Charles MacNeill 7:1add29d51e72 1272 *
Charles MacNeill 7:1add29d51e72 1273 * @note This function Access to the device
Charles MacNeill 7:1add29d51e72 1274 *
Charles MacNeill 7:1add29d51e72 1275 * @param Dev Device Handle
Charles MacNeill 7:1add29d51e72 1276 *
Charles MacNeill 7:1add29d51e72 1277 * @return VL53L1_ERROR_NONE
Charles MacNeill 7:1add29d51e72 1278 * @return VL53L1_ERROR_OFFSET_CAL_NO_SAMPLE_FAIL the calibration failed by
Charles MacNeill 7:1add29d51e72 1279 * lack of valid measurements
Charles MacNeill 7:1add29d51e72 1280 * @return VL53L1_WARNING_OFFSET_CAL_SIGMA_TOO_HIGH means that the target
Charles MacNeill 7:1add29d51e72 1281 * distance is too large, try to put the target closer to the device
Charles MacNeill 7:1add29d51e72 1282 * @return "Other error code" See ::VL53L1_Error
Charles MacNeill 7:1add29d51e72 1283 */
Charles MacNeill 7:1add29d51e72 1284 VL53L1_Error VL53L1_PerformOffsetZeroDistanceCalibration(VL53L1_DEV Dev);
Charles MacNeill 7:1add29d51e72 1285
Charles MacNeill 7:1add29d51e72 1286 /**
Charles MacNeill 7:1add29d51e72 1287 * @brief Perform Offset per Vcsel Calibration. i.e. per distance mode
Charles MacNeill 7:1add29d51e72 1288 *
Charles MacNeill 7:1add29d51e72 1289 * @details Perform offset calibration of the Device depending on the
Charles MacNeill 7:1add29d51e72 1290 * three distance mode settings: short, medium and long.
Charles MacNeill 7:1add29d51e72 1291 * This function will launch few ranging measurements and computes offset
Charles MacNeill 7:1add29d51e72 1292 * calibration in each of the three distance modes.
Charles MacNeill 7:1add29d51e72 1293 * The preset mode MUST be set by the application before to call this function.
Charles MacNeill 7:1add29d51e72 1294 *
Charles MacNeill 7:1add29d51e72 1295 * @warning This function is a blocking function
Charles MacNeill 7:1add29d51e72 1296 *
Charles MacNeill 7:1add29d51e72 1297 * @note This function Access to the device
Charles MacNeill 7:1add29d51e72 1298 *
Charles MacNeill 7:1add29d51e72 1299 * @param Dev Device Handle
Charles MacNeill 7:1add29d51e72 1300 * @param CalDistanceMilliMeter Distance of the target used for the
Charles MacNeill 7:1add29d51e72 1301 * offset compensation calibration.
Charles MacNeill 7:1add29d51e72 1302 *
Charles MacNeill 7:1add29d51e72 1303 * @return VL53L1_ERROR_NONE
Charles MacNeill 7:1add29d51e72 1304 * @return VL53L1_ERROR_OFFSET_CAL_NO_SAMPLE_FAIL the calibration failed by
Charles MacNeill 7:1add29d51e72 1305 * lack of valid measurements
Charles MacNeill 7:1add29d51e72 1306 * @return VL53L1_WARNING_OFFSET_CAL_SIGMA_TOO_HIGH means that the target
Charles MacNeill 7:1add29d51e72 1307 * distance combined to the number of loops performed in the calibration lead to
Charles MacNeill 7:1add29d51e72 1308 * an internal overflow. Try to reduce the distance of the target (140 mm)
Charles MacNeill 7:1add29d51e72 1309 * @return "Other error code" See ::VL53L1_Error
Charles MacNeill 7:1add29d51e72 1310 */
Charles MacNeill 7:1add29d51e72 1311 VL53L1_Error VL53L1_PerformOffsetPerVcselCalibration(VL53L1_DEV Dev,
Charles MacNeill 7:1add29d51e72 1312 int32_t CalDistanceMilliMeter);
Charles MacNeill 7:1add29d51e72 1313 /**
Charles MacNeill 7:1add29d51e72 1314 * @brief Sets the Calibration Data.
Charles MacNeill 7:1add29d51e72 1315 *
Charles MacNeill 7:1add29d51e72 1316 * @par Function Description
Charles MacNeill 7:1add29d51e72 1317 * This function set all the Calibration Data issued from the functions
Charles MacNeill 7:1add29d51e72 1318 * @a VL53L1_PerformRefSpadManagement(), @a VL53L1_PerformXTalkCalibration,
Charles MacNeill 7:1add29d51e72 1319 * @a VL53L1_PerformOffsetCalibration()
Charles MacNeill 7:1add29d51e72 1320 *
Charles MacNeill 7:1add29d51e72 1321 * @note This function doesn't Accesses the device
Charles MacNeill 7:1add29d51e72 1322 *
Charles MacNeill 7:1add29d51e72 1323 * @param Dev Device Handle
Charles MacNeill 7:1add29d51e72 1324 * @param *pCalibrationData Pointer to Calibration data to be set.
Charles MacNeill 7:1add29d51e72 1325 * @return VL53L1_ERROR_NONE Success
Charles MacNeill 7:1add29d51e72 1326 * @return VL53L1_ERROR_INVALID_PARAMS pCalibrationData points to an older
Charles MacNeill 7:1add29d51e72 1327 * version of the inner structure. Need for support to convert its content.
Charles MacNeill 7:1add29d51e72 1328 * @return "Other error code" See ::VL53L1_Error
Charles MacNeill 7:1add29d51e72 1329 */
Charles MacNeill 7:1add29d51e72 1330 VL53L1_Error VL53L1_SetCalibrationData(VL53L1_DEV Dev,
Charles MacNeill 7:1add29d51e72 1331 VL53L1_CalibrationData_t *pCalibrationData);
Charles MacNeill 7:1add29d51e72 1332
Charles MacNeill 7:1add29d51e72 1333 /**
Charles MacNeill 7:1add29d51e72 1334 * @brief Gets the Calibration Data.
Charles MacNeill 7:1add29d51e72 1335 *
Charles MacNeill 7:1add29d51e72 1336 * @par Function Description
Charles MacNeill 7:1add29d51e72 1337 * This function get all the Calibration Data issued from the functions
Charles MacNeill 7:1add29d51e72 1338 * @a VL53L1_PerformRefSpadManagement(), @a VL53L1_PerformXTalkCalibration,
Charles MacNeill 7:1add29d51e72 1339 * @a VL53L1_PerformOffsetCalibration()
Charles MacNeill 7:1add29d51e72 1340 *
Charles MacNeill 7:1add29d51e72 1341 * @note This function doesn't Accesses the device
Charles MacNeill 7:1add29d51e72 1342 *
Charles MacNeill 7:1add29d51e72 1343 * @param Dev Device Handle
Charles MacNeill 7:1add29d51e72 1344 * @param *pCalibrationData pointer where to store Calibration
Charles MacNeill 7:1add29d51e72 1345 * data.
Charles MacNeill 7:1add29d51e72 1346 * @return VL53L1_ERROR_NONE Success
Charles MacNeill 7:1add29d51e72 1347 * @return "Other error code" See ::VL53L1_Error
Charles MacNeill 7:1add29d51e72 1348 */
Charles MacNeill 7:1add29d51e72 1349 VL53L1_Error VL53L1_GetCalibrationData(VL53L1_DEV Dev,
Charles MacNeill 7:1add29d51e72 1350 VL53L1_CalibrationData_t *pCalibrationData);
Charles MacNeill 7:1add29d51e72 1351
Charles MacNeill 7:1add29d51e72 1352 /**
Charles MacNeill 7:1add29d51e72 1353 * @brief Sets the Zone Calibration Data.
Charles MacNeill 7:1add29d51e72 1354 *
Charles MacNeill 7:1add29d51e72 1355 * @par Function Description
Charles MacNeill 7:1add29d51e72 1356 * This function set all the Zone nCalibration Data issued from the functions
Charles MacNeill 7:1add29d51e72 1357 * @a VL53L1_PerformOffsetCalibration() in multi zone
Charles MacNeill 7:1add29d51e72 1358 *
Charles MacNeill 7:1add29d51e72 1359 * @note This function doesn't Accesses the device
Charles MacNeill 7:1add29d51e72 1360 *
Charles MacNeill 7:1add29d51e72 1361 * @param Dev Device Handle
Charles MacNeill 7:1add29d51e72 1362 * @param *pZoneCalibrationData Pointer to Zone Calibration data to be
Charles MacNeill 7:1add29d51e72 1363 * set.
Charles MacNeill 7:1add29d51e72 1364 * @return VL53L1_ERROR_NONE Success
Charles MacNeill 7:1add29d51e72 1365 * @return "Other error code" See ::VL53L1_Error
Charles MacNeill 7:1add29d51e72 1366 */
Charles MacNeill 7:1add29d51e72 1367 VL53L1_Error VL53L1_SetZoneCalibrationData(VL53L1_DEV Dev,
Charles MacNeill 7:1add29d51e72 1368 VL53L1_ZoneCalibrationData_t *pZoneCalibrationData);
Charles MacNeill 7:1add29d51e72 1369
Charles MacNeill 7:1add29d51e72 1370 /**
Charles MacNeill 7:1add29d51e72 1371 * @brief Gets the Zone Calibration Data.
Charles MacNeill 7:1add29d51e72 1372 *
Charles MacNeill 7:1add29d51e72 1373 * @par Function Description
Charles MacNeill 7:1add29d51e72 1374 * This function get all the Zone Calibration Data issued from the functions
Charles MacNeill 7:1add29d51e72 1375 * @a VL53L1_PerformOffsetCalibration()
Charles MacNeill 7:1add29d51e72 1376 *
Charles MacNeill 7:1add29d51e72 1377 * @note This function doesn't Accesses the device
Charles MacNeill 7:1add29d51e72 1378 *
Charles MacNeill 7:1add29d51e72 1379 * @param Dev Device Handle
Charles MacNeill 7:1add29d51e72 1380 * @param *pZoneCalibrationData pointer where to store Zone Calibration
Charles MacNeill 7:1add29d51e72 1381 * data.
Charles MacNeill 7:1add29d51e72 1382 * @return VL53L1_ERROR_NONE Success
Charles MacNeill 7:1add29d51e72 1383 * @return "Other error code" See ::VL53L1_Error
Charles MacNeill 7:1add29d51e72 1384 */
Charles MacNeill 7:1add29d51e72 1385 VL53L1_Error VL53L1_GetZoneCalibrationData(VL53L1_DEV Dev,
Charles MacNeill 7:1add29d51e72 1386 VL53L1_ZoneCalibrationData_t *pZoneCalibrationData);
Charles MacNeill 7:1add29d51e72 1387 /**
Charles MacNeill 7:1add29d51e72 1388 * @brief Gets the optical center.
Charles MacNeill 7:1add29d51e72 1389 *
Charles MacNeill 7:1add29d51e72 1390 * @par Function Description
Charles MacNeill 7:1add29d51e72 1391 * This function get the optical center issued from the nvm set at FTM stage
Charles MacNeill 7:1add29d51e72 1392 * expressed in the same coordinate system as the ROI are
Charles MacNeill 7:1add29d51e72 1393 *
Charles MacNeill 7:1add29d51e72 1394 * @note This function doesn't Accesses the device
Charles MacNeill 7:1add29d51e72 1395 *
Charles MacNeill 7:1add29d51e72 1396 * @param Dev Device Handle
Charles MacNeill 7:1add29d51e72 1397 * @param pOpticalCenterX pointer to the X position of center
Charles MacNeill 7:1add29d51e72 1398 * in 16.16 fix point
Charles MacNeill 7:1add29d51e72 1399 * @param pOpticalCenterY pointer to the Y position of center
Charles MacNeill 7:1add29d51e72 1400 * in 16.16 fix point
Charles MacNeill 7:1add29d51e72 1401 * @return VL53L1_ERROR_NONE Success
Charles MacNeill 7:1add29d51e72 1402 * @return "Other error code" See ::VL53L1_Error
Charles MacNeill 7:1add29d51e72 1403 */
Charles MacNeill 7:1add29d51e72 1404 VL53L1_Error VL53L1_GetOpticalCenter(VL53L1_DEV Dev,
Charles MacNeill 7:1add29d51e72 1405 FixPoint1616_t *pOpticalCenterX,
Charles MacNeill 7:1add29d51e72 1406 FixPoint1616_t *pOpticalCenterY);
Charles MacNeill 7:1add29d51e72 1407
Charles MacNeill 7:1add29d51e72 1408 /** @} VL53L1_Calibration_group */
Charles MacNeill 7:1add29d51e72 1409
Charles MacNeill 7:1add29d51e72 1410 /** @defgroup VL53L1_Thresholds_group VL53L1 IRQ Triggered events Functions
Charles MacNeill 7:1add29d51e72 1411 * @brief Functions used to configure interrupt to be triggered only when
Charles MacNeill 7:1add29d51e72 1412 * a measurement satisfies some thresholds parameters
Charles MacNeill 7:1add29d51e72 1413 * @{
Charles MacNeill 7:1add29d51e72 1414 */
Charles MacNeill 7:1add29d51e72 1415
Charles MacNeill 7:1add29d51e72 1416 /**
Charles MacNeill 7:1add29d51e72 1417 * @brief Configure the interrupt config, from the given structure
Charles MacNeill 7:1add29d51e72 1418 *
Charles MacNeill 7:1add29d51e72 1419 * @param[in] Dev : Device Handle
Charles MacNeill 7:1add29d51e72 1420 * @param[in] pConfig : pointer to configuration structure
Charles MacNeill 7:1add29d51e72 1421 */
Charles MacNeill 7:1add29d51e72 1422
Charles MacNeill 7:1add29d51e72 1423 VL53L1_Error VL53L1_SetThresholdConfig(VL53L1_DEV Dev,
Charles MacNeill 7:1add29d51e72 1424 VL53L1_DetectionConfig_t *pConfig);
Charles MacNeill 7:1add29d51e72 1425
Charles MacNeill 7:1add29d51e72 1426 /**
Charles MacNeill 7:1add29d51e72 1427 * @brief Retrieves the interrupt config structure currently programmed
Charles MacNeill 7:1add29d51e72 1428 * into the API
Charles MacNeill 7:1add29d51e72 1429 *
Charles MacNeill 7:1add29d51e72 1430 * @param[in] Dev : Device Handle
Charles MacNeill 7:1add29d51e72 1431 * @param[out] pConfig : pointer to configuration structure
Charles MacNeill 7:1add29d51e72 1432 */
Charles MacNeill 7:1add29d51e72 1433
Charles MacNeill 7:1add29d51e72 1434 VL53L1_Error VL53L1_GetThresholdConfig(VL53L1_DEV Dev,
Charles MacNeill 7:1add29d51e72 1435 VL53L1_DetectionConfig_t *pConfig);
Charles MacNeill 7:1add29d51e72 1436
Charles MacNeill 7:1add29d51e72 1437
Charles MacNeill 7:1add29d51e72 1438 /** @} VL53L1_Thresholds_group */
Charles MacNeill 7:1add29d51e72 1439
Charles MacNeill 7:1add29d51e72 1440
Charles MacNeill 7:1add29d51e72 1441 /** @} VL53L1_cut11_group */
Charles MacNeill 7:1add29d51e72 1442
Charles MacNeill 7:1add29d51e72 1443 #ifdef __cplusplus
Charles MacNeill 7:1add29d51e72 1444 }
Charles MacNeill 7:1add29d51e72 1445 #endif
Charles MacNeill 7:1add29d51e72 1446
Charles MacNeill 7:1add29d51e72 1447 #endif /* _VL53L1_API_H_ */