Fork, renaming of VL53L1CB-2
Dependencies: X_NUCLEO_COMMON ST_INTERFACES
inc/vl53l1_api.h@13:3f1b341901dd, 2021-06-11 (annotated)
- 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?
User | Revision | Line number | New 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_ */ |