Statistics
| Branch: | Tag: | Revision:

amiro-lld / drivers / VL53L1X / v1 / api / core / vl53l1_error_codes.h @ 4dba9195

History | View | Annotate | Download (12.111 KB)

1
/*
2
* Copyright (c) 2017, STMicroelectronics - All Rights Reserved
3
*
4
* This file is part of VL53L1 Core and is dual licensed,
5
* either 'STMicroelectronics
6
* Proprietary license'
7
* or 'BSD 3-clause "New" or "Revised" License' , at your option.
8
*
9
********************************************************************************
10
*
11
* 'STMicroelectronics Proprietary license'
12
*
13
********************************************************************************
14
*
15
* License terms: STMicroelectronics Proprietary in accordance with licensing
16
* terms at www.st.com/sla0081
17
*
18
* STMicroelectronics confidential
19
* Reproduction and Communication of this document is strictly prohibited unless
20
* specifically authorized in writing by STMicroelectronics.
21
*
22
*
23
********************************************************************************
24
*
25
* Alternatively, VL53L1 Core may be distributed under the terms of
26
* 'BSD 3-clause "New" or "Revised" License', in which case the following
27
* provisions apply instead of the ones mentioned above :
28
*
29
********************************************************************************
30
*
31
* License terms: BSD 3-clause "New" or "Revised" License.
32
*
33
* Redistribution and use in source and binary forms, with or without
34
* modification, are permitted provided that the following conditions are met:
35
*
36
* 1. Redistributions of source code must retain the above copyright notice, this
37
* list of conditions and the following disclaimer.
38
*
39
* 2. Redistributions in binary form must reproduce the above copyright notice,
40
* this list of conditions and the following disclaimer in the documentation
41
* and/or other materials provided with the distribution.
42
*
43
* 3. Neither the name of the copyright holder nor the names of its contributors
44
* may be used to endorse or promote products derived from this software
45
* without specific prior written permission.
46
*
47
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
48
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
49
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
50
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
51
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
52
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
53
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
54
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
55
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
56
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
57
*
58
*
59
********************************************************************************
60
*
61
*/
62

    
63
/**
64
 * @file vl53l1_error_codes.h
65
 *
66
 * @brief Error Code definitions for VL53L1 API.
67
 *
68
 */
69

    
70
#ifndef _VL53L1_ERROR_CODES_H_
71
#define _VL53L1_ERROR_CODES_H_
72

    
73
#include "vl53l1_types.h"
74

    
75
#ifdef __cplusplus
76
extern "C" {
77
#endif
78

    
79

    
80
/****************************************
81
 * PRIVATE define do not edit
82
 ****************************************/
83

    
84
/** @defgroup VL53L1_define_Error_group Error and Warning code returned by API
85
 *  The following DEFINE are used to identify the PAL ERROR
86
 *  @{
87
 */
88

    
89
typedef int8_t VL53L1_Error;
90

    
91
#define VL53L1_ERROR_NONE                              ((VL53L1_Error)  0)
92
#define VL53L1_ERROR_CALIBRATION_WARNING               ((VL53L1_Error) - 1)
93
        /*!< Warning invalid calibration data may be in used
94
                \a  VL53L1_InitData()
95
                \a VL53L1_GetOffsetCalibrationData
96
                \a VL53L1_SetOffsetCalibrationData */
97
#define VL53L1_ERROR_MIN_CLIPPED                       ((VL53L1_Error) - 2)
98
        /*!< Warning parameter passed was clipped to min before to be applied */
99

    
100
#define VL53L1_ERROR_UNDEFINED                         ((VL53L1_Error) - 3)
101
        /*!< Unqualified error */
102
#define VL53L1_ERROR_INVALID_PARAMS                    ((VL53L1_Error) - 4)
103
        /*!< Parameter passed is invalid or out of range */
104
#define VL53L1_ERROR_NOT_SUPPORTED                     ((VL53L1_Error) - 5)
105
        /*!< Function is not supported in current mode or configuration */
106
#define VL53L1_ERROR_RANGE_ERROR                       ((VL53L1_Error) - 6)
107
        /*!< Device report a ranging error interrupt status */
108
#define VL53L1_ERROR_TIME_OUT                          ((VL53L1_Error) - 7)
109
        /*!< Aborted due to time out */
110
#define VL53L1_ERROR_MODE_NOT_SUPPORTED                ((VL53L1_Error) - 8)
111
        /*!< Asked mode is not supported by the device */
112
#define VL53L1_ERROR_BUFFER_TOO_SMALL                  ((VL53L1_Error) - 9)
113
        /*!< ... */
114
#define VL53L1_ERROR_COMMS_BUFFER_TOO_SMALL            ((VL53L1_Error) - 10)
115
        /*!< Supplied buffer is larger than I2C supports */
116
#define VL53L1_ERROR_GPIO_NOT_EXISTING                 ((VL53L1_Error) - 11)
117
        /*!< User tried to setup a non-existing GPIO pin */
118
#define VL53L1_ERROR_GPIO_FUNCTIONALITY_NOT_SUPPORTED  ((VL53L1_Error) - 12)
119
        /*!< unsupported GPIO functionality */
120
#define VL53L1_ERROR_CONTROL_INTERFACE                 ((VL53L1_Error) - 13)
121
        /*!< error reported from IO functions */
122
#define VL53L1_ERROR_INVALID_COMMAND                   ((VL53L1_Error) - 14)
123
        /*!< The command is not allowed in the current device state
124
         *  (power down) */
125
#define VL53L1_ERROR_DIVISION_BY_ZERO                  ((VL53L1_Error) - 15)
126
        /*!< In the function a division by zero occurs */
127
#define VL53L1_ERROR_REF_SPAD_INIT                     ((VL53L1_Error) - 16)
128
        /*!< Error during reference SPAD initialization */
129
#define VL53L1_ERROR_GPH_SYNC_CHECK_FAIL               ((VL53L1_Error) - 17)
130
        /*!<  GPH sync interrupt check fail - API out of sync with device*/
131
#define VL53L1_ERROR_STREAM_COUNT_CHECK_FAIL           ((VL53L1_Error) - 18)
132
        /*!<  Stream count check fail - API out of sync with device */
133
#define VL53L1_ERROR_GPH_ID_CHECK_FAIL                 ((VL53L1_Error) - 19)
134
        /*!<  GPH ID check fail - API out of sync with device */
135
#define VL53L1_ERROR_ZONE_STREAM_COUNT_CHECK_FAIL      ((VL53L1_Error) - 20)
136
        /*!<  Zone dynamic config stream count check failed - API out of sync */
137
#define VL53L1_ERROR_ZONE_GPH_ID_CHECK_FAIL            ((VL53L1_Error) - 21)
138
        /*!<  Zone dynamic config GPH ID check failed - API out of sync */
139

    
140
#define VL53L1_ERROR_XTALK_EXTRACTION_NO_SAMPLE_FAIL   ((VL53L1_Error) - 22)
141
        /*!<  Thrown when run_xtalk_extraction fn has 0 succesful samples
142
         * when using the full array to sample the xtalk. In this case there is
143
         * not enough information to generate new Xtalk parm info. The function
144
         * will exit and leave the current xtalk parameters unaltered */
145
#define VL53L1_ERROR_XTALK_EXTRACTION_SIGMA_LIMIT_FAIL ((VL53L1_Error) - 23)
146
        /*!<  Thrown when run_xtalk_extraction fn has found that the
147
         * avg sigma estimate of the full array xtalk sample is > than the
148
         * maximal limit allowed. In this case the xtalk sample is too noisy for
149
         * measurement. The function will exit and leave the current xtalk parameters
150
         * unaltered. */
151

    
152

    
153
#define VL53L1_ERROR_OFFSET_CAL_NO_SAMPLE_FAIL           ((VL53L1_Error) - 24)
154
        /*!<  Thrown if there one of stages has no valid offset calibration
155
         *    samples. A fatal error calibration not valid */
156
#define VL53L1_ERROR_OFFSET_CAL_NO_SPADS_ENABLED_FAIL    ((VL53L1_Error) - 25)
157
        /*!<  Thrown if there one of stages has zero effective SPADS
158
         *    Traps the case when MM1 SPADs is zero.
159
         *    A fatal error calibration not valid */
160
#define VL53L1_ERROR_ZONE_CAL_NO_SAMPLE_FAIL             ((VL53L1_Error) - 26)
161
        /*!<  Thrown if then some of the zones have no valid samples
162
         *    A fatal error calibration not valid */
163

    
164
#define VL53L1_ERROR_TUNING_PARM_KEY_MISMATCH             ((VL53L1_Error) - 27)
165
        /*!<  Thrown if the tuning file key table version does not match with
166
         * expected value. The driver expects the key table version to match
167
         * the compiled default version number in the define
168
         * #VL53L1_TUNINGPARM_KEY_TABLE_VERSION_DEFAULT
169
         * */
170

    
171
#define VL53L1_WARNING_REF_SPAD_CHAR_NOT_ENOUGH_SPADS   ((VL53L1_Error) - 28)
172
        /*!<  Thrown if there are less than 5 good SPADs are available. */
173
#define VL53L1_WARNING_REF_SPAD_CHAR_RATE_TOO_HIGH      ((VL53L1_Error) - 29)
174
        /*!<  Thrown if the final reference rate is greater than
175
              the upper reference rate limit - default is 40 Mcps.
176
              Implies a minimum Q3 (x10) SPAD (5) selected */
177
#define VL53L1_WARNING_REF_SPAD_CHAR_RATE_TOO_LOW       ((VL53L1_Error) - 30)
178
        /*!<  Thrown if the final reference rate is less than
179
              the lower reference rate limit - default is 10 Mcps.
180
              Implies maximum Q1 (x1) SPADs selected */
181

    
182

    
183
#define VL53L1_WARNING_OFFSET_CAL_MISSING_SAMPLES       ((VL53L1_Error) - 31)
184
        /*!<  Thrown if there is less than the requested number of
185
         *    valid samples. */
186
#define VL53L1_WARNING_OFFSET_CAL_SIGMA_TOO_HIGH        ((VL53L1_Error) - 32)
187
        /*!<  Thrown if the offset calibration range sigma estimate is greater
188
         *    than 8.0 mm. This is the recommended min value to yield a stable
189
         *    offset measurement */
190
#define VL53L1_WARNING_OFFSET_CAL_RATE_TOO_HIGH         ((VL53L1_Error) - 33)
191
        /*!< Thrown when VL53L1_run_offset_calibration()  peak rate is greater
192
             than that 50.0Mcps. This is the recommended  max rate to avoid
193
             pile-up influencing the offset measurement */
194
#define VL53L1_WARNING_OFFSET_CAL_SPAD_COUNT_TOO_LOW    ((VL53L1_Error) - 34)
195
        /*!< Thrown when VL53L1_run_offset_calibration() when one of stages
196
             range has less that 5.0 effective SPADS. This is the recommended
197
             min value to yield a stable offset */
198

    
199

    
200
#define VL53L1_WARNING_ZONE_CAL_MISSING_SAMPLES       ((VL53L1_Error) - 35)
201
        /*!<  Thrown if one of more of the zones have less than
202
              the requested number of valid samples */
203
#define VL53L1_WARNING_ZONE_CAL_SIGMA_TOO_HIGH        ((VL53L1_Error) - 36)
204
        /*!<  Thrown if one or more zones have sigma estimate value greater
205
         *    than 8.0 mm. This is the recommended min value to yield a stable
206
         *    offset measurement */
207
#define VL53L1_WARNING_ZONE_CAL_RATE_TOO_HIGH         ((VL53L1_Error) - 37)
208
        /*!< Thrown if one of more zones have  peak rate higher than
209
              that 50.0Mcps. This is the recommended  max rate to avoid
210
             pile-up influencing the offset measurement */
211

    
212

    
213
#define VL53L1_WARNING_XTALK_MISSING_SAMPLES             ((VL53L1_Error) - 38)
214
        /*!< Thrown to notify that some of the xtalk samples did not yield
215
         * valid ranging pulse data while attempting to measure
216
         * the xtalk signal in vl53l1_run_xtalk_extract(). This can signify any of
217
         * the zones are missing samples, for further debug information the
218
         * xtalk_results struct should be referred to. This warning is for
219
         * notification only, the xtalk pulse and shape have still been generated
220
         */
221
#define VL53L1_WARNING_XTALK_NO_SAMPLES_FOR_GRADIENT     ((VL53L1_Error) - 39)
222
        /*!< Thrown to notify that some of teh xtalk samples used for gradient
223
         * generation did not yield valid ranging pulse data while attempting to
224
         * measure the xtalk signal in vl53l1_run_xtalk_extract(). This can signify
225
         * that any one of the zones 0-3 yielded no successful samples. The
226
         * xtalk_results struct should be referred to for further debug info.
227
         * This warning is for notification only, the xtalk pulse and shape
228
         * have still been generated.
229
         */
230
#define VL53L1_WARNING_XTALK_SIGMA_LIMIT_FOR_GRADIENT    ((VL53L1_Error) - 40)
231
/*!< Thrown to notify that some of the xtalk samples used for gradient
232
         * generation did not pass the sigma limit check  while attempting to
233
         * measure the xtalk signal in vl53l1_run_xtalk_extract(). This can signify
234
         * that any one of the zones 0-3 yielded an avg sigma_mm value > the limit.
235
         * The xtalk_results struct should be referred to for further debug info.
236
         * This warning is for notification only, the xtalk pulse and shape
237
         * have still been generated.
238
         */
239

    
240
#define VL53L1_ERROR_NOT_IMPLEMENTED                   ((VL53L1_Error) - 41)
241
        /*!< Tells requested functionality has not been implemented yet or
242
         * not compatible with the device */
243
#define VL53L1_ERROR_PLATFORM_SPECIFIC_START           ((VL53L1_Error) - 60)
244
        /*!< Tells the starting code for platform */
245
/** @} VL53L1_define_Error_group */
246

    
247

    
248
#ifdef __cplusplus
249
}
250
#endif
251

    
252

    
253
#endif /* _VL53L1_ERROR_CODES_H_ */