Rename library

Dependencies:   X_NUCLEO_COMMON ST_INTERFACES

Dependents:   VL53L3CX_NoShield_1Sensor_poll_Mb06x VL53L3_NoShield_1Sensor_polling_Mb63 X_NUCLEO_53L3A2 53L3A2_Ranging

Committer:
Charles MacNeill
Date:
Wed Jul 14 12:45:49 2021 +0100
Revision:
5:89031b2f5316
The class files now just are wrappers for the files in the "MODULES" directory.The porting directory includes the mbed interface

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Charles MacNeill 5:89031b2f5316 1
Charles MacNeill 5:89031b2f5316 2 /* SPDX-License-Identifier: GPL-2.0+ OR BSD-3-Clause */
Charles MacNeill 5:89031b2f5316 3 /******************************************************************************
Charles MacNeill 5:89031b2f5316 4 * Copyright (c) 2020, STMicroelectronics - All Rights Reserved
Charles MacNeill 5:89031b2f5316 5
Charles MacNeill 5:89031b2f5316 6 This file is part of VL53LX and is dual licensed,
Charles MacNeill 5:89031b2f5316 7 either GPL-2.0+
Charles MacNeill 5:89031b2f5316 8 or 'BSD 3-clause "New" or "Revised" License' , at your option.
Charles MacNeill 5:89031b2f5316 9 ******************************************************************************
Charles MacNeill 5:89031b2f5316 10 */
Charles MacNeill 5:89031b2f5316 11
Charles MacNeill 5:89031b2f5316 12 #ifndef _VL53LX_PLATFORM_H_
Charles MacNeill 5:89031b2f5316 13 #define _VL53LX_PLATFORM_H_
Charles MacNeill 5:89031b2f5316 14
Charles MacNeill 5:89031b2f5316 15 #include "vl53lx_ll_def.h"
Charles MacNeill 5:89031b2f5316 16 #include "vl53lx_platform_log.h"
Charles MacNeill 5:89031b2f5316 17
Charles MacNeill 5:89031b2f5316 18 #define VL53LX_IPP_API
Charles MacNeill 5:89031b2f5316 19 #include "vl53lx_platform_ipp_imports.h"
Charles MacNeill 5:89031b2f5316 20 #include "vl53lx_platform_user_data.h"
Charles MacNeill 5:89031b2f5316 21
Charles MacNeill 5:89031b2f5316 22 #ifdef __cplusplus
Charles MacNeill 5:89031b2f5316 23 extern "C"
Charles MacNeill 5:89031b2f5316 24 {
Charles MacNeill 5:89031b2f5316 25 #endif
Charles MacNeill 5:89031b2f5316 26
Charles MacNeill 5:89031b2f5316 27 /**
Charles MacNeill 5:89031b2f5316 28 * @file vl53lx_platform.h
Charles MacNeill 5:89031b2f5316 29 *
Charles MacNeill 5:89031b2f5316 30 * @brief All end user OS/platform/application porting
Charles MacNeill 5:89031b2f5316 31 */
Charles MacNeill 5:89031b2f5316 32
Charles MacNeill 5:89031b2f5316 33
Charles MacNeill 5:89031b2f5316 34
Charles MacNeill 5:89031b2f5316 35 /**
Charles MacNeill 5:89031b2f5316 36 * @brief Initialise platform comms.
Charles MacNeill 5:89031b2f5316 37 *
Charles MacNeill 5:89031b2f5316 38 * @param[in] pdev : pointer to device structure (device handle)
Charles MacNeill 5:89031b2f5316 39 * @param[in] comms_type : selects between I2C and SPI
Charles MacNeill 5:89031b2f5316 40 * @param[in] comms_speed_khz : unsigned short containing the I2C speed in kHz
Charles MacNeill 5:89031b2f5316 41 *
Charles MacNeill 5:89031b2f5316 42 * @return VL53LX_ERROR_NONE Success
Charles MacNeill 5:89031b2f5316 43 * @return "Other error code" See ::VL53LX_Error
Charles MacNeill 5:89031b2f5316 44 */
Charles MacNeill 5:89031b2f5316 45
Charles MacNeill 5:89031b2f5316 46 VL53LX_Error VL53LX_CommsInitialise(
Charles MacNeill 5:89031b2f5316 47 VL53LX_DEV Dev,
Charles MacNeill 5:89031b2f5316 48 uint8_t comms_type,
Charles MacNeill 5:89031b2f5316 49 uint16_t comms_speed_khz);
Charles MacNeill 5:89031b2f5316 50
Charles MacNeill 5:89031b2f5316 51
Charles MacNeill 5:89031b2f5316 52 /**
Charles MacNeill 5:89031b2f5316 53 * @brief Close platform comms.
Charles MacNeill 5:89031b2f5316 54 *
Charles MacNeill 5:89031b2f5316 55 * @param[in] pdev : pointer to device structure (device handle)
Charles MacNeill 5:89031b2f5316 56 *
Charles MacNeill 5:89031b2f5316 57 * @return VL53LX_ERROR_NONE Success
Charles MacNeill 5:89031b2f5316 58 * @return "Other error code" See ::VL53LX_Error
Charles MacNeill 5:89031b2f5316 59 */
Charles MacNeill 5:89031b2f5316 60
Charles MacNeill 5:89031b2f5316 61 VL53LX_Error VL53LX_CommsClose(
Charles MacNeill 5:89031b2f5316 62 VL53LX_DEV Dev);
Charles MacNeill 5:89031b2f5316 63
Charles MacNeill 5:89031b2f5316 64
Charles MacNeill 5:89031b2f5316 65 /**
Charles MacNeill 5:89031b2f5316 66 * @brief Writes the supplied byte buffer to the device
Charles MacNeill 5:89031b2f5316 67 *
Charles MacNeill 5:89031b2f5316 68 * @param[in] pdev : pointer to device structure (device handle)
Charles MacNeill 5:89031b2f5316 69 * @param[in] index : uint16_t register index value
Charles MacNeill 5:89031b2f5316 70 * @param[in] pdata : pointer to uint8_t (byte) buffer containing the data to be written
Charles MacNeill 5:89031b2f5316 71 * @param[in] count : number of bytes in the supplied byte buffer
Charles MacNeill 5:89031b2f5316 72 *
Charles MacNeill 5:89031b2f5316 73 * @return VL53LX_ERROR_NONE Success
Charles MacNeill 5:89031b2f5316 74 * @return "Other error code" See ::VL53LX_Error
Charles MacNeill 5:89031b2f5316 75 */
Charles MacNeill 5:89031b2f5316 76
Charles MacNeill 5:89031b2f5316 77 VL53LX_Error VL53LX_WriteMulti(
Charles MacNeill 5:89031b2f5316 78 VL53LX_DEV Dev,
Charles MacNeill 5:89031b2f5316 79 uint16_t index,
Charles MacNeill 5:89031b2f5316 80 uint8_t *pdata,
Charles MacNeill 5:89031b2f5316 81 uint32_t count);
Charles MacNeill 5:89031b2f5316 82
Charles MacNeill 5:89031b2f5316 83
Charles MacNeill 5:89031b2f5316 84 /**
Charles MacNeill 5:89031b2f5316 85 * @brief Reads the requested number of bytes from the device
Charles MacNeill 5:89031b2f5316 86 *
Charles MacNeill 5:89031b2f5316 87 * @param[in] pdev : pointer to device structure (device handle)
Charles MacNeill 5:89031b2f5316 88 * @param[in] index : uint16_t register index value
Charles MacNeill 5:89031b2f5316 89 * @param[out] pdata : pointer to the uint8_t (byte) buffer to store read data
Charles MacNeill 5:89031b2f5316 90 * @param[in] count : number of bytes to read
Charles MacNeill 5:89031b2f5316 91 *
Charles MacNeill 5:89031b2f5316 92 * @return VL53LX_ERROR_NONE Success
Charles MacNeill 5:89031b2f5316 93 * @return "Other error code" See ::VL53LX_Error
Charles MacNeill 5:89031b2f5316 94 */
Charles MacNeill 5:89031b2f5316 95
Charles MacNeill 5:89031b2f5316 96 VL53LX_Error VL53LX_ReadMulti(
Charles MacNeill 5:89031b2f5316 97 VL53LX_DEV Dev,
Charles MacNeill 5:89031b2f5316 98 uint16_t index,
Charles MacNeill 5:89031b2f5316 99 uint8_t *pdata,
Charles MacNeill 5:89031b2f5316 100 uint32_t count);
Charles MacNeill 5:89031b2f5316 101
Charles MacNeill 5:89031b2f5316 102
Charles MacNeill 5:89031b2f5316 103 /**
Charles MacNeill 5:89031b2f5316 104 * @brief Writes a single byte to the device
Charles MacNeill 5:89031b2f5316 105 *
Charles MacNeill 5:89031b2f5316 106 * @param[in] pdev : pointer to device structure (device handle)
Charles MacNeill 5:89031b2f5316 107 * @param[in] index : uint16_t register index value
Charles MacNeill 5:89031b2f5316 108 * @param[in] data : uint8_t data value to write
Charles MacNeill 5:89031b2f5316 109 *
Charles MacNeill 5:89031b2f5316 110 * @return VL53LX_ERROR_NONE Success
Charles MacNeill 5:89031b2f5316 111 * @return "Other error code" See ::VL53LX_Error
Charles MacNeill 5:89031b2f5316 112 */
Charles MacNeill 5:89031b2f5316 113
Charles MacNeill 5:89031b2f5316 114 VL53LX_Error VL53LX_WrByte(
Charles MacNeill 5:89031b2f5316 115 VL53LX_DEV Dev,
Charles MacNeill 5:89031b2f5316 116 uint16_t index,
Charles MacNeill 5:89031b2f5316 117 uint8_t data);
Charles MacNeill 5:89031b2f5316 118
Charles MacNeill 5:89031b2f5316 119
Charles MacNeill 5:89031b2f5316 120 /**
Charles MacNeill 5:89031b2f5316 121 * @brief Writes a single word (16-bit unsigned) to the device
Charles MacNeill 5:89031b2f5316 122 *
Charles MacNeill 5:89031b2f5316 123 * Manages the big-endian nature of the device register map
Charles MacNeill 5:89031b2f5316 124 * (first byte written is the MS byte).
Charles MacNeill 5:89031b2f5316 125 *
Charles MacNeill 5:89031b2f5316 126 * @param[in] pdev : pointer to device structure (device handle)
Charles MacNeill 5:89031b2f5316 127 * @param[in] index : uint16_t register index value
Charles MacNeill 5:89031b2f5316 128 * @param[in] data : uin16_t data value write
Charles MacNeill 5:89031b2f5316 129 *
Charles MacNeill 5:89031b2f5316 130 * @return VL53LX_ERROR_NONE Success
Charles MacNeill 5:89031b2f5316 131 * @return "Other error code" See ::VL53LX_Error
Charles MacNeill 5:89031b2f5316 132 */
Charles MacNeill 5:89031b2f5316 133
Charles MacNeill 5:89031b2f5316 134 VL53LX_Error VL53LX_WrWord(
Charles MacNeill 5:89031b2f5316 135 VL53LX_DEV Dev,
Charles MacNeill 5:89031b2f5316 136 uint16_t index,
Charles MacNeill 5:89031b2f5316 137 uint16_t data);
Charles MacNeill 5:89031b2f5316 138
Charles MacNeill 5:89031b2f5316 139
Charles MacNeill 5:89031b2f5316 140 /**
Charles MacNeill 5:89031b2f5316 141 * @brief Writes a single dword (32-bit unsigned) to the device
Charles MacNeill 5:89031b2f5316 142 *
Charles MacNeill 5:89031b2f5316 143 * Manages the big-endian nature of the device register map
Charles MacNeill 5:89031b2f5316 144 * (first byte written is the MS byte).
Charles MacNeill 5:89031b2f5316 145 *
Charles MacNeill 5:89031b2f5316 146 * @param[in] pdev : pointer to device structure (device handle)
Charles MacNeill 5:89031b2f5316 147 * @param[in] index : uint16_t register index value
Charles MacNeill 5:89031b2f5316 148 * @param[in] data : uint32_t data value to write
Charles MacNeill 5:89031b2f5316 149 *
Charles MacNeill 5:89031b2f5316 150 * @return VL53LX_ERROR_NONE Success
Charles MacNeill 5:89031b2f5316 151 * @return "Other error code" See ::VL53LX_Error
Charles MacNeill 5:89031b2f5316 152 */
Charles MacNeill 5:89031b2f5316 153
Charles MacNeill 5:89031b2f5316 154 VL53LX_Error VL53LX_WrDWord(
Charles MacNeill 5:89031b2f5316 155 VL53LX_DEV Dev,
Charles MacNeill 5:89031b2f5316 156 uint16_t index,
Charles MacNeill 5:89031b2f5316 157 uint32_t data);
Charles MacNeill 5:89031b2f5316 158
Charles MacNeill 5:89031b2f5316 159
Charles MacNeill 5:89031b2f5316 160
Charles MacNeill 5:89031b2f5316 161 /**
Charles MacNeill 5:89031b2f5316 162 * @brief Reads a single byte from the device
Charles MacNeill 5:89031b2f5316 163 *
Charles MacNeill 5:89031b2f5316 164 * @param[in] pdev : pointer to device structure (device handle)
Charles MacNeill 5:89031b2f5316 165 * @param[in] index : uint16_t register index
Charles MacNeill 5:89031b2f5316 166 * @param[out] pdata : pointer to uint8_t data value
Charles MacNeill 5:89031b2f5316 167 *
Charles MacNeill 5:89031b2f5316 168 * @return VL53LX_ERROR_NONE Success
Charles MacNeill 5:89031b2f5316 169 * @return "Other error code" See ::VL53LX_Error
Charles MacNeill 5:89031b2f5316 170 *
Charles MacNeill 5:89031b2f5316 171 */
Charles MacNeill 5:89031b2f5316 172
Charles MacNeill 5:89031b2f5316 173 VL53LX_Error VL53LX_RdByte(
Charles MacNeill 5:89031b2f5316 174 VL53LX_DEV Dev,
Charles MacNeill 5:89031b2f5316 175 uint16_t index,
Charles MacNeill 5:89031b2f5316 176 uint8_t *pdata);
Charles MacNeill 5:89031b2f5316 177
Charles MacNeill 5:89031b2f5316 178
Charles MacNeill 5:89031b2f5316 179 /**
Charles MacNeill 5:89031b2f5316 180 * @brief Reads a single word (16-bit unsigned) from the device
Charles MacNeill 5:89031b2f5316 181 *
Charles MacNeill 5:89031b2f5316 182 * Manages the big-endian nature of the device (first byte read is the MS byte).
Charles MacNeill 5:89031b2f5316 183 *
Charles MacNeill 5:89031b2f5316 184 * @param[in] pdev : pointer to device structure (device handle)
Charles MacNeill 5:89031b2f5316 185 * @param[in] index : uint16_t register index value
Charles MacNeill 5:89031b2f5316 186 * @param[out] pdata : pointer to uint16_t data value
Charles MacNeill 5:89031b2f5316 187 *
Charles MacNeill 5:89031b2f5316 188 * @return VL53LX_ERROR_NONE Success
Charles MacNeill 5:89031b2f5316 189 * @return "Other error code" See ::VL53LX_Error
Charles MacNeill 5:89031b2f5316 190 */
Charles MacNeill 5:89031b2f5316 191
Charles MacNeill 5:89031b2f5316 192 VL53LX_Error VL53LX_RdWord(
Charles MacNeill 5:89031b2f5316 193 VL53LX_DEV Dev,
Charles MacNeill 5:89031b2f5316 194 uint16_t index,
Charles MacNeill 5:89031b2f5316 195 uint16_t *pdata);
Charles MacNeill 5:89031b2f5316 196
Charles MacNeill 5:89031b2f5316 197
Charles MacNeill 5:89031b2f5316 198 /**
Charles MacNeill 5:89031b2f5316 199 * @brief Reads a single dword (32-bit unsigned) from the device
Charles MacNeill 5:89031b2f5316 200 *
Charles MacNeill 5:89031b2f5316 201 * Manages the big-endian nature of the device (first byte read is the MS byte).
Charles MacNeill 5:89031b2f5316 202 *
Charles MacNeill 5:89031b2f5316 203 * @param[in] pdev : pointer to device structure (device handle)
Charles MacNeill 5:89031b2f5316 204 * @param[in] index : uint16_t register index value
Charles MacNeill 5:89031b2f5316 205 * @param[out] pdata : pointer to uint32_t data value
Charles MacNeill 5:89031b2f5316 206 *
Charles MacNeill 5:89031b2f5316 207 * @return VL53LX_ERROR_NONE Success
Charles MacNeill 5:89031b2f5316 208 * @return "Other error code" See ::VL53LX_Error
Charles MacNeill 5:89031b2f5316 209 */
Charles MacNeill 5:89031b2f5316 210
Charles MacNeill 5:89031b2f5316 211 VL53LX_Error VL53LX_RdDWord(
Charles MacNeill 5:89031b2f5316 212 VL53LX_DEV Dev,
Charles MacNeill 5:89031b2f5316 213 uint16_t index,
Charles MacNeill 5:89031b2f5316 214 uint32_t *pdata);
Charles MacNeill 5:89031b2f5316 215
Charles MacNeill 5:89031b2f5316 216
Charles MacNeill 5:89031b2f5316 217
Charles MacNeill 5:89031b2f5316 218 /**
Charles MacNeill 5:89031b2f5316 219 * @brief Implements a programmable wait in us
Charles MacNeill 5:89031b2f5316 220 *
Charles MacNeill 5:89031b2f5316 221 * @param[in] pdev : pointer to device structure (device handle)
Charles MacNeill 5:89031b2f5316 222 * @param[in] wait_us : integer wait in micro seconds
Charles MacNeill 5:89031b2f5316 223 *
Charles MacNeill 5:89031b2f5316 224 * @return VL53LX_ERROR_NONE Success
Charles MacNeill 5:89031b2f5316 225 * @return "Other error code" See ::VL53LX_Error
Charles MacNeill 5:89031b2f5316 226 */
Charles MacNeill 5:89031b2f5316 227
Charles MacNeill 5:89031b2f5316 228 VL53LX_Error VL53LX_WaitUs(
Charles MacNeill 5:89031b2f5316 229 VL53LX_DEV Dev,
Charles MacNeill 5:89031b2f5316 230 int32_t wait_us);
Charles MacNeill 5:89031b2f5316 231
Charles MacNeill 5:89031b2f5316 232
Charles MacNeill 5:89031b2f5316 233 /**
Charles MacNeill 5:89031b2f5316 234 * @brief Implements a programmable wait in ms
Charles MacNeill 5:89031b2f5316 235 *
Charles MacNeill 5:89031b2f5316 236 * @param[in] pdev : pointer to device structure (device handle)
Charles MacNeill 5:89031b2f5316 237 * @param[in] wait_ms : integer wait in milliseconds
Charles MacNeill 5:89031b2f5316 238 *
Charles MacNeill 5:89031b2f5316 239 * @return VL53LX_ERROR_NONE Success
Charles MacNeill 5:89031b2f5316 240 * @return "Other error code" See ::VL53LX_Error
Charles MacNeill 5:89031b2f5316 241 */
Charles MacNeill 5:89031b2f5316 242
Charles MacNeill 5:89031b2f5316 243
Charles MacNeill 5:89031b2f5316 244
Charles MacNeill 5:89031b2f5316 245 VL53LX_Error VL53LX_WaitMs(
Charles MacNeill 5:89031b2f5316 246 VL53LX_DEV Dev,
Charles MacNeill 5:89031b2f5316 247 int32_t wait_ms);
Charles MacNeill 5:89031b2f5316 248
Charles MacNeill 5:89031b2f5316 249
Charles MacNeill 5:89031b2f5316 250
Charles MacNeill 5:89031b2f5316 251 /**
Charles MacNeill 5:89031b2f5316 252 * @brief Get the frequency of the timer used for ranging results time stamps
Charles MacNeill 5:89031b2f5316 253 *
Charles MacNeill 5:89031b2f5316 254 * @param[out] ptimer_freq_hz : pointer for timer frequency
Charles MacNeill 5:89031b2f5316 255 *
Charles MacNeill 5:89031b2f5316 256 * @return VL53LX_ERROR_NONE Success
Charles MacNeill 5:89031b2f5316 257 * @return "Other error code" See ::VL53LX_Error
Charles MacNeill 5:89031b2f5316 258 */
Charles MacNeill 5:89031b2f5316 259
Charles MacNeill 5:89031b2f5316 260 VL53LX_Error VL53LX_GetTimerFrequency(int32_t *ptimer_freq_hz);
Charles MacNeill 5:89031b2f5316 261
Charles MacNeill 5:89031b2f5316 262 /**
Charles MacNeill 5:89031b2f5316 263 * @brief Get the timer value in units of timer_freq_hz (see VL53LX_get_timestamp_frequency())
Charles MacNeill 5:89031b2f5316 264 *
Charles MacNeill 5:89031b2f5316 265 * @param[out] ptimer_count : pointer for timer count value
Charles MacNeill 5:89031b2f5316 266 *
Charles MacNeill 5:89031b2f5316 267 * @return VL53LX_ERROR_NONE Success
Charles MacNeill 5:89031b2f5316 268 * @return "Other error code" See ::VL53LX_Error
Charles MacNeill 5:89031b2f5316 269 */
Charles MacNeill 5:89031b2f5316 270
Charles MacNeill 5:89031b2f5316 271 VL53LX_Error VL53LX_GetTimerValue(int32_t *ptimer_count);
Charles MacNeill 5:89031b2f5316 272
Charles MacNeill 5:89031b2f5316 273
Charles MacNeill 5:89031b2f5316 274 /**
Charles MacNeill 5:89031b2f5316 275 * @brief Set the mode of a specified GPIO pin
Charles MacNeill 5:89031b2f5316 276 *
Charles MacNeill 5:89031b2f5316 277 * @param pin - an identifier specifying the pin being modified - defined per platform
Charles MacNeill 5:89031b2f5316 278 *
Charles MacNeill 5:89031b2f5316 279 * @param mode - an identifier specifying the requested mode - defined per platform
Charles MacNeill 5:89031b2f5316 280 *
Charles MacNeill 5:89031b2f5316 281 * @return VL53LX_ERROR_NONE Success
Charles MacNeill 5:89031b2f5316 282 * @return "Other error code" See ::VL53LX_Error
Charles MacNeill 5:89031b2f5316 283 */
Charles MacNeill 5:89031b2f5316 284
Charles MacNeill 5:89031b2f5316 285 VL53LX_Error VL53LX_GpioSetMode(uint8_t pin, uint8_t mode);
Charles MacNeill 5:89031b2f5316 286
Charles MacNeill 5:89031b2f5316 287
Charles MacNeill 5:89031b2f5316 288 /**
Charles MacNeill 5:89031b2f5316 289 * @brief Set the value of a specified GPIO pin
Charles MacNeill 5:89031b2f5316 290 *
Charles MacNeill 5:89031b2f5316 291 * @param pin - an identifier specifying the pin being modified - defined per platform
Charles MacNeill 5:89031b2f5316 292 *
Charles MacNeill 5:89031b2f5316 293 * @param value - a value to set on the GPIO pin - typically 0 or 1
Charles MacNeill 5:89031b2f5316 294 *
Charles MacNeill 5:89031b2f5316 295 * @return VL53LX_ERROR_NONE Success
Charles MacNeill 5:89031b2f5316 296 * @return "Other error code" See ::VL53LX_Error
Charles MacNeill 5:89031b2f5316 297 */
Charles MacNeill 5:89031b2f5316 298
Charles MacNeill 5:89031b2f5316 299 VL53LX_Error VL53LX_GpioSetValue(uint8_t pin, uint8_t value);
Charles MacNeill 5:89031b2f5316 300
Charles MacNeill 5:89031b2f5316 301
Charles MacNeill 5:89031b2f5316 302 /**
Charles MacNeill 5:89031b2f5316 303 * @brief Get the value of a specified GPIO pin
Charles MacNeill 5:89031b2f5316 304 *
Charles MacNeill 5:89031b2f5316 305 * @param pin - an identifier specifying the pin being modified - defined per platform
Charles MacNeill 5:89031b2f5316 306 *
Charles MacNeill 5:89031b2f5316 307 * @param pvalue - a value retrieved from the GPIO pin - typically 0 or 1
Charles MacNeill 5:89031b2f5316 308 *
Charles MacNeill 5:89031b2f5316 309 * @return VL53LX_ERROR_NONE Success
Charles MacNeill 5:89031b2f5316 310 * @return "Other error code" See ::VL53LX_Error
Charles MacNeill 5:89031b2f5316 311 */
Charles MacNeill 5:89031b2f5316 312
Charles MacNeill 5:89031b2f5316 313 VL53LX_Error VL53LX_GpioGetValue(uint8_t pin, uint8_t *pvalue);
Charles MacNeill 5:89031b2f5316 314
Charles MacNeill 5:89031b2f5316 315
Charles MacNeill 5:89031b2f5316 316 /**
Charles MacNeill 5:89031b2f5316 317 * @brief Sets and clears the XShutdown pin on the Ewok
Charles MacNeill 5:89031b2f5316 318 *
Charles MacNeill 5:89031b2f5316 319 * @param value - the value for xshutdown - 0 = in reset, 1 = operational
Charles MacNeill 5:89031b2f5316 320 *
Charles MacNeill 5:89031b2f5316 321 * @return VL53LX_ERROR_NONE Success
Charles MacNeill 5:89031b2f5316 322 * @return "Other error code" See ::VL53LX_Error
Charles MacNeill 5:89031b2f5316 323 */
Charles MacNeill 5:89031b2f5316 324
Charles MacNeill 5:89031b2f5316 325 VL53LX_Error VL53LX_GpioXshutdown(uint8_t value);
Charles MacNeill 5:89031b2f5316 326
Charles MacNeill 5:89031b2f5316 327
Charles MacNeill 5:89031b2f5316 328 /**
Charles MacNeill 5:89031b2f5316 329 * @brief Sets and clears the Comms Mode pin (NCS) on the Ewok
Charles MacNeill 5:89031b2f5316 330 *
Charles MacNeill 5:89031b2f5316 331 * @param value - the value for comms select - 0 = I2C, 1 = SPI
Charles MacNeill 5:89031b2f5316 332 *
Charles MacNeill 5:89031b2f5316 333 * @return VL53LX_ERROR_NONE Success
Charles MacNeill 5:89031b2f5316 334 * @return "Other error code" See ::VL53LX_Error
Charles MacNeill 5:89031b2f5316 335 */
Charles MacNeill 5:89031b2f5316 336
Charles MacNeill 5:89031b2f5316 337 VL53LX_Error VL53LX_GpioCommsSelect(uint8_t value);
Charles MacNeill 5:89031b2f5316 338
Charles MacNeill 5:89031b2f5316 339
Charles MacNeill 5:89031b2f5316 340 /**
Charles MacNeill 5:89031b2f5316 341 * @brief Enables and disables the power to the Ewok module
Charles MacNeill 5:89031b2f5316 342 *
Charles MacNeill 5:89031b2f5316 343 * @param value - the state of the power supply - 0 = power off, 1 = power on
Charles MacNeill 5:89031b2f5316 344 *
Charles MacNeill 5:89031b2f5316 345 * @return VL53LX_ERROR_NONE Success
Charles MacNeill 5:89031b2f5316 346 * @return "Other error code" See ::VL53LX_Error
Charles MacNeill 5:89031b2f5316 347 */
Charles MacNeill 5:89031b2f5316 348
Charles MacNeill 5:89031b2f5316 349 VL53LX_Error VL53LX_GpioPowerEnable(uint8_t value);
Charles MacNeill 5:89031b2f5316 350
Charles MacNeill 5:89031b2f5316 351 /**
Charles MacNeill 5:89031b2f5316 352 * @brief Enables callbacks to the supplied funtion pointer when Ewok interrupts ocurr
Charles MacNeill 5:89031b2f5316 353 *
Charles MacNeill 5:89031b2f5316 354 * @param function - a function callback supplies by the caller, for interrupt notification
Charles MacNeill 5:89031b2f5316 355 * @param edge_type - falling edge or rising edge interrupt detection
Charles MacNeill 5:89031b2f5316 356 *
Charles MacNeill 5:89031b2f5316 357 * @return VL53LX_ERROR_NONE Success
Charles MacNeill 5:89031b2f5316 358 * @return "Other error code" See ::VL53LX_Error
Charles MacNeill 5:89031b2f5316 359 */
Charles MacNeill 5:89031b2f5316 360
Charles MacNeill 5:89031b2f5316 361 VL53LX_Error VL53LX_GpioInterruptEnable(void (*function)(void), uint8_t edge_type);
Charles MacNeill 5:89031b2f5316 362
Charles MacNeill 5:89031b2f5316 363
Charles MacNeill 5:89031b2f5316 364 /**
Charles MacNeill 5:89031b2f5316 365 * @brief Disables the callback on Ewok interrupts
Charles MacNeill 5:89031b2f5316 366 *
Charles MacNeill 5:89031b2f5316 367 * @return VL53LX_ERROR_NONE Success
Charles MacNeill 5:89031b2f5316 368 * @return "Other error code" See ::VL53LX_Error
Charles MacNeill 5:89031b2f5316 369 */
Charles MacNeill 5:89031b2f5316 370
Charles MacNeill 5:89031b2f5316 371 VL53LX_Error VL53LX_GpioInterruptDisable(void);
Charles MacNeill 5:89031b2f5316 372
Charles MacNeill 5:89031b2f5316 373
Charles MacNeill 5:89031b2f5316 374 /*
Charles MacNeill 5:89031b2f5316 375 * @brief Gets current system tick count in [ms]
Charles MacNeill 5:89031b2f5316 376 *
Charles MacNeill 5:89031b2f5316 377 * @param[in] pdev : pointer to device structure (device handle)
Charles MacNeill 5:89031b2f5316 378 * @return time_ms : current time in [ms]
Charles MacNeill 5:89031b2f5316 379 *
Charles MacNeill 5:89031b2f5316 380 * @return VL53LX_ERROR_NONE Success
Charles MacNeill 5:89031b2f5316 381 * @return "Other error code" See ::VL53LX_Error
Charles MacNeill 5:89031b2f5316 382 */
Charles MacNeill 5:89031b2f5316 383
Charles MacNeill 5:89031b2f5316 384 VL53LX_Error VL53LX_GetTickCount(
Charles MacNeill 5:89031b2f5316 385 VL53LX_DEV Dev,
Charles MacNeill 5:89031b2f5316 386 uint32_t *ptime_ms);
Charles MacNeill 5:89031b2f5316 387
Charles MacNeill 5:89031b2f5316 388
Charles MacNeill 5:89031b2f5316 389 /**
Charles MacNeill 5:89031b2f5316 390 * @brief Register "wait for value" polling routine
Charles MacNeill 5:89031b2f5316 391 *
Charles MacNeill 5:89031b2f5316 392 * Port of the V2WReg Script function WaitValueMaskEx()
Charles MacNeill 5:89031b2f5316 393 *
Charles MacNeill 5:89031b2f5316 394 * @param[in] pdev : pointer to device structure (device handle)
Charles MacNeill 5:89031b2f5316 395 * @param[in] timeout_ms : timeout in [ms]
Charles MacNeill 5:89031b2f5316 396 * @param[in] index : uint16_t register index value
Charles MacNeill 5:89031b2f5316 397 * @param[in] value : value to wait for
Charles MacNeill 5:89031b2f5316 398 * @param[in] mask : mask to be applied before comparison with value
Charles MacNeill 5:89031b2f5316 399 * @param[in] poll_delay_ms : polling delay been each read transaction in [ms]
Charles MacNeill 5:89031b2f5316 400 *
Charles MacNeill 5:89031b2f5316 401 * @return VL53LX_ERROR_NONE Success
Charles MacNeill 5:89031b2f5316 402 * @return "Other error code" See ::VL53LX_Error
Charles MacNeill 5:89031b2f5316 403 */
Charles MacNeill 5:89031b2f5316 404
Charles MacNeill 5:89031b2f5316 405 VL53LX_Error VL53LX_WaitValueMaskEx(
Charles MacNeill 5:89031b2f5316 406 VL53LX_DEV Dev,
Charles MacNeill 5:89031b2f5316 407 uint32_t timeout_ms,
Charles MacNeill 5:89031b2f5316 408 uint16_t index,
Charles MacNeill 5:89031b2f5316 409 uint8_t value,
Charles MacNeill 5:89031b2f5316 410 uint8_t mask,
Charles MacNeill 5:89031b2f5316 411 uint32_t poll_delay_ms);
Charles MacNeill 5:89031b2f5316 412
Charles MacNeill 5:89031b2f5316 413 int32_t GetTickCountMs();
Charles MacNeill 5:89031b2f5316 414
Charles MacNeill 5:89031b2f5316 415 #ifdef __cplusplus
Charles MacNeill 5:89031b2f5316 416 }
Charles MacNeill 5:89031b2f5316 417 #endif
Charles MacNeill 5:89031b2f5316 418
Charles MacNeill 5:89031b2f5316 419 #endif
Charles MacNeill 5:89031b2f5316 420