The VL53L1CB proximity sensor, based on ST’s FlightSense™, Time-of-Flight technology.
Dependencies: X_NUCLEO_COMMON ST_INTERFACES
Dependents: VL53L1CB_noshield_1sensor_polls_auton VL53L1CB_noshield_1sensor_interrupt_auton X_NUCLEO_53L1A2
Based on VL53L1 library, this is a library for the VL53L1CB ToF chip.
src/VL53l1CB.cpp@10:3687b5e79f98, 2021-06-09 (annotated)
- Committer:
- Charles MacNeill
- Date:
- Wed Jun 09 10:09:49 2021 +0100
- Revision:
- 10:3687b5e79f98
- Parent:
- 9:66969b9016ad
change vl53l1 to VBL53L1CB
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Charles MacNeill |
9:66969b9016ad | 1 | /** |
Charles MacNeill |
9:66969b9016ad | 2 | ****************************************************************************** |
Charles MacNeill |
9:66969b9016ad | 3 | * @file vl53l1x_class.cpp |
Charles MacNeill |
9:66969b9016ad | 4 | * @author JS |
Charles MacNeill |
9:66969b9016ad | 5 | * @version V0.0.1 |
Charles MacNeill |
9:66969b9016ad | 6 | * @date 15-January-2019 |
Charles MacNeill |
9:66969b9016ad | 7 | * @brief Implementation file for the VL53L1 sensor component driver class |
Charles MacNeill |
9:66969b9016ad | 8 | ****************************************************************************** |
Charles MacNeill |
9:66969b9016ad | 9 | * @attention |
Charles MacNeill |
9:66969b9016ad | 10 | * |
Charles MacNeill |
9:66969b9016ad | 11 | * <h2><center>© COPYRIGHT(c) 2018 STMicroelectronics</center></h2> |
Charles MacNeill |
9:66969b9016ad | 12 | * |
Charles MacNeill |
9:66969b9016ad | 13 | * Redistribution and use in source and binary forms, with or without modification, |
Charles MacNeill |
9:66969b9016ad | 14 | * are permitted provided that the following conditions are met: |
Charles MacNeill |
9:66969b9016ad | 15 | * 1. Redistributions of source code must retain the above copyright notice, |
Charles MacNeill |
9:66969b9016ad | 16 | * this list of conditions and the following disclaimer. |
Charles MacNeill |
9:66969b9016ad | 17 | * 2. Redistributions in binary form must reproduce the above copyright notice, |
Charles MacNeill |
9:66969b9016ad | 18 | * this list of conditions and the following disclaimer in the documentation |
Charles MacNeill |
9:66969b9016ad | 19 | * and/or other materials provided with the distribution. |
Charles MacNeill |
9:66969b9016ad | 20 | * 3. Neither the name of STMicroelectronics nor the names of its contributors |
Charles MacNeill |
9:66969b9016ad | 21 | * may be used to endorse or promote products derived from this software |
Charles MacNeill |
9:66969b9016ad | 22 | * without specific prior written permission. |
Charles MacNeill |
9:66969b9016ad | 23 | * |
Charles MacNeill |
9:66969b9016ad | 24 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" |
Charles MacNeill |
9:66969b9016ad | 25 | * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE |
Charles MacNeill |
9:66969b9016ad | 26 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE |
Charles MacNeill |
9:66969b9016ad | 27 | * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE |
Charles MacNeill |
9:66969b9016ad | 28 | * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL |
Charles MacNeill |
9:66969b9016ad | 29 | * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR |
Charles MacNeill |
9:66969b9016ad | 30 | * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER |
Charles MacNeill |
9:66969b9016ad | 31 | * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, |
Charles MacNeill |
9:66969b9016ad | 32 | * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
Charles MacNeill |
9:66969b9016ad | 33 | * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
Charles MacNeill |
9:66969b9016ad | 34 | * |
Charles MacNeill |
9:66969b9016ad | 35 | ****************************************************************************** |
Charles MacNeill |
9:66969b9016ad | 36 | */ |
Charles MacNeill |
9:66969b9016ad | 37 | |
Charles MacNeill |
9:66969b9016ad | 38 | /* Includes */ |
Charles MacNeill |
9:66969b9016ad | 39 | #include <stdlib.h> |
Charles MacNeill |
9:66969b9016ad | 40 | #include "VL53L1CB.h" |
Charles MacNeill |
9:66969b9016ad | 41 | /************************************************/ |
Charles MacNeill |
9:66969b9016ad | 42 | #include "vl53l1_platform_user_config.h" |
Charles MacNeill |
9:66969b9016ad | 43 | #include "vl53l1_def.h" |
Charles MacNeill |
9:66969b9016ad | 44 | #include "vl53l1_wait.h" |
Charles MacNeill |
9:66969b9016ad | 45 | #include "vl53l1_api.h" |
Charles MacNeill |
9:66969b9016ad | 46 | #include "vl53l1_api_debug.h" |
Charles MacNeill |
9:66969b9016ad | 47 | #include "vl53l1_api_strings.h" |
Charles MacNeill |
9:66969b9016ad | 48 | #include "vl53l1_preset_setup.h" |
Charles MacNeill |
9:66969b9016ad | 49 | #include "vl53l1_api_calibration.h" |
Charles MacNeill |
9:66969b9016ad | 50 | #include "vl53l1_nvm_structs.h" |
Charles MacNeill |
9:66969b9016ad | 51 | #include "vl53l1_nvm.h" |
Charles MacNeill |
9:66969b9016ad | 52 | #include "vl53l1_core.h" |
Charles MacNeill |
9:66969b9016ad | 53 | #include "vl53l1_register_funcs.h" |
Charles MacNeill |
9:66969b9016ad | 54 | /***********************************************************/ |
Charles MacNeill |
9:66969b9016ad | 55 | #include "vl53l1_api_core.h" |
Charles MacNeill |
9:66969b9016ad | 56 | |
Charles MacNeill |
9:66969b9016ad | 57 | #include "vl53l1_configuration.h" |
Charles MacNeill |
9:66969b9016ad | 58 | |
Charles MacNeill |
9:66969b9016ad | 59 | |
Charles MacNeill |
9:66969b9016ad | 60 | #ifndef MIN |
Charles MacNeill |
9:66969b9016ad | 61 | #define MIN(v1, v2) ((v1) < (v2) ? (v1) : (v2)) |
Charles MacNeill |
9:66969b9016ad | 62 | #endif |
Charles MacNeill |
9:66969b9016ad | 63 | #ifndef MAX |
Charles MacNeill |
9:66969b9016ad | 64 | #define MAX(v1, v2) ((v1) < (v2) ? (v2) : (v1)) |
Charles MacNeill |
9:66969b9016ad | 65 | #endif |
Charles MacNeill |
9:66969b9016ad | 66 | |
Charles MacNeill |
9:66969b9016ad | 67 | |
Charles MacNeill |
10:3687b5e79f98 | 68 | VL53L1CB_ERROR VL53L1CB::VL53L1CB_GetSWVersion(VL53L1_Version_t *pVersion) |
Charles MacNeill |
9:66969b9016ad | 69 | { |
Charles MacNeill |
10:3687b5e79f98 | 70 | VL53L1CB_ERROR Status = 0; |
Charles MacNeill |
9:66969b9016ad | 71 | |
Charles MacNeill |
10:3687b5e79f98 | 72 | pVersion->major = VL53L1CB_IMPLEMENTATION_VER_MAJOR; |
Charles MacNeill |
10:3687b5e79f98 | 73 | pVersion->minor = VL53L1CB_IMPLEMENTATION_VER_MINOR; |
Charles MacNeill |
10:3687b5e79f98 | 74 | pVersion->build = VL53L1CB_IMPLEMENTATION_VER_SUB; |
Charles MacNeill |
10:3687b5e79f98 | 75 | pVersion->revision = VL53L1CB_IMPLEMENTATION_VER_REVISION; |
Charles MacNeill |
9:66969b9016ad | 76 | return Status; |
Charles MacNeill |
9:66969b9016ad | 77 | } |
Charles MacNeill |
9:66969b9016ad | 78 | |
Charles MacNeill |
10:3687b5e79f98 | 79 | VL53L1CB_ERROR VL53L1CB::VL53L1CB_SetI2CAddress(uint8_t new_address) |
Charles MacNeill |
9:66969b9016ad | 80 | { |
Charles MacNeill |
10:3687b5e79f98 | 81 | VL53L1CB_ERROR status = 0; |
Charles MacNeill |
10:3687b5e79f98 | 82 | // status = (VL53L1CB_ERROR)VL53L1_SetDeviceAddress(Device,new_address); |
Charles MacNeill |
9:66969b9016ad | 83 | |
Charles MacNeill |
9:66969b9016ad | 84 | |
Charles MacNeill |
9:66969b9016ad | 85 | // Device->i2c_slave_address = new_address; //~~ was |
Charles MacNeill |
9:66969b9016ad | 86 | if ( Device->i2c_slave_address != new_address) |
Charles MacNeill |
9:66969b9016ad | 87 | { |
Charles MacNeill |
10:3687b5e79f98 | 88 | status = VL53L1CB_WrByte(Device, VL53L1CB_I2C_SLAVE__DEVICE_ADDRESS, new_address >> 1); |
Charles MacNeill |
9:66969b9016ad | 89 | printf("VL53L1_SetI2CAddress %d to %d status = %d\n", Device->i2c_slave_address,new_address,status); |
Charles MacNeill |
9:66969b9016ad | 90 | Device->i2c_slave_address = new_address; |
Charles MacNeill |
9:66969b9016ad | 91 | |
Charles MacNeill |
9:66969b9016ad | 92 | } |
Charles MacNeill |
9:66969b9016ad | 93 | return status; |
Charles MacNeill |
9:66969b9016ad | 94 | } |
Charles MacNeill |
9:66969b9016ad | 95 | |
Charles MacNeill |
10:3687b5e79f98 | 96 | int VL53L1CB::init_sensor(uint8_t new_addr) |
Charles MacNeill |
9:66969b9016ad | 97 | { |
Charles MacNeill |
9:66969b9016ad | 98 | Device->i2c_slave_address = new_addr; |
Charles MacNeill |
9:66969b9016ad | 99 | int status = 0; |
Charles MacNeill |
10:3687b5e79f98 | 100 | VL53L1CB_Off(); |
Charles MacNeill |
10:3687b5e79f98 | 101 | VL53L1CB_On(); |
Charles MacNeill |
9:66969b9016ad | 102 | |
Charles MacNeill |
9:66969b9016ad | 103 | status = is_present(); |
Charles MacNeill |
9:66969b9016ad | 104 | if (!status) { |
Charles MacNeill |
9:66969b9016ad | 105 | printf("Failed to init VL53L0X sensor!\n\r"); |
Charles MacNeill |
9:66969b9016ad | 106 | return status; |
Charles MacNeill |
9:66969b9016ad | 107 | } |
Charles MacNeill |
9:66969b9016ad | 108 | return status; |
Charles MacNeill |
9:66969b9016ad | 109 | } |
Charles MacNeill |
9:66969b9016ad | 110 | |
Charles MacNeill |
9:66969b9016ad | 111 | |
Charles MacNeill |
10:3687b5e79f98 | 112 | VL53L1CB_ERROR VL53L1CB::VL53L1CB_SensorInit() |
Charles MacNeill |
9:66969b9016ad | 113 | { |
Charles MacNeill |
10:3687b5e79f98 | 114 | VL53L1CB_ERROR status = 0; |
Charles MacNeill |
9:66969b9016ad | 115 | uint8_t Addr = 0x00; |
Charles MacNeill |
9:66969b9016ad | 116 | |
Charles MacNeill |
9:66969b9016ad | 117 | for (Addr = 0x2D; Addr <= 0x87; Addr++){ |
Charles MacNeill |
10:3687b5e79f98 | 118 | status = VL53L1CB_WrByte(Device, Addr, VL51L1X_DEFAULT_CONFIGURATION[Addr - 0x2D]); |
Charles MacNeill |
9:66969b9016ad | 119 | if (status != 0) |
Charles MacNeill |
9:66969b9016ad | 120 | { |
Charles MacNeill |
9:66969b9016ad | 121 | printf("Writing config failed - %d\r\n", status); |
Charles MacNeill |
9:66969b9016ad | 122 | } |
Charles MacNeill |
9:66969b9016ad | 123 | } |
Charles MacNeill |
9:66969b9016ad | 124 | |
Charles MacNeill |
9:66969b9016ad | 125 | // uint16_t sensorID= 0; |
Charles MacNeill |
9:66969b9016ad | 126 | // status = VL53L1X_GetSensorId(&sensorID); |
Charles MacNeill |
9:66969b9016ad | 127 | // printf("Sensor id is - %d (%X)\r\n", sensorID, sensorID); |
Charles MacNeill |
9:66969b9016ad | 128 | |
Charles MacNeill |
10:3687b5e79f98 | 129 | status = VL53L1CB_StartRanging(); |
Charles MacNeill |
9:66969b9016ad | 130 | if (status != 0) |
Charles MacNeill |
9:66969b9016ad | 131 | { |
Charles MacNeill |
9:66969b9016ad | 132 | printf("start ranging failed - %d\r\n", status); |
Charles MacNeill |
9:66969b9016ad | 133 | } |
Charles MacNeill |
9:66969b9016ad | 134 | |
Charles MacNeill |
10:3687b5e79f98 | 135 | status = VL53L1CB_ClearInterrupt(); |
Charles MacNeill |
10:3687b5e79f98 | 136 | status = VL53L1CB_StopRanging(); |
Charles MacNeill |
9:66969b9016ad | 137 | status = VL53L1_WrByte(Device, VL53L1_VHV_CONFIG__TIMEOUT_MACROP_LOOP_BOUND, 0x09); // two bounds VHV |
Charles MacNeill |
9:66969b9016ad | 138 | status = VL53L1_WrByte(Device, 0x0B, 0); // start VHV from the previous temperature |
Charles MacNeill |
9:66969b9016ad | 139 | return status; |
Charles MacNeill |
9:66969b9016ad | 140 | } |
Charles MacNeill |
9:66969b9016ad | 141 | |
Charles MacNeill |
9:66969b9016ad | 142 | |
Charles MacNeill |
10:3687b5e79f98 | 143 | VL53L1CB_ERROR VL53L1CB::VL53L1CB_ClearInterrupt() |
Charles MacNeill |
9:66969b9016ad | 144 | { |
Charles MacNeill |
10:3687b5e79f98 | 145 | VL53L1CB_ERROR status = 0; |
Charles MacNeill |
9:66969b9016ad | 146 | |
Charles MacNeill |
10:3687b5e79f98 | 147 | status = VL53L1CB_WrByte(Device, SYSTEM__INTERRUPT_CLEAR, 0x01); |
Charles MacNeill |
10:3687b5e79f98 | 148 | // printf("VL53L1CB::VL53L1CBX_ClearInterrupt()\n"); |
Charles MacNeill |
9:66969b9016ad | 149 | return status; |
Charles MacNeill |
9:66969b9016ad | 150 | } |
Charles MacNeill |
9:66969b9016ad | 151 | |
Charles MacNeill |
9:66969b9016ad | 152 | |
Charles MacNeill |
9:66969b9016ad | 153 | |
Charles MacNeill |
9:66969b9016ad | 154 | |
Charles MacNeill |
9:66969b9016ad | 155 | |
Charles MacNeill |
10:3687b5e79f98 | 156 | VL53L1CB_ERROR VL53L1CB::VL53L1CB_GetInterruptPolarity(uint8_t *pInterruptPolarity) |
Charles MacNeill |
9:66969b9016ad | 157 | { |
Charles MacNeill |
9:66969b9016ad | 158 | uint8_t Temp; |
Charles MacNeill |
10:3687b5e79f98 | 159 | VL53L1CB_ERROR status = 0; |
Charles MacNeill |
9:66969b9016ad | 160 | |
Charles MacNeill |
10:3687b5e79f98 | 161 | status = VL53L1CB_RdByte(Device, GPIO_HV_MUX__CTRL, &Temp); |
Charles MacNeill |
9:66969b9016ad | 162 | Temp = Temp & 0x10; |
Charles MacNeill |
9:66969b9016ad | 163 | *pInterruptPolarity = !(Temp>>4); |
Charles MacNeill |
9:66969b9016ad | 164 | return status; |
Charles MacNeill |
9:66969b9016ad | 165 | } |
Charles MacNeill |
9:66969b9016ad | 166 | |
Charles MacNeill |
9:66969b9016ad | 167 | |
Charles MacNeill |
9:66969b9016ad | 168 | |
Charles MacNeill |
10:3687b5e79f98 | 169 | VL53L1CB_ERROR VL53L1CB::VL53L1CB_StartRanging() |
Charles MacNeill |
9:66969b9016ad | 170 | { |
Charles MacNeill |
10:3687b5e79f98 | 171 | VL53L1CB_ERROR status = 0; |
Charles MacNeill |
9:66969b9016ad | 172 | |
Charles MacNeill |
10:3687b5e79f98 | 173 | status = VL53L1CB_WrByte(Device, SYSTEM__MODE_START, 0x40); |
Charles MacNeill |
9:66969b9016ad | 174 | return status; |
Charles MacNeill |
9:66969b9016ad | 175 | } |
Charles MacNeill |
9:66969b9016ad | 176 | |
Charles MacNeill |
9:66969b9016ad | 177 | |
Charles MacNeill |
10:3687b5e79f98 | 178 | VL53L1CB_ERROR VL53L1CB::VL53L1CB_StopRanging() |
Charles MacNeill |
9:66969b9016ad | 179 | { |
Charles MacNeill |
10:3687b5e79f98 | 180 | VL53L1CB_ERROR status = 0; |
Charles MacNeill |
9:66969b9016ad | 181 | |
Charles MacNeill |
10:3687b5e79f98 | 182 | status = VL53L1CB_WrByte(Device, SYSTEM__MODE_START, 0x00); |
Charles MacNeill |
9:66969b9016ad | 183 | return status; |
Charles MacNeill |
9:66969b9016ad | 184 | } |
Charles MacNeill |
9:66969b9016ad | 185 | |
Charles MacNeill |
9:66969b9016ad | 186 | |
Charles MacNeill |
9:66969b9016ad | 187 | |
Charles MacNeill |
9:66969b9016ad | 188 | |
Charles MacNeill |
10:3687b5e79f98 | 189 | VL53L1CB_ERROR VL53L1CB::VL53L1CB_BootState(uint8_t *state) |
Charles MacNeill |
9:66969b9016ad | 190 | { |
Charles MacNeill |
10:3687b5e79f98 | 191 | VL53L1CB_ERROR status = 0; |
Charles MacNeill |
9:66969b9016ad | 192 | uint8_t tmp = 0; |
Charles MacNeill |
9:66969b9016ad | 193 | |
Charles MacNeill |
10:3687b5e79f98 | 194 | status = VL53L1CB_RdByte(Device,VL53L1CB_FIRMWARE__SYSTEM_STATUS, &tmp); |
Charles MacNeill |
9:66969b9016ad | 195 | *state = tmp; |
Charles MacNeill |
9:66969b9016ad | 196 | return status; |
Charles MacNeill |
9:66969b9016ad | 197 | } |
Charles MacNeill |
9:66969b9016ad | 198 | |
Charles MacNeill |
9:66969b9016ad | 199 | |
Charles MacNeill |
10:3687b5e79f98 | 200 | VL53L1CB_ERROR VL53L1CB::VL53L1CB_GetDistance(uint16_t *distance) |
Charles MacNeill |
9:66969b9016ad | 201 | { |
Charles MacNeill |
10:3687b5e79f98 | 202 | VL53L1CB_ERROR status = 0; |
Charles MacNeill |
9:66969b9016ad | 203 | uint16_t tmp; |
Charles MacNeill |
9:66969b9016ad | 204 | |
Charles MacNeill |
10:3687b5e79f98 | 205 | status = (VL53L1CB_RdWord(Device, |
Charles MacNeill |
10:3687b5e79f98 | 206 | VL53L1CB_RESULT__FINAL_CROSSTALK_CORRECTED_RANGE_MM_SD0, &tmp)); |
Charles MacNeill |
9:66969b9016ad | 207 | *distance = tmp; |
Charles MacNeill |
9:66969b9016ad | 208 | return status; |
Charles MacNeill |
9:66969b9016ad | 209 | } |
Charles MacNeill |
9:66969b9016ad | 210 | |
Charles MacNeill |
9:66969b9016ad | 211 | |
Charles MacNeill |
9:66969b9016ad | 212 | /* Write and read functions from I2C */ |
Charles MacNeill |
9:66969b9016ad | 213 | |
Charles MacNeill |
9:66969b9016ad | 214 | |
Charles MacNeill |
10:3687b5e79f98 | 215 | VL53L1CB_ERROR VL53L1CB::VL53L1CB_WriteMulti(VL53L1_DEV Dev, uint16_t index, uint8_t *pdata, uint32_t count) |
Charles MacNeill |
9:66969b9016ad | 216 | { |
Charles MacNeill |
9:66969b9016ad | 217 | int status; |
Charles MacNeill |
9:66969b9016ad | 218 | //printf(" class VL53L1_WriteMulti \n"); |
Charles MacNeill |
10:3687b5e79f98 | 219 | status = VL53L1CB_I2CWrite(Dev->i2c_slave_address, index, pdata, (uint16_t)count); |
Charles MacNeill |
9:66969b9016ad | 220 | return status; |
Charles MacNeill |
9:66969b9016ad | 221 | } |
Charles MacNeill |
9:66969b9016ad | 222 | |
Charles MacNeill |
10:3687b5e79f98 | 223 | VL53L1CB_ERROR VL53L1CB::VL53L1CB_ReadMulti(VL53L1_DEV Dev, uint16_t index, uint8_t *pdata, uint32_t count) |
Charles MacNeill |
9:66969b9016ad | 224 | { |
Charles MacNeill |
9:66969b9016ad | 225 | int status; |
Charles MacNeill |
9:66969b9016ad | 226 | |
Charles MacNeill |
10:3687b5e79f98 | 227 | status = VL53L1CB_I2CRead(Dev->i2c_slave_address, index, pdata, (uint16_t)count); |
Charles MacNeill |
9:66969b9016ad | 228 | |
Charles MacNeill |
9:66969b9016ad | 229 | return status; |
Charles MacNeill |
9:66969b9016ad | 230 | } |
Charles MacNeill |
9:66969b9016ad | 231 | |
Charles MacNeill |
9:66969b9016ad | 232 | |
Charles MacNeill |
10:3687b5e79f98 | 233 | VL53L1CB_ERROR VL53L1CB::VL53L1CB_WrByte(VL53L1_DEV Dev, uint16_t index, uint8_t data) |
Charles MacNeill |
9:66969b9016ad | 234 | { |
Charles MacNeill |
9:66969b9016ad | 235 | int status; |
Charles MacNeill |
9:66969b9016ad | 236 | |
Charles MacNeill |
10:3687b5e79f98 | 237 | status=VL53L1CB_I2CWrite(Dev->i2c_slave_address, index, &data, 1); |
Charles MacNeill |
9:66969b9016ad | 238 | return status; |
Charles MacNeill |
9:66969b9016ad | 239 | } |
Charles MacNeill |
9:66969b9016ad | 240 | |
Charles MacNeill |
10:3687b5e79f98 | 241 | VL53L1CB_ERROR VL53L1CB::VL53L1CB_WrWord(VL53L1_DEV Dev, uint16_t index, uint16_t data) |
Charles MacNeill |
9:66969b9016ad | 242 | { |
Charles MacNeill |
9:66969b9016ad | 243 | int status; |
Charles MacNeill |
9:66969b9016ad | 244 | uint8_t buffer[2]; |
Charles MacNeill |
9:66969b9016ad | 245 | |
Charles MacNeill |
9:66969b9016ad | 246 | buffer[0] = data >> 8; |
Charles MacNeill |
9:66969b9016ad | 247 | buffer[1] = data & 0x00FF; |
Charles MacNeill |
10:3687b5e79f98 | 248 | status=VL53L1CB_I2CWrite(Dev->i2c_slave_address, index, (uint8_t *)buffer, 2); |
Charles MacNeill |
9:66969b9016ad | 249 | return status; |
Charles MacNeill |
9:66969b9016ad | 250 | } |
Charles MacNeill |
9:66969b9016ad | 251 | |
Charles MacNeill |
10:3687b5e79f98 | 252 | VL53L1CB_ERROR VL53L1CB::VL53L1CB_WrDWord(VL53L1_DEV Dev, uint16_t index, uint32_t data) |
Charles MacNeill |
9:66969b9016ad | 253 | { |
Charles MacNeill |
9:66969b9016ad | 254 | int status; |
Charles MacNeill |
9:66969b9016ad | 255 | uint8_t buffer[4]; |
Charles MacNeill |
9:66969b9016ad | 256 | |
Charles MacNeill |
9:66969b9016ad | 257 | buffer[0] = (data >> 24) & 0xFF; |
Charles MacNeill |
9:66969b9016ad | 258 | buffer[1] = (data >> 16) & 0xFF; |
Charles MacNeill |
9:66969b9016ad | 259 | buffer[2] = (data >> 8) & 0xFF; |
Charles MacNeill |
9:66969b9016ad | 260 | buffer[3] = (data >> 0) & 0xFF; |
Charles MacNeill |
10:3687b5e79f98 | 261 | status=VL53L1CB_I2CWrite(Dev->i2c_slave_address, index, (uint8_t *)buffer, 4); |
Charles MacNeill |
9:66969b9016ad | 262 | return status; |
Charles MacNeill |
9:66969b9016ad | 263 | } |
Charles MacNeill |
9:66969b9016ad | 264 | |
Charles MacNeill |
9:66969b9016ad | 265 | |
Charles MacNeill |
10:3687b5e79f98 | 266 | VL53L1CB_ERROR VL53L1CB::VL53L1CB_RdByte(VL53L1_DEV Dev, uint16_t index, uint8_t *data) |
Charles MacNeill |
9:66969b9016ad | 267 | { |
Charles MacNeill |
9:66969b9016ad | 268 | int status; |
Charles MacNeill |
9:66969b9016ad | 269 | |
Charles MacNeill |
10:3687b5e79f98 | 270 | status = VL53L1CB_I2CRead(Dev->i2c_slave_address, index, data, 1); |
Charles MacNeill |
9:66969b9016ad | 271 | |
Charles MacNeill |
9:66969b9016ad | 272 | if(status) |
Charles MacNeill |
9:66969b9016ad | 273 | return -1; |
Charles MacNeill |
9:66969b9016ad | 274 | |
Charles MacNeill |
9:66969b9016ad | 275 | return 0; |
Charles MacNeill |
9:66969b9016ad | 276 | } |
Charles MacNeill |
9:66969b9016ad | 277 | |
Charles MacNeill |
10:3687b5e79f98 | 278 | VL53L1CB_ERROR VL53L1CB::VL53L1CB_RdWord(VL53L1_DEV Dev, uint16_t index, uint16_t *data) |
Charles MacNeill |
9:66969b9016ad | 279 | { |
Charles MacNeill |
9:66969b9016ad | 280 | int status; |
Charles MacNeill |
9:66969b9016ad | 281 | uint8_t buffer[2] = {0,0}; |
Charles MacNeill |
9:66969b9016ad | 282 | |
Charles MacNeill |
10:3687b5e79f98 | 283 | status = VL53L1CB_I2CRead(Dev->i2c_slave_address, index, buffer, 2); |
Charles MacNeill |
9:66969b9016ad | 284 | if (!status) |
Charles MacNeill |
9:66969b9016ad | 285 | { |
Charles MacNeill |
9:66969b9016ad | 286 | *data = (buffer[0] << 8) + buffer[1]; |
Charles MacNeill |
9:66969b9016ad | 287 | } |
Charles MacNeill |
9:66969b9016ad | 288 | // printf("VL53L1_RdWord %d %d %d \n",Dev->i2c_slave_address,index,status); |
Charles MacNeill |
9:66969b9016ad | 289 | return status; |
Charles MacNeill |
9:66969b9016ad | 290 | |
Charles MacNeill |
9:66969b9016ad | 291 | } |
Charles MacNeill |
9:66969b9016ad | 292 | |
Charles MacNeill |
10:3687b5e79f98 | 293 | VL53L1CB_ERROR VL53L1CB::VL53L1CB_RdDWord(VL53L1_DEV Dev, uint16_t index, uint32_t *data) |
Charles MacNeill |
9:66969b9016ad | 294 | { |
Charles MacNeill |
9:66969b9016ad | 295 | int status; |
Charles MacNeill |
9:66969b9016ad | 296 | uint8_t buffer[4] = {0,0,0,0}; |
Charles MacNeill |
9:66969b9016ad | 297 | |
Charles MacNeill |
10:3687b5e79f98 | 298 | status = VL53L1CB_I2CRead(Dev->i2c_slave_address, index, buffer, 4); |
Charles MacNeill |
9:66969b9016ad | 299 | if(!status) |
Charles MacNeill |
9:66969b9016ad | 300 | { |
Charles MacNeill |
9:66969b9016ad | 301 | *data = (buffer[0] << 24) + (buffer[1] << 16) + (buffer[2] << 8) + buffer[3]; |
Charles MacNeill |
9:66969b9016ad | 302 | } |
Charles MacNeill |
9:66969b9016ad | 303 | return status; |
Charles MacNeill |
9:66969b9016ad | 304 | |
Charles MacNeill |
9:66969b9016ad | 305 | } |
Charles MacNeill |
9:66969b9016ad | 306 | |
Charles MacNeill |
10:3687b5e79f98 | 307 | VL53L1CB_ERROR VL53L1CB::VL53L1CB_UpdateByte(VL53L1_DEV Dev, uint16_t index, uint8_t AndData, uint8_t OrData) |
Charles MacNeill |
9:66969b9016ad | 308 | { |
Charles MacNeill |
9:66969b9016ad | 309 | int status; |
Charles MacNeill |
9:66969b9016ad | 310 | uint8_t buffer = 0; |
Charles MacNeill |
9:66969b9016ad | 311 | |
Charles MacNeill |
9:66969b9016ad | 312 | /* read data direct onto buffer */ |
Charles MacNeill |
10:3687b5e79f98 | 313 | status = VL53L1CB_I2CRead(Dev->i2c_slave_address, index, &buffer,1); |
Charles MacNeill |
9:66969b9016ad | 314 | if (!status) |
Charles MacNeill |
9:66969b9016ad | 315 | { |
Charles MacNeill |
9:66969b9016ad | 316 | buffer = (buffer & AndData) | OrData; |
Charles MacNeill |
10:3687b5e79f98 | 317 | status = VL53L1CB_I2CWrite(Dev->i2c_slave_address, index, &buffer, (uint16_t)1); |
Charles MacNeill |
9:66969b9016ad | 318 | } |
Charles MacNeill |
9:66969b9016ad | 319 | return status; |
Charles MacNeill |
9:66969b9016ad | 320 | } |
Charles MacNeill |
9:66969b9016ad | 321 | |
Charles MacNeill |
10:3687b5e79f98 | 322 | VL53L1CB_ERROR VL53L1CB::VL53L1CB_I2CWrite(uint8_t DeviceAddr, uint16_t RegisterAddr, uint8_t* pBuffer, uint16_t NumByteToWrite) |
Charles MacNeill |
9:66969b9016ad | 323 | { |
Charles MacNeill |
9:66969b9016ad | 324 | int ret; |
Charles MacNeill |
9:66969b9016ad | 325 | ret = dev_i2c->ToF_i2c_write(pBuffer, DeviceAddr, RegisterAddr, NumByteToWrite); |
Charles MacNeill |
9:66969b9016ad | 326 | if (ret) { |
Charles MacNeill |
9:66969b9016ad | 327 | return -1; |
Charles MacNeill |
9:66969b9016ad | 328 | } |
Charles MacNeill |
9:66969b9016ad | 329 | return 0; |
Charles MacNeill |
9:66969b9016ad | 330 | |
Charles MacNeill |
9:66969b9016ad | 331 | } |
Charles MacNeill |
9:66969b9016ad | 332 | |
Charles MacNeill |
10:3687b5e79f98 | 333 | VL53L1CB_ERROR VL53L1CB::VL53L1CB_I2CRead(uint8_t DeviceAddr, uint16_t RegisterAddr, uint8_t* pBuffer, uint16_t NumByteToRead) |
Charles MacNeill |
9:66969b9016ad | 334 | { |
Charles MacNeill |
9:66969b9016ad | 335 | int ret; |
Charles MacNeill |
9:66969b9016ad | 336 | |
Charles MacNeill |
9:66969b9016ad | 337 | ret = dev_i2c->ToF_i2c_read(pBuffer, DeviceAddr, RegisterAddr, NumByteToRead); |
Charles MacNeill |
9:66969b9016ad | 338 | //ret = dev_i2c->i2c_read(pBuffer, DeviceAddr, RegisterAddr, NumByteToRead); |
Charles MacNeill |
9:66969b9016ad | 339 | if (ret) { |
Charles MacNeill |
9:66969b9016ad | 340 | return -1; |
Charles MacNeill |
9:66969b9016ad | 341 | } |
Charles MacNeill |
9:66969b9016ad | 342 | return 0; |
Charles MacNeill |
9:66969b9016ad | 343 | } |
Charles MacNeill |
9:66969b9016ad | 344 | |
Charles MacNeill |
9:66969b9016ad | 345 | |
Charles MacNeill |
10:3687b5e79f98 | 346 | VL53L1CB_ERROR VL53L1CB::VL53L1CB_GetTickCount( |
Charles MacNeill |
9:66969b9016ad | 347 | uint32_t *ptick_count_ms) |
Charles MacNeill |
9:66969b9016ad | 348 | { |
Charles MacNeill |
9:66969b9016ad | 349 | |
Charles MacNeill |
9:66969b9016ad | 350 | /* Returns current tick count in [ms] */ |
Charles MacNeill |
9:66969b9016ad | 351 | |
Charles MacNeill |
10:3687b5e79f98 | 352 | VL53L1CB_ERROR status = VL53L1_ERROR_NONE; |
Charles MacNeill |
9:66969b9016ad | 353 | |
Charles MacNeill |
9:66969b9016ad | 354 | //*ptick_count_ms = timeGetTime(); |
Charles MacNeill |
9:66969b9016ad | 355 | *ptick_count_ms = us_ticker_read() / 1000; |
Charles MacNeill |
9:66969b9016ad | 356 | |
Charles MacNeill |
9:66969b9016ad | 357 | return status; |
Charles MacNeill |
9:66969b9016ad | 358 | } |
Charles MacNeill |
9:66969b9016ad | 359 | |
Charles MacNeill |
9:66969b9016ad | 360 | |
Charles MacNeill |
9:66969b9016ad | 361 | |
Charles MacNeill |
10:3687b5e79f98 | 362 | VL53L1CB_ERROR VL53L1CB::VL53L1CB_WaitUs(VL53L1_Dev_t *pdev, int32_t wait_time) |
Charles MacNeill |
9:66969b9016ad | 363 | { |
Charles MacNeill |
9:66969b9016ad | 364 | //(void)pdev; |
Charles MacNeill |
9:66969b9016ad | 365 | wait_us(wait_time); |
Charles MacNeill |
9:66969b9016ad | 366 | return VL53L1_ERROR_NONE; |
Charles MacNeill |
9:66969b9016ad | 367 | } |
Charles MacNeill |
9:66969b9016ad | 368 | |
Charles MacNeill |
9:66969b9016ad | 369 | |
Charles MacNeill |
10:3687b5e79f98 | 370 | VL53L1CB_ERROR VL53L1CB::VL53L1CB_WaitMs(VL53L1_Dev_t *pdev, int32_t wait_time) |
Charles MacNeill |
9:66969b9016ad | 371 | { |
Charles MacNeill |
9:66969b9016ad | 372 | //(void)pdev; |
Charles MacNeill |
9:66969b9016ad | 373 | |
Charles MacNeill |
9:66969b9016ad | 374 | #if (MBED_VERSION > 60300) |
Charles MacNeill |
9:66969b9016ad | 375 | thread_sleep_for(wait_time); |
Charles MacNeill |
9:66969b9016ad | 376 | #else |
Charles MacNeill |
9:66969b9016ad | 377 | wait_ms(wait_time); // NEEDS A DELAY BETWEEN SENSORS |
Charles MacNeill |
9:66969b9016ad | 378 | #endif |
Charles MacNeill |
9:66969b9016ad | 379 | return VL53L1_ERROR_NONE; |
Charles MacNeill |
9:66969b9016ad | 380 | } |
Charles MacNeill |
9:66969b9016ad | 381 | |
Charles MacNeill |
9:66969b9016ad | 382 | |
Charles MacNeill |
10:3687b5e79f98 | 383 | VL53L1CB_ERROR VL53L1CB::VL53L1CB_WaitValueMaskEx( |
Charles MacNeill |
9:66969b9016ad | 384 | VL53L1_Dev_t *pdev, |
Charles MacNeill |
9:66969b9016ad | 385 | uint32_t timeout_ms, |
Charles MacNeill |
9:66969b9016ad | 386 | uint16_t index, |
Charles MacNeill |
9:66969b9016ad | 387 | uint8_t value, |
Charles MacNeill |
9:66969b9016ad | 388 | uint8_t mask, |
Charles MacNeill |
9:66969b9016ad | 389 | uint32_t poll_delay_ms) |
Charles MacNeill |
9:66969b9016ad | 390 | { |
Charles MacNeill |
9:66969b9016ad | 391 | |
Charles MacNeill |
9:66969b9016ad | 392 | /* |
Charles MacNeill |
9:66969b9016ad | 393 | * Platform implementation of WaitValueMaskEx V2WReg script command |
Charles MacNeill |
9:66969b9016ad | 394 | * |
Charles MacNeill |
9:66969b9016ad | 395 | * WaitValueMaskEx( |
Charles MacNeill |
9:66969b9016ad | 396 | * duration_ms, |
Charles MacNeill |
9:66969b9016ad | 397 | * index, |
Charles MacNeill |
9:66969b9016ad | 398 | * value, |
Charles MacNeill |
9:66969b9016ad | 399 | * mask, |
Charles MacNeill |
9:66969b9016ad | 400 | * poll_delay_ms); |
Charles MacNeill |
9:66969b9016ad | 401 | */ |
Charles MacNeill |
9:66969b9016ad | 402 | |
Charles MacNeill |
9:66969b9016ad | 403 | |
Charles MacNeill |
9:66969b9016ad | 404 | return VL53L1_WaitValueMaskEx( pdev, timeout_ms,index, value, mask, poll_delay_ms); |
Charles MacNeill |
9:66969b9016ad | 405 | } |
Charles MacNeill |
9:66969b9016ad | 406 | |
Charles MacNeill |
9:66969b9016ad | 407 | |
Charles MacNeill |
9:66969b9016ad | 408 | /***************************************************************************/ |
Charles MacNeill |
10:3687b5e79f98 | 409 | //VL53L1CB_ERROR VL53L1CB::VL53L1CB_WaitValueMaskEx( |
Charles MacNeill |
9:66969b9016ad | 410 | |
Charles MacNeill |
10:3687b5e79f98 | 411 | VL53L1CB_ERROR VL53L1CB::VL53L1CB_WaitDeviceBooted(VL53L1_DEV Dev) |
Charles MacNeill |
9:66969b9016ad | 412 | { |
Charles MacNeill |
9:66969b9016ad | 413 | |
Charles MacNeill |
9:66969b9016ad | 414 | return VL53L1_WaitDeviceBooted(Dev); |
Charles MacNeill |
9:66969b9016ad | 415 | } |
Charles MacNeill |
9:66969b9016ad | 416 | |
Charles MacNeill |
9:66969b9016ad | 417 | |
Charles MacNeill |
9:66969b9016ad | 418 | static int32_t BDTable[VL53L1_TUNING_MAX_TUNABLE_KEY] = { |
Charles MacNeill |
9:66969b9016ad | 419 | TUNING_VERSION, |
Charles MacNeill |
9:66969b9016ad | 420 | TUNING_PROXY_MIN, |
Charles MacNeill |
9:66969b9016ad | 421 | TUNING_SINGLE_TARGET_XTALK_TARGET_DISTANCE_MM, |
Charles MacNeill |
9:66969b9016ad | 422 | TUNING_SINGLE_TARGET_XTALK_SAMPLE_NUMBER, |
Charles MacNeill |
9:66969b9016ad | 423 | TUNING_MIN_AMBIENT_DMAX_VALID, |
Charles MacNeill |
9:66969b9016ad | 424 | TUNING_MAX_SIMPLE_OFFSET_CALIBRATION_SAMPLE_NUMBER, |
Charles MacNeill |
9:66969b9016ad | 425 | TUNING_XTALK_FULL_ROI_TARGET_DISTANCE_MM, |
Charles MacNeill |
9:66969b9016ad | 426 | TUNING_SIMPLE_OFFSET_CALIBRATION_REPEAT, |
Charles MacNeill |
9:66969b9016ad | 427 | TUNING_XTALK_FULL_ROI_BIN_SUM_MARGIN, |
Charles MacNeill |
9:66969b9016ad | 428 | TUNING_XTALK_FULL_ROI_DEFAULT_OFFSET, |
Charles MacNeill |
9:66969b9016ad | 429 | TUNING_ZERO_DISTANCE_OFFSET_NON_LINEAR_FACTOR_DEFAULT, |
Charles MacNeill |
9:66969b9016ad | 430 | }; |
Charles MacNeill |
9:66969b9016ad | 431 | |
Charles MacNeill |
9:66969b9016ad | 432 | |
Charles MacNeill |
10:3687b5e79f98 | 433 | VL53L1CB_ERROR VL53L1CB::VL53L1CB_GetVersion(VL53L1_Version_t *pVersion) |
Charles MacNeill |
9:66969b9016ad | 434 | { |
Charles MacNeill |
9:66969b9016ad | 435 | |
Charles MacNeill |
9:66969b9016ad | 436 | return VL53L1_GetVersion(pVersion); |
Charles MacNeill |
9:66969b9016ad | 437 | } |
Charles MacNeill |
9:66969b9016ad | 438 | |
Charles MacNeill |
9:66969b9016ad | 439 | |
Charles MacNeill |
10:3687b5e79f98 | 440 | VL53L1CB_ERROR VL53L1CB::VL53L1CB_GetProductRevision( |
Charles MacNeill |
9:66969b9016ad | 441 | uint8_t *pProductRevisionMajor, uint8_t *pProductRevisionMinor) |
Charles MacNeill |
9:66969b9016ad | 442 | { |
Charles MacNeill |
9:66969b9016ad | 443 | return VL53L1_GetProductRevision(Device,pProductRevisionMajor,pProductRevisionMinor); |
Charles MacNeill |
9:66969b9016ad | 444 | } |
Charles MacNeill |
9:66969b9016ad | 445 | |
Charles MacNeill |
9:66969b9016ad | 446 | //****************************************************************** |
Charles MacNeill |
9:66969b9016ad | 447 | |
Charles MacNeill |
9:66969b9016ad | 448 | |
Charles MacNeill |
10:3687b5e79f98 | 449 | VL53L1CB_ERROR VL53L1CB::VL53L1CB_GetDeviceInfo( |
Charles MacNeill |
9:66969b9016ad | 450 | VL53L1_DeviceInfo_t *pVL53L1_DeviceInfo) |
Charles MacNeill |
9:66969b9016ad | 451 | { |
Charles MacNeill |
9:66969b9016ad | 452 | return VL53L1_GetDeviceInfo(Device,pVL53L1_DeviceInfo); |
Charles MacNeill |
9:66969b9016ad | 453 | } |
Charles MacNeill |
9:66969b9016ad | 454 | |
Charles MacNeill |
10:3687b5e79f98 | 455 | VL53L1CB_ERROR VL53L1CB::VL53L1CB_GetUID( uint64_t *pUid) |
Charles MacNeill |
9:66969b9016ad | 456 | { |
Charles MacNeill |
9:66969b9016ad | 457 | return VL53L1_GetUID(Device,pUid); |
Charles MacNeill |
9:66969b9016ad | 458 | } |
Charles MacNeill |
9:66969b9016ad | 459 | |
Charles MacNeill |
10:3687b5e79f98 | 460 | VL53L1CB_ERROR VL53L1CB::VL53L1CB_GetRangeStatusString(uint8_t RangeStatus, |
Charles MacNeill |
9:66969b9016ad | 461 | char *pRangeStatusString) |
Charles MacNeill |
9:66969b9016ad | 462 | { |
Charles MacNeill |
9:66969b9016ad | 463 | return VL53L1_GetRangeStatusString(RangeStatus, |
Charles MacNeill |
9:66969b9016ad | 464 | pRangeStatusString); |
Charles MacNeill |
9:66969b9016ad | 465 | } |
Charles MacNeill |
9:66969b9016ad | 466 | |
Charles MacNeill |
10:3687b5e79f98 | 467 | VL53L1CB_ERROR VL53L1CB::VL53L1CB_GetPalErrorString(VL53L1CB_ERROR PalErrorCode, |
Charles MacNeill |
9:66969b9016ad | 468 | char *pPalErrorString) |
Charles MacNeill |
9:66969b9016ad | 469 | { |
Charles MacNeill |
9:66969b9016ad | 470 | return VL53L1_GetPalErrorString(PalErrorCode,pPalErrorString); |
Charles MacNeill |
9:66969b9016ad | 471 | } |
Charles MacNeill |
9:66969b9016ad | 472 | |
Charles MacNeill |
10:3687b5e79f98 | 473 | VL53L1CB_ERROR VL53L1CB::VL53L1CB_GetPalStateString(VL53L1_State PalStateCode, |
Charles MacNeill |
9:66969b9016ad | 474 | char *pPalStateString) |
Charles MacNeill |
9:66969b9016ad | 475 | { |
Charles MacNeill |
9:66969b9016ad | 476 | return VL53L1_GetPalStateString(PalStateCode, pPalStateString); |
Charles MacNeill |
9:66969b9016ad | 477 | } |
Charles MacNeill |
9:66969b9016ad | 478 | |
Charles MacNeill |
10:3687b5e79f98 | 479 | VL53L1CB_ERROR VL53L1CB::VL53L1CB_GetPalState(VL53L1_DEV Dev, VL53L1_State *pPalState) |
Charles MacNeill |
9:66969b9016ad | 480 | { |
Charles MacNeill |
9:66969b9016ad | 481 | return VL53L1_GetPalState(Dev,pPalState); |
Charles MacNeill |
9:66969b9016ad | 482 | } |
Charles MacNeill |
9:66969b9016ad | 483 | |
Charles MacNeill |
9:66969b9016ad | 484 | |
Charles MacNeill |
10:3687b5e79f98 | 485 | VL53L1CB_ERROR VL53L1CB::VL53L1CB_SetDeviceAddress(VL53L1_DEV Dev, uint8_t DeviceAddress) |
Charles MacNeill |
9:66969b9016ad | 486 | { |
Charles MacNeill |
10:3687b5e79f98 | 487 | VL53L1CB_ERROR Status = VL53L1_ERROR_NONE; |
Charles MacNeill |
9:66969b9016ad | 488 | |
Charles MacNeill |
9:66969b9016ad | 489 | // LOG_FUNCTION_START(""); |
Charles MacNeill |
9:66969b9016ad | 490 | |
Charles MacNeill |
10:3687b5e79f98 | 491 | Status = VL53L1_WrByte(Dev, VL53L1CB_I2C_SLAVE__DEVICE_ADDRESS, |
Charles MacNeill |
9:66969b9016ad | 492 | DeviceAddress / 2); |
Charles MacNeill |
9:66969b9016ad | 493 | |
Charles MacNeill |
9:66969b9016ad | 494 | // LOG_FUNCTION_END(Status); |
Charles MacNeill |
9:66969b9016ad | 495 | return Status; |
Charles MacNeill |
9:66969b9016ad | 496 | } |
Charles MacNeill |
9:66969b9016ad | 497 | |
Charles MacNeill |
10:3687b5e79f98 | 498 | VL53L1CB_ERROR VL53L1CB::VL53L1CB_DataInit() |
Charles MacNeill |
9:66969b9016ad | 499 | { |
Charles MacNeill |
9:66969b9016ad | 500 | printf("vl53L1_DataInit %d \n",Device->i2c_slave_address); |
Charles MacNeill |
9:66969b9016ad | 501 | return VL53L1_DataInit( Device); |
Charles MacNeill |
9:66969b9016ad | 502 | } |
Charles MacNeill |
9:66969b9016ad | 503 | |
Charles MacNeill |
9:66969b9016ad | 504 | |
Charles MacNeill |
10:3687b5e79f98 | 505 | VL53L1CB_ERROR VL53L1CB::VL53L1CB_StaticInit() |
Charles MacNeill |
9:66969b9016ad | 506 | { |
Charles MacNeill |
9:66969b9016ad | 507 | return VL53L1_StaticInit( Device); |
Charles MacNeill |
9:66969b9016ad | 508 | } |
Charles MacNeill |
9:66969b9016ad | 509 | |
Charles MacNeill |
9:66969b9016ad | 510 | |
Charles MacNeill |
10:3687b5e79f98 | 511 | VL53L1CB_ERROR VL53L1CB::VL53L1CB_SetPresetMode(VL53L1_PresetModes PresetMode) |
Charles MacNeill |
9:66969b9016ad | 512 | { |
Charles MacNeill |
9:66969b9016ad | 513 | return VL53L1_SetPresetMode(Device,PresetMode); |
Charles MacNeill |
9:66969b9016ad | 514 | } |
Charles MacNeill |
9:66969b9016ad | 515 | |
Charles MacNeill |
9:66969b9016ad | 516 | |
Charles MacNeill |
10:3687b5e79f98 | 517 | VL53L1CB_ERROR VL53L1CB::VL53L1CB_GetPresetMode( VL53L1_PresetModes *pPresetMode) |
Charles MacNeill |
9:66969b9016ad | 518 | { |
Charles MacNeill |
9:66969b9016ad | 519 | return VL53L1_GetPresetMode(Device,pPresetMode); |
Charles MacNeill |
9:66969b9016ad | 520 | } |
Charles MacNeill |
9:66969b9016ad | 521 | |
Charles MacNeill |
9:66969b9016ad | 522 | |
Charles MacNeill |
10:3687b5e79f98 | 523 | VL53L1CB_ERROR VL53L1CB::VL53L1CB_SetDistanceMode(VL53L1_DistanceModes DistanceMode) |
Charles MacNeill |
9:66969b9016ad | 524 | { |
Charles MacNeill |
9:66969b9016ad | 525 | return VL53L1_SetDistanceMode(Device,DistanceMode); |
Charles MacNeill |
9:66969b9016ad | 526 | } |
Charles MacNeill |
9:66969b9016ad | 527 | |
Charles MacNeill |
10:3687b5e79f98 | 528 | VL53L1CB_ERROR VL53L1CB::VL53L1CB_GetDistanceMode(VL53L1_DistanceModes *pDistanceMode) |
Charles MacNeill |
9:66969b9016ad | 529 | { |
Charles MacNeill |
9:66969b9016ad | 530 | return VL53L1_GetDistanceMode(Device,pDistanceMode); |
Charles MacNeill |
9:66969b9016ad | 531 | } |
Charles MacNeill |
9:66969b9016ad | 532 | |
Charles MacNeill |
10:3687b5e79f98 | 533 | VL53L1CB_ERROR VL53L1CB::VL53L1CB_SetOutputMode(VL53L1_OutputModes OutputMode) |
Charles MacNeill |
9:66969b9016ad | 534 | { |
Charles MacNeill |
9:66969b9016ad | 535 | return VL53L1_SetOutputMode(Device,OutputMode); |
Charles MacNeill |
9:66969b9016ad | 536 | } |
Charles MacNeill |
9:66969b9016ad | 537 | |
Charles MacNeill |
10:3687b5e79f98 | 538 | VL53L1CB_ERROR VL53L1CB::VL53L1CB_GetOutputMode(VL53L1_OutputModes *pOutputMode) |
Charles MacNeill |
9:66969b9016ad | 539 | { |
Charles MacNeill |
9:66969b9016ad | 540 | return VL53L1_GetOutputMode(Device,pOutputMode); |
Charles MacNeill |
9:66969b9016ad | 541 | } |
Charles MacNeill |
9:66969b9016ad | 542 | |
Charles MacNeill |
9:66969b9016ad | 543 | |
Charles MacNeill |
9:66969b9016ad | 544 | |
Charles MacNeill |
10:3687b5e79f98 | 545 | VL53L1CB_ERROR VL53L1CB::VL53L1CB_SetMeasurementTimingBudgetMicroSeconds( |
Charles MacNeill |
9:66969b9016ad | 546 | uint32_t MeasurementTimingBudgetMicroSeconds) |
Charles MacNeill |
9:66969b9016ad | 547 | { |
Charles MacNeill |
9:66969b9016ad | 548 | return VL53L1_SetMeasurementTimingBudgetMicroSeconds(Device, |
Charles MacNeill |
9:66969b9016ad | 549 | MeasurementTimingBudgetMicroSeconds); |
Charles MacNeill |
9:66969b9016ad | 550 | } |
Charles MacNeill |
9:66969b9016ad | 551 | |
Charles MacNeill |
9:66969b9016ad | 552 | |
Charles MacNeill |
10:3687b5e79f98 | 553 | VL53L1CB_ERROR VL53L1CB::VL53L1CB_GetMeasurementTimingBudgetMicroSeconds( |
Charles MacNeill |
9:66969b9016ad | 554 | uint32_t *pMeasurementTimingBudgetMicroSeconds) |
Charles MacNeill |
9:66969b9016ad | 555 | { |
Charles MacNeill |
9:66969b9016ad | 556 | return VL53L1_GetMeasurementTimingBudgetMicroSeconds(Device, |
Charles MacNeill |
9:66969b9016ad | 557 | pMeasurementTimingBudgetMicroSeconds); |
Charles MacNeill |
9:66969b9016ad | 558 | } |
Charles MacNeill |
9:66969b9016ad | 559 | |
Charles MacNeill |
9:66969b9016ad | 560 | |
Charles MacNeill |
9:66969b9016ad | 561 | |
Charles MacNeill |
10:3687b5e79f98 | 562 | VL53L1CB_ERROR VL53L1CB::VL53L1CB_SetInterMeasurementPeriodMilliSeconds( |
Charles MacNeill |
9:66969b9016ad | 563 | uint32_t InterMeasurementPeriodMilliSeconds) |
Charles MacNeill |
9:66969b9016ad | 564 | { |
Charles MacNeill |
9:66969b9016ad | 565 | return VL53L1_SetInterMeasurementPeriodMilliSeconds(Device,InterMeasurementPeriodMilliSeconds); |
Charles MacNeill |
9:66969b9016ad | 566 | } |
Charles MacNeill |
9:66969b9016ad | 567 | |
Charles MacNeill |
10:3687b5e79f98 | 568 | VL53L1CB_ERROR VL53L1CB::VL53L1CB_GetInterMeasurementPeriodMilliSeconds( |
Charles MacNeill |
9:66969b9016ad | 569 | uint32_t *pInterMeasurementPeriodMilliSeconds) |
Charles MacNeill |
9:66969b9016ad | 570 | { |
Charles MacNeill |
9:66969b9016ad | 571 | return VL53L1_GetInterMeasurementPeriodMilliSeconds(Device,pInterMeasurementPeriodMilliSeconds); |
Charles MacNeill |
9:66969b9016ad | 572 | } |
Charles MacNeill |
9:66969b9016ad | 573 | |
Charles MacNeill |
10:3687b5e79f98 | 574 | VL53L1CB_ERROR VL53L1CB::VL53L1CB_SetDmaxReflectance(FixPoint1616_t DmaxReflectance) |
Charles MacNeill |
9:66969b9016ad | 575 | { |
Charles MacNeill |
9:66969b9016ad | 576 | |
Charles MacNeill |
9:66969b9016ad | 577 | return VL53L1_SetDmaxReflectance(Device,DmaxReflectance); |
Charles MacNeill |
9:66969b9016ad | 578 | } |
Charles MacNeill |
9:66969b9016ad | 579 | |
Charles MacNeill |
10:3687b5e79f98 | 580 | VL53L1CB_ERROR VL53L1CB::VL53L1CB_GetDmaxReflectance( |
Charles MacNeill |
9:66969b9016ad | 581 | FixPoint1616_t *pDmaxReflectance) |
Charles MacNeill |
9:66969b9016ad | 582 | { |
Charles MacNeill |
9:66969b9016ad | 583 | return VL53L1_GetDmaxReflectance(Device,pDmaxReflectance); |
Charles MacNeill |
9:66969b9016ad | 584 | } |
Charles MacNeill |
9:66969b9016ad | 585 | |
Charles MacNeill |
9:66969b9016ad | 586 | |
Charles MacNeill |
10:3687b5e79f98 | 587 | VL53L1CB_ERROR VL53L1CB::VL53L1CB_SetDmaxMode(VL53L1_DeviceDmaxModes DmaxMode) |
Charles MacNeill |
9:66969b9016ad | 588 | { |
Charles MacNeill |
9:66969b9016ad | 589 | return VL53L1_SetDmaxMode(Device,DmaxMode); |
Charles MacNeill |
9:66969b9016ad | 590 | } |
Charles MacNeill |
9:66969b9016ad | 591 | |
Charles MacNeill |
9:66969b9016ad | 592 | |
Charles MacNeill |
10:3687b5e79f98 | 593 | VL53L1CB_ERROR VL53L1CB::VL53L1CB_GetDmaxMode( |
Charles MacNeill |
9:66969b9016ad | 594 | VL53L1_DeviceDmaxModes *pDmaxMode) |
Charles MacNeill |
9:66969b9016ad | 595 | { |
Charles MacNeill |
9:66969b9016ad | 596 | return VL53L1_GetDmaxMode(Device,pDmaxMode); |
Charles MacNeill |
9:66969b9016ad | 597 | } |
Charles MacNeill |
9:66969b9016ad | 598 | |
Charles MacNeill |
9:66969b9016ad | 599 | |
Charles MacNeill |
9:66969b9016ad | 600 | |
Charles MacNeill |
10:3687b5e79f98 | 601 | VL53L1CB_ERROR VL53L1CB::VL53L1CB_GetNumberOfLimitCheck(uint16_t *pNumberOfLimitCheck) |
Charles MacNeill |
9:66969b9016ad | 602 | { |
Charles MacNeill |
10:3687b5e79f98 | 603 | VL53L1CB_ERROR Status = VL53L1_ERROR_NONE; |
Charles MacNeill |
9:66969b9016ad | 604 | |
Charles MacNeill |
9:66969b9016ad | 605 | // LOG_FUNCTION_START(""); |
Charles MacNeill |
9:66969b9016ad | 606 | |
Charles MacNeill |
9:66969b9016ad | 607 | *pNumberOfLimitCheck = VL53L1_CHECKENABLE_NUMBER_OF_CHECKS; |
Charles MacNeill |
9:66969b9016ad | 608 | |
Charles MacNeill |
9:66969b9016ad | 609 | // LOG_FUNCTION_END(Status); |
Charles MacNeill |
9:66969b9016ad | 610 | return Status; |
Charles MacNeill |
9:66969b9016ad | 611 | } |
Charles MacNeill |
9:66969b9016ad | 612 | |
Charles MacNeill |
10:3687b5e79f98 | 613 | VL53L1CB_ERROR VL53L1CB::VL53L1CB_GetLimitCheckInfo(uint16_t LimitCheckId, |
Charles MacNeill |
9:66969b9016ad | 614 | char *pLimitCheckString) |
Charles MacNeill |
9:66969b9016ad | 615 | { |
Charles MacNeill |
9:66969b9016ad | 616 | return VL53L1_GetLimitCheckInfo(LimitCheckId, |
Charles MacNeill |
9:66969b9016ad | 617 | pLimitCheckString); |
Charles MacNeill |
9:66969b9016ad | 618 | |
Charles MacNeill |
9:66969b9016ad | 619 | } |
Charles MacNeill |
9:66969b9016ad | 620 | |
Charles MacNeill |
10:3687b5e79f98 | 621 | VL53L1CB_ERROR VL53L1CB::VL53L1CB_GetLimitCheckStatus(uint16_t LimitCheckId, |
Charles MacNeill |
9:66969b9016ad | 622 | uint8_t *pLimitCheckStatus) |
Charles MacNeill |
9:66969b9016ad | 623 | { |
Charles MacNeill |
9:66969b9016ad | 624 | return VL53L1_GetLimitCheckStatus(Device,LimitCheckId,pLimitCheckStatus); |
Charles MacNeill |
9:66969b9016ad | 625 | } |
Charles MacNeill |
9:66969b9016ad | 626 | |
Charles MacNeill |
9:66969b9016ad | 627 | |
Charles MacNeill |
10:3687b5e79f98 | 628 | VL53L1CB_ERROR VL53L1CB::VL53L1CB_SetLimitCheckEnable(uint16_t LimitCheckId, |
Charles MacNeill |
9:66969b9016ad | 629 | uint8_t LimitCheckEnable) |
Charles MacNeill |
9:66969b9016ad | 630 | { |
Charles MacNeill |
9:66969b9016ad | 631 | |
Charles MacNeill |
9:66969b9016ad | 632 | return VL53L1_SetLimitCheckEnable(Device,LimitCheckId,LimitCheckEnable); |
Charles MacNeill |
9:66969b9016ad | 633 | } |
Charles MacNeill |
9:66969b9016ad | 634 | |
Charles MacNeill |
10:3687b5e79f98 | 635 | VL53L1CB_ERROR VL53L1CB::VL53L1CB_GetLimitCheckEnable(uint16_t LimitCheckId, |
Charles MacNeill |
9:66969b9016ad | 636 | uint8_t *pLimitCheckEnable) |
Charles MacNeill |
9:66969b9016ad | 637 | { |
Charles MacNeill |
9:66969b9016ad | 638 | return VL53L1_GetLimitCheckEnable(Device,LimitCheckId,pLimitCheckEnable); |
Charles MacNeill |
9:66969b9016ad | 639 | } |
Charles MacNeill |
9:66969b9016ad | 640 | |
Charles MacNeill |
10:3687b5e79f98 | 641 | VL53L1CB_ERROR VL53L1CB::VL53L1CB_SetLimitCheckValue( uint16_t LimitCheckId, |
Charles MacNeill |
9:66969b9016ad | 642 | FixPoint1616_t LimitCheckValue) |
Charles MacNeill |
9:66969b9016ad | 643 | { |
Charles MacNeill |
9:66969b9016ad | 644 | return VL53L1_SetLimitCheckValue(Device,LimitCheckId,LimitCheckValue); |
Charles MacNeill |
9:66969b9016ad | 645 | } |
Charles MacNeill |
9:66969b9016ad | 646 | |
Charles MacNeill |
10:3687b5e79f98 | 647 | VL53L1CB_ERROR VL53L1CB::VL53L1CB_GetLimitCheckValue( uint16_t LimitCheckId, |
Charles MacNeill |
9:66969b9016ad | 648 | FixPoint1616_t *pLimitCheckValue) |
Charles MacNeill |
9:66969b9016ad | 649 | { |
Charles MacNeill |
9:66969b9016ad | 650 | return VL53L1_GetLimitCheckValue(Device,LimitCheckId,pLimitCheckValue); |
Charles MacNeill |
9:66969b9016ad | 651 | } |
Charles MacNeill |
9:66969b9016ad | 652 | |
Charles MacNeill |
10:3687b5e79f98 | 653 | VL53L1CB_ERROR VL53L1CB::VL53L1CB_GetLimitCheckCurrent( uint16_t LimitCheckId, |
Charles MacNeill |
9:66969b9016ad | 654 | FixPoint1616_t *pLimitCheckCurrent) |
Charles MacNeill |
9:66969b9016ad | 655 | { |
Charles MacNeill |
9:66969b9016ad | 656 | return VL53L1_GetLimitCheckCurrent(Device,LimitCheckId,pLimitCheckCurrent); |
Charles MacNeill |
9:66969b9016ad | 657 | } |
Charles MacNeill |
9:66969b9016ad | 658 | |
Charles MacNeill |
9:66969b9016ad | 659 | |
Charles MacNeill |
10:3687b5e79f98 | 660 | VL53L1CB_ERROR VL53L1CB::VL53L1CB_GetMaxNumberOfROI( uint8_t *pMaxNumberOfROI) |
Charles MacNeill |
9:66969b9016ad | 661 | { |
Charles MacNeill |
9:66969b9016ad | 662 | return VL53L1_GetMaxNumberOfROI(Device,pMaxNumberOfROI); |
Charles MacNeill |
9:66969b9016ad | 663 | } |
Charles MacNeill |
9:66969b9016ad | 664 | |
Charles MacNeill |
10:3687b5e79f98 | 665 | VL53L1CB_ERROR VL53L1CB::VL53L1CB_SetROI( VL53L1_RoiConfig_t *pRoiConfig) |
Charles MacNeill |
9:66969b9016ad | 666 | { |
Charles MacNeill |
9:66969b9016ad | 667 | |
Charles MacNeill |
9:66969b9016ad | 668 | return VL53L1_SetROI(Device,pRoiConfig); |
Charles MacNeill |
9:66969b9016ad | 669 | } |
Charles MacNeill |
9:66969b9016ad | 670 | |
Charles MacNeill |
10:3687b5e79f98 | 671 | VL53L1CB_ERROR VL53L1CB::VL53L1CB_GetROI(VL53L1_RoiConfig_t *pRoiConfig) |
Charles MacNeill |
9:66969b9016ad | 672 | { |
Charles MacNeill |
9:66969b9016ad | 673 | return VL53L1_GetROI(Device,pRoiConfig); |
Charles MacNeill |
9:66969b9016ad | 674 | } |
Charles MacNeill |
9:66969b9016ad | 675 | |
Charles MacNeill |
10:3687b5e79f98 | 676 | VL53L1CB_ERROR VL53L1CB::VL53L1CB_GetNumberOfSequenceSteps(uint8_t *pNumberOfSequenceSteps) |
Charles MacNeill |
9:66969b9016ad | 677 | { |
Charles MacNeill |
10:3687b5e79f98 | 678 | VL53L1CB_ERROR Status = VL53L1_ERROR_NONE; |
Charles MacNeill |
9:66969b9016ad | 679 | |
Charles MacNeill |
9:66969b9016ad | 680 | // SUPPRESS_UNUSED_WARNING(Dev); |
Charles MacNeill |
9:66969b9016ad | 681 | |
Charles MacNeill |
9:66969b9016ad | 682 | // LOG_FUNCTION_START(""); |
Charles MacNeill |
9:66969b9016ad | 683 | |
Charles MacNeill |
9:66969b9016ad | 684 | *pNumberOfSequenceSteps = VL53L1_SEQUENCESTEP_NUMBER_OF_ITEMS; |
Charles MacNeill |
9:66969b9016ad | 685 | |
Charles MacNeill |
9:66969b9016ad | 686 | // LOG_FUNCTION_END(Status); |
Charles MacNeill |
9:66969b9016ad | 687 | return Status; |
Charles MacNeill |
9:66969b9016ad | 688 | } |
Charles MacNeill |
9:66969b9016ad | 689 | |
Charles MacNeill |
10:3687b5e79f98 | 690 | VL53L1CB_ERROR VL53L1CB::VL53L1CB_GetSequenceStepsInfo(VL53L1_SequenceStepId SequenceStepId, |
Charles MacNeill |
9:66969b9016ad | 691 | char *pSequenceStepsString) |
Charles MacNeill |
9:66969b9016ad | 692 | { |
Charles MacNeill |
9:66969b9016ad | 693 | return VL53L1_GetSequenceStepsInfo(SequenceStepId,pSequenceStepsString); |
Charles MacNeill |
9:66969b9016ad | 694 | } |
Charles MacNeill |
9:66969b9016ad | 695 | |
Charles MacNeill |
10:3687b5e79f98 | 696 | VL53L1CB_ERROR VL53L1CB::VL53L1CB_SetSequenceStepEnable(VL53L1_SequenceStepId SequenceStepId, |
Charles MacNeill |
9:66969b9016ad | 697 | uint8_t SequenceStepEnabled) |
Charles MacNeill |
9:66969b9016ad | 698 | { |
Charles MacNeill |
9:66969b9016ad | 699 | |
Charles MacNeill |
9:66969b9016ad | 700 | return VL53L1_SetSequenceStepEnable(Device,SequenceStepId,SequenceStepEnabled); |
Charles MacNeill |
9:66969b9016ad | 701 | } |
Charles MacNeill |
9:66969b9016ad | 702 | |
Charles MacNeill |
9:66969b9016ad | 703 | |
Charles MacNeill |
10:3687b5e79f98 | 704 | VL53L1CB_ERROR VL53L1CB::VL53L1CB_GetSequenceStepEnable(VL53L1_SequenceStepId SequenceStepId, |
Charles MacNeill |
9:66969b9016ad | 705 | uint8_t *pSequenceStepEnabled) |
Charles MacNeill |
9:66969b9016ad | 706 | { |
Charles MacNeill |
9:66969b9016ad | 707 | return VL53L1_GetSequenceStepEnable(Device,SequenceStepId,pSequenceStepEnabled); |
Charles MacNeill |
9:66969b9016ad | 708 | } |
Charles MacNeill |
9:66969b9016ad | 709 | |
Charles MacNeill |
9:66969b9016ad | 710 | |
Charles MacNeill |
9:66969b9016ad | 711 | |
Charles MacNeill |
10:3687b5e79f98 | 712 | VL53L1CB_ERROR VL53L1CB::VL53L1CB_StartMeasurement() |
Charles MacNeill |
9:66969b9016ad | 713 | { |
Charles MacNeill |
9:66969b9016ad | 714 | return VL53L1_StartMeasurement(Device); |
Charles MacNeill |
9:66969b9016ad | 715 | } |
Charles MacNeill |
9:66969b9016ad | 716 | |
Charles MacNeill |
10:3687b5e79f98 | 717 | VL53L1CB_ERROR VL53L1CB::VL53L1CB_StopMeasurement() |
Charles MacNeill |
9:66969b9016ad | 718 | { |
Charles MacNeill |
9:66969b9016ad | 719 | return VL53L1_StopMeasurement(Device); |
Charles MacNeill |
9:66969b9016ad | 720 | } |
Charles MacNeill |
9:66969b9016ad | 721 | |
Charles MacNeill |
9:66969b9016ad | 722 | |
Charles MacNeill |
10:3687b5e79f98 | 723 | VL53L1CB_ERROR VL53L1CB::VL53L1CB_ClearInterruptAndStartMeasurement() |
Charles MacNeill |
9:66969b9016ad | 724 | { |
Charles MacNeill |
9:66969b9016ad | 725 | |
Charles MacNeill |
9:66969b9016ad | 726 | return VL53L1_ClearInterruptAndStartMeasurement(Device); |
Charles MacNeill |
9:66969b9016ad | 727 | } |
Charles MacNeill |
9:66969b9016ad | 728 | |
Charles MacNeill |
9:66969b9016ad | 729 | |
Charles MacNeill |
10:3687b5e79f98 | 730 | VL53L1CB_ERROR VL53L1CB::VL53L1CB_GetMeasurementDataReady(uint8_t *pMeasurementDataReady) |
Charles MacNeill |
9:66969b9016ad | 731 | { |
Charles MacNeill |
9:66969b9016ad | 732 | return VL53L1_GetMeasurementDataReady(Device, pMeasurementDataReady); |
Charles MacNeill |
9:66969b9016ad | 733 | } |
Charles MacNeill |
9:66969b9016ad | 734 | |
Charles MacNeill |
10:3687b5e79f98 | 735 | VL53L1CB_ERROR VL53L1CB::VL53L1CB_WaitMeasurementDataReady() |
Charles MacNeill |
9:66969b9016ad | 736 | { |
Charles MacNeill |
9:66969b9016ad | 737 | return VL53L1_WaitMeasurementDataReady(Device); |
Charles MacNeill |
9:66969b9016ad | 738 | } |
Charles MacNeill |
9:66969b9016ad | 739 | |
Charles MacNeill |
9:66969b9016ad | 740 | |
Charles MacNeill |
9:66969b9016ad | 741 | //****************************************************************** |
Charles MacNeill |
9:66969b9016ad | 742 | |
Charles MacNeill |
9:66969b9016ad | 743 | |
Charles MacNeill |
9:66969b9016ad | 744 | |
Charles MacNeill |
10:3687b5e79f98 | 745 | VL53L1CB_ERROR VL53L1CB::VL53L1CB_GetCalibrationData( |
Charles MacNeill |
9:66969b9016ad | 746 | VL53L1_CalibrationData_t *pCalibrationData) |
Charles MacNeill |
9:66969b9016ad | 747 | { |
Charles MacNeill |
9:66969b9016ad | 748 | |
Charles MacNeill |
10:3687b5e79f98 | 749 | VL53L1CB_ERROR Status = VL53L1_ERROR_NONE; |
Charles MacNeill |
9:66969b9016ad | 750 | Status = VL53L1_GetCalibrationData(Device,pCalibrationData); |
Charles MacNeill |
9:66969b9016ad | 751 | |
Charles MacNeill |
9:66969b9016ad | 752 | return Status; |
Charles MacNeill |
9:66969b9016ad | 753 | } |
Charles MacNeill |
9:66969b9016ad | 754 | |
Charles MacNeill |
9:66969b9016ad | 755 | |
Charles MacNeill |
10:3687b5e79f98 | 756 | VL53L1CB_ERROR VL53L1CB::VL53L1CB_GetRangingMeasurementData( |
Charles MacNeill |
9:66969b9016ad | 757 | VL53L1_RangingMeasurementData_t *pRangingMeasurementData) |
Charles MacNeill |
9:66969b9016ad | 758 | { |
Charles MacNeill |
9:66969b9016ad | 759 | // printf(" VL53L1_GetRangingMeasurementData 000 \n"); |
Charles MacNeill |
10:3687b5e79f98 | 760 | VL53L1CB_ERROR Status = VL53L1_ERROR_NONE; |
Charles MacNeill |
9:66969b9016ad | 761 | Status = VL53L1_GetRangingMeasurementData(Device,pRangingMeasurementData); |
Charles MacNeill |
9:66969b9016ad | 762 | |
Charles MacNeill |
9:66969b9016ad | 763 | return Status; |
Charles MacNeill |
9:66969b9016ad | 764 | } |
Charles MacNeill |
9:66969b9016ad | 765 | |
Charles MacNeill |
9:66969b9016ad | 766 | |
Charles MacNeill |
9:66969b9016ad | 767 | |
Charles MacNeill |
9:66969b9016ad | 768 | |
Charles MacNeill |
9:66969b9016ad | 769 | |
Charles MacNeill |
10:3687b5e79f98 | 770 | VL53L1CB_ERROR VL53L1CB::VL53L1CB_GetMultiRangingData( |
Charles MacNeill |
9:66969b9016ad | 771 | VL53L1_MultiRangingData_t *pMultiRangingData) |
Charles MacNeill |
9:66969b9016ad | 772 | { |
Charles MacNeill |
9:66969b9016ad | 773 | return VL53L1_GetMultiRangingData(Device,pMultiRangingData); |
Charles MacNeill |
9:66969b9016ad | 774 | } |
Charles MacNeill |
9:66969b9016ad | 775 | |
Charles MacNeill |
10:3687b5e79f98 | 776 | VL53L1CB_ERROR VL53L1CB::VL53L1CB_GetAdditionalData( |
Charles MacNeill |
9:66969b9016ad | 777 | VL53L1_AdditionalData_t *pAdditionalData) |
Charles MacNeill |
9:66969b9016ad | 778 | { |
Charles MacNeill |
9:66969b9016ad | 779 | return VL53L1_GetAdditionalData(Device, pAdditionalData); |
Charles MacNeill |
9:66969b9016ad | 780 | } |
Charles MacNeill |
9:66969b9016ad | 781 | |
Charles MacNeill |
9:66969b9016ad | 782 | |
Charles MacNeill |
9:66969b9016ad | 783 | |
Charles MacNeill |
10:3687b5e79f98 | 784 | VL53L1CB_ERROR VL53L1CB::VL53L1CB_SetTuningParameter( |
Charles MacNeill |
9:66969b9016ad | 785 | uint16_t TuningParameterId, int32_t TuningParameterValue) |
Charles MacNeill |
9:66969b9016ad | 786 | { |
Charles MacNeill |
9:66969b9016ad | 787 | return VL53L1_SetTuningParameter(Device,TuningParameterId,TuningParameterValue); |
Charles MacNeill |
9:66969b9016ad | 788 | } |
Charles MacNeill |
9:66969b9016ad | 789 | |
Charles MacNeill |
10:3687b5e79f98 | 790 | VL53L1CB_ERROR VL53L1CB::VL53L1CB_GetTuningParameter( |
Charles MacNeill |
9:66969b9016ad | 791 | uint16_t TuningParameterId, int32_t *pTuningParameterValue) |
Charles MacNeill |
9:66969b9016ad | 792 | { |
Charles MacNeill |
9:66969b9016ad | 793 | |
Charles MacNeill |
9:66969b9016ad | 794 | return VL53L1_GetTuningParameter(Device,TuningParameterId,pTuningParameterValue); |
Charles MacNeill |
9:66969b9016ad | 795 | } |
Charles MacNeill |
9:66969b9016ad | 796 | |
Charles MacNeill |
9:66969b9016ad | 797 | |
Charles MacNeill |
10:3687b5e79f98 | 798 | VL53L1CB_ERROR VL53L1CB::VL53L1CB_SetXTalkCompensationEnable( |
Charles MacNeill |
9:66969b9016ad | 799 | uint8_t XTalkCompensationEnable) |
Charles MacNeill |
9:66969b9016ad | 800 | { |
Charles MacNeill |
9:66969b9016ad | 801 | |
Charles MacNeill |
9:66969b9016ad | 802 | return VL53L1_SetXTalkCompensationEnable(Device,XTalkCompensationEnable); |
Charles MacNeill |
9:66969b9016ad | 803 | } |
Charles MacNeill |
9:66969b9016ad | 804 | |
Charles MacNeill |
9:66969b9016ad | 805 | |
Charles MacNeill |
10:3687b5e79f98 | 806 | VL53L1CB_ERROR VL53L1CB::VL53L1CB_GetXTalkCompensationEnable( |
Charles MacNeill |
9:66969b9016ad | 807 | uint8_t *pXTalkCompensationEnable) |
Charles MacNeill |
9:66969b9016ad | 808 | { |
Charles MacNeill |
10:3687b5e79f98 | 809 | VL53L1CB_ERROR Status = VL53L1_ERROR_NONE; |
Charles MacNeill |
9:66969b9016ad | 810 | |
Charles MacNeill |
9:66969b9016ad | 811 | // LOG_FUNCTION_START(""); |
Charles MacNeill |
9:66969b9016ad | 812 | |
Charles MacNeill |
9:66969b9016ad | 813 | VL53L1_GetXTalkCompensationEnable( |
Charles MacNeill |
9:66969b9016ad | 814 | Device, |
Charles MacNeill |
9:66969b9016ad | 815 | pXTalkCompensationEnable); |
Charles MacNeill |
9:66969b9016ad | 816 | |
Charles MacNeill |
9:66969b9016ad | 817 | // LOG_FUNCTION_END(Status); |
Charles MacNeill |
9:66969b9016ad | 818 | return Status; |
Charles MacNeill |
9:66969b9016ad | 819 | } |
Charles MacNeill |
9:66969b9016ad | 820 | |
Charles MacNeill |
9:66969b9016ad | 821 | |
Charles MacNeill |
10:3687b5e79f98 | 822 | VL53L1CB_ERROR VL53L1CB::VL53L1CB_PerformXTalkCalibration( |
Charles MacNeill |
9:66969b9016ad | 823 | uint8_t CalibrationOption) |
Charles MacNeill |
9:66969b9016ad | 824 | { |
Charles MacNeill |
9:66969b9016ad | 825 | |
Charles MacNeill |
9:66969b9016ad | 826 | return VL53L1_PerformXTalkCalibration(Device,CalibrationOption); |
Charles MacNeill |
9:66969b9016ad | 827 | } |
Charles MacNeill |
9:66969b9016ad | 828 | |
Charles MacNeill |
10:3687b5e79f98 | 829 | VL53L1CB_ERROR VL53L1CB::VL53L1CB_SetOffsetCalibrationMode( |
Charles MacNeill |
9:66969b9016ad | 830 | VL53L1_OffsetCalibrationModes OffsetCalibrationMode) |
Charles MacNeill |
9:66969b9016ad | 831 | { |
Charles MacNeill |
9:66969b9016ad | 832 | return VL53L1_SetOffsetCalibrationMode(Device,OffsetCalibrationMode); |
Charles MacNeill |
9:66969b9016ad | 833 | } |
Charles MacNeill |
9:66969b9016ad | 834 | |
Charles MacNeill |
10:3687b5e79f98 | 835 | VL53L1CB_ERROR VL53L1CB::VL53L1CB_SetOffsetCorrectionMode( |
Charles MacNeill |
9:66969b9016ad | 836 | VL53L1_OffsetCorrectionModes OffsetCorrectionMode) |
Charles MacNeill |
9:66969b9016ad | 837 | { |
Charles MacNeill |
9:66969b9016ad | 838 | return VL53L1_SetOffsetCorrectionMode(Device,OffsetCorrectionMode); |
Charles MacNeill |
9:66969b9016ad | 839 | } |
Charles MacNeill |
9:66969b9016ad | 840 | |
Charles MacNeill |
10:3687b5e79f98 | 841 | VL53L1CB_ERROR VL53L1CB::VL53L1CB_PerformOffsetCalibration( |
Charles MacNeill |
9:66969b9016ad | 842 | int32_t CalDistanceMilliMeter, FixPoint1616_t CalReflectancePercent) |
Charles MacNeill |
9:66969b9016ad | 843 | { |
Charles MacNeill |
9:66969b9016ad | 844 | return VL53L1_PerformOffsetCalibration(Device,CalDistanceMilliMeter,CalReflectancePercent); |
Charles MacNeill |
9:66969b9016ad | 845 | } |
Charles MacNeill |
9:66969b9016ad | 846 | |
Charles MacNeill |
10:3687b5e79f98 | 847 | VL53L1CB_ERROR VL53L1CB::VL53L1CB_PerformOffsetSimpleCalibration( |
Charles MacNeill |
9:66969b9016ad | 848 | int32_t CalDistanceMilliMeter) |
Charles MacNeill |
9:66969b9016ad | 849 | { |
Charles MacNeill |
9:66969b9016ad | 850 | return VL53L1_PerformOffsetSimpleCalibration(Device,CalDistanceMilliMeter); |
Charles MacNeill |
9:66969b9016ad | 851 | } |
Charles MacNeill |
9:66969b9016ad | 852 | |
Charles MacNeill |
10:3687b5e79f98 | 853 | VL53L1CB_ERROR VL53L1CB::VL53L1CB_PerformOffsetZeroDistanceCalibration() |
Charles MacNeill |
9:66969b9016ad | 854 | { |
Charles MacNeill |
9:66969b9016ad | 855 | return VL53L1_PerformOffsetZeroDistanceCalibration(Device); |
Charles MacNeill |
9:66969b9016ad | 856 | } |
Charles MacNeill |
9:66969b9016ad | 857 | |
Charles MacNeill |
10:3687b5e79f98 | 858 | VL53L1CB_ERROR VL53L1CB::VL53L1CB_SetCalibrationData( |
Charles MacNeill |
9:66969b9016ad | 859 | VL53L1_CalibrationData_t *pCalibrationData) |
Charles MacNeill |
9:66969b9016ad | 860 | { |
Charles MacNeill |
9:66969b9016ad | 861 | return VL53L1_SetCalibrationData(Device,pCalibrationData); |
Charles MacNeill |
9:66969b9016ad | 862 | } |
Charles MacNeill |
9:66969b9016ad | 863 | |
Charles MacNeill |
9:66969b9016ad | 864 | |
Charles MacNeill |
10:3687b5e79f98 | 865 | VL53L1CB_ERROR VL53L1CB::VL53L1CB_SetZoneCalibrationData( |
Charles MacNeill |
9:66969b9016ad | 866 | VL53L1_ZoneCalibrationData_t *pZoneCalibrationData) |
Charles MacNeill |
9:66969b9016ad | 867 | { |
Charles MacNeill |
9:66969b9016ad | 868 | return VL53L1_SetZoneCalibrationData(Device, pZoneCalibrationData); |
Charles MacNeill |
9:66969b9016ad | 869 | } |
Charles MacNeill |
9:66969b9016ad | 870 | |
Charles MacNeill |
10:3687b5e79f98 | 871 | VL53L1CB_ERROR VL53L1CB::VL53L1CB_GetZoneCalibrationData( |
Charles MacNeill |
9:66969b9016ad | 872 | VL53L1_ZoneCalibrationData_t *pZoneCalibrationData) |
Charles MacNeill |
9:66969b9016ad | 873 | { |
Charles MacNeill |
9:66969b9016ad | 874 | return VL53L1_GetZoneCalibrationData(Device, pZoneCalibrationData); |
Charles MacNeill |
9:66969b9016ad | 875 | } |
Charles MacNeill |
9:66969b9016ad | 876 | |
Charles MacNeill |
10:3687b5e79f98 | 877 | VL53L1CB_ERROR VL53L1CB::VL53L1CB_SmudgeCorrectionEnable( |
Charles MacNeill |
9:66969b9016ad | 878 | VL53L1_SmudgeCorrectionModes Mode) |
Charles MacNeill |
9:66969b9016ad | 879 | |
Charles MacNeill |
9:66969b9016ad | 880 | { |
Charles MacNeill |
9:66969b9016ad | 881 | return VL53L1_SmudgeCorrectionEnable(Device, Mode); |
Charles MacNeill |
9:66969b9016ad | 882 | } |
Charles MacNeill |
9:66969b9016ad | 883 | |
Charles MacNeill |
10:3687b5e79f98 | 884 | VL53L1CB_ERROR VL53L1CB::VL53L1CB_GetOpticalCenter( |
Charles MacNeill |
9:66969b9016ad | 885 | FixPoint1616_t *pOpticalCenterX, |
Charles MacNeill |
9:66969b9016ad | 886 | FixPoint1616_t *pOpticalCenterY) |
Charles MacNeill |
9:66969b9016ad | 887 | { |
Charles MacNeill |
9:66969b9016ad | 888 | return VL53L1_GetOpticalCenter(Device,pOpticalCenterX,pOpticalCenterY); |
Charles MacNeill |
9:66969b9016ad | 889 | } |
Charles MacNeill |
9:66969b9016ad | 890 | |
Charles MacNeill |
10:3687b5e79f98 | 891 | VL53L1CB_ERROR VL53L1CB::VL53L1CB_SetThresholdConfig(VL53L1_DetectionConfig_t *pConfig) |
Charles MacNeill |
9:66969b9016ad | 892 | { |
Charles MacNeill |
9:66969b9016ad | 893 | return VL53L1_SetThresholdConfig(Device,pConfig); |
Charles MacNeill |
9:66969b9016ad | 894 | } |
Charles MacNeill |
9:66969b9016ad | 895 | |
Charles MacNeill |
9:66969b9016ad | 896 | |
Charles MacNeill |
10:3687b5e79f98 | 897 | VL53L1CB_ERROR VL53L1CB::VL53L1CB_GetThresholdConfig(VL53L1_DetectionConfig_t *pConfig) |
Charles MacNeill |
9:66969b9016ad | 898 | { |
Charles MacNeill |
9:66969b9016ad | 899 | return VL53L1_GetThresholdConfig(Device,pConfig); |
Charles MacNeill |
9:66969b9016ad | 900 | } |
Charles MacNeill |
9:66969b9016ad | 901 | |
Charles MacNeill |
10:3687b5e79f98 | 902 | VL53L1CB_ERROR VL53L1CB::VL53L1CB_PerformOffsetPerVcselCalibration(int32_t CalDistanceMilliMeter) |
Charles MacNeill |
9:66969b9016ad | 903 | { |
Charles MacNeill |
9:66969b9016ad | 904 | return VL53L1_PerformOffsetPerVcselCalibration(Device,CalDistanceMilliMeter); |
Charles MacNeill |
9:66969b9016ad | 905 | } |
Charles MacNeill |
9:66969b9016ad | 906 | |
Charles MacNeill |
9:66969b9016ad | 907 | |
Charles MacNeill |
9:66969b9016ad | 908 | |
Charles MacNeill |
9:66969b9016ad | 909 | // from vl53l1_api_debug.c |
Charles MacNeill |
9:66969b9016ad | 910 | |
Charles MacNeill |
9:66969b9016ad | 911 | |
Charles MacNeill |
10:3687b5e79f98 | 912 | VL53L1CB_ERROR VL53L1CB::VL53L1CB_get_additional_data( |
Charles MacNeill |
9:66969b9016ad | 913 | VL53L1_DEV Dev, |
Charles MacNeill |
9:66969b9016ad | 914 | VL53L1_additional_data_t *pdata) |
Charles MacNeill |
9:66969b9016ad | 915 | { |
Charles MacNeill |
9:66969b9016ad | 916 | return VL53L1_get_additional_data(Dev,pdata); |
Charles MacNeill |
9:66969b9016ad | 917 | } |
Charles MacNeill |
9:66969b9016ad | 918 | |
Charles MacNeill |
9:66969b9016ad | 919 | |
Charles MacNeill |
9:66969b9016ad | 920 | |
Charles MacNeill |
10:3687b5e79f98 | 921 | int VL53L1CB::handle_irq(uint16_t *distance) |
Charles MacNeill |
9:66969b9016ad | 922 | { |
Charles MacNeill |
9:66969b9016ad | 923 | int status; |
Charles MacNeill |
9:66969b9016ad | 924 | status = get_measurement(distance); |
Charles MacNeill |
9:66969b9016ad | 925 | enable_interrupt_measure_detection_irq(); |
Charles MacNeill |
9:66969b9016ad | 926 | return status; |
Charles MacNeill |
9:66969b9016ad | 927 | } |
Charles MacNeill |
9:66969b9016ad | 928 | |
Charles MacNeill |
10:3687b5e79f98 | 929 | int VL53L1CB::get_measurement(uint16_t *distance) |
Charles MacNeill |
9:66969b9016ad | 930 | { |
Charles MacNeill |
9:66969b9016ad | 931 | int status = 0; |
Charles MacNeill |
9:66969b9016ad | 932 | |
Charles MacNeill |
10:3687b5e79f98 | 933 | status = VL53L1CB_GetDistance(distance); |
Charles MacNeill |
10:3687b5e79f98 | 934 | status = VL53L1CB_ClearInterrupt(); |
Charles MacNeill |
9:66969b9016ad | 935 | |
Charles MacNeill |
9:66969b9016ad | 936 | return status; |
Charles MacNeill |
9:66969b9016ad | 937 | } |
Charles MacNeill |
9:66969b9016ad | 938 | |
Charles MacNeill |
10:3687b5e79f98 | 939 | int VL53L1CB::start_measurement(void (*fptr)(void)) |
Charles MacNeill |
9:66969b9016ad | 940 | { |
Charles MacNeill |
9:66969b9016ad | 941 | int status = 0; |
Charles MacNeill |
9:66969b9016ad | 942 | |
Charles MacNeill |
9:66969b9016ad | 943 | if (_gpio1Int == NULL) { |
Charles MacNeill |
9:66969b9016ad | 944 | printf("GPIO1 Error\r\n"); |
Charles MacNeill |
9:66969b9016ad | 945 | return 1; |
Charles MacNeill |
9:66969b9016ad | 946 | } |
Charles MacNeill |
9:66969b9016ad | 947 | |
Charles MacNeill |
10:3687b5e79f98 | 948 | status = VL53L1CB_StopRanging(); // it is safer to do this while sensor is stopped |
Charles MacNeill |
9:66969b9016ad | 949 | |
Charles MacNeill |
9:66969b9016ad | 950 | if (status == 0) { |
Charles MacNeill |
9:66969b9016ad | 951 | attach_interrupt_measure_detection_irq(fptr); |
Charles MacNeill |
9:66969b9016ad | 952 | enable_interrupt_measure_detection_irq(); |
Charles MacNeill |
9:66969b9016ad | 953 | } |
Charles MacNeill |
9:66969b9016ad | 954 | |
Charles MacNeill |
9:66969b9016ad | 955 | if (status == 0) { |
Charles MacNeill |
10:3687b5e79f98 | 956 | status = VL53L1CB_StartRanging(); |
Charles MacNeill |
9:66969b9016ad | 957 | } |
Charles MacNeill |
9:66969b9016ad | 958 | |
Charles MacNeill |
9:66969b9016ad | 959 | return status; |
Charles MacNeill |
9:66969b9016ad | 960 | } |
Charles MacNeill |
9:66969b9016ad | 961 | |
Charles MacNeill |
10:3687b5e79f98 | 962 | int VL53L1CB::stop_measurement() |
Charles MacNeill |
9:66969b9016ad | 963 | { |
Charles MacNeill |
9:66969b9016ad | 964 | int status = 0; |
Charles MacNeill |
9:66969b9016ad | 965 | |
Charles MacNeill |
9:66969b9016ad | 966 | if (status == 0) { |
Charles MacNeill |
9:66969b9016ad | 967 | printf("Call of VL53L1_StopMeasurement\n"); |
Charles MacNeill |
10:3687b5e79f98 | 968 | status = VL53L1CB_StopRanging(); |
Charles MacNeill |
9:66969b9016ad | 969 | } |
Charles MacNeill |
9:66969b9016ad | 970 | |
Charles MacNeill |
9:66969b9016ad | 971 | if (status == 0) |
Charles MacNeill |
10:3687b5e79f98 | 972 | status = VL53L1CB_ClearInterrupt(); |
Charles MacNeill |
9:66969b9016ad | 973 | |
Charles MacNeill |
9:66969b9016ad | 974 | return status; |
Charles MacNeill |
9:66969b9016ad | 975 | } |
Charles MacNeill |
9:66969b9016ad | 976 | |
Charles MacNeill |
9:66969b9016ad | 977 |