Fork Charles's library

Dependencies:   X_NUCLEO_COMMON ST_INTERFACES

Dependents:   VL53L3ExpansionBoard

Committer:
johnAlexander
Date:
Tue Nov 03 15:16:36 2020 +0000
Revision:
3:316175f392f7
Parent:
vl53l3inc/vl53lx_platform_user_data.h@0:0be0bd219e72
Add ST common libs

Who changed what in which revision?

UserRevisionLine numberNew contents of line
charlesmn 0:0be0bd219e72 1
charlesmn 0:0be0bd219e72 2 /*
charlesmn 0:0be0bd219e72 3 * This file is part of VL53LX Platform
charlesmn 0:0be0bd219e72 4 *
charlesmn 0:0be0bd219e72 5 * Copyright (c) 2016, STMicroelectronics - All Rights Reserved
charlesmn 0:0be0bd219e72 6 *
charlesmn 0:0be0bd219e72 7 * License terms: BSD 3-clause "New" or "Revised" License.
charlesmn 0:0be0bd219e72 8 *
charlesmn 0:0be0bd219e72 9 * Redistribution and use in source and binary forms, with or without
charlesmn 0:0be0bd219e72 10 * modification, are permitted provided that the following conditions are met:
charlesmn 0:0be0bd219e72 11 *
charlesmn 0:0be0bd219e72 12 * 1. Redistributions of source code must retain the above copyright notice, this
charlesmn 0:0be0bd219e72 13 * list of conditions and the following disclaimer.
charlesmn 0:0be0bd219e72 14 *
charlesmn 0:0be0bd219e72 15 * 2. Redistributions in binary form must reproduce the above copyright notice,
charlesmn 0:0be0bd219e72 16 * this list of conditions and the following disclaimer in the documentation
charlesmn 0:0be0bd219e72 17 * and/or other materials provided with the distribution.
charlesmn 0:0be0bd219e72 18 *
charlesmn 0:0be0bd219e72 19 * 3. Neither the name of the copyright holder nor the names of its contributors
charlesmn 0:0be0bd219e72 20 * may be used to endorse or promote products derived from this software
charlesmn 0:0be0bd219e72 21 * without specific prior written permission.
charlesmn 0:0be0bd219e72 22 *
charlesmn 0:0be0bd219e72 23 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
charlesmn 0:0be0bd219e72 24 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
charlesmn 0:0be0bd219e72 25 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
charlesmn 0:0be0bd219e72 26 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
charlesmn 0:0be0bd219e72 27 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
charlesmn 0:0be0bd219e72 28 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
charlesmn 0:0be0bd219e72 29 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
charlesmn 0:0be0bd219e72 30 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
charlesmn 0:0be0bd219e72 31 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
charlesmn 0:0be0bd219e72 32 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
charlesmn 0:0be0bd219e72 33 *
charlesmn 0:0be0bd219e72 34 */
charlesmn 0:0be0bd219e72 35
charlesmn 0:0be0bd219e72 36
charlesmn 0:0be0bd219e72 37 #ifndef __VL53LX_PLATFORM_USER_DATA_H
charlesmn 0:0be0bd219e72 38 #define __VL53LX_PLATFORM_USER_DATA_H
charlesmn 0:0be0bd219e72 39
charlesmn 0:0be0bd219e72 40
charlesmn 0:0be0bd219e72 41 #///include "stm32xxx_hal.h"
charlesmn 0:0be0bd219e72 42
charlesmn 0:0be0bd219e72 43
charlesmn 0:0be0bd219e72 44
charlesmn 0:0be0bd219e72 45
charlesmn 0:0be0bd219e72 46
charlesmn 0:0be0bd219e72 47
charlesmn 0:0be0bd219e72 48
charlesmn 0:0be0bd219e72 49
charlesmn 0:0be0bd219e72 50
charlesmn 0:0be0bd219e72 51
charlesmn 0:0be0bd219e72 52
charlesmn 0:0be0bd219e72 53
charlesmn 0:0be0bd219e72 54
charlesmn 0:0be0bd219e72 55
charlesmn 0:0be0bd219e72 56
charlesmn 0:0be0bd219e72 57
charlesmn 0:0be0bd219e72 58
charlesmn 0:0be0bd219e72 59
charlesmn 0:0be0bd219e72 60
charlesmn 0:0be0bd219e72 61
charlesmn 0:0be0bd219e72 62
charlesmn 0:0be0bd219e72 63
charlesmn 0:0be0bd219e72 64
charlesmn 0:0be0bd219e72 65
charlesmn 0:0be0bd219e72 66
charlesmn 0:0be0bd219e72 67 #ifndef _VL53LX_PLATFORM_USER_DATA_H_
charlesmn 0:0be0bd219e72 68 #define _VL53LX_PLATFORM_USER_DATA_H_
charlesmn 0:0be0bd219e72 69
charlesmn 0:0be0bd219e72 70 #ifndef __KERNEL__
charlesmn 0:0be0bd219e72 71 #include <stdlib.h>
charlesmn 0:0be0bd219e72 72 #endif
charlesmn 0:0be0bd219e72 73
charlesmn 0:0be0bd219e72 74 #include "vl53lx_def.h"
charlesmn 0:0be0bd219e72 75
charlesmn 0:0be0bd219e72 76 #ifdef __cplusplus
charlesmn 0:0be0bd219e72 77 extern "C"
charlesmn 0:0be0bd219e72 78 {
charlesmn 0:0be0bd219e72 79 #endif
charlesmn 0:0be0bd219e72 80
charlesmn 0:0be0bd219e72 81
charlesmn 0:0be0bd219e72 82 typedef struct {
charlesmn 0:0be0bd219e72 83 VL53LX_DevData_t Data;
charlesmn 0:0be0bd219e72 84 /*!< Low Level Driver data structure */
charlesmn 0:0be0bd219e72 85 uint8_t i2c_slave_address;
charlesmn 0:0be0bd219e72 86 uint8_t comms_type;
charlesmn 0:0be0bd219e72 87 uint16_t comms_speed_khz;
charlesmn 0:0be0bd219e72 88 vl53L3_DevI2C *I2cHandle;
charlesmn 0:0be0bd219e72 89 uint8_t I2cDevAddr;
charlesmn 0:0be0bd219e72 90 int Present;
charlesmn 0:0be0bd219e72 91 int Enabled;
charlesmn 0:0be0bd219e72 92 int LoopState;
charlesmn 0:0be0bd219e72 93 int FirstStreamCountZero;
charlesmn 0:0be0bd219e72 94 int Idle;
charlesmn 0:0be0bd219e72 95 int Ready;
charlesmn 0:0be0bd219e72 96 uint8_t RangeStatus;
charlesmn 0:0be0bd219e72 97 FixPoint1616_t SignalRateRtnMegaCps;
charlesmn 0:0be0bd219e72 98 VL53LX_DeviceState device_state; /*!< Device State */
charlesmn 0:0be0bd219e72 99 } VL53LX_Dev_t;
charlesmn 0:0be0bd219e72 100
charlesmn 0:0be0bd219e72 101
charlesmn 0:0be0bd219e72 102
charlesmn 0:0be0bd219e72 103
charlesmn 0:0be0bd219e72 104
charlesmn 0:0be0bd219e72 105
charlesmn 0:0be0bd219e72 106 typedef VL53LX_Dev_t* VL53LX_DEV;
charlesmn 0:0be0bd219e72 107
charlesmn 0:0be0bd219e72 108
charlesmn 0:0be0bd219e72 109
charlesmn 0:0be0bd219e72 110
charlesmn 0:0be0bd219e72 111
charlesmn 0:0be0bd219e72 112 /**
charlesmn 0:0be0bd219e72 113 * @def VL53LXDevDataGet
charlesmn 0:0be0bd219e72 114 * @brief Get ST private structure @a VL53LX_DevData_t data access
charlesmn 0:0be0bd219e72 115 *
charlesmn 0:0be0bd219e72 116 * @param Dev Device Handle
charlesmn 0:0be0bd219e72 117 * @param field ST structure field name
charlesmn 0:0be0bd219e72 118 * It maybe used and as real data "ref" not just as "get" for sub-structure item
charlesmn 0:0be0bd219e72 119 * like VL53L1DevDataGet(FilterData.field)[i] or
charlesmn 0:0be0bd219e72 120 * VL53L1DevDataGet(FilterData.MeasurementIndex)++
charlesmn 0:0be0bd219e72 121 */
charlesmn 0:0be0bd219e72 122 #define VL53LXDevDataGet(Dev, field) (Dev->Data.field)
charlesmn 0:0be0bd219e72 123
charlesmn 0:0be0bd219e72 124
charlesmn 0:0be0bd219e72 125 /**
charlesmn 0:0be0bd219e72 126 * @def VL53LXDevDataSet(Dev, field, data)
charlesmn 0:0be0bd219e72 127 * @brief Set ST private structure @a VL53LX_DevData_t data field
charlesmn 0:0be0bd219e72 128 * @param Dev Device Handle
charlesmn 0:0be0bd219e72 129 * @param field ST structure field name
charlesmn 0:0be0bd219e72 130 * @param data Data to be set
charlesmn 0:0be0bd219e72 131 */
charlesmn 0:0be0bd219e72 132 #define VL53LXDevDataSet(Dev, field, data) ((Dev->Data.field) = (data))
charlesmn 0:0be0bd219e72 133
charlesmn 0:0be0bd219e72 134
charlesmn 0:0be0bd219e72 135
charlesmn 0:0be0bd219e72 136
charlesmn 0:0be0bd219e72 137
charlesmn 0:0be0bd219e72 138
charlesmn 0:0be0bd219e72 139
charlesmn 0:0be0bd219e72 140
charlesmn 0:0be0bd219e72 141
charlesmn 0:0be0bd219e72 142
charlesmn 0:0be0bd219e72 143
charlesmn 0:0be0bd219e72 144 #define PALDevDataGet(Dev, field) (Dev->Data.field)
charlesmn 0:0be0bd219e72 145
charlesmn 0:0be0bd219e72 146
charlesmn 0:0be0bd219e72 147
charlesmn 0:0be0bd219e72 148
charlesmn 0:0be0bd219e72 149
charlesmn 0:0be0bd219e72 150
charlesmn 0:0be0bd219e72 151
charlesmn 0:0be0bd219e72 152
charlesmn 0:0be0bd219e72 153
charlesmn 0:0be0bd219e72 154
charlesmn 0:0be0bd219e72 155
charlesmn 0:0be0bd219e72 156
charlesmn 0:0be0bd219e72 157 #define PALDevDataSet(Dev, field, VL53LX_PRM_00005) (Dev->Data.field)=(VL53LX_PRM_00005)
charlesmn 0:0be0bd219e72 158
charlesmn 0:0be0bd219e72 159
charlesmn 0:0be0bd219e72 160
charlesmn 0:0be0bd219e72 161
charlesmn 0:0be0bd219e72 162
charlesmn 0:0be0bd219e72 163
charlesmn 0:0be0bd219e72 164
charlesmn 0:0be0bd219e72 165
charlesmn 0:0be0bd219e72 166
charlesmn 0:0be0bd219e72 167 //#define VL53LXDevStructGetLLDriverHandle(Dev) (&Dev->Data.LLData)
charlesmn 0:0be0bd219e72 168
charlesmn 0:0be0bd219e72 169
charlesmn 0:0be0bd219e72 170
charlesmn 0:0be0bd219e72 171
charlesmn 0:0be0bd219e72 172
charlesmn 0:0be0bd219e72 173
charlesmn 0:0be0bd219e72 174
charlesmn 0:0be0bd219e72 175
charlesmn 0:0be0bd219e72 176 //#define VL53LXDevStructGetLLResultsHandle(Dev) (&Dev->Data.llresults)
charlesmn 0:0be0bd219e72 177
charlesmn 0:0be0bd219e72 178
charlesmn 0:0be0bd219e72 179
charlesmn 0:0be0bd219e72 180 #ifdef __cplusplus
charlesmn 0:0be0bd219e72 181 }
charlesmn 0:0be0bd219e72 182 #endif
charlesmn 0:0be0bd219e72 183
charlesmn 0:0be0bd219e72 184 #endif
charlesmn 0:0be0bd219e72 185
charlesmn 0:0be0bd219e72 186 #endif /* __VL53LX_PLATFORM_USER_DATA_H */