charles macneill / VL53L1CB
Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers vl53l1_error_strings.c Source File

vl53l1_error_strings.c

00001 
00002 /*******************************************************************************
00003  * Copyright (c) 2020, STMicroelectronics - All Rights Reserved
00004 
00005  This file is part of VL53L1 Core and is dual licensed,
00006  either 'STMicroelectronics
00007  Proprietary license'
00008  or 'BSD 3-clause "New" or "Revised" License' , at your option.
00009 
00010 ********************************************************************************
00011 
00012  'STMicroelectronics Proprietary license'
00013 
00014 ********************************************************************************
00015 
00016  License terms: STMicroelectronics Proprietary in accordance with licensing
00017  terms at www.st.com/sla0081
00018 
00019  STMicroelectronics confidential
00020  Reproduction and Communication of this document is strictly prohibited unless
00021  specifically authorized in writing by STMicroelectronics.
00022 
00023 
00024 ********************************************************************************
00025 
00026  Alternatively, VL53L1 Core may be distributed under the terms of
00027  'BSD 3-clause "New" or "Revised" License', in which case the following
00028  provisions apply instead of the ones
00029  mentioned above :
00030 
00031 ********************************************************************************
00032 
00033  License terms: BSD 3-clause "New" or "Revised" License.
00034 
00035  Redistribution and use in source and binary forms, with or without
00036  modification, are permitted provided that the following conditions are met:
00037 
00038  1. Redistributions of source code must retain the above copyright notice, this
00039  list of conditions and the following disclaimer.
00040 
00041  2. Redistributions in binary form must reproduce the above copyright notice,
00042  this list of conditions and the following disclaimer in the documentation
00043  and/or other materials provided with the distribution.
00044 
00045  3. Neither the name of the copyright holder nor the names of its contributors
00046  may be used to endorse or promote products derived from this software
00047  without specific prior written permission.
00048 
00049  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
00050  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
00051  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
00052  DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
00053  FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
00054  DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
00055  SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
00056  CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
00057  OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
00058  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
00059 
00060 
00061 ********************************************************************************
00062 
00063 */
00064 
00065 
00066 
00067 
00068 #include "vl53l1_error_codes.h"
00069 #include "vl53l1_error_strings.h"
00070 #include "vl53l1_platform_log.h"
00071 #include "vl53l1_ll_def.h"
00072 
00073 #define LOG_FUNCTION_START(fmt, ...) \
00074     _LOG_FUNCTION_START(VL53L1_TRACE_MODULE_API, fmt, ##__VA_ARGS__)
00075 #define LOG_FUNCTION_END(status, ...) \
00076     _LOG_FUNCTION_END(VL53L1_TRACE_MODULE_API, status, ##__VA_ARGS__)
00077 #define LOG_FUNCTION_END_FMT(status, fmt, ...) \
00078     _LOG_FUNCTION_END_FMT(VL53L1_TRACE_MODULE_API, \
00079         status, fmt, ##__VA_ARGS__)
00080 
00081 
00082 VL53L1_Error VL53L1_get_pal_error_string(
00083     VL53L1_Error   PalErrorCode,
00084     char          *pPalErrorString)
00085 {
00086     VL53L1_Error Status = VL53L1_ERROR_NONE;
00087 
00088 #ifdef VL53L1_USE_EMPTY_STRING
00089     SUPPRESS_UNUSED_WARNING(PalErrorCode);
00090 #endif
00091 
00092     LOG_FUNCTION_START("");
00093 
00094 #ifdef VL53L1_USE_EMPTY_STRING
00095     VL53L1_COPYSTRING(pPalErrorString, "");
00096 #else
00097 
00098     switch (PalErrorCode) {
00099     case VL53L1_ERROR_NONE:
00100         VL53L1_COPYSTRING(pPalErrorString,
00101             VL53L1_STRING_ERROR_NONE);
00102         break;
00103     case VL53L1_ERROR_CALIBRATION_WARNING:
00104         VL53L1_COPYSTRING(pPalErrorString,
00105             VL53L1_STRING_ERROR_CALIBRATION_WARNING);
00106         break;
00107     case VL53L1_ERROR_MIN_CLIPPED:
00108         VL53L1_COPYSTRING(pPalErrorString,
00109             VL53L1_STRING_ERROR_MIN_CLIPPED);
00110         break;
00111     case VL53L1_ERROR_UNDEFINED:
00112         VL53L1_COPYSTRING(pPalErrorString,
00113             VL53L1_STRING_ERROR_UNDEFINED);
00114         break;
00115     case VL53L1_ERROR_INVALID_PARAMS:
00116         VL53L1_COPYSTRING(pPalErrorString,
00117             VL53L1_STRING_ERROR_INVALID_PARAMS);
00118         break;
00119     case VL53L1_ERROR_NOT_SUPPORTED:
00120         VL53L1_COPYSTRING(pPalErrorString,
00121             VL53L1_STRING_ERROR_NOT_SUPPORTED);
00122         break;
00123     case VL53L1_ERROR_RANGE_ERROR:
00124         VL53L1_COPYSTRING(pPalErrorString,
00125             VL53L1_STRING_ERROR_RANGE_ERROR);
00126         break;
00127     case VL53L1_ERROR_TIME_OUT:
00128         VL53L1_COPYSTRING(pPalErrorString,
00129             VL53L1_STRING_ERROR_TIME_OUT);
00130         break;
00131     case VL53L1_ERROR_MODE_NOT_SUPPORTED:
00132         VL53L1_COPYSTRING(pPalErrorString,
00133             VL53L1_STRING_ERROR_MODE_NOT_SUPPORTED);
00134         break;
00135     case VL53L1_ERROR_BUFFER_TOO_SMALL:
00136         VL53L1_COPYSTRING(pPalErrorString,
00137             VL53L1_STRING_ERROR_BUFFER_TOO_SMALL);
00138         break;
00139     case VL53L1_ERROR_COMMS_BUFFER_TOO_SMALL:
00140         VL53L1_COPYSTRING(pPalErrorString,
00141             VL53L1_STRING_ERROR_COMMS_BUFFER_TOO_SMALL);
00142         break;
00143     case VL53L1_ERROR_GPIO_NOT_EXISTING:
00144         VL53L1_COPYSTRING(pPalErrorString,
00145             VL53L1_STRING_ERROR_GPIO_NOT_EXISTING);
00146         break;
00147     case VL53L1_ERROR_GPIO_FUNCTIONALITY_NOT_SUPPORTED:
00148         VL53L1_COPYSTRING(pPalErrorString,
00149             VL53L1_STRING_ERROR_GPIO_FUNCTIONALITY_NOT_SUPPORTED);
00150         break;
00151     case VL53L1_ERROR_CONTROL_INTERFACE:
00152         VL53L1_COPYSTRING(pPalErrorString,
00153             VL53L1_STRING_ERROR_CONTROL_INTERFACE);
00154         break;
00155     case VL53L1_ERROR_INVALID_COMMAND:
00156         VL53L1_COPYSTRING(pPalErrorString,
00157             VL53L1_STRING_ERROR_INVALID_COMMAND);
00158         break;
00159     case VL53L1_ERROR_DIVISION_BY_ZERO:
00160         VL53L1_COPYSTRING(pPalErrorString,
00161             VL53L1_STRING_ERROR_DIVISION_BY_ZERO);
00162         break;
00163     case VL53L1_ERROR_REF_SPAD_INIT:
00164         VL53L1_COPYSTRING(pPalErrorString,
00165             VL53L1_STRING_ERROR_REF_SPAD_INIT);
00166         break;
00167     case VL53L1_ERROR_GPH_SYNC_CHECK_FAIL:
00168         VL53L1_COPYSTRING(pPalErrorString,
00169             VL53L1_STRING_ERROR_GPH_SYNC_CHECK_FAIL);
00170         break;
00171     case VL53L1_ERROR_STREAM_COUNT_CHECK_FAIL:
00172         VL53L1_COPYSTRING(pPalErrorString,
00173             VL53L1_STRING_ERROR_STREAM_COUNT_CHECK_FAIL);
00174         break;
00175     case VL53L1_ERROR_GPH_ID_CHECK_FAIL:
00176         VL53L1_COPYSTRING(pPalErrorString,
00177             VL53L1_STRING_ERROR_GPH_ID_CHECK_FAIL);
00178         break;
00179     case VL53L1_ERROR_ZONE_STREAM_COUNT_CHECK_FAIL:
00180         VL53L1_COPYSTRING(pPalErrorString,
00181             VL53L1_STRING_ERROR_ZONE_STREAM_COUNT_CHECK_FAIL);
00182         break;
00183     case VL53L1_ERROR_ZONE_GPH_ID_CHECK_FAIL:
00184         VL53L1_COPYSTRING(pPalErrorString,
00185             VL53L1_STRING_ERROR_ZONE_GPH_ID_CHECK_FAIL);
00186         break;
00187 
00188     case VL53L1_ERROR_XTALK_EXTRACTION_NO_SAMPLE_FAIL:
00189         VL53L1_COPYSTRING(pPalErrorString,
00190             VL53L1_STRING_ERROR_XTALK_EXTRACTION_NO_SAMPLES_FAIL);
00191         break;
00192     case VL53L1_ERROR_XTALK_EXTRACTION_SIGMA_LIMIT_FAIL:
00193         VL53L1_COPYSTRING(pPalErrorString,
00194             VL53L1_STRING_ERROR_XTALK_EXTRACTION_SIGMA_LIMIT_FAIL);
00195         break;
00196 
00197     case VL53L1_ERROR_OFFSET_CAL_NO_SAMPLE_FAIL:
00198         VL53L1_COPYSTRING(pPalErrorString,
00199             VL53L1_STRING_ERROR_OFFSET_CAL_NO_SAMPLE_FAIL);
00200         break;
00201     case VL53L1_ERROR_OFFSET_CAL_NO_SPADS_ENABLED_FAIL:
00202         VL53L1_COPYSTRING(pPalErrorString,
00203             VL53L1_STRING_ERROR_OFFSET_CAL_NO_SPADS_ENABLED_FAIL);
00204         break;
00205     case VL53L1_ERROR_ZONE_CAL_NO_SAMPLE_FAIL:
00206         VL53L1_COPYSTRING(pPalErrorString,
00207             VL53L1_STRING_ERROR_ZONE_CAL_NO_SAMPLE_FAIL);
00208         break;
00209 
00210     case VL53L1_WARNING_OFFSET_CAL_MISSING_SAMPLES:
00211         VL53L1_COPYSTRING(pPalErrorString,
00212             VL53L1_STRING_WARNING_OFFSET_CAL_MISSING_SAMPLES);
00213         break;
00214     case VL53L1_WARNING_OFFSET_CAL_SIGMA_TOO_HIGH:
00215         VL53L1_COPYSTRING(pPalErrorString,
00216             VL53L1_STRING_WARNING_OFFSET_CAL_SIGMA_TOO_HIGH);
00217         break;
00218     case VL53L1_WARNING_OFFSET_CAL_RATE_TOO_HIGH:
00219         VL53L1_COPYSTRING(pPalErrorString,
00220             VL53L1_STRING_WARNING_OFFSET_CAL_RATE_TOO_HIGH);
00221         break;
00222     case VL53L1_WARNING_OFFSET_CAL_SPAD_COUNT_TOO_LOW:
00223         VL53L1_COPYSTRING(pPalErrorString,
00224             VL53L1_STRING_WARNING_OFFSET_CAL_SPAD_COUNT_TOO_LOW);
00225         break;
00226 
00227     case VL53L1_WARNING_ZONE_CAL_MISSING_SAMPLES:
00228         VL53L1_COPYSTRING(pPalErrorString,
00229             VL53L1_STRING_WARNING_ZONE_CAL_MISSING_SAMPLES);
00230         break;
00231     case VL53L1_WARNING_ZONE_CAL_SIGMA_TOO_HIGH:
00232         VL53L1_COPYSTRING(pPalErrorString,
00233             VL53L1_STRING_WARNING_ZONE_CAL_SIGMA_TOO_HIGH);
00234         break;
00235     case VL53L1_WARNING_ZONE_CAL_RATE_TOO_HIGH:
00236         VL53L1_COPYSTRING(pPalErrorString,
00237             VL53L1_STRING_WARNING_ZONE_CAL_RATE_TOO_HIGH);
00238         break;
00239 
00240     case VL53L1_WARNING_REF_SPAD_CHAR_NOT_ENOUGH_SPADS:
00241         VL53L1_COPYSTRING(pPalErrorString,
00242             VL53L1_STRING_WARNING_REF_SPAD_CHAR_NOT_ENOUGH_SPADS);
00243         break;
00244     case VL53L1_WARNING_REF_SPAD_CHAR_RATE_TOO_HIGH:
00245         VL53L1_COPYSTRING(pPalErrorString,
00246             VL53L1_STRING_WARNING_REF_SPAD_CHAR_RATE_TOO_HIGH);
00247         break;
00248     case VL53L1_WARNING_REF_SPAD_CHAR_RATE_TOO_LOW:
00249         VL53L1_COPYSTRING(pPalErrorString,
00250             VL53L1_STRING_WARNING_REF_SPAD_CHAR_RATE_TOO_LOW);
00251         break;
00252 
00253     case VL53L1_WARNING_XTALK_MISSING_SAMPLES:
00254         VL53L1_COPYSTRING(pPalErrorString,
00255             VL53L1_STRING_WARNING_XTALK_MISSING_SAMPLES);
00256         break;
00257     case VL53L1_WARNING_XTALK_NO_SAMPLES_FOR_GRADIENT:
00258         VL53L1_COPYSTRING(pPalErrorString,
00259             VL53L1_STRING_WARNING_XTALK_NO_SAMPLES_FOR_GRADIENT);
00260         break;
00261     case VL53L1_WARNING_XTALK_SIGMA_LIMIT_FOR_GRADIENT:
00262         VL53L1_COPYSTRING(pPalErrorString,
00263             VL53L1_STRING_WARNING_XTALK_SIGMA_LIMIT_FOR_GRADIENT);
00264         break;
00265 
00266     case VL53L1_ERROR_DEVICE_FIRMWARE_TOO_OLD:
00267         VL53L1_COPYSTRING(pPalErrorString,
00268             VL53L1_STRING_ERROR_DEVICE_FIRMWARE_TOO_OLD);
00269         break;
00270     case VL53L1_ERROR_DEVICE_FIRMWARE_TOO_NEW:
00271         VL53L1_COPYSTRING(pPalErrorString,
00272             VL53L1_STRING_ERROR_DEVICE_FIRMWARE_TOO_NEW);
00273         break;
00274     case VL53L1_ERROR_UNIT_TEST_FAIL:
00275         VL53L1_COPYSTRING(pPalErrorString,
00276             VL53L1_STRING_ERROR_UNIT_TEST_FAIL);
00277         break;
00278     case VL53L1_ERROR_FILE_READ_FAIL:
00279         VL53L1_COPYSTRING(pPalErrorString,
00280             VL53L1_STRING_ERROR_FILE_READ_FAIL);
00281         break;
00282     case VL53L1_ERROR_FILE_WRITE_FAIL:
00283         VL53L1_COPYSTRING(pPalErrorString,
00284             VL53L1_STRING_ERROR_FILE_WRITE_FAIL);
00285         break;
00286     case VL53L1_ERROR_NOT_IMPLEMENTED:
00287         VL53L1_COPYSTRING(pPalErrorString,
00288             VL53L1_STRING_ERROR_NOT_IMPLEMENTED);
00289         break;
00290     default:
00291         VL53L1_COPYSTRING(pPalErrorString,
00292                 VL53L1_STRING_UNKNOW_ERROR_CODE);
00293     }
00294 
00295 #endif
00296 
00297     LOG_FUNCTION_END(Status);
00298 
00299     return Status;
00300 }
00301 
00302