charles macneill / VL53L1CB
Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers vl53l1_api_calibration.h Source File

vl53l1_api_calibration.h

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 #ifndef _VL53L1_API_CALIBRATION_H_
00069 #define _VL53L1_API_CALIBRATION_H_
00070 
00071 #include "vl53l1_platform.h"
00072 
00073 #ifdef __cplusplus
00074 extern "C" {
00075 #endif
00076 
00077 
00078 
00079 
00080 VL53L1_Error VL53L1_run_ref_spad_char(VL53L1_DEV Dev,
00081         VL53L1_Error           * pcal_status);
00082 
00083 
00084 
00085 
00086 VL53L1_Error VL53L1_run_device_test(
00087     VL53L1_DEV                 Dev,
00088     VL53L1_DeviceTestMode      device_test_mode);
00089 
00090 
00091 
00092 
00093 VL53L1_Error VL53L1_run_spad_rate_map(
00094     VL53L1_DEV                 Dev,
00095     VL53L1_DeviceTestMode      device_test_mode,
00096     VL53L1_DeviceSscArray      array_select,
00097     uint32_t                   ssc_config_timeout_us,
00098     VL53L1_spad_rate_data_t   *pspad_rate_data);
00099 
00100 
00101 
00102 
00103 VL53L1_Error   VL53L1_run_xtalk_extraction(
00104     VL53L1_DEV                          Dev,
00105     VL53L1_Error                       *pcal_status);
00106 
00107 
00108 
00109 VL53L1_Error VL53L1_get_and_avg_xtalk_samples(
00110         VL53L1_DEV                    Dev,
00111         uint8_t                       num_of_samples,
00112         uint8_t                       measurement_mode,
00113         int16_t                       xtalk_filter_thresh_max_mm,
00114         int16_t                       xtalk_filter_thresh_min_mm,
00115         uint16_t                      xtalk_max_valid_rate_kcps,
00116         uint8_t                       xtalk_result_id,
00117         uint8_t                       xtalk_histo_id,
00118         VL53L1_xtalk_range_results_t *pxtalk_results,
00119         VL53L1_histogram_bin_data_t  *psum_histo,
00120         VL53L1_histogram_bin_data_t  *pavg_histo);
00121 
00122 
00123 
00124 VL53L1_Error   VL53L1_run_offset_calibration(
00125     VL53L1_DEV                    Dev,
00126     int16_t                       cal_distance_mm,
00127     uint16_t                      cal_reflectance_pc,
00128     VL53L1_Error                 *pcal_status);
00129 
00130 
00131 
00132 
00133 VL53L1_Error   VL53L1_run_phasecal_average(
00134     VL53L1_DEV              Dev,
00135     uint8_t                 measurement_mode,
00136     uint8_t                 phasecal_result__vcsel_start,
00137     uint16_t                phasecal_num_of_samples,
00138     VL53L1_range_results_t *prange_results,
00139     uint16_t               *pphasecal_result__reference_phase,
00140     uint16_t               *pzero_distance_phase);
00141 
00142 
00143 
00144 
00145 VL53L1_Error VL53L1_run_zone_calibration(
00146     VL53L1_DEV                    Dev,
00147     VL53L1_DevicePresetModes      device_preset_mode,
00148     VL53L1_DeviceZonePreset       zone_preset,
00149     VL53L1_zone_config_t         *pzone_cfg,
00150     int16_t                       cal_distance_mm,
00151     uint16_t                      cal_reflectance_pc,
00152     VL53L1_Error                 *pcal_status);
00153 
00154 
00155 
00156 
00157 void VL53L1_hist_xtalk_extract_data_init(
00158     VL53L1_hist_xtalk_extract_data_t   *pxtalk_data);
00159 
00160 
00161 
00162 VL53L1_Error VL53L1_hist_xtalk_extract_update(
00163     int16_t                             target_distance_mm,
00164     uint16_t                            target_width_oversize,
00165     VL53L1_histogram_bin_data_t        *phist_bins,
00166     VL53L1_hist_xtalk_extract_data_t   *pxtalk_data);
00167 
00168 
00169 
00170 VL53L1_Error VL53L1_hist_xtalk_extract_fini(
00171     VL53L1_histogram_bin_data_t        *phist_bins,
00172     VL53L1_hist_xtalk_extract_data_t   *pxtalk_data,
00173     VL53L1_xtalk_calibration_results_t *pxtalk_cal,
00174     VL53L1_xtalk_histogram_shape_t     *pxtalk_shape);
00175 
00176 
00177 
00178 
00179 VL53L1_Error   VL53L1_run_hist_xtalk_extraction(
00180     VL53L1_DEV                    Dev,
00181     int16_t                       cal_distance_mm,
00182     VL53L1_Error                 *pcal_status);
00183 
00184 
00185 #ifdef __cplusplus
00186 }
00187 #endif
00188 
00189 #endif
00190 
00191