Initial release. Mbed library for VL53L1CB

Committer:
charlesmn
Date:
Fri Nov 06 12:15:24 2020 +0000
Revision:
0:3d72bef69191
Initial release. Mbed library for VL53L1CB

Who changed what in which revision?

UserRevisionLine numberNew contents of line
charlesmn 0:3d72bef69191 1
charlesmn 0:3d72bef69191 2 /*******************************************************************************
charlesmn 0:3d72bef69191 3 * Copyright (c) 2020, STMicroelectronics - All Rights Reserved
charlesmn 0:3d72bef69191 4
charlesmn 0:3d72bef69191 5 This file is part of VL53L1 Core and is dual licensed,
charlesmn 0:3d72bef69191 6 either 'STMicroelectronics
charlesmn 0:3d72bef69191 7 Proprietary license'
charlesmn 0:3d72bef69191 8 or 'BSD 3-clause "New" or "Revised" License' , at your option.
charlesmn 0:3d72bef69191 9
charlesmn 0:3d72bef69191 10 ********************************************************************************
charlesmn 0:3d72bef69191 11
charlesmn 0:3d72bef69191 12 'STMicroelectronics Proprietary license'
charlesmn 0:3d72bef69191 13
charlesmn 0:3d72bef69191 14 ********************************************************************************
charlesmn 0:3d72bef69191 15
charlesmn 0:3d72bef69191 16 License terms: STMicroelectronics Proprietary in accordance with licensing
charlesmn 0:3d72bef69191 17 terms at www.st.com/sla0081
charlesmn 0:3d72bef69191 18
charlesmn 0:3d72bef69191 19 STMicroelectronics confidential
charlesmn 0:3d72bef69191 20 Reproduction and Communication of this document is strictly prohibited unless
charlesmn 0:3d72bef69191 21 specifically authorized in writing by STMicroelectronics.
charlesmn 0:3d72bef69191 22
charlesmn 0:3d72bef69191 23
charlesmn 0:3d72bef69191 24 ********************************************************************************
charlesmn 0:3d72bef69191 25
charlesmn 0:3d72bef69191 26 Alternatively, VL53L1 Core may be distributed under the terms of
charlesmn 0:3d72bef69191 27 'BSD 3-clause "New" or "Revised" License', in which case the following
charlesmn 0:3d72bef69191 28 provisions apply instead of the ones
charlesmn 0:3d72bef69191 29 mentioned above :
charlesmn 0:3d72bef69191 30
charlesmn 0:3d72bef69191 31 ********************************************************************************
charlesmn 0:3d72bef69191 32
charlesmn 0:3d72bef69191 33 License terms: BSD 3-clause "New" or "Revised" License.
charlesmn 0:3d72bef69191 34
charlesmn 0:3d72bef69191 35 Redistribution and use in source and binary forms, with or without
charlesmn 0:3d72bef69191 36 modification, are permitted provided that the following conditions are met:
charlesmn 0:3d72bef69191 37
charlesmn 0:3d72bef69191 38 1. Redistributions of source code must retain the above copyright notice, this
charlesmn 0:3d72bef69191 39 list of conditions and the following disclaimer.
charlesmn 0:3d72bef69191 40
charlesmn 0:3d72bef69191 41 2. Redistributions in binary form must reproduce the above copyright notice,
charlesmn 0:3d72bef69191 42 this list of conditions and the following disclaimer in the documentation
charlesmn 0:3d72bef69191 43 and/or other materials provided with the distribution.
charlesmn 0:3d72bef69191 44
charlesmn 0:3d72bef69191 45 3. Neither the name of the copyright holder nor the names of its contributors
charlesmn 0:3d72bef69191 46 may be used to endorse or promote products derived from this software
charlesmn 0:3d72bef69191 47 without specific prior written permission.
charlesmn 0:3d72bef69191 48
charlesmn 0:3d72bef69191 49 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
charlesmn 0:3d72bef69191 50 AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
charlesmn 0:3d72bef69191 51 IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
charlesmn 0:3d72bef69191 52 DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
charlesmn 0:3d72bef69191 53 FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
charlesmn 0:3d72bef69191 54 DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
charlesmn 0:3d72bef69191 55 SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
charlesmn 0:3d72bef69191 56 CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
charlesmn 0:3d72bef69191 57 OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
charlesmn 0:3d72bef69191 58 OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
charlesmn 0:3d72bef69191 59
charlesmn 0:3d72bef69191 60
charlesmn 0:3d72bef69191 61 ********************************************************************************
charlesmn 0:3d72bef69191 62
charlesmn 0:3d72bef69191 63 */
charlesmn 0:3d72bef69191 64
charlesmn 0:3d72bef69191 65
charlesmn 0:3d72bef69191 66
charlesmn 0:3d72bef69191 67
charlesmn 0:3d72bef69191 68 #include "vl53l1_ll_def.h"
charlesmn 0:3d72bef69191 69 #include "vl53l1_ll_device.h"
charlesmn 0:3d72bef69191 70 #include "vl53l1_register_structs.h"
charlesmn 0:3d72bef69191 71 #include "vl53l1_hist_structs.h"
charlesmn 0:3d72bef69191 72 #include "vl53l1_nvm_structs.h"
charlesmn 0:3d72bef69191 73 #include "vl53l1_nvm.h"
charlesmn 0:3d72bef69191 74 #include "vl53l1_core.h"
charlesmn 0:3d72bef69191 75 #include "vl53l1_api_debug.h"
charlesmn 0:3d72bef69191 76
charlesmn 0:3d72bef69191 77 #ifdef VL53L1_LOG_ENABLE
charlesmn 0:3d72bef69191 78 #include "vl53l1_nvm_debug.h"
charlesmn 0:3d72bef69191 79 #endif
charlesmn 0:3d72bef69191 80
charlesmn 0:3d72bef69191 81 #define LOG_FUNCTION_START(fmt, ...) \
charlesmn 0:3d72bef69191 82 _LOG_FUNCTION_START(VL53L1_TRACE_MODULE_CORE, fmt, ##__VA_ARGS__)
charlesmn 0:3d72bef69191 83 #define LOG_FUNCTION_END(status, ...) \
charlesmn 0:3d72bef69191 84 _LOG_FUNCTION_END(VL53L1_TRACE_MODULE_CORE, status, ##__VA_ARGS__)
charlesmn 0:3d72bef69191 85 #define LOG_FUNCTION_END_FMT(status, fmt, ...) \
charlesmn 0:3d72bef69191 86 _LOG_FUNCTION_END_FMT(VL53L1_TRACE_MODULE_CORE, status, \
charlesmn 0:3d72bef69191 87 fmt, ##__VA_ARGS__)
charlesmn 0:3d72bef69191 88
charlesmn 0:3d72bef69191 89 #define trace_print(level, ...) \
charlesmn 0:3d72bef69191 90 _LOG_TRACE_PRINT(trace_flags, \
charlesmn 0:3d72bef69191 91 level, VL53L1_TRACE_FUNCTION_NONE, ##__VA_ARGS__)
charlesmn 0:3d72bef69191 92
charlesmn 0:3d72bef69191 93
charlesmn 0:3d72bef69191 94 VL53L1_Error VL53L1_decode_calibration_data_buffer(
charlesmn 0:3d72bef69191 95 uint16_t buf_size,
charlesmn 0:3d72bef69191 96 uint8_t *pbuffer,
charlesmn 0:3d72bef69191 97 VL53L1_calibration_data_t *pdata)
charlesmn 0:3d72bef69191 98 {
charlesmn 0:3d72bef69191 99 VL53L1_Error status = VL53L1_ERROR_NONE;
charlesmn 0:3d72bef69191 100
charlesmn 0:3d72bef69191 101 LOG_FUNCTION_START("");
charlesmn 0:3d72bef69191 102
charlesmn 0:3d72bef69191 103 if (sizeof(VL53L1_calibration_data_t) > buf_size)
charlesmn 0:3d72bef69191 104 return VL53L1_ERROR_COMMS_BUFFER_TOO_SMALL;
charlesmn 0:3d72bef69191 105
charlesmn 0:3d72bef69191 106 memcpy(pdata, pbuffer, sizeof(VL53L1_calibration_data_t));
charlesmn 0:3d72bef69191 107
charlesmn 0:3d72bef69191 108 LOG_FUNCTION_END(status);
charlesmn 0:3d72bef69191 109
charlesmn 0:3d72bef69191 110 return status;
charlesmn 0:3d72bef69191 111 }
charlesmn 0:3d72bef69191 112
charlesmn 0:3d72bef69191 113
charlesmn 0:3d72bef69191 114 VL53L1_Error VL53L1_get_nvm_debug_data(
charlesmn 0:3d72bef69191 115 VL53L1_DEV Dev,
charlesmn 0:3d72bef69191 116 VL53L1_decoded_nvm_data_t *pdata)
charlesmn 0:3d72bef69191 117 {
charlesmn 0:3d72bef69191 118
charlesmn 0:3d72bef69191 119
charlesmn 0:3d72bef69191 120 VL53L1_Error status = VL53L1_ERROR_NONE;
charlesmn 0:3d72bef69191 121
charlesmn 0:3d72bef69191 122 LOG_FUNCTION_START("");
charlesmn 0:3d72bef69191 123
charlesmn 0:3d72bef69191 124 status = VL53L1_read_nvm(Dev, 0, pdata);
charlesmn 0:3d72bef69191 125
charlesmn 0:3d72bef69191 126 #ifdef VL53L1_LOG_ENABLE
charlesmn 0:3d72bef69191 127 if (status == VL53L1_ERROR_NONE)
charlesmn 0:3d72bef69191 128 VL53L1_print_decoded_nvm_data(
charlesmn 0:3d72bef69191 129 pdata,
charlesmn 0:3d72bef69191 130 "get_nvm_debug_data():pnvm_info.",
charlesmn 0:3d72bef69191 131 VL53L1_TRACE_MODULE_NVM_DATA);
charlesmn 0:3d72bef69191 132 #endif
charlesmn 0:3d72bef69191 133
charlesmn 0:3d72bef69191 134 LOG_FUNCTION_END(status);
charlesmn 0:3d72bef69191 135
charlesmn 0:3d72bef69191 136 return status;
charlesmn 0:3d72bef69191 137 }
charlesmn 0:3d72bef69191 138
charlesmn 0:3d72bef69191 139
charlesmn 0:3d72bef69191 140 VL53L1_Error VL53L1_get_histogram_debug_data(
charlesmn 0:3d72bef69191 141 VL53L1_DEV Dev,
charlesmn 0:3d72bef69191 142 VL53L1_histogram_bin_data_t *pdata)
charlesmn 0:3d72bef69191 143 {
charlesmn 0:3d72bef69191 144
charlesmn 0:3d72bef69191 145
charlesmn 0:3d72bef69191 146 VL53L1_Error status = VL53L1_ERROR_NONE;
charlesmn 0:3d72bef69191 147
charlesmn 0:3d72bef69191 148 VL53L1_LLDriverData_t *pdev = VL53L1DevStructGetLLDriverHandle(Dev);
charlesmn 0:3d72bef69191 149
charlesmn 0:3d72bef69191 150 LOG_FUNCTION_START("");
charlesmn 0:3d72bef69191 151
charlesmn 0:3d72bef69191 152
charlesmn 0:3d72bef69191 153 memcpy(
charlesmn 0:3d72bef69191 154 pdata,
charlesmn 0:3d72bef69191 155 &(pdev->hist_data),
charlesmn 0:3d72bef69191 156 sizeof(VL53L1_histogram_bin_data_t));
charlesmn 0:3d72bef69191 157
charlesmn 0:3d72bef69191 158 LOG_FUNCTION_END(status);
charlesmn 0:3d72bef69191 159
charlesmn 0:3d72bef69191 160 return status;
charlesmn 0:3d72bef69191 161 }
charlesmn 0:3d72bef69191 162
charlesmn 0:3d72bef69191 163
charlesmn 0:3d72bef69191 164
charlesmn 0:3d72bef69191 165
charlesmn 0:3d72bef69191 166 VL53L1_Error VL53L1_get_additional_data(
charlesmn 0:3d72bef69191 167 VL53L1_DEV Dev,
charlesmn 0:3d72bef69191 168 VL53L1_additional_data_t *pdata)
charlesmn 0:3d72bef69191 169 {
charlesmn 0:3d72bef69191 170
charlesmn 0:3d72bef69191 171
charlesmn 0:3d72bef69191 172 VL53L1_Error status = VL53L1_ERROR_NONE;
charlesmn 0:3d72bef69191 173
charlesmn 0:3d72bef69191 174 VL53L1_LLDriverData_t *pdev = VL53L1DevStructGetLLDriverHandle(Dev);
charlesmn 0:3d72bef69191 175
charlesmn 0:3d72bef69191 176 LOG_FUNCTION_START("");
charlesmn 0:3d72bef69191 177
charlesmn 0:3d72bef69191 178
charlesmn 0:3d72bef69191 179
charlesmn 0:3d72bef69191 180 pdata->preset_mode = pdev->preset_mode;
charlesmn 0:3d72bef69191 181 pdata->zone_preset = pdev->zone_preset;
charlesmn 0:3d72bef69191 182 pdata->measurement_mode = pdev->measurement_mode;
charlesmn 0:3d72bef69191 183 pdata->offset_calibration_mode = pdev->offset_calibration_mode;
charlesmn 0:3d72bef69191 184 pdata->offset_correction_mode = pdev->offset_correction_mode;
charlesmn 0:3d72bef69191 185 pdata->dmax_mode = pdev->dmax_mode;
charlesmn 0:3d72bef69191 186
charlesmn 0:3d72bef69191 187 pdata->phasecal_config_timeout_us = pdev->phasecal_config_timeout_us;
charlesmn 0:3d72bef69191 188 pdata->mm_config_timeout_us = pdev->mm_config_timeout_us;
charlesmn 0:3d72bef69191 189 pdata->range_config_timeout_us = pdev->range_config_timeout_us;
charlesmn 0:3d72bef69191 190 pdata->inter_measurement_period_ms = pdev->inter_measurement_period_ms;
charlesmn 0:3d72bef69191 191 pdata->dss_config__target_total_rate_mcps =
charlesmn 0:3d72bef69191 192 pdev->dss_config__target_total_rate_mcps;
charlesmn 0:3d72bef69191 193
charlesmn 0:3d72bef69191 194
charlesmn 0:3d72bef69191 195
charlesmn 0:3d72bef69191 196 status =
charlesmn 0:3d72bef69191 197 VL53L1_get_histogram_debug_data(
charlesmn 0:3d72bef69191 198 Dev,
charlesmn 0:3d72bef69191 199 &(pdata->VL53L1_p_010));
charlesmn 0:3d72bef69191 200
charlesmn 0:3d72bef69191 201 LOG_FUNCTION_END(status);
charlesmn 0:3d72bef69191 202
charlesmn 0:3d72bef69191 203 return status;
charlesmn 0:3d72bef69191 204 }
charlesmn 0:3d72bef69191 205
charlesmn 0:3d72bef69191 206
charlesmn 0:3d72bef69191 207
charlesmn 0:3d72bef69191 208
charlesmn 0:3d72bef69191 209 VL53L1_Error VL53L1_get_xtalk_debug_data(
charlesmn 0:3d72bef69191 210 VL53L1_DEV Dev,
charlesmn 0:3d72bef69191 211 VL53L1_xtalk_debug_data_t *pdata)
charlesmn 0:3d72bef69191 212 {
charlesmn 0:3d72bef69191 213
charlesmn 0:3d72bef69191 214
charlesmn 0:3d72bef69191 215 VL53L1_Error status = VL53L1_ERROR_NONE;
charlesmn 0:3d72bef69191 216
charlesmn 0:3d72bef69191 217 VL53L1_LLDriverData_t *pdev = VL53L1DevStructGetLLDriverHandle(Dev);
charlesmn 0:3d72bef69191 218
charlesmn 0:3d72bef69191 219 LOG_FUNCTION_START("");
charlesmn 0:3d72bef69191 220
charlesmn 0:3d72bef69191 221
charlesmn 0:3d72bef69191 222 memcpy(
charlesmn 0:3d72bef69191 223 &(pdata->customer),
charlesmn 0:3d72bef69191 224 &(pdev->customer),
charlesmn 0:3d72bef69191 225 sizeof(VL53L1_customer_nvm_managed_t));
charlesmn 0:3d72bef69191 226
charlesmn 0:3d72bef69191 227 memcpy(
charlesmn 0:3d72bef69191 228 &(pdata->xtalk_cfg),
charlesmn 0:3d72bef69191 229 &(pdev->xtalk_cfg),
charlesmn 0:3d72bef69191 230 sizeof(VL53L1_xtalk_config_t));
charlesmn 0:3d72bef69191 231
charlesmn 0:3d72bef69191 232 memcpy(
charlesmn 0:3d72bef69191 233 &(pdata->hist_data),
charlesmn 0:3d72bef69191 234 &(pdev->hist_data),
charlesmn 0:3d72bef69191 235 sizeof(VL53L1_histogram_bin_data_t));
charlesmn 0:3d72bef69191 236
charlesmn 0:3d72bef69191 237 memcpy(
charlesmn 0:3d72bef69191 238 &(pdata->xtalk_shapes),
charlesmn 0:3d72bef69191 239 &(pdev->xtalk_shapes),
charlesmn 0:3d72bef69191 240 sizeof(VL53L1_xtalk_histogram_data_t));
charlesmn 0:3d72bef69191 241
charlesmn 0:3d72bef69191 242 memcpy(
charlesmn 0:3d72bef69191 243 &(pdata->xtalk_results),
charlesmn 0:3d72bef69191 244 &(pdev->xtalk_results),
charlesmn 0:3d72bef69191 245 sizeof(VL53L1_xtalk_range_results_t));
charlesmn 0:3d72bef69191 246
charlesmn 0:3d72bef69191 247 LOG_FUNCTION_END(status);
charlesmn 0:3d72bef69191 248
charlesmn 0:3d72bef69191 249 return status;
charlesmn 0:3d72bef69191 250 }
charlesmn 0:3d72bef69191 251
charlesmn 0:3d72bef69191 252
charlesmn 0:3d72bef69191 253 VL53L1_Error VL53L1_get_offset_debug_data(
charlesmn 0:3d72bef69191 254 VL53L1_DEV Dev,
charlesmn 0:3d72bef69191 255 VL53L1_offset_debug_data_t *pdata)
charlesmn 0:3d72bef69191 256 {
charlesmn 0:3d72bef69191 257
charlesmn 0:3d72bef69191 258
charlesmn 0:3d72bef69191 259 VL53L1_Error status = VL53L1_ERROR_NONE;
charlesmn 0:3d72bef69191 260
charlesmn 0:3d72bef69191 261 VL53L1_LLDriverData_t *pdev = VL53L1DevStructGetLLDriverHandle(Dev);
charlesmn 0:3d72bef69191 262
charlesmn 0:3d72bef69191 263 LOG_FUNCTION_START("");
charlesmn 0:3d72bef69191 264
charlesmn 0:3d72bef69191 265
charlesmn 0:3d72bef69191 266 memcpy(
charlesmn 0:3d72bef69191 267 &(pdata->customer),
charlesmn 0:3d72bef69191 268 &(pdev->customer),
charlesmn 0:3d72bef69191 269 sizeof(VL53L1_customer_nvm_managed_t));
charlesmn 0:3d72bef69191 270
charlesmn 0:3d72bef69191 271 memcpy(
charlesmn 0:3d72bef69191 272 &(pdata->fmt_dmax_cal),
charlesmn 0:3d72bef69191 273 &(pdev->fmt_dmax_cal),
charlesmn 0:3d72bef69191 274 sizeof(VL53L1_dmax_calibration_data_t));
charlesmn 0:3d72bef69191 275
charlesmn 0:3d72bef69191 276 memcpy(
charlesmn 0:3d72bef69191 277 &(pdata->cust_dmax_cal),
charlesmn 0:3d72bef69191 278 &(pdev->cust_dmax_cal),
charlesmn 0:3d72bef69191 279 sizeof(VL53L1_dmax_calibration_data_t));
charlesmn 0:3d72bef69191 280
charlesmn 0:3d72bef69191 281 memcpy(
charlesmn 0:3d72bef69191 282 &(pdata->add_off_cal_data),
charlesmn 0:3d72bef69191 283 &(pdev->add_off_cal_data),
charlesmn 0:3d72bef69191 284 sizeof(VL53L1_additional_offset_cal_data_t));
charlesmn 0:3d72bef69191 285
charlesmn 0:3d72bef69191 286 memcpy(
charlesmn 0:3d72bef69191 287 &(pdata->offset_results),
charlesmn 0:3d72bef69191 288 &(pdev->offset_results),
charlesmn 0:3d72bef69191 289 sizeof(VL53L1_offset_range_results_t));
charlesmn 0:3d72bef69191 290
charlesmn 0:3d72bef69191 291 LOG_FUNCTION_END(status);
charlesmn 0:3d72bef69191 292
charlesmn 0:3d72bef69191 293 return status;
charlesmn 0:3d72bef69191 294 }
charlesmn 0:3d72bef69191 295
charlesmn 0:3d72bef69191 296 #ifdef VL53L1_LOG_ENABLE
charlesmn 0:3d72bef69191 297
charlesmn 0:3d72bef69191 298 void VL53L1_signed_fixed_point_sprintf(
charlesmn 0:3d72bef69191 299 int32_t signed_fp_value,
charlesmn 0:3d72bef69191 300 uint8_t frac_bits,
charlesmn 0:3d72bef69191 301 uint16_t buf_size,
charlesmn 0:3d72bef69191 302 char *pbuffer)
charlesmn 0:3d72bef69191 303 {
charlesmn 0:3d72bef69191 304
charlesmn 0:3d72bef69191 305
charlesmn 0:3d72bef69191 306 uint32_t fp_value = 0;
charlesmn 0:3d72bef69191 307 uint32_t unity_fp_value = 0;
charlesmn 0:3d72bef69191 308 uint32_t sign_bit = 0;
charlesmn 0:3d72bef69191 309 uint32_t int_part = 0;
charlesmn 0:3d72bef69191 310 uint32_t frac_part = 0;
charlesmn 0:3d72bef69191 311 uint32_t dec_points = 0;
charlesmn 0:3d72bef69191 312 uint32_t dec_scaler = 0;
charlesmn 0:3d72bef69191 313 uint32_t dec_part = 0;
charlesmn 0:3d72bef69191 314
charlesmn 0:3d72bef69191 315 uint64_t tmp_long_int = 0;
charlesmn 0:3d72bef69191 316
charlesmn 0:3d72bef69191 317 char fmt[VL53L1_MAX_STRING_LENGTH];
charlesmn 0:3d72bef69191 318
charlesmn 0:3d72bef69191 319 SUPPRESS_UNUSED_WARNING(buf_size);
charlesmn 0:3d72bef69191 320
charlesmn 0:3d72bef69191 321
charlesmn 0:3d72bef69191 322
charlesmn 0:3d72bef69191 323 sign_bit = signed_fp_value >> 31;
charlesmn 0:3d72bef69191 324
charlesmn 0:3d72bef69191 325 if (sign_bit > 0) {
charlesmn 0:3d72bef69191 326 fp_value = 0x80000000 -
charlesmn 0:3d72bef69191 327 (0x7FFFFFFF & (uint32_t)signed_fp_value);
charlesmn 0:3d72bef69191 328 } else
charlesmn 0:3d72bef69191 329 fp_value = (uint32_t)signed_fp_value;
charlesmn 0:3d72bef69191 330
charlesmn 0:3d72bef69191 331 int_part = fp_value >> frac_bits;
charlesmn 0:3d72bef69191 332 unity_fp_value = 0x01 << frac_bits;
charlesmn 0:3d72bef69191 333 frac_part = fp_value & (unity_fp_value-1);
charlesmn 0:3d72bef69191 334
charlesmn 0:3d72bef69191 335
charlesmn 0:3d72bef69191 336 dec_points = 2;
charlesmn 0:3d72bef69191 337 dec_scaler = 100;
charlesmn 0:3d72bef69191 338
charlesmn 0:3d72bef69191 339 while (dec_scaler < unity_fp_value) {
charlesmn 0:3d72bef69191 340 dec_points++;
charlesmn 0:3d72bef69191 341 dec_scaler *= 10;
charlesmn 0:3d72bef69191 342 }
charlesmn 0:3d72bef69191 343
charlesmn 0:3d72bef69191 344
charlesmn 0:3d72bef69191 345 if (sign_bit > 0)
charlesmn 0:3d72bef69191 346 sprintf(fmt, "-%%u.%%0%uu", dec_points);
charlesmn 0:3d72bef69191 347 else
charlesmn 0:3d72bef69191 348 sprintf(fmt, "%%u.%%0%uu", dec_points);
charlesmn 0:3d72bef69191 349
charlesmn 0:3d72bef69191 350
charlesmn 0:3d72bef69191 351 tmp_long_int = (uint64_t)frac_part * (uint64_t)dec_scaler;
charlesmn 0:3d72bef69191 352 tmp_long_int += (uint64_t)unity_fp_value/2;
charlesmn 0:3d72bef69191 353
charlesmn 0:3d72bef69191 354 tmp_long_int = do_division_u(tmp_long_int, (uint64_t)unity_fp_value);
charlesmn 0:3d72bef69191 355
charlesmn 0:3d72bef69191 356 dec_part = (uint32_t)tmp_long_int;
charlesmn 0:3d72bef69191 357
charlesmn 0:3d72bef69191 358
charlesmn 0:3d72bef69191 359 sprintf(
charlesmn 0:3d72bef69191 360 pbuffer,
charlesmn 0:3d72bef69191 361 fmt,
charlesmn 0:3d72bef69191 362 int_part,
charlesmn 0:3d72bef69191 363 dec_part);
charlesmn 0:3d72bef69191 364 }
charlesmn 0:3d72bef69191 365
charlesmn 0:3d72bef69191 366
charlesmn 0:3d72bef69191 367 void VL53L1_print_static_nvm_managed(
charlesmn 0:3d72bef69191 368 VL53L1_static_nvm_managed_t *pdata,
charlesmn 0:3d72bef69191 369 char *pprefix,
charlesmn 0:3d72bef69191 370 uint32_t trace_flags)
charlesmn 0:3d72bef69191 371 {
charlesmn 0:3d72bef69191 372
charlesmn 0:3d72bef69191 373
charlesmn 0:3d72bef69191 374 char fp_text[VL53L1_MAX_STRING_LENGTH];
charlesmn 0:3d72bef69191 375
charlesmn 0:3d72bef69191 376 trace_print(
charlesmn 0:3d72bef69191 377 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 378 "%s%s = 0x%02X\n",
charlesmn 0:3d72bef69191 379 pprefix,
charlesmn 0:3d72bef69191 380 "i2c_slave__device_address",
charlesmn 0:3d72bef69191 381 pdata->i2c_slave__device_address);
charlesmn 0:3d72bef69191 382
charlesmn 0:3d72bef69191 383 trace_print(
charlesmn 0:3d72bef69191 384 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 385 "%s%s = %u\n",
charlesmn 0:3d72bef69191 386 pprefix,
charlesmn 0:3d72bef69191 387 "ana_config__vhv_ref_sel_vddpix",
charlesmn 0:3d72bef69191 388 pdata->ana_config__vhv_ref_sel_vddpix);
charlesmn 0:3d72bef69191 389
charlesmn 0:3d72bef69191 390 trace_print(
charlesmn 0:3d72bef69191 391 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 392 "%s%s = %u\n",
charlesmn 0:3d72bef69191 393 pprefix,
charlesmn 0:3d72bef69191 394 "ana_config__vhv_ref_sel_vquench",
charlesmn 0:3d72bef69191 395 pdata->ana_config__vhv_ref_sel_vquench);
charlesmn 0:3d72bef69191 396
charlesmn 0:3d72bef69191 397 trace_print(
charlesmn 0:3d72bef69191 398 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 399 "%s%s = %u\n",
charlesmn 0:3d72bef69191 400 pprefix,
charlesmn 0:3d72bef69191 401 "ana_config__reg_avdd1v2_sel",
charlesmn 0:3d72bef69191 402 pdata->ana_config__reg_avdd1v2_sel);
charlesmn 0:3d72bef69191 403
charlesmn 0:3d72bef69191 404 trace_print(
charlesmn 0:3d72bef69191 405 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 406 "%s%s = %u\n",
charlesmn 0:3d72bef69191 407 pprefix,
charlesmn 0:3d72bef69191 408 "ana_config__fast_osc__trim",
charlesmn 0:3d72bef69191 409 pdata->ana_config__fast_osc__trim);
charlesmn 0:3d72bef69191 410
charlesmn 0:3d72bef69191 411 VL53L1_signed_fixed_point_sprintf(
charlesmn 0:3d72bef69191 412 (int32_t)pdata->osc_measured__fast_osc__frequency,
charlesmn 0:3d72bef69191 413 12,
charlesmn 0:3d72bef69191 414 VL53L1_MAX_STRING_LENGTH,
charlesmn 0:3d72bef69191 415 fp_text);
charlesmn 0:3d72bef69191 416
charlesmn 0:3d72bef69191 417 trace_print(
charlesmn 0:3d72bef69191 418 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 419 "%s%s = %s\n",
charlesmn 0:3d72bef69191 420 pprefix,
charlesmn 0:3d72bef69191 421 "osc_measured__fast_osc__frequency",
charlesmn 0:3d72bef69191 422 fp_text);
charlesmn 0:3d72bef69191 423
charlesmn 0:3d72bef69191 424 trace_print(
charlesmn 0:3d72bef69191 425 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 426 "%s%s = %u\n",
charlesmn 0:3d72bef69191 427 pprefix,
charlesmn 0:3d72bef69191 428 "vhv_config__timeout_macrop_loop_bound",
charlesmn 0:3d72bef69191 429 pdata->vhv_config__timeout_macrop_loop_bound);
charlesmn 0:3d72bef69191 430
charlesmn 0:3d72bef69191 431 trace_print(
charlesmn 0:3d72bef69191 432 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 433 "%s%s = %u\n",
charlesmn 0:3d72bef69191 434 pprefix,
charlesmn 0:3d72bef69191 435 "vhv_config__count_thresh",
charlesmn 0:3d72bef69191 436 pdata->vhv_config__count_thresh);
charlesmn 0:3d72bef69191 437
charlesmn 0:3d72bef69191 438 trace_print(
charlesmn 0:3d72bef69191 439 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 440 "%s%s = %u\n",
charlesmn 0:3d72bef69191 441 pprefix,
charlesmn 0:3d72bef69191 442 "vhv_config__offset",
charlesmn 0:3d72bef69191 443 pdata->vhv_config__offset);
charlesmn 0:3d72bef69191 444
charlesmn 0:3d72bef69191 445 trace_print(
charlesmn 0:3d72bef69191 446 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 447 "%s%s = %u\n",
charlesmn 0:3d72bef69191 448 pprefix,
charlesmn 0:3d72bef69191 449 "vhv_config__init",
charlesmn 0:3d72bef69191 450 pdata->vhv_config__init);
charlesmn 0:3d72bef69191 451 }
charlesmn 0:3d72bef69191 452
charlesmn 0:3d72bef69191 453
charlesmn 0:3d72bef69191 454 void VL53L1_print_customer_nvm_managed(
charlesmn 0:3d72bef69191 455 VL53L1_customer_nvm_managed_t *pdata,
charlesmn 0:3d72bef69191 456 char *pprefix,
charlesmn 0:3d72bef69191 457 uint32_t trace_flags)
charlesmn 0:3d72bef69191 458 {
charlesmn 0:3d72bef69191 459
charlesmn 0:3d72bef69191 460
charlesmn 0:3d72bef69191 461 char fp_text[VL53L1_MAX_STRING_LENGTH];
charlesmn 0:3d72bef69191 462 int16_t tmpi16;
charlesmn 0:3d72bef69191 463
charlesmn 0:3d72bef69191 464 trace_print(VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 465 "%s%s = %u\n",
charlesmn 0:3d72bef69191 466 pprefix,
charlesmn 0:3d72bef69191 467 "global_config__spad_enables_ref_0",
charlesmn 0:3d72bef69191 468 pdata->global_config__spad_enables_ref_0);
charlesmn 0:3d72bef69191 469
charlesmn 0:3d72bef69191 470 trace_print(VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 471 "%s%s = %u\n",
charlesmn 0:3d72bef69191 472 pprefix,
charlesmn 0:3d72bef69191 473 "global_config__spad_enables_ref_1",
charlesmn 0:3d72bef69191 474 pdata->global_config__spad_enables_ref_1);
charlesmn 0:3d72bef69191 475
charlesmn 0:3d72bef69191 476 trace_print(VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 477 "%s%s = %u\n",
charlesmn 0:3d72bef69191 478 pprefix,
charlesmn 0:3d72bef69191 479 "global_config__spad_enables_ref_2",
charlesmn 0:3d72bef69191 480 pdata->global_config__spad_enables_ref_2);
charlesmn 0:3d72bef69191 481
charlesmn 0:3d72bef69191 482 trace_print(VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 483 "%s%s = %u\n",
charlesmn 0:3d72bef69191 484 pprefix,
charlesmn 0:3d72bef69191 485 "global_config__spad_enables_ref_3",
charlesmn 0:3d72bef69191 486 pdata->global_config__spad_enables_ref_3);
charlesmn 0:3d72bef69191 487
charlesmn 0:3d72bef69191 488 trace_print(VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 489 "%s%s = %u\n",
charlesmn 0:3d72bef69191 490 pprefix,
charlesmn 0:3d72bef69191 491 "global_config__spad_enables_ref_4",
charlesmn 0:3d72bef69191 492 pdata->global_config__spad_enables_ref_4);
charlesmn 0:3d72bef69191 493
charlesmn 0:3d72bef69191 494 trace_print(VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 495 "%s%s = %u\n",
charlesmn 0:3d72bef69191 496 pprefix,
charlesmn 0:3d72bef69191 497 "global_config__spad_enables_ref_5",
charlesmn 0:3d72bef69191 498 pdata->global_config__spad_enables_ref_5);
charlesmn 0:3d72bef69191 499
charlesmn 0:3d72bef69191 500 trace_print(VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 501 "%s%s = %u\n",
charlesmn 0:3d72bef69191 502 pprefix,
charlesmn 0:3d72bef69191 503 "global_config__ref_en_start_select",
charlesmn 0:3d72bef69191 504 pdata->global_config__ref_en_start_select);
charlesmn 0:3d72bef69191 505
charlesmn 0:3d72bef69191 506 trace_print(VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 507 "%s%s = %u\n",
charlesmn 0:3d72bef69191 508 pprefix,
charlesmn 0:3d72bef69191 509 "ref_spad_man__num_requested_ref_spads",
charlesmn 0:3d72bef69191 510 pdata->ref_spad_man__num_requested_ref_spads);
charlesmn 0:3d72bef69191 511
charlesmn 0:3d72bef69191 512 trace_print(VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 513 "%s%s = %u\n",
charlesmn 0:3d72bef69191 514 pprefix,
charlesmn 0:3d72bef69191 515 "ref_spad_man__ref_location",
charlesmn 0:3d72bef69191 516 pdata->ref_spad_man__ref_location);
charlesmn 0:3d72bef69191 517
charlesmn 0:3d72bef69191 518 VL53L1_signed_fixed_point_sprintf(
charlesmn 0:3d72bef69191 519 (int32_t)pdata->algo__crosstalk_compensation_plane_offset_kcps,
charlesmn 0:3d72bef69191 520 9,
charlesmn 0:3d72bef69191 521 VL53L1_MAX_STRING_LENGTH,
charlesmn 0:3d72bef69191 522 fp_text);
charlesmn 0:3d72bef69191 523
charlesmn 0:3d72bef69191 524 trace_print(VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 525 "%s%s = %s\n",
charlesmn 0:3d72bef69191 526 pprefix,
charlesmn 0:3d72bef69191 527 "algo__crosstalk_compensation_plane_offset_kcps",
charlesmn 0:3d72bef69191 528 fp_text);
charlesmn 0:3d72bef69191 529
charlesmn 0:3d72bef69191 530 tmpi16 = pdata->algo__crosstalk_compensation_x_plane_gradient_kcps;
charlesmn 0:3d72bef69191 531 VL53L1_signed_fixed_point_sprintf(
charlesmn 0:3d72bef69191 532 (int32_t)tmpi16,
charlesmn 0:3d72bef69191 533 11,
charlesmn 0:3d72bef69191 534 VL53L1_MAX_STRING_LENGTH,
charlesmn 0:3d72bef69191 535 fp_text);
charlesmn 0:3d72bef69191 536
charlesmn 0:3d72bef69191 537 trace_print(VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 538 "%s%s = %s\n",
charlesmn 0:3d72bef69191 539 pprefix,
charlesmn 0:3d72bef69191 540 "algo__crosstalk_compensation_x_plane_gradient_kcps",
charlesmn 0:3d72bef69191 541 fp_text);
charlesmn 0:3d72bef69191 542
charlesmn 0:3d72bef69191 543 tmpi16 = pdata->algo__crosstalk_compensation_y_plane_gradient_kcps;
charlesmn 0:3d72bef69191 544 VL53L1_signed_fixed_point_sprintf(
charlesmn 0:3d72bef69191 545 (int32_t)tmpi16,
charlesmn 0:3d72bef69191 546 11,
charlesmn 0:3d72bef69191 547 VL53L1_MAX_STRING_LENGTH,
charlesmn 0:3d72bef69191 548 fp_text);
charlesmn 0:3d72bef69191 549
charlesmn 0:3d72bef69191 550 trace_print(VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 551 "%s%s = %s\n",
charlesmn 0:3d72bef69191 552 pprefix,
charlesmn 0:3d72bef69191 553 "algo__crosstalk_compensation_y_plane_gradient_kcps",
charlesmn 0:3d72bef69191 554 fp_text);
charlesmn 0:3d72bef69191 555
charlesmn 0:3d72bef69191 556 VL53L1_signed_fixed_point_sprintf(
charlesmn 0:3d72bef69191 557 (int32_t)pdata->ref_spad_char__total_rate_target_mcps,
charlesmn 0:3d72bef69191 558 7,
charlesmn 0:3d72bef69191 559 VL53L1_MAX_STRING_LENGTH,
charlesmn 0:3d72bef69191 560 fp_text);
charlesmn 0:3d72bef69191 561
charlesmn 0:3d72bef69191 562 trace_print(VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 563 "%s%s = %s\n",
charlesmn 0:3d72bef69191 564 pprefix,
charlesmn 0:3d72bef69191 565 "ref_spad_char__total_rate_target_mcps",
charlesmn 0:3d72bef69191 566 fp_text);
charlesmn 0:3d72bef69191 567
charlesmn 0:3d72bef69191 568 VL53L1_signed_fixed_point_sprintf(
charlesmn 0:3d72bef69191 569 (int32_t)pdata->algo__part_to_part_range_offset_mm,
charlesmn 0:3d72bef69191 570 2,
charlesmn 0:3d72bef69191 571 VL53L1_MAX_STRING_LENGTH,
charlesmn 0:3d72bef69191 572 fp_text);
charlesmn 0:3d72bef69191 573
charlesmn 0:3d72bef69191 574 trace_print(VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 575 "%s%s = %s\n",
charlesmn 0:3d72bef69191 576 pprefix,
charlesmn 0:3d72bef69191 577 "algo__part_to_part_range_offset_mm",
charlesmn 0:3d72bef69191 578 fp_text);
charlesmn 0:3d72bef69191 579
charlesmn 0:3d72bef69191 580 trace_print(VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 581 "%s%s = %d\n",
charlesmn 0:3d72bef69191 582 pprefix,
charlesmn 0:3d72bef69191 583 "mm_config__inner_offset_mm",
charlesmn 0:3d72bef69191 584 pdata->mm_config__inner_offset_mm);
charlesmn 0:3d72bef69191 585
charlesmn 0:3d72bef69191 586 trace_print(VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 587 "%s%s = %d\n",
charlesmn 0:3d72bef69191 588 pprefix,
charlesmn 0:3d72bef69191 589 "mm_config__outer_offset_mm",
charlesmn 0:3d72bef69191 590 pdata->mm_config__outer_offset_mm);
charlesmn 0:3d72bef69191 591 }
charlesmn 0:3d72bef69191 592
charlesmn 0:3d72bef69191 593
charlesmn 0:3d72bef69191 594 void VL53L1_print_nvm_copy_data(
charlesmn 0:3d72bef69191 595 VL53L1_nvm_copy_data_t *pdata,
charlesmn 0:3d72bef69191 596 char *pprefix,
charlesmn 0:3d72bef69191 597 uint32_t trace_flags)
charlesmn 0:3d72bef69191 598 {
charlesmn 0:3d72bef69191 599
charlesmn 0:3d72bef69191 600
charlesmn 0:3d72bef69191 601 trace_print(
charlesmn 0:3d72bef69191 602 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 603 "%s%s = %u\n",
charlesmn 0:3d72bef69191 604 pprefix,
charlesmn 0:3d72bef69191 605 "identification__model_id",
charlesmn 0:3d72bef69191 606 pdata->identification__model_id);
charlesmn 0:3d72bef69191 607
charlesmn 0:3d72bef69191 608 trace_print(
charlesmn 0:3d72bef69191 609 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 610 "%s%s = %u\n",
charlesmn 0:3d72bef69191 611 pprefix,
charlesmn 0:3d72bef69191 612 "identification__module_type",
charlesmn 0:3d72bef69191 613 pdata->identification__module_type);
charlesmn 0:3d72bef69191 614
charlesmn 0:3d72bef69191 615 trace_print(
charlesmn 0:3d72bef69191 616 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 617 "%s%s = %u\n",
charlesmn 0:3d72bef69191 618 pprefix,
charlesmn 0:3d72bef69191 619 "identification__revision_id",
charlesmn 0:3d72bef69191 620 pdata->identification__revision_id);
charlesmn 0:3d72bef69191 621
charlesmn 0:3d72bef69191 622 trace_print(
charlesmn 0:3d72bef69191 623 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 624 "%s%s = %u\n",
charlesmn 0:3d72bef69191 625 pprefix,
charlesmn 0:3d72bef69191 626 "identification__module_id",
charlesmn 0:3d72bef69191 627 pdata->identification__module_id);
charlesmn 0:3d72bef69191 628
charlesmn 0:3d72bef69191 629 trace_print(
charlesmn 0:3d72bef69191 630 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 631 "%s%s = %u\n",
charlesmn 0:3d72bef69191 632 pprefix,
charlesmn 0:3d72bef69191 633 "ana_config__fast_osc__trim_max",
charlesmn 0:3d72bef69191 634 pdata->ana_config__fast_osc__trim_max);
charlesmn 0:3d72bef69191 635
charlesmn 0:3d72bef69191 636 trace_print(
charlesmn 0:3d72bef69191 637 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 638 "%s%s = %u\n",
charlesmn 0:3d72bef69191 639 pprefix,
charlesmn 0:3d72bef69191 640 "ana_config__fast_osc__freq_set",
charlesmn 0:3d72bef69191 641 pdata->ana_config__fast_osc__freq_set);
charlesmn 0:3d72bef69191 642
charlesmn 0:3d72bef69191 643 trace_print(
charlesmn 0:3d72bef69191 644 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 645 "%s%s = %u\n",
charlesmn 0:3d72bef69191 646 pprefix,
charlesmn 0:3d72bef69191 647 "ana_config__vcsel_trim",
charlesmn 0:3d72bef69191 648 pdata->ana_config__vcsel_trim);
charlesmn 0:3d72bef69191 649
charlesmn 0:3d72bef69191 650 trace_print(
charlesmn 0:3d72bef69191 651 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 652 "%s%s = %u\n",
charlesmn 0:3d72bef69191 653 pprefix,
charlesmn 0:3d72bef69191 654 "ana_config__vcsel_selion",
charlesmn 0:3d72bef69191 655 pdata->ana_config__vcsel_selion);
charlesmn 0:3d72bef69191 656
charlesmn 0:3d72bef69191 657 trace_print(
charlesmn 0:3d72bef69191 658 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 659 "%s%s = %u\n",
charlesmn 0:3d72bef69191 660 pprefix,
charlesmn 0:3d72bef69191 661 "ana_config__vcsel_selion_max",
charlesmn 0:3d72bef69191 662 pdata->ana_config__vcsel_selion_max);
charlesmn 0:3d72bef69191 663
charlesmn 0:3d72bef69191 664 trace_print(
charlesmn 0:3d72bef69191 665 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 666 "%s%s = %u\n",
charlesmn 0:3d72bef69191 667 pprefix,
charlesmn 0:3d72bef69191 668 "protected_laser_safety__lock_bit",
charlesmn 0:3d72bef69191 669 pdata->protected_laser_safety__lock_bit);
charlesmn 0:3d72bef69191 670
charlesmn 0:3d72bef69191 671 trace_print(
charlesmn 0:3d72bef69191 672 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 673 "%s%s = %u\n",
charlesmn 0:3d72bef69191 674 pprefix,
charlesmn 0:3d72bef69191 675 "laser_safety__key",
charlesmn 0:3d72bef69191 676 pdata->laser_safety__key);
charlesmn 0:3d72bef69191 677
charlesmn 0:3d72bef69191 678 trace_print(
charlesmn 0:3d72bef69191 679 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 680 "%s%s = %u\n",
charlesmn 0:3d72bef69191 681 pprefix,
charlesmn 0:3d72bef69191 682 "laser_safety__key_ro",
charlesmn 0:3d72bef69191 683 pdata->laser_safety__key_ro);
charlesmn 0:3d72bef69191 684
charlesmn 0:3d72bef69191 685 trace_print(
charlesmn 0:3d72bef69191 686 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 687 "%s%s = %u\n",
charlesmn 0:3d72bef69191 688 pprefix,
charlesmn 0:3d72bef69191 689 "laser_safety__clip",
charlesmn 0:3d72bef69191 690 pdata->laser_safety__clip);
charlesmn 0:3d72bef69191 691
charlesmn 0:3d72bef69191 692 trace_print(
charlesmn 0:3d72bef69191 693 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 694 "%s%s = %u\n",
charlesmn 0:3d72bef69191 695 pprefix,
charlesmn 0:3d72bef69191 696 "laser_safety__mult",
charlesmn 0:3d72bef69191 697 pdata->laser_safety__mult);
charlesmn 0:3d72bef69191 698
charlesmn 0:3d72bef69191 699 trace_print(
charlesmn 0:3d72bef69191 700 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 701 "%s%s = %u\n",
charlesmn 0:3d72bef69191 702 pprefix,
charlesmn 0:3d72bef69191 703 "global_config__spad_enables_rtn_0",
charlesmn 0:3d72bef69191 704 pdata->global_config__spad_enables_rtn_0);
charlesmn 0:3d72bef69191 705
charlesmn 0:3d72bef69191 706 trace_print(
charlesmn 0:3d72bef69191 707 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 708 "%s%s = %u\n",
charlesmn 0:3d72bef69191 709 pprefix,
charlesmn 0:3d72bef69191 710 "global_config__spad_enables_rtn_1",
charlesmn 0:3d72bef69191 711 pdata->global_config__spad_enables_rtn_1);
charlesmn 0:3d72bef69191 712
charlesmn 0:3d72bef69191 713 trace_print(
charlesmn 0:3d72bef69191 714 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 715 "%s%s = %u\n",
charlesmn 0:3d72bef69191 716 pprefix,
charlesmn 0:3d72bef69191 717 "global_config__spad_enables_rtn_2",
charlesmn 0:3d72bef69191 718 pdata->global_config__spad_enables_rtn_2);
charlesmn 0:3d72bef69191 719
charlesmn 0:3d72bef69191 720 trace_print(
charlesmn 0:3d72bef69191 721 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 722 "%s%s = %u\n",
charlesmn 0:3d72bef69191 723 pprefix,
charlesmn 0:3d72bef69191 724 "global_config__spad_enables_rtn_3",
charlesmn 0:3d72bef69191 725 pdata->global_config__spad_enables_rtn_3);
charlesmn 0:3d72bef69191 726
charlesmn 0:3d72bef69191 727 trace_print(
charlesmn 0:3d72bef69191 728 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 729 "%s%s = %u\n",
charlesmn 0:3d72bef69191 730 pprefix,
charlesmn 0:3d72bef69191 731 "global_config__spad_enables_rtn_4",
charlesmn 0:3d72bef69191 732 pdata->global_config__spad_enables_rtn_4);
charlesmn 0:3d72bef69191 733
charlesmn 0:3d72bef69191 734 trace_print(
charlesmn 0:3d72bef69191 735 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 736 "%s%s = %u\n",
charlesmn 0:3d72bef69191 737 pprefix,
charlesmn 0:3d72bef69191 738 "global_config__spad_enables_rtn_5",
charlesmn 0:3d72bef69191 739 pdata->global_config__spad_enables_rtn_5);
charlesmn 0:3d72bef69191 740
charlesmn 0:3d72bef69191 741 trace_print(
charlesmn 0:3d72bef69191 742 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 743 "%s%s = %u\n",
charlesmn 0:3d72bef69191 744 pprefix,
charlesmn 0:3d72bef69191 745 "global_config__spad_enables_rtn_6",
charlesmn 0:3d72bef69191 746 pdata->global_config__spad_enables_rtn_6);
charlesmn 0:3d72bef69191 747
charlesmn 0:3d72bef69191 748 trace_print(
charlesmn 0:3d72bef69191 749 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 750 "%s%s = %u\n",
charlesmn 0:3d72bef69191 751 pprefix,
charlesmn 0:3d72bef69191 752 "global_config__spad_enables_rtn_7",
charlesmn 0:3d72bef69191 753 pdata->global_config__spad_enables_rtn_7);
charlesmn 0:3d72bef69191 754
charlesmn 0:3d72bef69191 755 trace_print(
charlesmn 0:3d72bef69191 756 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 757 "%s%s = %u\n",
charlesmn 0:3d72bef69191 758 pprefix,
charlesmn 0:3d72bef69191 759 "global_config__spad_enables_rtn_8",
charlesmn 0:3d72bef69191 760 pdata->global_config__spad_enables_rtn_8);
charlesmn 0:3d72bef69191 761
charlesmn 0:3d72bef69191 762 trace_print(
charlesmn 0:3d72bef69191 763 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 764 "%s%s = %u\n",
charlesmn 0:3d72bef69191 765 pprefix,
charlesmn 0:3d72bef69191 766 "global_config__spad_enables_rtn_9",
charlesmn 0:3d72bef69191 767 pdata->global_config__spad_enables_rtn_9);
charlesmn 0:3d72bef69191 768
charlesmn 0:3d72bef69191 769 trace_print(
charlesmn 0:3d72bef69191 770 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 771 "%s%s = %u\n",
charlesmn 0:3d72bef69191 772 pprefix,
charlesmn 0:3d72bef69191 773 "global_config__spad_enables_rtn_10",
charlesmn 0:3d72bef69191 774 pdata->global_config__spad_enables_rtn_10);
charlesmn 0:3d72bef69191 775
charlesmn 0:3d72bef69191 776 trace_print(
charlesmn 0:3d72bef69191 777 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 778 "%s%s = %u\n",
charlesmn 0:3d72bef69191 779 pprefix,
charlesmn 0:3d72bef69191 780 "global_config__spad_enables_rtn_11",
charlesmn 0:3d72bef69191 781 pdata->global_config__spad_enables_rtn_11);
charlesmn 0:3d72bef69191 782
charlesmn 0:3d72bef69191 783 trace_print(
charlesmn 0:3d72bef69191 784 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 785 "%s%s = %u\n",
charlesmn 0:3d72bef69191 786 pprefix,
charlesmn 0:3d72bef69191 787 "global_config__spad_enables_rtn_12",
charlesmn 0:3d72bef69191 788 pdata->global_config__spad_enables_rtn_12);
charlesmn 0:3d72bef69191 789
charlesmn 0:3d72bef69191 790 trace_print(
charlesmn 0:3d72bef69191 791 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 792 "%s%s = %u\n",
charlesmn 0:3d72bef69191 793 pprefix,
charlesmn 0:3d72bef69191 794 "global_config__spad_enables_rtn_13",
charlesmn 0:3d72bef69191 795 pdata->global_config__spad_enables_rtn_13);
charlesmn 0:3d72bef69191 796
charlesmn 0:3d72bef69191 797 trace_print(
charlesmn 0:3d72bef69191 798 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 799 "%s%s = %u\n",
charlesmn 0:3d72bef69191 800 pprefix,
charlesmn 0:3d72bef69191 801 "global_config__spad_enables_rtn_14",
charlesmn 0:3d72bef69191 802 pdata->global_config__spad_enables_rtn_14);
charlesmn 0:3d72bef69191 803
charlesmn 0:3d72bef69191 804 trace_print(
charlesmn 0:3d72bef69191 805 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 806 "%s%s = %u\n",
charlesmn 0:3d72bef69191 807 pprefix,
charlesmn 0:3d72bef69191 808 "global_config__spad_enables_rtn_15",
charlesmn 0:3d72bef69191 809 pdata->global_config__spad_enables_rtn_15);
charlesmn 0:3d72bef69191 810
charlesmn 0:3d72bef69191 811 trace_print(
charlesmn 0:3d72bef69191 812 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 813 "%s%s = %u\n",
charlesmn 0:3d72bef69191 814 pprefix,
charlesmn 0:3d72bef69191 815 "global_config__spad_enables_rtn_16",
charlesmn 0:3d72bef69191 816 pdata->global_config__spad_enables_rtn_16);
charlesmn 0:3d72bef69191 817
charlesmn 0:3d72bef69191 818 trace_print(
charlesmn 0:3d72bef69191 819 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 820 "%s%s = %u\n",
charlesmn 0:3d72bef69191 821 pprefix,
charlesmn 0:3d72bef69191 822 "global_config__spad_enables_rtn_17",
charlesmn 0:3d72bef69191 823 pdata->global_config__spad_enables_rtn_17);
charlesmn 0:3d72bef69191 824
charlesmn 0:3d72bef69191 825 trace_print(
charlesmn 0:3d72bef69191 826 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 827 "%s%s = %u\n",
charlesmn 0:3d72bef69191 828 pprefix,
charlesmn 0:3d72bef69191 829 "global_config__spad_enables_rtn_18",
charlesmn 0:3d72bef69191 830 pdata->global_config__spad_enables_rtn_18);
charlesmn 0:3d72bef69191 831
charlesmn 0:3d72bef69191 832 trace_print(
charlesmn 0:3d72bef69191 833 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 834 "%s%s = %u\n",
charlesmn 0:3d72bef69191 835 pprefix,
charlesmn 0:3d72bef69191 836 "global_config__spad_enables_rtn_19",
charlesmn 0:3d72bef69191 837 pdata->global_config__spad_enables_rtn_19);
charlesmn 0:3d72bef69191 838
charlesmn 0:3d72bef69191 839 trace_print(
charlesmn 0:3d72bef69191 840 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 841 "%s%s = %u\n",
charlesmn 0:3d72bef69191 842 pprefix,
charlesmn 0:3d72bef69191 843 "global_config__spad_enables_rtn_20",
charlesmn 0:3d72bef69191 844 pdata->global_config__spad_enables_rtn_20);
charlesmn 0:3d72bef69191 845
charlesmn 0:3d72bef69191 846 trace_print(
charlesmn 0:3d72bef69191 847 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 848 "%s%s = %u\n",
charlesmn 0:3d72bef69191 849 pprefix,
charlesmn 0:3d72bef69191 850 "global_config__spad_enables_rtn_21",
charlesmn 0:3d72bef69191 851 pdata->global_config__spad_enables_rtn_21);
charlesmn 0:3d72bef69191 852
charlesmn 0:3d72bef69191 853 trace_print(
charlesmn 0:3d72bef69191 854 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 855 "%s%s = %u\n",
charlesmn 0:3d72bef69191 856 pprefix,
charlesmn 0:3d72bef69191 857 "global_config__spad_enables_rtn_22",
charlesmn 0:3d72bef69191 858 pdata->global_config__spad_enables_rtn_22);
charlesmn 0:3d72bef69191 859
charlesmn 0:3d72bef69191 860 trace_print(
charlesmn 0:3d72bef69191 861 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 862 "%s%s = %u\n",
charlesmn 0:3d72bef69191 863 pprefix,
charlesmn 0:3d72bef69191 864 "global_config__spad_enables_rtn_23",
charlesmn 0:3d72bef69191 865 pdata->global_config__spad_enables_rtn_23);
charlesmn 0:3d72bef69191 866
charlesmn 0:3d72bef69191 867 trace_print(
charlesmn 0:3d72bef69191 868 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 869 "%s%s = %u\n",
charlesmn 0:3d72bef69191 870 pprefix,
charlesmn 0:3d72bef69191 871 "global_config__spad_enables_rtn_24",
charlesmn 0:3d72bef69191 872 pdata->global_config__spad_enables_rtn_24);
charlesmn 0:3d72bef69191 873
charlesmn 0:3d72bef69191 874 trace_print(
charlesmn 0:3d72bef69191 875 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 876 "%s%s = %u\n",
charlesmn 0:3d72bef69191 877 pprefix,
charlesmn 0:3d72bef69191 878 "global_config__spad_enables_rtn_25",
charlesmn 0:3d72bef69191 879 pdata->global_config__spad_enables_rtn_25);
charlesmn 0:3d72bef69191 880
charlesmn 0:3d72bef69191 881 trace_print(
charlesmn 0:3d72bef69191 882 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 883 "%s%s = %u\n",
charlesmn 0:3d72bef69191 884 pprefix,
charlesmn 0:3d72bef69191 885 "global_config__spad_enables_rtn_26",
charlesmn 0:3d72bef69191 886 pdata->global_config__spad_enables_rtn_26);
charlesmn 0:3d72bef69191 887
charlesmn 0:3d72bef69191 888 trace_print(
charlesmn 0:3d72bef69191 889 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 890 "%s%s = %u\n",
charlesmn 0:3d72bef69191 891 pprefix,
charlesmn 0:3d72bef69191 892 "global_config__spad_enables_rtn_27",
charlesmn 0:3d72bef69191 893 pdata->global_config__spad_enables_rtn_27);
charlesmn 0:3d72bef69191 894
charlesmn 0:3d72bef69191 895 trace_print(
charlesmn 0:3d72bef69191 896 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 897 "%s%s = %u\n",
charlesmn 0:3d72bef69191 898 pprefix,
charlesmn 0:3d72bef69191 899 "global_config__spad_enables_rtn_28",
charlesmn 0:3d72bef69191 900 pdata->global_config__spad_enables_rtn_28);
charlesmn 0:3d72bef69191 901
charlesmn 0:3d72bef69191 902 trace_print(
charlesmn 0:3d72bef69191 903 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 904 "%s%s = %u\n",
charlesmn 0:3d72bef69191 905 pprefix,
charlesmn 0:3d72bef69191 906 "global_config__spad_enables_rtn_29",
charlesmn 0:3d72bef69191 907 pdata->global_config__spad_enables_rtn_29);
charlesmn 0:3d72bef69191 908
charlesmn 0:3d72bef69191 909 trace_print(
charlesmn 0:3d72bef69191 910 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 911 "%s%s = %u\n",
charlesmn 0:3d72bef69191 912 pprefix,
charlesmn 0:3d72bef69191 913 "global_config__spad_enables_rtn_30",
charlesmn 0:3d72bef69191 914 pdata->global_config__spad_enables_rtn_30);
charlesmn 0:3d72bef69191 915
charlesmn 0:3d72bef69191 916 trace_print(
charlesmn 0:3d72bef69191 917 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 918 "%s%s = %u\n",
charlesmn 0:3d72bef69191 919 pprefix,
charlesmn 0:3d72bef69191 920 "global_config__spad_enables_rtn_31",
charlesmn 0:3d72bef69191 921 pdata->global_config__spad_enables_rtn_31);
charlesmn 0:3d72bef69191 922
charlesmn 0:3d72bef69191 923 trace_print(
charlesmn 0:3d72bef69191 924 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 925 "%s%s = %u\n",
charlesmn 0:3d72bef69191 926 pprefix,
charlesmn 0:3d72bef69191 927 "roi_config__mode_roi_centre_spad",
charlesmn 0:3d72bef69191 928 pdata->roi_config__mode_roi_centre_spad);
charlesmn 0:3d72bef69191 929
charlesmn 0:3d72bef69191 930 trace_print(
charlesmn 0:3d72bef69191 931 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 932 "%s%s = 0x%02X\n",
charlesmn 0:3d72bef69191 933 pprefix,
charlesmn 0:3d72bef69191 934 "roi_config__mode_roi_xy_size",
charlesmn 0:3d72bef69191 935 pdata->roi_config__mode_roi_xy_size);
charlesmn 0:3d72bef69191 936 }
charlesmn 0:3d72bef69191 937
charlesmn 0:3d72bef69191 938
charlesmn 0:3d72bef69191 939 void VL53L1_print_histogram_bin_data(
charlesmn 0:3d72bef69191 940 VL53L1_histogram_bin_data_t *pdata,
charlesmn 0:3d72bef69191 941 char *pprefix,
charlesmn 0:3d72bef69191 942 uint32_t trace_flags)
charlesmn 0:3d72bef69191 943 {
charlesmn 0:3d72bef69191 944
charlesmn 0:3d72bef69191 945
charlesmn 0:3d72bef69191 946 char fp_text[VL53L1_MAX_STRING_LENGTH];
charlesmn 0:3d72bef69191 947 char pre_text[VL53L1_MAX_STRING_LENGTH];
charlesmn 0:3d72bef69191 948 char *ppre_text = &(pre_text[0]);
charlesmn 0:3d72bef69191 949
charlesmn 0:3d72bef69191 950 uint8_t i = 0;
charlesmn 0:3d72bef69191 951
charlesmn 0:3d72bef69191 952 trace_print(
charlesmn 0:3d72bef69191 953 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 954 "%s%s = %u\n",
charlesmn 0:3d72bef69191 955 pprefix,
charlesmn 0:3d72bef69191 956 "cfg_device_state",
charlesmn 0:3d72bef69191 957 pdata->cfg_device_state);
charlesmn 0:3d72bef69191 958
charlesmn 0:3d72bef69191 959 trace_print(
charlesmn 0:3d72bef69191 960 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 961 "%s%s = %u\n",
charlesmn 0:3d72bef69191 962 pprefix,
charlesmn 0:3d72bef69191 963 "rd_device_state",
charlesmn 0:3d72bef69191 964 pdata->rd_device_state);
charlesmn 0:3d72bef69191 965
charlesmn 0:3d72bef69191 966 trace_print(
charlesmn 0:3d72bef69191 967 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 968 "%s%s = %u\n",
charlesmn 0:3d72bef69191 969 pprefix,
charlesmn 0:3d72bef69191 970 "VL53L1_p_022",
charlesmn 0:3d72bef69191 971 pdata->VL53L1_p_022);
charlesmn 0:3d72bef69191 972
charlesmn 0:3d72bef69191 973 trace_print(
charlesmn 0:3d72bef69191 974 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 975 "%s%s = %u\n",
charlesmn 0:3d72bef69191 976 pprefix,
charlesmn 0:3d72bef69191 977 "VL53L1_p_023",
charlesmn 0:3d72bef69191 978 pdata->VL53L1_p_023);
charlesmn 0:3d72bef69191 979
charlesmn 0:3d72bef69191 980 trace_print(
charlesmn 0:3d72bef69191 981 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 982 "%s%s = %u\n",
charlesmn 0:3d72bef69191 983 pprefix,
charlesmn 0:3d72bef69191 984 "VL53L1_p_024",
charlesmn 0:3d72bef69191 985 pdata->VL53L1_p_024);
charlesmn 0:3d72bef69191 986
charlesmn 0:3d72bef69191 987 trace_print(
charlesmn 0:3d72bef69191 988 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 989 "%s%s = %u\n",
charlesmn 0:3d72bef69191 990 pprefix,
charlesmn 0:3d72bef69191 991 "number_of_ambient_bins",
charlesmn 0:3d72bef69191 992 pdata->number_of_ambient_bins);
charlesmn 0:3d72bef69191 993
charlesmn 0:3d72bef69191 994 for (i = 0; i < VL53L1_MAX_BIN_SEQUENCE_LENGTH; i++) {
charlesmn 0:3d72bef69191 995 sprintf(ppre_text, "%sbin_seq[%u]", pprefix, i);
charlesmn 0:3d72bef69191 996 trace_print(
charlesmn 0:3d72bef69191 997 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 998 "%s = %u\n",
charlesmn 0:3d72bef69191 999 ppre_text,
charlesmn 0:3d72bef69191 1000 pdata->bin_seq[i]);
charlesmn 0:3d72bef69191 1001 }
charlesmn 0:3d72bef69191 1002
charlesmn 0:3d72bef69191 1003 for (i = 0; i < VL53L1_MAX_BIN_SEQUENCE_LENGTH; i++) {
charlesmn 0:3d72bef69191 1004 sprintf(ppre_text, "%sbin_rep[%u]", pprefix, i);
charlesmn 0:3d72bef69191 1005 trace_print(
charlesmn 0:3d72bef69191 1006 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 1007 "%s = %u\n",
charlesmn 0:3d72bef69191 1008 ppre_text,
charlesmn 0:3d72bef69191 1009 pdata->bin_rep[i]);
charlesmn 0:3d72bef69191 1010 }
charlesmn 0:3d72bef69191 1011
charlesmn 0:3d72bef69191 1012 for (i = 0; i < pdata->VL53L1_p_024; i++) {
charlesmn 0:3d72bef69191 1013 sprintf(ppre_text, "%sbin_data[%u]", pprefix, i);
charlesmn 0:3d72bef69191 1014 trace_print(
charlesmn 0:3d72bef69191 1015 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 1016 "%s = %d\n",
charlesmn 0:3d72bef69191 1017 ppre_text,
charlesmn 0:3d72bef69191 1018 pdata->bin_data[i]);
charlesmn 0:3d72bef69191 1019 }
charlesmn 0:3d72bef69191 1020
charlesmn 0:3d72bef69191 1021 trace_print(
charlesmn 0:3d72bef69191 1022 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 1023 "%s%s = %u\n",
charlesmn 0:3d72bef69191 1024 pprefix,
charlesmn 0:3d72bef69191 1025 "result__interrupt_status",
charlesmn 0:3d72bef69191 1026 pdata->result__interrupt_status);
charlesmn 0:3d72bef69191 1027
charlesmn 0:3d72bef69191 1028 trace_print(
charlesmn 0:3d72bef69191 1029 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 1030 "%s%s = %u\n",
charlesmn 0:3d72bef69191 1031 pprefix,
charlesmn 0:3d72bef69191 1032 "result__range_status",
charlesmn 0:3d72bef69191 1033 pdata->result__range_status);
charlesmn 0:3d72bef69191 1034
charlesmn 0:3d72bef69191 1035 trace_print(
charlesmn 0:3d72bef69191 1036 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 1037 "%s%s = %u\n",
charlesmn 0:3d72bef69191 1038 pprefix,
charlesmn 0:3d72bef69191 1039 "result__report_status",
charlesmn 0:3d72bef69191 1040 pdata->result__report_status);
charlesmn 0:3d72bef69191 1041
charlesmn 0:3d72bef69191 1042 trace_print(
charlesmn 0:3d72bef69191 1043 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 1044 "%s%s = %u\n",
charlesmn 0:3d72bef69191 1045 pprefix,
charlesmn 0:3d72bef69191 1046 "result__stream_count",
charlesmn 0:3d72bef69191 1047 pdata->result__stream_count);
charlesmn 0:3d72bef69191 1048
charlesmn 0:3d72bef69191 1049 VL53L1_signed_fixed_point_sprintf(
charlesmn 0:3d72bef69191 1050 (int32_t)pdata->result__dss_actual_effective_spads,
charlesmn 0:3d72bef69191 1051 8,
charlesmn 0:3d72bef69191 1052 VL53L1_MAX_STRING_LENGTH,
charlesmn 0:3d72bef69191 1053 fp_text);
charlesmn 0:3d72bef69191 1054
charlesmn 0:3d72bef69191 1055 trace_print(
charlesmn 0:3d72bef69191 1056 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 1057 "%s%s = %s\n",
charlesmn 0:3d72bef69191 1058 pprefix,
charlesmn 0:3d72bef69191 1059 "result__dss_actual_effective_spads",
charlesmn 0:3d72bef69191 1060 fp_text);
charlesmn 0:3d72bef69191 1061
charlesmn 0:3d72bef69191 1062 VL53L1_signed_fixed_point_sprintf(
charlesmn 0:3d72bef69191 1063 (int32_t)pdata->phasecal_result__reference_phase,
charlesmn 0:3d72bef69191 1064 11,
charlesmn 0:3d72bef69191 1065 VL53L1_MAX_STRING_LENGTH,
charlesmn 0:3d72bef69191 1066 fp_text);
charlesmn 0:3d72bef69191 1067
charlesmn 0:3d72bef69191 1068 trace_print(
charlesmn 0:3d72bef69191 1069 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 1070 "%s%s = %s\n",
charlesmn 0:3d72bef69191 1071 pprefix,
charlesmn 0:3d72bef69191 1072 "phasecal_result__reference_phase",
charlesmn 0:3d72bef69191 1073 fp_text);
charlesmn 0:3d72bef69191 1074
charlesmn 0:3d72bef69191 1075 trace_print(
charlesmn 0:3d72bef69191 1076 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 1077 "%s%s = %u\n",
charlesmn 0:3d72bef69191 1078 pprefix,
charlesmn 0:3d72bef69191 1079 "phasecal_result__vcsel_start",
charlesmn 0:3d72bef69191 1080 pdata->phasecal_result__vcsel_start);
charlesmn 0:3d72bef69191 1081
charlesmn 0:3d72bef69191 1082 trace_print(
charlesmn 0:3d72bef69191 1083 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 1084 "%s%s = %u\n",
charlesmn 0:3d72bef69191 1085 pprefix,
charlesmn 0:3d72bef69191 1086 "cal_config__vcsel_start",
charlesmn 0:3d72bef69191 1087 pdata->cal_config__vcsel_start);
charlesmn 0:3d72bef69191 1088
charlesmn 0:3d72bef69191 1089 VL53L1_signed_fixed_point_sprintf(
charlesmn 0:3d72bef69191 1090 (uint32_t)pdata->vcsel_width,
charlesmn 0:3d72bef69191 1091 4,
charlesmn 0:3d72bef69191 1092 VL53L1_MAX_STRING_LENGTH,
charlesmn 0:3d72bef69191 1093 fp_text);
charlesmn 0:3d72bef69191 1094
charlesmn 0:3d72bef69191 1095 trace_print(
charlesmn 0:3d72bef69191 1096 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 1097 "%s%s = %s\n",
charlesmn 0:3d72bef69191 1098 pprefix,
charlesmn 0:3d72bef69191 1099 "vcsel_width",
charlesmn 0:3d72bef69191 1100 fp_text);
charlesmn 0:3d72bef69191 1101
charlesmn 0:3d72bef69191 1102 trace_print(
charlesmn 0:3d72bef69191 1103 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 1104 "%s%s = %u\n",
charlesmn 0:3d72bef69191 1105 pprefix,
charlesmn 0:3d72bef69191 1106 "VL53L1_p_009",
charlesmn 0:3d72bef69191 1107 pdata->VL53L1_p_009);
charlesmn 0:3d72bef69191 1108
charlesmn 0:3d72bef69191 1109 VL53L1_signed_fixed_point_sprintf(
charlesmn 0:3d72bef69191 1110 (int32_t)pdata->VL53L1_p_019,
charlesmn 0:3d72bef69191 1111 12,
charlesmn 0:3d72bef69191 1112 VL53L1_MAX_STRING_LENGTH,
charlesmn 0:3d72bef69191 1113 fp_text);
charlesmn 0:3d72bef69191 1114
charlesmn 0:3d72bef69191 1115 trace_print(
charlesmn 0:3d72bef69191 1116 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 1117 "%s%s = %s\n",
charlesmn 0:3d72bef69191 1118 pprefix,
charlesmn 0:3d72bef69191 1119 "VL53L1_p_019",
charlesmn 0:3d72bef69191 1120 fp_text);
charlesmn 0:3d72bef69191 1121
charlesmn 0:3d72bef69191 1122 trace_print(
charlesmn 0:3d72bef69191 1123 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 1124 "%s%s = %u\n",
charlesmn 0:3d72bef69191 1125 pprefix,
charlesmn 0:3d72bef69191 1126 "total_periods_elapsed",
charlesmn 0:3d72bef69191 1127 pdata->total_periods_elapsed);
charlesmn 0:3d72bef69191 1128
charlesmn 0:3d72bef69191 1129 trace_print(
charlesmn 0:3d72bef69191 1130 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 1131 "%s%s = %u\n",
charlesmn 0:3d72bef69191 1132 pprefix,
charlesmn 0:3d72bef69191 1133 "peak_duration_us",
charlesmn 0:3d72bef69191 1134 pdata->peak_duration_us);
charlesmn 0:3d72bef69191 1135
charlesmn 0:3d72bef69191 1136 trace_print(
charlesmn 0:3d72bef69191 1137 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 1138 "%s%s = %u\n",
charlesmn 0:3d72bef69191 1139 pprefix,
charlesmn 0:3d72bef69191 1140 "woi_duration_us",
charlesmn 0:3d72bef69191 1141 pdata->woi_duration_us);
charlesmn 0:3d72bef69191 1142
charlesmn 0:3d72bef69191 1143 trace_print(
charlesmn 0:3d72bef69191 1144 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 1145 "%s%s = %u\n",
charlesmn 0:3d72bef69191 1146 pprefix,
charlesmn 0:3d72bef69191 1147 "min_bin_value",
charlesmn 0:3d72bef69191 1148 pdata->min_bin_value);
charlesmn 0:3d72bef69191 1149
charlesmn 0:3d72bef69191 1150 trace_print(
charlesmn 0:3d72bef69191 1151 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 1152 "%s%s = %u\n",
charlesmn 0:3d72bef69191 1153 pprefix,
charlesmn 0:3d72bef69191 1154 "max_bin_value",
charlesmn 0:3d72bef69191 1155 pdata->max_bin_value);
charlesmn 0:3d72bef69191 1156
charlesmn 0:3d72bef69191 1157 VL53L1_signed_fixed_point_sprintf(
charlesmn 0:3d72bef69191 1158 (int32_t)pdata->zero_distance_phase,
charlesmn 0:3d72bef69191 1159 11,
charlesmn 0:3d72bef69191 1160 VL53L1_MAX_STRING_LENGTH,
charlesmn 0:3d72bef69191 1161 fp_text);
charlesmn 0:3d72bef69191 1162
charlesmn 0:3d72bef69191 1163 trace_print(
charlesmn 0:3d72bef69191 1164 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 1165 "%s%s = %s\n",
charlesmn 0:3d72bef69191 1166 pprefix,
charlesmn 0:3d72bef69191 1167 "zero_distance_phase",
charlesmn 0:3d72bef69191 1168 fp_text);
charlesmn 0:3d72bef69191 1169
charlesmn 0:3d72bef69191 1170 trace_print(
charlesmn 0:3d72bef69191 1171 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 1172 "%s%s = %u\n",
charlesmn 0:3d72bef69191 1173 pprefix,
charlesmn 0:3d72bef69191 1174 "number_of_ambient_samples",
charlesmn 0:3d72bef69191 1175 pdata->number_of_ambient_samples);
charlesmn 0:3d72bef69191 1176
charlesmn 0:3d72bef69191 1177 trace_print(
charlesmn 0:3d72bef69191 1178 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 1179 "%s%s = %d\n",
charlesmn 0:3d72bef69191 1180 pprefix,
charlesmn 0:3d72bef69191 1181 "ambient_events_sum",
charlesmn 0:3d72bef69191 1182 pdata->ambient_events_sum);
charlesmn 0:3d72bef69191 1183
charlesmn 0:3d72bef69191 1184 trace_print(
charlesmn 0:3d72bef69191 1185 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 1186 "%s%s = %d\n",
charlesmn 0:3d72bef69191 1187 pprefix,
charlesmn 0:3d72bef69191 1188 "VL53L1_p_004",
charlesmn 0:3d72bef69191 1189 pdata->VL53L1_p_004);
charlesmn 0:3d72bef69191 1190
charlesmn 0:3d72bef69191 1191 trace_print(
charlesmn 0:3d72bef69191 1192 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 1193 "%s%s = 0x%02X\n",
charlesmn 0:3d72bef69191 1194 pprefix,
charlesmn 0:3d72bef69191 1195 "roi_config__user_roi_centre_spad",
charlesmn 0:3d72bef69191 1196 pdata->roi_config__user_roi_centre_spad);
charlesmn 0:3d72bef69191 1197
charlesmn 0:3d72bef69191 1198 trace_print(
charlesmn 0:3d72bef69191 1199 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 1200 "%s%s = 0x%02X\n",
charlesmn 0:3d72bef69191 1201 pprefix,
charlesmn 0:3d72bef69191 1202 "roi_config__user_roi_requested_global_xy_size",
charlesmn 0:3d72bef69191 1203 pdata->roi_config__user_roi_requested_global_xy_size);
charlesmn 0:3d72bef69191 1204 }
charlesmn 0:3d72bef69191 1205
charlesmn 0:3d72bef69191 1206
charlesmn 0:3d72bef69191 1207 void VL53L1_print_xtalk_histogram_shape_data(
charlesmn 0:3d72bef69191 1208 VL53L1_xtalk_histogram_shape_t *pdata,
charlesmn 0:3d72bef69191 1209 char *pprefix,
charlesmn 0:3d72bef69191 1210 uint32_t trace_flags)
charlesmn 0:3d72bef69191 1211 {
charlesmn 0:3d72bef69191 1212
charlesmn 0:3d72bef69191 1213
charlesmn 0:3d72bef69191 1214 char fp_text[VL53L1_MAX_STRING_LENGTH];
charlesmn 0:3d72bef69191 1215 char pre_text[VL53L1_MAX_STRING_LENGTH];
charlesmn 0:3d72bef69191 1216 char *ppre_text = &(pre_text[0]);
charlesmn 0:3d72bef69191 1217
charlesmn 0:3d72bef69191 1218 uint8_t i = 0;
charlesmn 0:3d72bef69191 1219
charlesmn 0:3d72bef69191 1220 trace_print(
charlesmn 0:3d72bef69191 1221 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 1222 "%s%s = %u\n",
charlesmn 0:3d72bef69191 1223 pprefix,
charlesmn 0:3d72bef69191 1224 "VL53L1_p_022",
charlesmn 0:3d72bef69191 1225 pdata->VL53L1_p_022);
charlesmn 0:3d72bef69191 1226
charlesmn 0:3d72bef69191 1227 trace_print(
charlesmn 0:3d72bef69191 1228 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 1229 "%s%s = %u\n",
charlesmn 0:3d72bef69191 1230 pprefix,
charlesmn 0:3d72bef69191 1231 "VL53L1_p_023",
charlesmn 0:3d72bef69191 1232 pdata->VL53L1_p_023);
charlesmn 0:3d72bef69191 1233
charlesmn 0:3d72bef69191 1234 trace_print(
charlesmn 0:3d72bef69191 1235 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 1236 "%s%s = %u\n",
charlesmn 0:3d72bef69191 1237 pprefix,
charlesmn 0:3d72bef69191 1238 "VL53L1_p_024",
charlesmn 0:3d72bef69191 1239 pdata->VL53L1_p_024);
charlesmn 0:3d72bef69191 1240
charlesmn 0:3d72bef69191 1241 for (i = 0; i < pdata->VL53L1_p_024; i++) {
charlesmn 0:3d72bef69191 1242
charlesmn 0:3d72bef69191 1243 sprintf(ppre_text, "%sbin_data[%u]", pprefix, i);
charlesmn 0:3d72bef69191 1244
charlesmn 0:3d72bef69191 1245 VL53L1_signed_fixed_point_sprintf(
charlesmn 0:3d72bef69191 1246 (int32_t)pdata->bin_data[i],
charlesmn 0:3d72bef69191 1247 10,
charlesmn 0:3d72bef69191 1248 VL53L1_MAX_STRING_LENGTH,
charlesmn 0:3d72bef69191 1249 fp_text);
charlesmn 0:3d72bef69191 1250
charlesmn 0:3d72bef69191 1251 trace_print(
charlesmn 0:3d72bef69191 1252 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 1253 "%s = %s\n",
charlesmn 0:3d72bef69191 1254 ppre_text,
charlesmn 0:3d72bef69191 1255 fp_text);
charlesmn 0:3d72bef69191 1256 }
charlesmn 0:3d72bef69191 1257
charlesmn 0:3d72bef69191 1258 VL53L1_signed_fixed_point_sprintf(
charlesmn 0:3d72bef69191 1259 (int32_t)pdata->phasecal_result__reference_phase,
charlesmn 0:3d72bef69191 1260 11,
charlesmn 0:3d72bef69191 1261 VL53L1_MAX_STRING_LENGTH,
charlesmn 0:3d72bef69191 1262 fp_text);
charlesmn 0:3d72bef69191 1263
charlesmn 0:3d72bef69191 1264 trace_print(
charlesmn 0:3d72bef69191 1265 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 1266 "%s%s = %s\n",
charlesmn 0:3d72bef69191 1267 pprefix,
charlesmn 0:3d72bef69191 1268 "phasecal_result__reference_phase",
charlesmn 0:3d72bef69191 1269 fp_text);
charlesmn 0:3d72bef69191 1270
charlesmn 0:3d72bef69191 1271 trace_print(
charlesmn 0:3d72bef69191 1272 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 1273 "%s%s = %u\n",
charlesmn 0:3d72bef69191 1274 pprefix,
charlesmn 0:3d72bef69191 1275 "phasecal_result__vcsel_start",
charlesmn 0:3d72bef69191 1276 pdata->phasecal_result__vcsel_start);
charlesmn 0:3d72bef69191 1277
charlesmn 0:3d72bef69191 1278 trace_print(
charlesmn 0:3d72bef69191 1279 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 1280 "%s%s = %u\n",
charlesmn 0:3d72bef69191 1281 pprefix,
charlesmn 0:3d72bef69191 1282 "cal_config__vcsel_start",
charlesmn 0:3d72bef69191 1283 pdata->cal_config__vcsel_start);
charlesmn 0:3d72bef69191 1284
charlesmn 0:3d72bef69191 1285 VL53L1_signed_fixed_point_sprintf(
charlesmn 0:3d72bef69191 1286 (int32_t)pdata->vcsel_width,
charlesmn 0:3d72bef69191 1287 4,
charlesmn 0:3d72bef69191 1288 VL53L1_MAX_STRING_LENGTH,
charlesmn 0:3d72bef69191 1289 fp_text);
charlesmn 0:3d72bef69191 1290
charlesmn 0:3d72bef69191 1291 trace_print(
charlesmn 0:3d72bef69191 1292 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 1293 "%s%s = %s\n",
charlesmn 0:3d72bef69191 1294 pprefix,
charlesmn 0:3d72bef69191 1295 "vcsel_width",
charlesmn 0:3d72bef69191 1296 fp_text);
charlesmn 0:3d72bef69191 1297
charlesmn 0:3d72bef69191 1298 VL53L1_signed_fixed_point_sprintf(
charlesmn 0:3d72bef69191 1299 (int32_t)pdata->VL53L1_p_019,
charlesmn 0:3d72bef69191 1300 12,
charlesmn 0:3d72bef69191 1301 VL53L1_MAX_STRING_LENGTH,
charlesmn 0:3d72bef69191 1302 fp_text);
charlesmn 0:3d72bef69191 1303
charlesmn 0:3d72bef69191 1304 trace_print(
charlesmn 0:3d72bef69191 1305 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 1306 "%s%s = %s\n",
charlesmn 0:3d72bef69191 1307 pprefix,
charlesmn 0:3d72bef69191 1308 "VL53L1_p_019",
charlesmn 0:3d72bef69191 1309 fp_text);
charlesmn 0:3d72bef69191 1310
charlesmn 0:3d72bef69191 1311 VL53L1_signed_fixed_point_sprintf(
charlesmn 0:3d72bef69191 1312 (int32_t)pdata->zero_distance_phase,
charlesmn 0:3d72bef69191 1313 11,
charlesmn 0:3d72bef69191 1314 VL53L1_MAX_STRING_LENGTH,
charlesmn 0:3d72bef69191 1315 fp_text);
charlesmn 0:3d72bef69191 1316
charlesmn 0:3d72bef69191 1317 trace_print(
charlesmn 0:3d72bef69191 1318 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 1319 "%s%s = %s\n",
charlesmn 0:3d72bef69191 1320 pprefix,
charlesmn 0:3d72bef69191 1321 "zero_distance_phase",
charlesmn 0:3d72bef69191 1322 fp_text);
charlesmn 0:3d72bef69191 1323 }
charlesmn 0:3d72bef69191 1324
charlesmn 0:3d72bef69191 1325
charlesmn 0:3d72bef69191 1326 void VL53L1_print_xtalk_histogram_data(
charlesmn 0:3d72bef69191 1327 VL53L1_xtalk_histogram_data_t *pdata,
charlesmn 0:3d72bef69191 1328 char *pprefix,
charlesmn 0:3d72bef69191 1329 uint32_t trace_flags)
charlesmn 0:3d72bef69191 1330 {
charlesmn 0:3d72bef69191 1331
charlesmn 0:3d72bef69191 1332
charlesmn 0:3d72bef69191 1333 char pre_text[VL53L1_MAX_STRING_LENGTH];
charlesmn 0:3d72bef69191 1334 char *ppre_text = &(pre_text[0]);
charlesmn 0:3d72bef69191 1335
charlesmn 0:3d72bef69191 1336
charlesmn 0:3d72bef69191 1337 sprintf(ppre_text, "%sxtalk_shape.", pprefix);
charlesmn 0:3d72bef69191 1338 VL53L1_print_xtalk_histogram_shape_data(
charlesmn 0:3d72bef69191 1339 &(pdata->xtalk_shape),
charlesmn 0:3d72bef69191 1340 ppre_text, trace_flags);
charlesmn 0:3d72bef69191 1341
charlesmn 0:3d72bef69191 1342
charlesmn 0:3d72bef69191 1343 sprintf(ppre_text, "%sxtalk_hist_removed.", pprefix);
charlesmn 0:3d72bef69191 1344 VL53L1_print_histogram_bin_data(
charlesmn 0:3d72bef69191 1345 &(pdata->xtalk_hist_removed),
charlesmn 0:3d72bef69191 1346 ppre_text, trace_flags);
charlesmn 0:3d72bef69191 1347 }
charlesmn 0:3d72bef69191 1348
charlesmn 0:3d72bef69191 1349
charlesmn 0:3d72bef69191 1350 void VL53L1_print_range_data(
charlesmn 0:3d72bef69191 1351 VL53L1_range_data_t *pdata,
charlesmn 0:3d72bef69191 1352 char *pprefix,
charlesmn 0:3d72bef69191 1353 uint32_t trace_flags)
charlesmn 0:3d72bef69191 1354 {
charlesmn 0:3d72bef69191 1355
charlesmn 0:3d72bef69191 1356
charlesmn 0:3d72bef69191 1357 char fp_text[VL53L1_MAX_STRING_LENGTH];
charlesmn 0:3d72bef69191 1358
charlesmn 0:3d72bef69191 1359 trace_print(
charlesmn 0:3d72bef69191 1360 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 1361 "%s%s = %u\n",
charlesmn 0:3d72bef69191 1362 pprefix,
charlesmn 0:3d72bef69191 1363 "range_id",
charlesmn 0:3d72bef69191 1364 pdata->range_id);
charlesmn 0:3d72bef69191 1365
charlesmn 0:3d72bef69191 1366 trace_print(
charlesmn 0:3d72bef69191 1367 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 1368 "%s%s = %u\n",
charlesmn 0:3d72bef69191 1369 pprefix,
charlesmn 0:3d72bef69191 1370 "time_stamp",
charlesmn 0:3d72bef69191 1371 pdata->time_stamp);
charlesmn 0:3d72bef69191 1372
charlesmn 0:3d72bef69191 1373 trace_print(
charlesmn 0:3d72bef69191 1374 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 1375 "%s%s = %u\n",
charlesmn 0:3d72bef69191 1376 pprefix,
charlesmn 0:3d72bef69191 1377 "VL53L1_p_015",
charlesmn 0:3d72bef69191 1378 pdata->VL53L1_p_015);
charlesmn 0:3d72bef69191 1379
charlesmn 0:3d72bef69191 1380 trace_print(
charlesmn 0:3d72bef69191 1381 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 1382 "%s%s = %u\n",
charlesmn 0:3d72bef69191 1383 pprefix,
charlesmn 0:3d72bef69191 1384 "VL53L1_p_022",
charlesmn 0:3d72bef69191 1385 pdata->VL53L1_p_022);
charlesmn 0:3d72bef69191 1386
charlesmn 0:3d72bef69191 1387 trace_print(
charlesmn 0:3d72bef69191 1388 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 1389 "%s%s = %u\n",
charlesmn 0:3d72bef69191 1390 pprefix,
charlesmn 0:3d72bef69191 1391 "VL53L1_p_025",
charlesmn 0:3d72bef69191 1392 pdata->VL53L1_p_025);
charlesmn 0:3d72bef69191 1393
charlesmn 0:3d72bef69191 1394 trace_print(
charlesmn 0:3d72bef69191 1395 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 1396 "%s%s = %u\n",
charlesmn 0:3d72bef69191 1397 pprefix,
charlesmn 0:3d72bef69191 1398 "VL53L1_p_026",
charlesmn 0:3d72bef69191 1399 pdata->VL53L1_p_026);
charlesmn 0:3d72bef69191 1400
charlesmn 0:3d72bef69191 1401 trace_print(
charlesmn 0:3d72bef69191 1402 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 1403 "%s%s = %u\n",
charlesmn 0:3d72bef69191 1404 pprefix,
charlesmn 0:3d72bef69191 1405 "VL53L1_p_016",
charlesmn 0:3d72bef69191 1406 pdata->VL53L1_p_016);
charlesmn 0:3d72bef69191 1407
charlesmn 0:3d72bef69191 1408 trace_print(
charlesmn 0:3d72bef69191 1409 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 1410 "%s%s = %u\n",
charlesmn 0:3d72bef69191 1411 pprefix,
charlesmn 0:3d72bef69191 1412 "VL53L1_p_027",
charlesmn 0:3d72bef69191 1413 pdata->VL53L1_p_027);
charlesmn 0:3d72bef69191 1414
charlesmn 0:3d72bef69191 1415 VL53L1_signed_fixed_point_sprintf(
charlesmn 0:3d72bef69191 1416 (int32_t)pdata->width,
charlesmn 0:3d72bef69191 1417 4, VL53L1_MAX_STRING_LENGTH, fp_text);
charlesmn 0:3d72bef69191 1418
charlesmn 0:3d72bef69191 1419 trace_print(
charlesmn 0:3d72bef69191 1420 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 1421 "%s%s = %s\n",
charlesmn 0:3d72bef69191 1422 pprefix,
charlesmn 0:3d72bef69191 1423 "width",
charlesmn 0:3d72bef69191 1424 fp_text);
charlesmn 0:3d72bef69191 1425
charlesmn 0:3d72bef69191 1426 trace_print(
charlesmn 0:3d72bef69191 1427 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 1428 "%s%s = %u\n",
charlesmn 0:3d72bef69191 1429 pprefix,
charlesmn 0:3d72bef69191 1430 "VL53L1_p_030",
charlesmn 0:3d72bef69191 1431 pdata->VL53L1_p_030);
charlesmn 0:3d72bef69191 1432
charlesmn 0:3d72bef69191 1433
charlesmn 0:3d72bef69191 1434
charlesmn 0:3d72bef69191 1435 VL53L1_signed_fixed_point_sprintf(
charlesmn 0:3d72bef69191 1436 (int32_t)pdata->fast_osc_frequency,
charlesmn 0:3d72bef69191 1437 12, VL53L1_MAX_STRING_LENGTH, fp_text);
charlesmn 0:3d72bef69191 1438
charlesmn 0:3d72bef69191 1439 trace_print(
charlesmn 0:3d72bef69191 1440 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 1441 "%s%s = %s\n",
charlesmn 0:3d72bef69191 1442 pprefix,
charlesmn 0:3d72bef69191 1443 "fast_osc_frequency",
charlesmn 0:3d72bef69191 1444 fp_text);
charlesmn 0:3d72bef69191 1445
charlesmn 0:3d72bef69191 1446
charlesmn 0:3d72bef69191 1447
charlesmn 0:3d72bef69191 1448 VL53L1_signed_fixed_point_sprintf(
charlesmn 0:3d72bef69191 1449 (int32_t)pdata->zero_distance_phase,
charlesmn 0:3d72bef69191 1450 11, VL53L1_MAX_STRING_LENGTH, fp_text);
charlesmn 0:3d72bef69191 1451
charlesmn 0:3d72bef69191 1452 trace_print(
charlesmn 0:3d72bef69191 1453 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 1454 "%s%s = %s\n",
charlesmn 0:3d72bef69191 1455 pprefix,
charlesmn 0:3d72bef69191 1456 "zero_distance_phase",
charlesmn 0:3d72bef69191 1457 fp_text);
charlesmn 0:3d72bef69191 1458
charlesmn 0:3d72bef69191 1459
charlesmn 0:3d72bef69191 1460
charlesmn 0:3d72bef69191 1461 VL53L1_signed_fixed_point_sprintf(
charlesmn 0:3d72bef69191 1462 (int32_t)pdata->VL53L1_p_006,
charlesmn 0:3d72bef69191 1463 8, VL53L1_MAX_STRING_LENGTH, fp_text);
charlesmn 0:3d72bef69191 1464
charlesmn 0:3d72bef69191 1465 trace_print(
charlesmn 0:3d72bef69191 1466 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 1467 "%s%s = %s\n",
charlesmn 0:3d72bef69191 1468 pprefix,
charlesmn 0:3d72bef69191 1469 "actual_effective_spad",
charlesmn 0:3d72bef69191 1470 fp_text);
charlesmn 0:3d72bef69191 1471
charlesmn 0:3d72bef69191 1472
charlesmn 0:3d72bef69191 1473 trace_print(VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 1474 "%s%s = %u\n",
charlesmn 0:3d72bef69191 1475 pprefix,
charlesmn 0:3d72bef69191 1476 "total_periods_elapsed",
charlesmn 0:3d72bef69191 1477 pdata->total_periods_elapsed);
charlesmn 0:3d72bef69191 1478
charlesmn 0:3d72bef69191 1479 trace_print(
charlesmn 0:3d72bef69191 1480 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 1481 "%s%s = %u\n",
charlesmn 0:3d72bef69191 1482 pprefix,
charlesmn 0:3d72bef69191 1483 "peak_duration_us",
charlesmn 0:3d72bef69191 1484 pdata->peak_duration_us);
charlesmn 0:3d72bef69191 1485
charlesmn 0:3d72bef69191 1486 trace_print(
charlesmn 0:3d72bef69191 1487 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 1488 "%s%s = %u\n",
charlesmn 0:3d72bef69191 1489 pprefix,
charlesmn 0:3d72bef69191 1490 "woi_duration_us",
charlesmn 0:3d72bef69191 1491 pdata->woi_duration_us);
charlesmn 0:3d72bef69191 1492
charlesmn 0:3d72bef69191 1493 trace_print(
charlesmn 0:3d72bef69191 1494 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 1495 "%s%s = %d\n",
charlesmn 0:3d72bef69191 1496 pprefix,
charlesmn 0:3d72bef69191 1497 "VL53L1_p_020",
charlesmn 0:3d72bef69191 1498 pdata->VL53L1_p_020);
charlesmn 0:3d72bef69191 1499
charlesmn 0:3d72bef69191 1500 trace_print(
charlesmn 0:3d72bef69191 1501 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 1502 "%s%s = %d\n",
charlesmn 0:3d72bef69191 1503 pprefix,
charlesmn 0:3d72bef69191 1504 "VL53L1_p_021",
charlesmn 0:3d72bef69191 1505 pdata->VL53L1_p_021);
charlesmn 0:3d72bef69191 1506
charlesmn 0:3d72bef69191 1507 trace_print(
charlesmn 0:3d72bef69191 1508 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 1509 "%s%s = %d\n",
charlesmn 0:3d72bef69191 1510 pprefix,
charlesmn 0:3d72bef69191 1511 "VL53L1_p_013",
charlesmn 0:3d72bef69191 1512 pdata->VL53L1_p_013);
charlesmn 0:3d72bef69191 1513
charlesmn 0:3d72bef69191 1514
charlesmn 0:3d72bef69191 1515
charlesmn 0:3d72bef69191 1516 VL53L1_signed_fixed_point_sprintf(
charlesmn 0:3d72bef69191 1517 (int32_t)pdata->peak_signal_count_rate_mcps,
charlesmn 0:3d72bef69191 1518 7, VL53L1_MAX_STRING_LENGTH, fp_text);
charlesmn 0:3d72bef69191 1519
charlesmn 0:3d72bef69191 1520 trace_print(
charlesmn 0:3d72bef69191 1521 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 1522 "%s%s = %s\n",
charlesmn 0:3d72bef69191 1523 pprefix,
charlesmn 0:3d72bef69191 1524 "peak_signal_count_rate_mcps",
charlesmn 0:3d72bef69191 1525 fp_text);
charlesmn 0:3d72bef69191 1526
charlesmn 0:3d72bef69191 1527 VL53L1_signed_fixed_point_sprintf(
charlesmn 0:3d72bef69191 1528 (int32_t)pdata->avg_signal_count_rate_mcps,
charlesmn 0:3d72bef69191 1529 7, VL53L1_MAX_STRING_LENGTH, fp_text);
charlesmn 0:3d72bef69191 1530
charlesmn 0:3d72bef69191 1531 trace_print(
charlesmn 0:3d72bef69191 1532 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 1533 "%s%s = %s\n",
charlesmn 0:3d72bef69191 1534 pprefix,
charlesmn 0:3d72bef69191 1535 "avg_signal_count_rate_mcps",
charlesmn 0:3d72bef69191 1536 fp_text);
charlesmn 0:3d72bef69191 1537
charlesmn 0:3d72bef69191 1538 VL53L1_signed_fixed_point_sprintf(
charlesmn 0:3d72bef69191 1539 (int32_t)pdata->ambient_count_rate_mcps,
charlesmn 0:3d72bef69191 1540 7, VL53L1_MAX_STRING_LENGTH, fp_text);
charlesmn 0:3d72bef69191 1541
charlesmn 0:3d72bef69191 1542 trace_print(
charlesmn 0:3d72bef69191 1543 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 1544 "%s%s = %s\n",
charlesmn 0:3d72bef69191 1545 pprefix,
charlesmn 0:3d72bef69191 1546 "ambient_count_rate_mcps",
charlesmn 0:3d72bef69191 1547 fp_text);
charlesmn 0:3d72bef69191 1548
charlesmn 0:3d72bef69191 1549 VL53L1_signed_fixed_point_sprintf(
charlesmn 0:3d72bef69191 1550 (int32_t)pdata->total_rate_per_spad_mcps,
charlesmn 0:3d72bef69191 1551 13, VL53L1_MAX_STRING_LENGTH, fp_text);
charlesmn 0:3d72bef69191 1552
charlesmn 0:3d72bef69191 1553 trace_print(
charlesmn 0:3d72bef69191 1554 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 1555 "%s%s = %s\n",
charlesmn 0:3d72bef69191 1556 pprefix,
charlesmn 0:3d72bef69191 1557 "total_rate_per_spad_mcps",
charlesmn 0:3d72bef69191 1558 fp_text);
charlesmn 0:3d72bef69191 1559
charlesmn 0:3d72bef69191 1560 VL53L1_signed_fixed_point_sprintf(
charlesmn 0:3d72bef69191 1561 (int32_t)pdata->VL53L1_p_012,
charlesmn 0:3d72bef69191 1562 11, VL53L1_MAX_STRING_LENGTH, fp_text);
charlesmn 0:3d72bef69191 1563
charlesmn 0:3d72bef69191 1564 trace_print(
charlesmn 0:3d72bef69191 1565 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 1566 "%s%s = %s\n",
charlesmn 0:3d72bef69191 1567 pprefix,
charlesmn 0:3d72bef69191 1568 "VL53L1_p_012",
charlesmn 0:3d72bef69191 1569 fp_text);
charlesmn 0:3d72bef69191 1570
charlesmn 0:3d72bef69191 1571
charlesmn 0:3d72bef69191 1572
charlesmn 0:3d72bef69191 1573 VL53L1_signed_fixed_point_sprintf(
charlesmn 0:3d72bef69191 1574 (int32_t)pdata->VL53L1_p_005,
charlesmn 0:3d72bef69191 1575 2, VL53L1_MAX_STRING_LENGTH, fp_text);
charlesmn 0:3d72bef69191 1576
charlesmn 0:3d72bef69191 1577 trace_print(
charlesmn 0:3d72bef69191 1578 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 1579 "%s%s = %s\n",
charlesmn 0:3d72bef69191 1580 pprefix,
charlesmn 0:3d72bef69191 1581 "VL53L1_p_005",
charlesmn 0:3d72bef69191 1582 fp_text);
charlesmn 0:3d72bef69191 1583
charlesmn 0:3d72bef69191 1584
charlesmn 0:3d72bef69191 1585
charlesmn 0:3d72bef69191 1586 VL53L1_signed_fixed_point_sprintf(
charlesmn 0:3d72bef69191 1587 (int32_t)pdata->VL53L1_p_028,
charlesmn 0:3d72bef69191 1588 11, VL53L1_MAX_STRING_LENGTH, fp_text);
charlesmn 0:3d72bef69191 1589
charlesmn 0:3d72bef69191 1590 trace_print(
charlesmn 0:3d72bef69191 1591 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 1592 "%s%s = %s\n",
charlesmn 0:3d72bef69191 1593 pprefix,
charlesmn 0:3d72bef69191 1594 "VL53L1_p_028",
charlesmn 0:3d72bef69191 1595 fp_text);
charlesmn 0:3d72bef69191 1596
charlesmn 0:3d72bef69191 1597 VL53L1_signed_fixed_point_sprintf(
charlesmn 0:3d72bef69191 1598 (int32_t)pdata->VL53L1_p_014,
charlesmn 0:3d72bef69191 1599 11, VL53L1_MAX_STRING_LENGTH, fp_text);
charlesmn 0:3d72bef69191 1600
charlesmn 0:3d72bef69191 1601 trace_print(
charlesmn 0:3d72bef69191 1602 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 1603 "%s%s = %s\n",
charlesmn 0:3d72bef69191 1604 pprefix,
charlesmn 0:3d72bef69191 1605 "VL53L1_p_014",
charlesmn 0:3d72bef69191 1606 fp_text);
charlesmn 0:3d72bef69191 1607
charlesmn 0:3d72bef69191 1608 VL53L1_signed_fixed_point_sprintf(
charlesmn 0:3d72bef69191 1609 (int32_t)pdata->VL53L1_p_029,
charlesmn 0:3d72bef69191 1610 11, VL53L1_MAX_STRING_LENGTH, fp_text);
charlesmn 0:3d72bef69191 1611
charlesmn 0:3d72bef69191 1612 trace_print(
charlesmn 0:3d72bef69191 1613 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 1614 "%s%s = %s\n",
charlesmn 0:3d72bef69191 1615 pprefix,
charlesmn 0:3d72bef69191 1616 "VL53L1_p_029",
charlesmn 0:3d72bef69191 1617 fp_text);
charlesmn 0:3d72bef69191 1618
charlesmn 0:3d72bef69191 1619
charlesmn 0:3d72bef69191 1620
charlesmn 0:3d72bef69191 1621 trace_print(
charlesmn 0:3d72bef69191 1622 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 1623 "%s%s = %d\n",
charlesmn 0:3d72bef69191 1624 pprefix,
charlesmn 0:3d72bef69191 1625 "min_range_mm",
charlesmn 0:3d72bef69191 1626 pdata->min_range_mm);
charlesmn 0:3d72bef69191 1627
charlesmn 0:3d72bef69191 1628 trace_print(
charlesmn 0:3d72bef69191 1629 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 1630 "%s%s = %d\n",
charlesmn 0:3d72bef69191 1631 pprefix,
charlesmn 0:3d72bef69191 1632 "median_range_mm",
charlesmn 0:3d72bef69191 1633 pdata->median_range_mm);
charlesmn 0:3d72bef69191 1634
charlesmn 0:3d72bef69191 1635 trace_print(
charlesmn 0:3d72bef69191 1636 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 1637 "%s%s = %d\n",
charlesmn 0:3d72bef69191 1638 pprefix,
charlesmn 0:3d72bef69191 1639 "max_range_mm",
charlesmn 0:3d72bef69191 1640 pdata->max_range_mm);
charlesmn 0:3d72bef69191 1641
charlesmn 0:3d72bef69191 1642 trace_print(
charlesmn 0:3d72bef69191 1643 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 1644 "%s%s = %u\n",
charlesmn 0:3d72bef69191 1645 pprefix,
charlesmn 0:3d72bef69191 1646 "range_status",
charlesmn 0:3d72bef69191 1647 pdata->range_status);
charlesmn 0:3d72bef69191 1648 }
charlesmn 0:3d72bef69191 1649
charlesmn 0:3d72bef69191 1650
charlesmn 0:3d72bef69191 1651 void VL53L1_print_range_results(
charlesmn 0:3d72bef69191 1652 VL53L1_range_results_t *pdata,
charlesmn 0:3d72bef69191 1653 char *pprefix,
charlesmn 0:3d72bef69191 1654 uint32_t trace_flags)
charlesmn 0:3d72bef69191 1655 {
charlesmn 0:3d72bef69191 1656
charlesmn 0:3d72bef69191 1657
charlesmn 0:3d72bef69191 1658 char pre_text[VL53L1_MAX_STRING_LENGTH];
charlesmn 0:3d72bef69191 1659 char *ppre_text = &(pre_text[0]);
charlesmn 0:3d72bef69191 1660
charlesmn 0:3d72bef69191 1661 uint8_t i = 0;
charlesmn 0:3d72bef69191 1662
charlesmn 0:3d72bef69191 1663 trace_print(
charlesmn 0:3d72bef69191 1664 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 1665 "%s%s = %u\n",
charlesmn 0:3d72bef69191 1666 pprefix,
charlesmn 0:3d72bef69191 1667 "cfg_device_state",
charlesmn 0:3d72bef69191 1668 pdata->cfg_device_state);
charlesmn 0:3d72bef69191 1669
charlesmn 0:3d72bef69191 1670 trace_print(
charlesmn 0:3d72bef69191 1671 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 1672 "%s%s = %u\n",
charlesmn 0:3d72bef69191 1673 pprefix,
charlesmn 0:3d72bef69191 1674 "rd_device_state",
charlesmn 0:3d72bef69191 1675 pdata->rd_device_state);
charlesmn 0:3d72bef69191 1676
charlesmn 0:3d72bef69191 1677 trace_print(
charlesmn 0:3d72bef69191 1678 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 1679 "%s%s = %u\n",
charlesmn 0:3d72bef69191 1680 pprefix,
charlesmn 0:3d72bef69191 1681 "zone_id",
charlesmn 0:3d72bef69191 1682 pdata->zone_id);
charlesmn 0:3d72bef69191 1683
charlesmn 0:3d72bef69191 1684 trace_print(
charlesmn 0:3d72bef69191 1685 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 1686 "%s%s = %u\n",
charlesmn 0:3d72bef69191 1687 pprefix,
charlesmn 0:3d72bef69191 1688 "stream_count",
charlesmn 0:3d72bef69191 1689 pdata->stream_count);
charlesmn 0:3d72bef69191 1690
charlesmn 0:3d72bef69191 1691 for (i = 0; i < VL53L1_MAX_AMBIENT_DMAX_VALUES; i++) {
charlesmn 0:3d72bef69191 1692 sprintf(
charlesmn 0:3d72bef69191 1693 ppre_text,
charlesmn 0:3d72bef69191 1694 "%sambient_dmax_mm[%u]",
charlesmn 0:3d72bef69191 1695 pprefix, i);
charlesmn 0:3d72bef69191 1696
charlesmn 0:3d72bef69191 1697 trace_print(
charlesmn 0:3d72bef69191 1698 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 1699 "%s = %u\n",
charlesmn 0:3d72bef69191 1700 ppre_text,
charlesmn 0:3d72bef69191 1701 pdata->VL53L1_p_007[i]);
charlesmn 0:3d72bef69191 1702 }
charlesmn 0:3d72bef69191 1703
charlesmn 0:3d72bef69191 1704 trace_print(
charlesmn 0:3d72bef69191 1705 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 1706 "%s%s = %u\n",
charlesmn 0:3d72bef69191 1707 pprefix,
charlesmn 0:3d72bef69191 1708 "device_status",
charlesmn 0:3d72bef69191 1709 pdata->device_status);
charlesmn 0:3d72bef69191 1710
charlesmn 0:3d72bef69191 1711 trace_print(
charlesmn 0:3d72bef69191 1712 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 1713 "%s%s = %u\n",
charlesmn 0:3d72bef69191 1714 pprefix,
charlesmn 0:3d72bef69191 1715 "wrap_dmax_mm",
charlesmn 0:3d72bef69191 1716 pdata->wrap_dmax_mm);
charlesmn 0:3d72bef69191 1717
charlesmn 0:3d72bef69191 1718 trace_print(
charlesmn 0:3d72bef69191 1719 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 1720 "%s%s = %u\n",
charlesmn 0:3d72bef69191 1721 pprefix,
charlesmn 0:3d72bef69191 1722 "max_results",
charlesmn 0:3d72bef69191 1723 pdata->max_results);
charlesmn 0:3d72bef69191 1724
charlesmn 0:3d72bef69191 1725 trace_print(
charlesmn 0:3d72bef69191 1726 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 1727 "%s%s = %u\n",
charlesmn 0:3d72bef69191 1728 pprefix,
charlesmn 0:3d72bef69191 1729 "active_results",
charlesmn 0:3d72bef69191 1730 pdata->active_results);
charlesmn 0:3d72bef69191 1731
charlesmn 0:3d72bef69191 1732 for (i = 0; i < pdata->active_results; i++) {
charlesmn 0:3d72bef69191 1733 sprintf(ppre_text, "%sdata[%u].", pprefix, i);
charlesmn 0:3d72bef69191 1734 VL53L1_print_range_data(
charlesmn 0:3d72bef69191 1735 &pdata->VL53L1_p_002[i],
charlesmn 0:3d72bef69191 1736 ppre_text, trace_flags);
charlesmn 0:3d72bef69191 1737 }
charlesmn 0:3d72bef69191 1738
charlesmn 0:3d72bef69191 1739 sprintf(ppre_text, "%sxmonitor.", pprefix);
charlesmn 0:3d72bef69191 1740 VL53L1_print_range_data(
charlesmn 0:3d72bef69191 1741 &pdata->xmonitor,
charlesmn 0:3d72bef69191 1742 ppre_text, trace_flags);
charlesmn 0:3d72bef69191 1743 }
charlesmn 0:3d72bef69191 1744
charlesmn 0:3d72bef69191 1745
charlesmn 0:3d72bef69191 1746 void VL53L1_print_offset_range_results(
charlesmn 0:3d72bef69191 1747 VL53L1_offset_range_results_t *pdata,
charlesmn 0:3d72bef69191 1748 char *pprefix,
charlesmn 0:3d72bef69191 1749 uint32_t trace_flags)
charlesmn 0:3d72bef69191 1750 {
charlesmn 0:3d72bef69191 1751
charlesmn 0:3d72bef69191 1752
charlesmn 0:3d72bef69191 1753 char fp_text[VL53L1_MAX_STRING_LENGTH];
charlesmn 0:3d72bef69191 1754 char pre_text[VL53L1_MAX_STRING_LENGTH];
charlesmn 0:3d72bef69191 1755 char *ppre_text = &(pre_text[0]);
charlesmn 0:3d72bef69191 1756
charlesmn 0:3d72bef69191 1757 uint8_t i = 0;
charlesmn 0:3d72bef69191 1758
charlesmn 0:3d72bef69191 1759 trace_print(
charlesmn 0:3d72bef69191 1760 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 1761 "%s%s = %u\n",
charlesmn 0:3d72bef69191 1762 pprefix,
charlesmn 0:3d72bef69191 1763 "cal_distance_mm",
charlesmn 0:3d72bef69191 1764 pdata->cal_distance_mm);
charlesmn 0:3d72bef69191 1765
charlesmn 0:3d72bef69191 1766 VL53L1_signed_fixed_point_sprintf(
charlesmn 0:3d72bef69191 1767 (int32_t)pdata->cal_reflectance_pc,
charlesmn 0:3d72bef69191 1768 2,
charlesmn 0:3d72bef69191 1769 VL53L1_MAX_STRING_LENGTH,
charlesmn 0:3d72bef69191 1770 fp_text);
charlesmn 0:3d72bef69191 1771
charlesmn 0:3d72bef69191 1772 trace_print(
charlesmn 0:3d72bef69191 1773 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 1774 "%s%s = %s\n",
charlesmn 0:3d72bef69191 1775 pprefix,
charlesmn 0:3d72bef69191 1776 "cal_reflectance_pc",
charlesmn 0:3d72bef69191 1777 fp_text);
charlesmn 0:3d72bef69191 1778
charlesmn 0:3d72bef69191 1779 trace_print(
charlesmn 0:3d72bef69191 1780 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 1781 "%s%s = %u\n",
charlesmn 0:3d72bef69191 1782 pprefix,
charlesmn 0:3d72bef69191 1783 "cal_status",
charlesmn 0:3d72bef69191 1784 pdata->cal_status);
charlesmn 0:3d72bef69191 1785
charlesmn 0:3d72bef69191 1786 trace_print(
charlesmn 0:3d72bef69191 1787 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 1788 "%s%s = %u\n",
charlesmn 0:3d72bef69191 1789 pprefix,
charlesmn 0:3d72bef69191 1790 "cal_report",
charlesmn 0:3d72bef69191 1791 pdata->cal_report);
charlesmn 0:3d72bef69191 1792
charlesmn 0:3d72bef69191 1793 trace_print(
charlesmn 0:3d72bef69191 1794 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 1795 "%s%s = %u\n",
charlesmn 0:3d72bef69191 1796 pprefix,
charlesmn 0:3d72bef69191 1797 "max_results",
charlesmn 0:3d72bef69191 1798 pdata->max_results);
charlesmn 0:3d72bef69191 1799
charlesmn 0:3d72bef69191 1800 trace_print(
charlesmn 0:3d72bef69191 1801 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 1802 "%s%s = %u\n",
charlesmn 0:3d72bef69191 1803 pprefix,
charlesmn 0:3d72bef69191 1804 "active_results",
charlesmn 0:3d72bef69191 1805 pdata->active_results);
charlesmn 0:3d72bef69191 1806
charlesmn 0:3d72bef69191 1807 for (i = 0; i < pdata->active_results; i++) {
charlesmn 0:3d72bef69191 1808 sprintf(ppre_text, "%sdata[%u].", pprefix, i);
charlesmn 0:3d72bef69191 1809 VL53L1_print_offset_range_data(
charlesmn 0:3d72bef69191 1810 &(pdata->VL53L1_p_002[i]),
charlesmn 0:3d72bef69191 1811 ppre_text, trace_flags);
charlesmn 0:3d72bef69191 1812 }
charlesmn 0:3d72bef69191 1813 }
charlesmn 0:3d72bef69191 1814
charlesmn 0:3d72bef69191 1815
charlesmn 0:3d72bef69191 1816 void VL53L1_print_offset_range_data(
charlesmn 0:3d72bef69191 1817 VL53L1_offset_range_data_t *pdata,
charlesmn 0:3d72bef69191 1818 char *pprefix,
charlesmn 0:3d72bef69191 1819 uint32_t trace_flags)
charlesmn 0:3d72bef69191 1820 {
charlesmn 0:3d72bef69191 1821
charlesmn 0:3d72bef69191 1822
charlesmn 0:3d72bef69191 1823 char fp_text[VL53L1_MAX_STRING_LENGTH];
charlesmn 0:3d72bef69191 1824
charlesmn 0:3d72bef69191 1825 trace_print(
charlesmn 0:3d72bef69191 1826 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 1827 "%s%s = %u\n",
charlesmn 0:3d72bef69191 1828 pprefix,
charlesmn 0:3d72bef69191 1829 "preset_mode",
charlesmn 0:3d72bef69191 1830 pdata->preset_mode);
charlesmn 0:3d72bef69191 1831
charlesmn 0:3d72bef69191 1832 trace_print(
charlesmn 0:3d72bef69191 1833 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 1834 "%s%s = %u\n",
charlesmn 0:3d72bef69191 1835 pprefix,
charlesmn 0:3d72bef69191 1836 "dss_config__roi_mode_control",
charlesmn 0:3d72bef69191 1837 pdata->dss_config__roi_mode_control);
charlesmn 0:3d72bef69191 1838
charlesmn 0:3d72bef69191 1839 VL53L1_signed_fixed_point_sprintf(
charlesmn 0:3d72bef69191 1840 (int32_t)pdata->dss_config__manual_effective_spads_select,
charlesmn 0:3d72bef69191 1841 8,
charlesmn 0:3d72bef69191 1842 VL53L1_MAX_STRING_LENGTH,
charlesmn 0:3d72bef69191 1843 fp_text);
charlesmn 0:3d72bef69191 1844
charlesmn 0:3d72bef69191 1845 trace_print(
charlesmn 0:3d72bef69191 1846 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 1847 "%s%s = %s\n",
charlesmn 0:3d72bef69191 1848 pprefix,
charlesmn 0:3d72bef69191 1849 "dss_config__manual_effective_spads_select",
charlesmn 0:3d72bef69191 1850 fp_text);
charlesmn 0:3d72bef69191 1851
charlesmn 0:3d72bef69191 1852 trace_print(
charlesmn 0:3d72bef69191 1853 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 1854 "%s%s = %u\n",
charlesmn 0:3d72bef69191 1855 pprefix,
charlesmn 0:3d72bef69191 1856 "no_of_samples",
charlesmn 0:3d72bef69191 1857 pdata->no_of_samples);
charlesmn 0:3d72bef69191 1858
charlesmn 0:3d72bef69191 1859
charlesmn 0:3d72bef69191 1860 VL53L1_signed_fixed_point_sprintf(
charlesmn 0:3d72bef69191 1861 (int32_t)pdata->effective_spads,
charlesmn 0:3d72bef69191 1862 8,
charlesmn 0:3d72bef69191 1863 VL53L1_MAX_STRING_LENGTH,
charlesmn 0:3d72bef69191 1864 fp_text);
charlesmn 0:3d72bef69191 1865
charlesmn 0:3d72bef69191 1866 trace_print(
charlesmn 0:3d72bef69191 1867 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 1868 "%s%s = %s\n",
charlesmn 0:3d72bef69191 1869 pprefix,
charlesmn 0:3d72bef69191 1870 "effective_spads",
charlesmn 0:3d72bef69191 1871 fp_text);
charlesmn 0:3d72bef69191 1872
charlesmn 0:3d72bef69191 1873 VL53L1_signed_fixed_point_sprintf(
charlesmn 0:3d72bef69191 1874 (int32_t)pdata->peak_rate_mcps,
charlesmn 0:3d72bef69191 1875 7,
charlesmn 0:3d72bef69191 1876 VL53L1_MAX_STRING_LENGTH,
charlesmn 0:3d72bef69191 1877 fp_text);
charlesmn 0:3d72bef69191 1878
charlesmn 0:3d72bef69191 1879 trace_print(
charlesmn 0:3d72bef69191 1880 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 1881 "%s%s = %s\n",
charlesmn 0:3d72bef69191 1882 pprefix,
charlesmn 0:3d72bef69191 1883 "peak_rate_mcps",
charlesmn 0:3d72bef69191 1884 fp_text);
charlesmn 0:3d72bef69191 1885
charlesmn 0:3d72bef69191 1886 VL53L1_signed_fixed_point_sprintf(
charlesmn 0:3d72bef69191 1887 (int32_t)pdata->VL53L1_p_005,
charlesmn 0:3d72bef69191 1888 2,
charlesmn 0:3d72bef69191 1889 VL53L1_MAX_STRING_LENGTH,
charlesmn 0:3d72bef69191 1890 fp_text);
charlesmn 0:3d72bef69191 1891
charlesmn 0:3d72bef69191 1892 trace_print(
charlesmn 0:3d72bef69191 1893 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 1894 "%s%s = %s\n",
charlesmn 0:3d72bef69191 1895 pprefix,
charlesmn 0:3d72bef69191 1896 "VL53L1_p_005",
charlesmn 0:3d72bef69191 1897 fp_text);
charlesmn 0:3d72bef69191 1898
charlesmn 0:3d72bef69191 1899 trace_print(
charlesmn 0:3d72bef69191 1900 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 1901 "%s%s = %d\n",
charlesmn 0:3d72bef69191 1902 pprefix,
charlesmn 0:3d72bef69191 1903 "median_range_mm",
charlesmn 0:3d72bef69191 1904 pdata->median_range_mm);
charlesmn 0:3d72bef69191 1905
charlesmn 0:3d72bef69191 1906 trace_print(
charlesmn 0:3d72bef69191 1907 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 1908 "%s%s = %d\n",
charlesmn 0:3d72bef69191 1909 pprefix,
charlesmn 0:3d72bef69191 1910 "range_mm_offset",
charlesmn 0:3d72bef69191 1911 pdata->range_mm_offset);
charlesmn 0:3d72bef69191 1912 }
charlesmn 0:3d72bef69191 1913
charlesmn 0:3d72bef69191 1914
charlesmn 0:3d72bef69191 1915 void VL53L1_print_cal_peak_rate_map(
charlesmn 0:3d72bef69191 1916 VL53L1_cal_peak_rate_map_t *pdata,
charlesmn 0:3d72bef69191 1917 char *pprefix,
charlesmn 0:3d72bef69191 1918 uint32_t trace_flags)
charlesmn 0:3d72bef69191 1919 {
charlesmn 0:3d72bef69191 1920
charlesmn 0:3d72bef69191 1921
charlesmn 0:3d72bef69191 1922 char fp_text[VL53L1_MAX_STRING_LENGTH];
charlesmn 0:3d72bef69191 1923 char pre_text[VL53L1_MAX_STRING_LENGTH];
charlesmn 0:3d72bef69191 1924 char *ppre_text = &(pre_text[0]);
charlesmn 0:3d72bef69191 1925
charlesmn 0:3d72bef69191 1926 uint8_t i = 0;
charlesmn 0:3d72bef69191 1927 uint8_t x = 0;
charlesmn 0:3d72bef69191 1928 uint8_t y = 0;
charlesmn 0:3d72bef69191 1929
charlesmn 0:3d72bef69191 1930 VL53L1_signed_fixed_point_sprintf(
charlesmn 0:3d72bef69191 1931 (int32_t)pdata->cal_distance_mm,
charlesmn 0:3d72bef69191 1932 2,
charlesmn 0:3d72bef69191 1933 VL53L1_MAX_STRING_LENGTH,
charlesmn 0:3d72bef69191 1934 fp_text);
charlesmn 0:3d72bef69191 1935
charlesmn 0:3d72bef69191 1936 trace_print(
charlesmn 0:3d72bef69191 1937 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 1938 "%s%s = %s\n",
charlesmn 0:3d72bef69191 1939 pprefix,
charlesmn 0:3d72bef69191 1940 "cal_distance_mm",
charlesmn 0:3d72bef69191 1941 fp_text);
charlesmn 0:3d72bef69191 1942
charlesmn 0:3d72bef69191 1943 VL53L1_signed_fixed_point_sprintf(
charlesmn 0:3d72bef69191 1944 (int32_t)pdata->cal_reflectance_pc,
charlesmn 0:3d72bef69191 1945 2,
charlesmn 0:3d72bef69191 1946 VL53L1_MAX_STRING_LENGTH,
charlesmn 0:3d72bef69191 1947 fp_text);
charlesmn 0:3d72bef69191 1948
charlesmn 0:3d72bef69191 1949 trace_print(
charlesmn 0:3d72bef69191 1950 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 1951 "%s%s = %s\n",
charlesmn 0:3d72bef69191 1952 pprefix,
charlesmn 0:3d72bef69191 1953 "cal_reflectance_pc",
charlesmn 0:3d72bef69191 1954 fp_text);
charlesmn 0:3d72bef69191 1955
charlesmn 0:3d72bef69191 1956 trace_print(
charlesmn 0:3d72bef69191 1957 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 1958 "%s%s = %u\n",
charlesmn 0:3d72bef69191 1959 pprefix,
charlesmn 0:3d72bef69191 1960 "max_samples",
charlesmn 0:3d72bef69191 1961 pdata->max_samples);
charlesmn 0:3d72bef69191 1962
charlesmn 0:3d72bef69191 1963 trace_print(
charlesmn 0:3d72bef69191 1964 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 1965 "%s%s = %u\n",
charlesmn 0:3d72bef69191 1966 pprefix,
charlesmn 0:3d72bef69191 1967 "width",
charlesmn 0:3d72bef69191 1968 pdata->width);
charlesmn 0:3d72bef69191 1969
charlesmn 0:3d72bef69191 1970 trace_print(
charlesmn 0:3d72bef69191 1971 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 1972 "%s%s = %u\n",
charlesmn 0:3d72bef69191 1973 pprefix,
charlesmn 0:3d72bef69191 1974 "height",
charlesmn 0:3d72bef69191 1975 pdata->height);
charlesmn 0:3d72bef69191 1976
charlesmn 0:3d72bef69191 1977 i = 0;
charlesmn 0:3d72bef69191 1978 for (y = 0; y < pdata->height; y++) {
charlesmn 0:3d72bef69191 1979 for (x = 0; x < pdata->width; x++) {
charlesmn 0:3d72bef69191 1980
charlesmn 0:3d72bef69191 1981 sprintf(ppre_text, "%speak_rate_mcps[%u]", pprefix, i);
charlesmn 0:3d72bef69191 1982
charlesmn 0:3d72bef69191 1983 VL53L1_signed_fixed_point_sprintf(
charlesmn 0:3d72bef69191 1984 (int32_t)pdata->peak_rate_mcps[i],
charlesmn 0:3d72bef69191 1985 7,
charlesmn 0:3d72bef69191 1986 VL53L1_MAX_STRING_LENGTH,
charlesmn 0:3d72bef69191 1987 fp_text);
charlesmn 0:3d72bef69191 1988
charlesmn 0:3d72bef69191 1989 trace_print(
charlesmn 0:3d72bef69191 1990 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 1991 "%s = %s\n",
charlesmn 0:3d72bef69191 1992 ppre_text,
charlesmn 0:3d72bef69191 1993 fp_text);
charlesmn 0:3d72bef69191 1994
charlesmn 0:3d72bef69191 1995 i++;
charlesmn 0:3d72bef69191 1996 }
charlesmn 0:3d72bef69191 1997 }
charlesmn 0:3d72bef69191 1998 }
charlesmn 0:3d72bef69191 1999
charlesmn 0:3d72bef69191 2000 void VL53L1_print_additional_data(
charlesmn 0:3d72bef69191 2001 VL53L1_additional_data_t *pdata,
charlesmn 0:3d72bef69191 2002 char *pprefix,
charlesmn 0:3d72bef69191 2003 uint32_t trace_flags)
charlesmn 0:3d72bef69191 2004 {
charlesmn 0:3d72bef69191 2005
charlesmn 0:3d72bef69191 2006
charlesmn 0:3d72bef69191 2007
charlesmn 0:3d72bef69191 2008 char fp_text[VL53L1_MAX_STRING_LENGTH];
charlesmn 0:3d72bef69191 2009 char pre_text[VL53L1_MAX_STRING_LENGTH];
charlesmn 0:3d72bef69191 2010 char *ppre_text = &(pre_text[0]);
charlesmn 0:3d72bef69191 2011
charlesmn 0:3d72bef69191 2012 trace_print(
charlesmn 0:3d72bef69191 2013 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 2014 "%s%s = %u\n",
charlesmn 0:3d72bef69191 2015 pprefix,
charlesmn 0:3d72bef69191 2016 "preset_mode",
charlesmn 0:3d72bef69191 2017 pdata->preset_mode);
charlesmn 0:3d72bef69191 2018
charlesmn 0:3d72bef69191 2019 trace_print(
charlesmn 0:3d72bef69191 2020 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 2021 "%s%s = %u\n",
charlesmn 0:3d72bef69191 2022 pprefix,
charlesmn 0:3d72bef69191 2023 "zone_preset",
charlesmn 0:3d72bef69191 2024 pdata->zone_preset);
charlesmn 0:3d72bef69191 2025
charlesmn 0:3d72bef69191 2026 trace_print(
charlesmn 0:3d72bef69191 2027 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 2028 "%s%s = %u\n",
charlesmn 0:3d72bef69191 2029 pprefix,
charlesmn 0:3d72bef69191 2030 "measurement_mode",
charlesmn 0:3d72bef69191 2031 pdata->measurement_mode);
charlesmn 0:3d72bef69191 2032
charlesmn 0:3d72bef69191 2033 trace_print(
charlesmn 0:3d72bef69191 2034 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 2035 "%s%s = %u\n",
charlesmn 0:3d72bef69191 2036 pprefix,
charlesmn 0:3d72bef69191 2037 "offset_calibration_mode",
charlesmn 0:3d72bef69191 2038 pdata->offset_calibration_mode);
charlesmn 0:3d72bef69191 2039
charlesmn 0:3d72bef69191 2040 trace_print(
charlesmn 0:3d72bef69191 2041 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 2042 "%s%s = %u\n",
charlesmn 0:3d72bef69191 2043 pprefix,
charlesmn 0:3d72bef69191 2044 "offset_correction_mode",
charlesmn 0:3d72bef69191 2045 pdata->offset_correction_mode);
charlesmn 0:3d72bef69191 2046
charlesmn 0:3d72bef69191 2047 trace_print(
charlesmn 0:3d72bef69191 2048 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 2049 "%s%s = %u\n",
charlesmn 0:3d72bef69191 2050 pprefix,
charlesmn 0:3d72bef69191 2051 "dmax_mode",
charlesmn 0:3d72bef69191 2052 pdata->dmax_mode);
charlesmn 0:3d72bef69191 2053
charlesmn 0:3d72bef69191 2054 trace_print(
charlesmn 0:3d72bef69191 2055 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 2056 "%s%s = %u\n",
charlesmn 0:3d72bef69191 2057 pprefix,
charlesmn 0:3d72bef69191 2058 "phasecal_config_timeout_us",
charlesmn 0:3d72bef69191 2059 pdata->phasecal_config_timeout_us);
charlesmn 0:3d72bef69191 2060
charlesmn 0:3d72bef69191 2061 trace_print(
charlesmn 0:3d72bef69191 2062 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 2063 "%s%s = %u\n",
charlesmn 0:3d72bef69191 2064 pprefix,
charlesmn 0:3d72bef69191 2065 "mm_config_timeout_us",
charlesmn 0:3d72bef69191 2066 pdata->mm_config_timeout_us);
charlesmn 0:3d72bef69191 2067
charlesmn 0:3d72bef69191 2068 trace_print(
charlesmn 0:3d72bef69191 2069 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 2070 "%s%s = %u\n",
charlesmn 0:3d72bef69191 2071 pprefix,
charlesmn 0:3d72bef69191 2072 "range_config_timeout_us",
charlesmn 0:3d72bef69191 2073 pdata->range_config_timeout_us);
charlesmn 0:3d72bef69191 2074
charlesmn 0:3d72bef69191 2075 trace_print(
charlesmn 0:3d72bef69191 2076 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 2077 "%s%s = %u\n",
charlesmn 0:3d72bef69191 2078 pprefix,
charlesmn 0:3d72bef69191 2079 "inter_measurement_period_ms",
charlesmn 0:3d72bef69191 2080 pdata->inter_measurement_period_ms);
charlesmn 0:3d72bef69191 2081
charlesmn 0:3d72bef69191 2082
charlesmn 0:3d72bef69191 2083 VL53L1_signed_fixed_point_sprintf(
charlesmn 0:3d72bef69191 2084 (int32_t)pdata->dss_config__target_total_rate_mcps,
charlesmn 0:3d72bef69191 2085 7,
charlesmn 0:3d72bef69191 2086 VL53L1_MAX_STRING_LENGTH,
charlesmn 0:3d72bef69191 2087 fp_text);
charlesmn 0:3d72bef69191 2088
charlesmn 0:3d72bef69191 2089 trace_print(
charlesmn 0:3d72bef69191 2090 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 2091 "%s%s = %s\n",
charlesmn 0:3d72bef69191 2092 pprefix,
charlesmn 0:3d72bef69191 2093 "dss_config__target_total_rate_mcps",
charlesmn 0:3d72bef69191 2094 fp_text);
charlesmn 0:3d72bef69191 2095
charlesmn 0:3d72bef69191 2096 sprintf(ppre_text, "%s VL53L1_p_010.", pprefix);
charlesmn 0:3d72bef69191 2097 VL53L1_print_histogram_bin_data(
charlesmn 0:3d72bef69191 2098 &pdata->VL53L1_p_010,
charlesmn 0:3d72bef69191 2099 ppre_text, trace_flags);
charlesmn 0:3d72bef69191 2100
charlesmn 0:3d72bef69191 2101
charlesmn 0:3d72bef69191 2102 }
charlesmn 0:3d72bef69191 2103
charlesmn 0:3d72bef69191 2104
charlesmn 0:3d72bef69191 2105 void VL53L1_print_additional_offset_cal_data(
charlesmn 0:3d72bef69191 2106 VL53L1_additional_offset_cal_data_t *pdata,
charlesmn 0:3d72bef69191 2107 char *pprefix,
charlesmn 0:3d72bef69191 2108 uint32_t trace_flags)
charlesmn 0:3d72bef69191 2109 {
charlesmn 0:3d72bef69191 2110
charlesmn 0:3d72bef69191 2111
charlesmn 0:3d72bef69191 2112 char fp_text[VL53L1_MAX_STRING_LENGTH];
charlesmn 0:3d72bef69191 2113
charlesmn 0:3d72bef69191 2114 VL53L1_signed_fixed_point_sprintf(
charlesmn 0:3d72bef69191 2115 (int32_t)pdata->result__mm_inner_actual_effective_spads,
charlesmn 0:3d72bef69191 2116 8,
charlesmn 0:3d72bef69191 2117 VL53L1_MAX_STRING_LENGTH,
charlesmn 0:3d72bef69191 2118 fp_text);
charlesmn 0:3d72bef69191 2119
charlesmn 0:3d72bef69191 2120 trace_print(
charlesmn 0:3d72bef69191 2121 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 2122 "%s%s = %s\n",
charlesmn 0:3d72bef69191 2123 pprefix,
charlesmn 0:3d72bef69191 2124 "result__mm_inner_actual_effective_spads",
charlesmn 0:3d72bef69191 2125 fp_text);
charlesmn 0:3d72bef69191 2126
charlesmn 0:3d72bef69191 2127 VL53L1_signed_fixed_point_sprintf(
charlesmn 0:3d72bef69191 2128 (int32_t)pdata->result__mm_outer_actual_effective_spads,
charlesmn 0:3d72bef69191 2129 8,
charlesmn 0:3d72bef69191 2130 VL53L1_MAX_STRING_LENGTH,
charlesmn 0:3d72bef69191 2131 fp_text);
charlesmn 0:3d72bef69191 2132
charlesmn 0:3d72bef69191 2133 trace_print(
charlesmn 0:3d72bef69191 2134 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 2135 "%s%s = %s\n",
charlesmn 0:3d72bef69191 2136 pprefix,
charlesmn 0:3d72bef69191 2137 "result__mm_outer_actual_effective_spads",
charlesmn 0:3d72bef69191 2138 fp_text);
charlesmn 0:3d72bef69191 2139
charlesmn 0:3d72bef69191 2140 VL53L1_signed_fixed_point_sprintf(
charlesmn 0:3d72bef69191 2141 (int32_t)pdata->result__mm_inner_peak_signal_count_rtn_mcps,
charlesmn 0:3d72bef69191 2142 7,
charlesmn 0:3d72bef69191 2143 VL53L1_MAX_STRING_LENGTH,
charlesmn 0:3d72bef69191 2144 fp_text);
charlesmn 0:3d72bef69191 2145
charlesmn 0:3d72bef69191 2146 trace_print(
charlesmn 0:3d72bef69191 2147 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 2148 "%s%s = %s\n",
charlesmn 0:3d72bef69191 2149 pprefix,
charlesmn 0:3d72bef69191 2150 "result__mm_inner_peak_signal_count_rtn_mcps",
charlesmn 0:3d72bef69191 2151 fp_text);
charlesmn 0:3d72bef69191 2152
charlesmn 0:3d72bef69191 2153 VL53L1_signed_fixed_point_sprintf(
charlesmn 0:3d72bef69191 2154 (int32_t)pdata->result__mm_outer_peak_signal_count_rtn_mcps,
charlesmn 0:3d72bef69191 2155 7,
charlesmn 0:3d72bef69191 2156 VL53L1_MAX_STRING_LENGTH,
charlesmn 0:3d72bef69191 2157 fp_text);
charlesmn 0:3d72bef69191 2158
charlesmn 0:3d72bef69191 2159 trace_print(
charlesmn 0:3d72bef69191 2160 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 2161 "%s%s = %s\n",
charlesmn 0:3d72bef69191 2162 pprefix,
charlesmn 0:3d72bef69191 2163 "result__mm_outer_peak_signal_count_rtn_mcps",
charlesmn 0:3d72bef69191 2164 fp_text);
charlesmn 0:3d72bef69191 2165 }
charlesmn 0:3d72bef69191 2166
charlesmn 0:3d72bef69191 2167
charlesmn 0:3d72bef69191 2168 void VL53L1_print_gain_calibration_data(
charlesmn 0:3d72bef69191 2169 VL53L1_gain_calibration_data_t *pdata,
charlesmn 0:3d72bef69191 2170 char *pprefix,
charlesmn 0:3d72bef69191 2171 uint32_t trace_flags)
charlesmn 0:3d72bef69191 2172 {
charlesmn 0:3d72bef69191 2173
charlesmn 0:3d72bef69191 2174
charlesmn 0:3d72bef69191 2175 char fp_text[VL53L1_MAX_STRING_LENGTH];
charlesmn 0:3d72bef69191 2176
charlesmn 0:3d72bef69191 2177 VL53L1_signed_fixed_point_sprintf(
charlesmn 0:3d72bef69191 2178 (int32_t)pdata->standard_ranging_gain_factor,
charlesmn 0:3d72bef69191 2179 11,
charlesmn 0:3d72bef69191 2180 VL53L1_MAX_STRING_LENGTH,
charlesmn 0:3d72bef69191 2181 fp_text);
charlesmn 0:3d72bef69191 2182
charlesmn 0:3d72bef69191 2183 trace_print(
charlesmn 0:3d72bef69191 2184 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 2185 "%s%s = %s\n",
charlesmn 0:3d72bef69191 2186 pprefix,
charlesmn 0:3d72bef69191 2187 "standard_ranging_gain_factor",
charlesmn 0:3d72bef69191 2188 fp_text);
charlesmn 0:3d72bef69191 2189
charlesmn 0:3d72bef69191 2190 VL53L1_signed_fixed_point_sprintf(
charlesmn 0:3d72bef69191 2191 (int32_t)pdata->histogram_ranging_gain_factor,
charlesmn 0:3d72bef69191 2192 11,
charlesmn 0:3d72bef69191 2193 VL53L1_MAX_STRING_LENGTH,
charlesmn 0:3d72bef69191 2194 fp_text);
charlesmn 0:3d72bef69191 2195
charlesmn 0:3d72bef69191 2196 trace_print(
charlesmn 0:3d72bef69191 2197 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 2198 "%s%s = %s\n",
charlesmn 0:3d72bef69191 2199 pprefix,
charlesmn 0:3d72bef69191 2200 "histogram_ranging_gain_factor",
charlesmn 0:3d72bef69191 2201 fp_text);
charlesmn 0:3d72bef69191 2202 }
charlesmn 0:3d72bef69191 2203
charlesmn 0:3d72bef69191 2204
charlesmn 0:3d72bef69191 2205 void VL53L1_print_zone_calibration_data(
charlesmn 0:3d72bef69191 2206 VL53L1_zone_calibration_data_t *pdata,
charlesmn 0:3d72bef69191 2207 char *pprefix,
charlesmn 0:3d72bef69191 2208 uint32_t trace_flags)
charlesmn 0:3d72bef69191 2209 {
charlesmn 0:3d72bef69191 2210
charlesmn 0:3d72bef69191 2211
charlesmn 0:3d72bef69191 2212 char fp_text[VL53L1_MAX_STRING_LENGTH];
charlesmn 0:3d72bef69191 2213
charlesmn 0:3d72bef69191 2214 trace_print(
charlesmn 0:3d72bef69191 2215 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 2216 "%s%s = %u\n",
charlesmn 0:3d72bef69191 2217 pprefix,
charlesmn 0:3d72bef69191 2218 "no_of_samples",
charlesmn 0:3d72bef69191 2219 pdata->no_of_samples);
charlesmn 0:3d72bef69191 2220
charlesmn 0:3d72bef69191 2221 VL53L1_signed_fixed_point_sprintf(
charlesmn 0:3d72bef69191 2222 (int32_t)pdata->effective_spads,
charlesmn 0:3d72bef69191 2223 8,
charlesmn 0:3d72bef69191 2224 VL53L1_MAX_STRING_LENGTH,
charlesmn 0:3d72bef69191 2225 fp_text);
charlesmn 0:3d72bef69191 2226
charlesmn 0:3d72bef69191 2227 trace_print(
charlesmn 0:3d72bef69191 2228 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 2229 "%s%s = %s\n",
charlesmn 0:3d72bef69191 2230 pprefix,
charlesmn 0:3d72bef69191 2231 "effective_spads",
charlesmn 0:3d72bef69191 2232 fp_text);
charlesmn 0:3d72bef69191 2233
charlesmn 0:3d72bef69191 2234 VL53L1_signed_fixed_point_sprintf(
charlesmn 0:3d72bef69191 2235 (int32_t)pdata->peak_rate_mcps,
charlesmn 0:3d72bef69191 2236 7,
charlesmn 0:3d72bef69191 2237 VL53L1_MAX_STRING_LENGTH,
charlesmn 0:3d72bef69191 2238 fp_text);
charlesmn 0:3d72bef69191 2239
charlesmn 0:3d72bef69191 2240 trace_print(
charlesmn 0:3d72bef69191 2241 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 2242 "%s%s = %s\n",
charlesmn 0:3d72bef69191 2243 pprefix,
charlesmn 0:3d72bef69191 2244 "peak_rate_mcps",
charlesmn 0:3d72bef69191 2245 fp_text);
charlesmn 0:3d72bef69191 2246
charlesmn 0:3d72bef69191 2247 VL53L1_signed_fixed_point_sprintf(
charlesmn 0:3d72bef69191 2248 (int32_t)pdata->VL53L1_p_014,
charlesmn 0:3d72bef69191 2249 11,
charlesmn 0:3d72bef69191 2250 VL53L1_MAX_STRING_LENGTH,
charlesmn 0:3d72bef69191 2251 fp_text);
charlesmn 0:3d72bef69191 2252
charlesmn 0:3d72bef69191 2253 trace_print(
charlesmn 0:3d72bef69191 2254 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 2255 "%s%s = %s\n",
charlesmn 0:3d72bef69191 2256 pprefix,
charlesmn 0:3d72bef69191 2257 "VL53L1_p_014",
charlesmn 0:3d72bef69191 2258 fp_text);
charlesmn 0:3d72bef69191 2259
charlesmn 0:3d72bef69191 2260 VL53L1_signed_fixed_point_sprintf(
charlesmn 0:3d72bef69191 2261 (int32_t)pdata->VL53L1_p_005,
charlesmn 0:3d72bef69191 2262 2,
charlesmn 0:3d72bef69191 2263 VL53L1_MAX_STRING_LENGTH,
charlesmn 0:3d72bef69191 2264 fp_text);
charlesmn 0:3d72bef69191 2265
charlesmn 0:3d72bef69191 2266 trace_print(
charlesmn 0:3d72bef69191 2267 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 2268 "%s%s = %s\n",
charlesmn 0:3d72bef69191 2269 pprefix,
charlesmn 0:3d72bef69191 2270 "VL53L1_p_005",
charlesmn 0:3d72bef69191 2271 fp_text);
charlesmn 0:3d72bef69191 2272
charlesmn 0:3d72bef69191 2273 VL53L1_signed_fixed_point_sprintf(
charlesmn 0:3d72bef69191 2274 (int32_t)pdata->median_range_mm,
charlesmn 0:3d72bef69191 2275 2,
charlesmn 0:3d72bef69191 2276 VL53L1_MAX_STRING_LENGTH,
charlesmn 0:3d72bef69191 2277 fp_text);
charlesmn 0:3d72bef69191 2278
charlesmn 0:3d72bef69191 2279 trace_print(
charlesmn 0:3d72bef69191 2280 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 2281 "%s%s = %s\n",
charlesmn 0:3d72bef69191 2282 pprefix,
charlesmn 0:3d72bef69191 2283 "median_range_mm",
charlesmn 0:3d72bef69191 2284 fp_text);
charlesmn 0:3d72bef69191 2285
charlesmn 0:3d72bef69191 2286 VL53L1_signed_fixed_point_sprintf(
charlesmn 0:3d72bef69191 2287 (int32_t)pdata->range_mm_offset,
charlesmn 0:3d72bef69191 2288 2,
charlesmn 0:3d72bef69191 2289 VL53L1_MAX_STRING_LENGTH,
charlesmn 0:3d72bef69191 2290 fp_text);
charlesmn 0:3d72bef69191 2291
charlesmn 0:3d72bef69191 2292 trace_print(
charlesmn 0:3d72bef69191 2293 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 2294 "%s%s = %s\n",
charlesmn 0:3d72bef69191 2295 pprefix,
charlesmn 0:3d72bef69191 2296 "range_mm_offset",
charlesmn 0:3d72bef69191 2297 fp_text);
charlesmn 0:3d72bef69191 2298 }
charlesmn 0:3d72bef69191 2299
charlesmn 0:3d72bef69191 2300
charlesmn 0:3d72bef69191 2301 void VL53L1_print_zone_calibration_results(
charlesmn 0:3d72bef69191 2302 VL53L1_zone_calibration_results_t *pdata,
charlesmn 0:3d72bef69191 2303 char *pprefix,
charlesmn 0:3d72bef69191 2304 uint32_t trace_flags)
charlesmn 0:3d72bef69191 2305 {
charlesmn 0:3d72bef69191 2306
charlesmn 0:3d72bef69191 2307
charlesmn 0:3d72bef69191 2308 char fp_text[VL53L1_MAX_STRING_LENGTH];
charlesmn 0:3d72bef69191 2309 char pre_text[VL53L1_MAX_STRING_LENGTH];
charlesmn 0:3d72bef69191 2310 char *ppre_text = &(pre_text[0]);
charlesmn 0:3d72bef69191 2311
charlesmn 0:3d72bef69191 2312 uint8_t i = 0;
charlesmn 0:3d72bef69191 2313
charlesmn 0:3d72bef69191 2314 trace_print(
charlesmn 0:3d72bef69191 2315 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 2316 "%s%s = %u\n",
charlesmn 0:3d72bef69191 2317 pprefix,
charlesmn 0:3d72bef69191 2318 "preset_mode",
charlesmn 0:3d72bef69191 2319 pdata->preset_mode);
charlesmn 0:3d72bef69191 2320
charlesmn 0:3d72bef69191 2321 trace_print(
charlesmn 0:3d72bef69191 2322 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 2323 "%s%s = %u\n",
charlesmn 0:3d72bef69191 2324 pprefix,
charlesmn 0:3d72bef69191 2325 "zone_preset",
charlesmn 0:3d72bef69191 2326 pdata->zone_preset);
charlesmn 0:3d72bef69191 2327
charlesmn 0:3d72bef69191 2328 trace_print(
charlesmn 0:3d72bef69191 2329 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 2330 "%s%s = %u\n",
charlesmn 0:3d72bef69191 2331 pprefix,
charlesmn 0:3d72bef69191 2332 "cal_distance_mm",
charlesmn 0:3d72bef69191 2333 pdata->cal_distance_mm);
charlesmn 0:3d72bef69191 2334
charlesmn 0:3d72bef69191 2335 VL53L1_signed_fixed_point_sprintf(
charlesmn 0:3d72bef69191 2336 (int32_t)pdata->cal_reflectance_pc,
charlesmn 0:3d72bef69191 2337 2,
charlesmn 0:3d72bef69191 2338 VL53L1_MAX_STRING_LENGTH,
charlesmn 0:3d72bef69191 2339 fp_text);
charlesmn 0:3d72bef69191 2340
charlesmn 0:3d72bef69191 2341 trace_print(
charlesmn 0:3d72bef69191 2342 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 2343 "%s%s = %s\n",
charlesmn 0:3d72bef69191 2344 pprefix,
charlesmn 0:3d72bef69191 2345 "cal_reflectance_pc",
charlesmn 0:3d72bef69191 2346 fp_text);
charlesmn 0:3d72bef69191 2347
charlesmn 0:3d72bef69191 2348 VL53L1_signed_fixed_point_sprintf(
charlesmn 0:3d72bef69191 2349 (int32_t)pdata->phasecal_result__reference_phase,
charlesmn 0:3d72bef69191 2350 11,
charlesmn 0:3d72bef69191 2351 VL53L1_MAX_STRING_LENGTH,
charlesmn 0:3d72bef69191 2352 fp_text);
charlesmn 0:3d72bef69191 2353
charlesmn 0:3d72bef69191 2354 trace_print(
charlesmn 0:3d72bef69191 2355 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 2356 "%s%s = %s\n",
charlesmn 0:3d72bef69191 2357 pprefix,
charlesmn 0:3d72bef69191 2358 "phasecal_result__reference_phase",
charlesmn 0:3d72bef69191 2359 fp_text);
charlesmn 0:3d72bef69191 2360
charlesmn 0:3d72bef69191 2361 VL53L1_signed_fixed_point_sprintf(
charlesmn 0:3d72bef69191 2362 (int32_t)pdata->zero_distance_phase,
charlesmn 0:3d72bef69191 2363 11,
charlesmn 0:3d72bef69191 2364 VL53L1_MAX_STRING_LENGTH,
charlesmn 0:3d72bef69191 2365 fp_text);
charlesmn 0:3d72bef69191 2366
charlesmn 0:3d72bef69191 2367 trace_print(
charlesmn 0:3d72bef69191 2368 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 2369 "%s%s = %s\n",
charlesmn 0:3d72bef69191 2370 pprefix,
charlesmn 0:3d72bef69191 2371 "zero_distance_phase",
charlesmn 0:3d72bef69191 2372 fp_text);
charlesmn 0:3d72bef69191 2373
charlesmn 0:3d72bef69191 2374 trace_print(
charlesmn 0:3d72bef69191 2375 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 2376 "%s%s = %u\n",
charlesmn 0:3d72bef69191 2377 pprefix,
charlesmn 0:3d72bef69191 2378 "cal_status",
charlesmn 0:3d72bef69191 2379 pdata->cal_status);
charlesmn 0:3d72bef69191 2380
charlesmn 0:3d72bef69191 2381 trace_print(
charlesmn 0:3d72bef69191 2382 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 2383 "%s%s = %u\n",
charlesmn 0:3d72bef69191 2384 pprefix,
charlesmn 0:3d72bef69191 2385 "max_zones",
charlesmn 0:3d72bef69191 2386 pdata->max_zones);
charlesmn 0:3d72bef69191 2387
charlesmn 0:3d72bef69191 2388 trace_print(
charlesmn 0:3d72bef69191 2389 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 2390 "%s%s = %u\n",
charlesmn 0:3d72bef69191 2391 pprefix,
charlesmn 0:3d72bef69191 2392 "active_zones",
charlesmn 0:3d72bef69191 2393 pdata->active_zones);
charlesmn 0:3d72bef69191 2394
charlesmn 0:3d72bef69191 2395 for (i = 0; i < pdata->active_zones; i++) {
charlesmn 0:3d72bef69191 2396 sprintf(ppre_text, "%sdata[%u].", pprefix, i);
charlesmn 0:3d72bef69191 2397 VL53L1_print_zone_calibration_data(
charlesmn 0:3d72bef69191 2398 &(pdata->VL53L1_p_002[i]),
charlesmn 0:3d72bef69191 2399 ppre_text, trace_flags);
charlesmn 0:3d72bef69191 2400 }
charlesmn 0:3d72bef69191 2401 }
charlesmn 0:3d72bef69191 2402
charlesmn 0:3d72bef69191 2403 void VL53L1_print_xtalk_range_results(
charlesmn 0:3d72bef69191 2404 VL53L1_xtalk_range_results_t *pdata,
charlesmn 0:3d72bef69191 2405 char *pprefix,
charlesmn 0:3d72bef69191 2406 uint32_t trace_flags)
charlesmn 0:3d72bef69191 2407 {
charlesmn 0:3d72bef69191 2408
charlesmn 0:3d72bef69191 2409
charlesmn 0:3d72bef69191 2410 char pre_text[VL53L1_MAX_STRING_LENGTH];
charlesmn 0:3d72bef69191 2411 char *ppre_text = &(pre_text[0]);
charlesmn 0:3d72bef69191 2412 uint8_t i = 0;
charlesmn 0:3d72bef69191 2413
charlesmn 0:3d72bef69191 2414 VL53L1_histogram_bin_data_t *pbin_data;
charlesmn 0:3d72bef69191 2415
charlesmn 0:3d72bef69191 2416 trace_print(
charlesmn 0:3d72bef69191 2417 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 2418 "%s%s = %u\n",
charlesmn 0:3d72bef69191 2419 pprefix,
charlesmn 0:3d72bef69191 2420 "cal_status",
charlesmn 0:3d72bef69191 2421 pdata->cal_status);
charlesmn 0:3d72bef69191 2422
charlesmn 0:3d72bef69191 2423 trace_print(
charlesmn 0:3d72bef69191 2424 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 2425 "%s%s = %u\n",
charlesmn 0:3d72bef69191 2426 pprefix,
charlesmn 0:3d72bef69191 2427 "num_of_samples_status",
charlesmn 0:3d72bef69191 2428 pdata->num_of_samples_status);
charlesmn 0:3d72bef69191 2429
charlesmn 0:3d72bef69191 2430 trace_print(
charlesmn 0:3d72bef69191 2431 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 2432 "%s%s = %u\n",
charlesmn 0:3d72bef69191 2433 pprefix,
charlesmn 0:3d72bef69191 2434 "zero_samples_status",
charlesmn 0:3d72bef69191 2435 pdata->zero_samples_status);
charlesmn 0:3d72bef69191 2436
charlesmn 0:3d72bef69191 2437 trace_print(
charlesmn 0:3d72bef69191 2438 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 2439 "%s%s = %u\n",
charlesmn 0:3d72bef69191 2440 pprefix,
charlesmn 0:3d72bef69191 2441 "max_sigma_status",
charlesmn 0:3d72bef69191 2442 pdata->max_sigma_status);
charlesmn 0:3d72bef69191 2443
charlesmn 0:3d72bef69191 2444 trace_print(
charlesmn 0:3d72bef69191 2445 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 2446 "%s%s = %u\n",
charlesmn 0:3d72bef69191 2447 pprefix,
charlesmn 0:3d72bef69191 2448 "max_results",
charlesmn 0:3d72bef69191 2449 pdata->max_results);
charlesmn 0:3d72bef69191 2450
charlesmn 0:3d72bef69191 2451 trace_print(
charlesmn 0:3d72bef69191 2452 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 2453 "%s%s = %u\n",
charlesmn 0:3d72bef69191 2454 pprefix,
charlesmn 0:3d72bef69191 2455 "active_results",
charlesmn 0:3d72bef69191 2456 pdata->active_results);
charlesmn 0:3d72bef69191 2457
charlesmn 0:3d72bef69191 2458 for (i = 0; i < pdata->active_results; i++) {
charlesmn 0:3d72bef69191 2459 sprintf(ppre_text, "%sdata[%u].", pprefix, i);
charlesmn 0:3d72bef69191 2460 VL53L1_print_xtalk_range_data(
charlesmn 0:3d72bef69191 2461 &(pdata->VL53L1_p_002[i]),
charlesmn 0:3d72bef69191 2462 ppre_text, trace_flags);
charlesmn 0:3d72bef69191 2463 }
charlesmn 0:3d72bef69191 2464
charlesmn 0:3d72bef69191 2465 sprintf(ppre_text, "%scentral_histogram_sum.", pprefix);
charlesmn 0:3d72bef69191 2466 VL53L1_print_histogram_bin_data(
charlesmn 0:3d72bef69191 2467 &pdata->central_histogram_sum,
charlesmn 0:3d72bef69191 2468 ppre_text, trace_flags);
charlesmn 0:3d72bef69191 2469
charlesmn 0:3d72bef69191 2470 sprintf(ppre_text, "%scentral_histogram_avg.", pprefix);
charlesmn 0:3d72bef69191 2471 VL53L1_print_histogram_bin_data(
charlesmn 0:3d72bef69191 2472 &pdata->central_histogram_avg,
charlesmn 0:3d72bef69191 2473 ppre_text, trace_flags);
charlesmn 0:3d72bef69191 2474
charlesmn 0:3d72bef69191 2475 trace_print(
charlesmn 0:3d72bef69191 2476 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 2477 "%s%s = %u\n",
charlesmn 0:3d72bef69191 2478 pprefix,
charlesmn 0:3d72bef69191 2479 "VL53L1_p_015",
charlesmn 0:3d72bef69191 2480 pdata->central_histogram__window_start);
charlesmn 0:3d72bef69191 2481
charlesmn 0:3d72bef69191 2482 trace_print(
charlesmn 0:3d72bef69191 2483 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 2484 "%s%s = %u\n",
charlesmn 0:3d72bef69191 2485 pprefix,
charlesmn 0:3d72bef69191 2486 "VL53L1_p_016",
charlesmn 0:3d72bef69191 2487 pdata->central_histogram__window_end);
charlesmn 0:3d72bef69191 2488
charlesmn 0:3d72bef69191 2489 pbin_data = &(pdata->histogram_avg_1[0]);
charlesmn 0:3d72bef69191 2490
charlesmn 0:3d72bef69191 2491 for (i = 0; i < 5; i++) {
charlesmn 0:3d72bef69191 2492 sprintf(ppre_text, "%shistogram_avg_1[%u].", pprefix, i);
charlesmn 0:3d72bef69191 2493 VL53L1_print_histogram_bin_data(
charlesmn 0:3d72bef69191 2494 pbin_data,
charlesmn 0:3d72bef69191 2495 ppre_text, trace_flags);
charlesmn 0:3d72bef69191 2496 pbin_data++;
charlesmn 0:3d72bef69191 2497 }
charlesmn 0:3d72bef69191 2498
charlesmn 0:3d72bef69191 2499 pbin_data = &(pdata->histogram_avg_2[0]);
charlesmn 0:3d72bef69191 2500
charlesmn 0:3d72bef69191 2501 for (i = 0; i < 5; i++) {
charlesmn 0:3d72bef69191 2502 sprintf(ppre_text, "%shistogram_avg_2[%u].", pprefix, i);
charlesmn 0:3d72bef69191 2503 VL53L1_print_histogram_bin_data(
charlesmn 0:3d72bef69191 2504 pbin_data,
charlesmn 0:3d72bef69191 2505 ppre_text, trace_flags);
charlesmn 0:3d72bef69191 2506 pbin_data++;
charlesmn 0:3d72bef69191 2507 }
charlesmn 0:3d72bef69191 2508
charlesmn 0:3d72bef69191 2509 pbin_data = &(pdata->xtalk_avg[0]);
charlesmn 0:3d72bef69191 2510
charlesmn 0:3d72bef69191 2511 for (i = 0; i < 5; i++) {
charlesmn 0:3d72bef69191 2512 sprintf(ppre_text, "%sxtalk_avg[%u].", pprefix, i);
charlesmn 0:3d72bef69191 2513 VL53L1_print_histogram_bin_data(
charlesmn 0:3d72bef69191 2514 pbin_data,
charlesmn 0:3d72bef69191 2515 ppre_text, trace_flags);
charlesmn 0:3d72bef69191 2516 pbin_data++;
charlesmn 0:3d72bef69191 2517 }
charlesmn 0:3d72bef69191 2518 }
charlesmn 0:3d72bef69191 2519
charlesmn 0:3d72bef69191 2520
charlesmn 0:3d72bef69191 2521 void VL53L1_print_xtalk_range_data(
charlesmn 0:3d72bef69191 2522 VL53L1_xtalk_range_data_t *pdata,
charlesmn 0:3d72bef69191 2523 char *pprefix,
charlesmn 0:3d72bef69191 2524 uint32_t trace_flags)
charlesmn 0:3d72bef69191 2525 {
charlesmn 0:3d72bef69191 2526
charlesmn 0:3d72bef69191 2527
charlesmn 0:3d72bef69191 2528 char fp_text[VL53L1_MAX_STRING_LENGTH];
charlesmn 0:3d72bef69191 2529
charlesmn 0:3d72bef69191 2530 trace_print(
charlesmn 0:3d72bef69191 2531 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 2532 "%s%s = %u\n",
charlesmn 0:3d72bef69191 2533 pprefix,
charlesmn 0:3d72bef69191 2534 "no_of_samples",
charlesmn 0:3d72bef69191 2535 pdata->no_of_samples);
charlesmn 0:3d72bef69191 2536
charlesmn 0:3d72bef69191 2537 trace_print(
charlesmn 0:3d72bef69191 2538 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 2539 "%s%s = %d\n",
charlesmn 0:3d72bef69191 2540 pprefix,
charlesmn 0:3d72bef69191 2541 "signal_total_events_sum",
charlesmn 0:3d72bef69191 2542 pdata->signal_total_events_sum);
charlesmn 0:3d72bef69191 2543
charlesmn 0:3d72bef69191 2544 trace_print(
charlesmn 0:3d72bef69191 2545 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 2546 "%s%s = %d\n",
charlesmn 0:3d72bef69191 2547 pprefix,
charlesmn 0:3d72bef69191 2548 "signal_total_events_avg",
charlesmn 0:3d72bef69191 2549 pdata->signal_total_events_avg);
charlesmn 0:3d72bef69191 2550
charlesmn 0:3d72bef69191 2551 VL53L1_signed_fixed_point_sprintf(
charlesmn 0:3d72bef69191 2552 (int32_t)pdata->rate_per_spad_kcps_sum,
charlesmn 0:3d72bef69191 2553 11,
charlesmn 0:3d72bef69191 2554 VL53L1_MAX_STRING_LENGTH,
charlesmn 0:3d72bef69191 2555 fp_text);
charlesmn 0:3d72bef69191 2556
charlesmn 0:3d72bef69191 2557 trace_print(
charlesmn 0:3d72bef69191 2558 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 2559 "%s%s = %s\n",
charlesmn 0:3d72bef69191 2560 pprefix,
charlesmn 0:3d72bef69191 2561 "rate_per_spad_kcps_sum",
charlesmn 0:3d72bef69191 2562 fp_text);
charlesmn 0:3d72bef69191 2563
charlesmn 0:3d72bef69191 2564
charlesmn 0:3d72bef69191 2565 VL53L1_signed_fixed_point_sprintf(
charlesmn 0:3d72bef69191 2566 (int32_t)pdata->rate_per_spad_kcps_avg,
charlesmn 0:3d72bef69191 2567 11,
charlesmn 0:3d72bef69191 2568 VL53L1_MAX_STRING_LENGTH,
charlesmn 0:3d72bef69191 2569 fp_text);
charlesmn 0:3d72bef69191 2570
charlesmn 0:3d72bef69191 2571 trace_print(
charlesmn 0:3d72bef69191 2572 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 2573 "%s%s = %s\n",
charlesmn 0:3d72bef69191 2574 pprefix,
charlesmn 0:3d72bef69191 2575 "rate_per_spad_kcps_avg",
charlesmn 0:3d72bef69191 2576 fp_text);
charlesmn 0:3d72bef69191 2577 }
charlesmn 0:3d72bef69191 2578
charlesmn 0:3d72bef69191 2579
charlesmn 0:3d72bef69191 2580 void VL53L1_print_xtalk_calibration_results(
charlesmn 0:3d72bef69191 2581 VL53L1_xtalk_calibration_results_t *pdata,
charlesmn 0:3d72bef69191 2582 char *pprefix,
charlesmn 0:3d72bef69191 2583 uint32_t trace_flags)
charlesmn 0:3d72bef69191 2584 {
charlesmn 0:3d72bef69191 2585
charlesmn 0:3d72bef69191 2586
charlesmn 0:3d72bef69191 2587 char fp_text[VL53L1_MAX_STRING_LENGTH];
charlesmn 0:3d72bef69191 2588 int16_t tmpi16;
charlesmn 0:3d72bef69191 2589
charlesmn 0:3d72bef69191 2590 VL53L1_signed_fixed_point_sprintf(
charlesmn 0:3d72bef69191 2591 (int32_t)pdata->algo__crosstalk_compensation_plane_offset_kcps,
charlesmn 0:3d72bef69191 2592 9,
charlesmn 0:3d72bef69191 2593 VL53L1_MAX_STRING_LENGTH,
charlesmn 0:3d72bef69191 2594 fp_text);
charlesmn 0:3d72bef69191 2595
charlesmn 0:3d72bef69191 2596 trace_print(
charlesmn 0:3d72bef69191 2597 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 2598 "%s%s = %s\n",
charlesmn 0:3d72bef69191 2599 pprefix,
charlesmn 0:3d72bef69191 2600 "algo__crosstalk_compensation_plane_offset_kcps",
charlesmn 0:3d72bef69191 2601 fp_text);
charlesmn 0:3d72bef69191 2602
charlesmn 0:3d72bef69191 2603 tmpi16 = pdata->algo__crosstalk_compensation_x_plane_gradient_kcps;
charlesmn 0:3d72bef69191 2604 VL53L1_signed_fixed_point_sprintf(
charlesmn 0:3d72bef69191 2605 (int32_t)tmpi16,
charlesmn 0:3d72bef69191 2606 11,
charlesmn 0:3d72bef69191 2607 VL53L1_MAX_STRING_LENGTH,
charlesmn 0:3d72bef69191 2608 fp_text);
charlesmn 0:3d72bef69191 2609
charlesmn 0:3d72bef69191 2610 trace_print(
charlesmn 0:3d72bef69191 2611 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 2612 "%s%s = %s\n",
charlesmn 0:3d72bef69191 2613 pprefix,
charlesmn 0:3d72bef69191 2614 "algo__crosstalk_compensation_x_plane_gradient_kcps",
charlesmn 0:3d72bef69191 2615 fp_text);
charlesmn 0:3d72bef69191 2616
charlesmn 0:3d72bef69191 2617 tmpi16 = pdata->algo__crosstalk_compensation_y_plane_gradient_kcps;
charlesmn 0:3d72bef69191 2618 VL53L1_signed_fixed_point_sprintf(
charlesmn 0:3d72bef69191 2619 (int32_t)tmpi16,
charlesmn 0:3d72bef69191 2620 11,
charlesmn 0:3d72bef69191 2621 VL53L1_MAX_STRING_LENGTH,
charlesmn 0:3d72bef69191 2622 fp_text);
charlesmn 0:3d72bef69191 2623
charlesmn 0:3d72bef69191 2624 trace_print(
charlesmn 0:3d72bef69191 2625 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 2626 "%s%s = %s\n",
charlesmn 0:3d72bef69191 2627 pprefix,
charlesmn 0:3d72bef69191 2628 "algo__crosstalk_compensation_y_plane_gradient_kcps",
charlesmn 0:3d72bef69191 2629 fp_text);
charlesmn 0:3d72bef69191 2630 }
charlesmn 0:3d72bef69191 2631
charlesmn 0:3d72bef69191 2632
charlesmn 0:3d72bef69191 2633 void VL53L1_print_xtalk_config(
charlesmn 0:3d72bef69191 2634 VL53L1_xtalk_config_t *pdata,
charlesmn 0:3d72bef69191 2635 char *pprefix,
charlesmn 0:3d72bef69191 2636 uint32_t trace_flags)
charlesmn 0:3d72bef69191 2637 {
charlesmn 0:3d72bef69191 2638
charlesmn 0:3d72bef69191 2639
charlesmn 0:3d72bef69191 2640 char fp_text[VL53L1_MAX_STRING_LENGTH];
charlesmn 0:3d72bef69191 2641 int16_t tmpi16;
charlesmn 0:3d72bef69191 2642
charlesmn 0:3d72bef69191 2643 VL53L1_signed_fixed_point_sprintf(
charlesmn 0:3d72bef69191 2644 (int32_t)pdata->algo__crosstalk_compensation_plane_offset_kcps,
charlesmn 0:3d72bef69191 2645 9,
charlesmn 0:3d72bef69191 2646 VL53L1_MAX_STRING_LENGTH,
charlesmn 0:3d72bef69191 2647 fp_text);
charlesmn 0:3d72bef69191 2648
charlesmn 0:3d72bef69191 2649 trace_print(
charlesmn 0:3d72bef69191 2650 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 2651 "%s%s = %s\n",
charlesmn 0:3d72bef69191 2652 pprefix,
charlesmn 0:3d72bef69191 2653 "algo__crosstalk_compensation_plane_offset_kcps",
charlesmn 0:3d72bef69191 2654 fp_text);
charlesmn 0:3d72bef69191 2655
charlesmn 0:3d72bef69191 2656 tmpi16 = pdata->algo__crosstalk_compensation_x_plane_gradient_kcps;
charlesmn 0:3d72bef69191 2657 VL53L1_signed_fixed_point_sprintf(
charlesmn 0:3d72bef69191 2658 (int32_t)tmpi16,
charlesmn 0:3d72bef69191 2659 11,
charlesmn 0:3d72bef69191 2660 VL53L1_MAX_STRING_LENGTH,
charlesmn 0:3d72bef69191 2661 fp_text);
charlesmn 0:3d72bef69191 2662
charlesmn 0:3d72bef69191 2663 trace_print(
charlesmn 0:3d72bef69191 2664 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 2665 "%s%s = %s\n",
charlesmn 0:3d72bef69191 2666 pprefix,
charlesmn 0:3d72bef69191 2667 "algo__crosstalk_compensation_x_plane_gradient_kcps",
charlesmn 0:3d72bef69191 2668 fp_text);
charlesmn 0:3d72bef69191 2669
charlesmn 0:3d72bef69191 2670 tmpi16 = pdata->algo__crosstalk_compensation_y_plane_gradient_kcps;
charlesmn 0:3d72bef69191 2671 VL53L1_signed_fixed_point_sprintf(
charlesmn 0:3d72bef69191 2672 (int32_t)tmpi16,
charlesmn 0:3d72bef69191 2673 11,
charlesmn 0:3d72bef69191 2674 VL53L1_MAX_STRING_LENGTH,
charlesmn 0:3d72bef69191 2675 fp_text);
charlesmn 0:3d72bef69191 2676
charlesmn 0:3d72bef69191 2677 trace_print(
charlesmn 0:3d72bef69191 2678 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 2679 "%s%s = %s\n",
charlesmn 0:3d72bef69191 2680 pprefix,
charlesmn 0:3d72bef69191 2681 "algo__crosstalk_compensation_y_plane_gradient_kcps",
charlesmn 0:3d72bef69191 2682 fp_text);
charlesmn 0:3d72bef69191 2683
charlesmn 0:3d72bef69191 2684 trace_print(
charlesmn 0:3d72bef69191 2685 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 2686 "%s%s = %u\n",
charlesmn 0:3d72bef69191 2687 pprefix,
charlesmn 0:3d72bef69191 2688 "global_crosstalk_compensation_enable",
charlesmn 0:3d72bef69191 2689 pdata->global_crosstalk_compensation_enable);
charlesmn 0:3d72bef69191 2690
charlesmn 0:3d72bef69191 2691 VL53L1_signed_fixed_point_sprintf(
charlesmn 0:3d72bef69191 2692 (int32_t)pdata->histogram_mode_crosstalk_margin_kcps,
charlesmn 0:3d72bef69191 2693 9,
charlesmn 0:3d72bef69191 2694 VL53L1_MAX_STRING_LENGTH,
charlesmn 0:3d72bef69191 2695 fp_text);
charlesmn 0:3d72bef69191 2696
charlesmn 0:3d72bef69191 2697 trace_print(
charlesmn 0:3d72bef69191 2698 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 2699 "%s%s = %s\n",
charlesmn 0:3d72bef69191 2700 pprefix,
charlesmn 0:3d72bef69191 2701 "histogram_mode_crosstalk_margin_kcps",
charlesmn 0:3d72bef69191 2702 fp_text);
charlesmn 0:3d72bef69191 2703
charlesmn 0:3d72bef69191 2704 VL53L1_signed_fixed_point_sprintf(
charlesmn 0:3d72bef69191 2705 (int32_t)pdata->lite_mode_crosstalk_margin_kcps,
charlesmn 0:3d72bef69191 2706 9,
charlesmn 0:3d72bef69191 2707 VL53L1_MAX_STRING_LENGTH,
charlesmn 0:3d72bef69191 2708 fp_text);
charlesmn 0:3d72bef69191 2709
charlesmn 0:3d72bef69191 2710 trace_print(
charlesmn 0:3d72bef69191 2711 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 2712 "%s%s = %s\n",
charlesmn 0:3d72bef69191 2713 pprefix,
charlesmn 0:3d72bef69191 2714 "lite_mode_crosstalk_margin_kcps",
charlesmn 0:3d72bef69191 2715 fp_text);
charlesmn 0:3d72bef69191 2716
charlesmn 0:3d72bef69191 2717 VL53L1_signed_fixed_point_sprintf(
charlesmn 0:3d72bef69191 2718 (int32_t)pdata->crosstalk_range_ignore_threshold_mult,
charlesmn 0:3d72bef69191 2719 5,
charlesmn 0:3d72bef69191 2720 VL53L1_MAX_STRING_LENGTH,
charlesmn 0:3d72bef69191 2721 fp_text);
charlesmn 0:3d72bef69191 2722
charlesmn 0:3d72bef69191 2723 trace_print(
charlesmn 0:3d72bef69191 2724 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 2725 "%s%s = %s\n",
charlesmn 0:3d72bef69191 2726 pprefix,
charlesmn 0:3d72bef69191 2727 "crosstalk_range_ignore_threshold_mult",
charlesmn 0:3d72bef69191 2728 fp_text);
charlesmn 0:3d72bef69191 2729
charlesmn 0:3d72bef69191 2730
charlesmn 0:3d72bef69191 2731 VL53L1_signed_fixed_point_sprintf(
charlesmn 0:3d72bef69191 2732 (int32_t)pdata->crosstalk_range_ignore_threshold_rate_mcps,
charlesmn 0:3d72bef69191 2733 13,
charlesmn 0:3d72bef69191 2734 VL53L1_MAX_STRING_LENGTH,
charlesmn 0:3d72bef69191 2735 fp_text);
charlesmn 0:3d72bef69191 2736
charlesmn 0:3d72bef69191 2737 trace_print(
charlesmn 0:3d72bef69191 2738 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 2739 "%s%s = %s\n",
charlesmn 0:3d72bef69191 2740 pprefix,
charlesmn 0:3d72bef69191 2741 "crosstalk_range_ignore_threshold_rate_mcps",
charlesmn 0:3d72bef69191 2742 fp_text);
charlesmn 0:3d72bef69191 2743
charlesmn 0:3d72bef69191 2744 trace_print(
charlesmn 0:3d72bef69191 2745 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 2746 "%s%s = %u\n",
charlesmn 0:3d72bef69191 2747 pprefix,
charlesmn 0:3d72bef69191 2748 "algo__crosstalk_detect_max_valid_range_mm",
charlesmn 0:3d72bef69191 2749 pdata->algo__crosstalk_detect_max_valid_range_mm);
charlesmn 0:3d72bef69191 2750
charlesmn 0:3d72bef69191 2751 trace_print(
charlesmn 0:3d72bef69191 2752 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 2753 "%s%s = %u\n",
charlesmn 0:3d72bef69191 2754 pprefix,
charlesmn 0:3d72bef69191 2755 "algo__crosstalk_detect_min_valid_range_mm",
charlesmn 0:3d72bef69191 2756 pdata->algo__crosstalk_detect_min_valid_range_mm);
charlesmn 0:3d72bef69191 2757
charlesmn 0:3d72bef69191 2758 VL53L1_signed_fixed_point_sprintf(
charlesmn 0:3d72bef69191 2759 (int32_t)pdata->algo__crosstalk_detect_max_valid_rate_kcps,
charlesmn 0:3d72bef69191 2760 7,
charlesmn 0:3d72bef69191 2761 VL53L1_MAX_STRING_LENGTH,
charlesmn 0:3d72bef69191 2762 fp_text);
charlesmn 0:3d72bef69191 2763
charlesmn 0:3d72bef69191 2764 trace_print(
charlesmn 0:3d72bef69191 2765 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 2766 "%s%s = %s\n",
charlesmn 0:3d72bef69191 2767 pprefix,
charlesmn 0:3d72bef69191 2768 "algo__crosstalk_detect_max_valid_rate_kcps",
charlesmn 0:3d72bef69191 2769 fp_text);
charlesmn 0:3d72bef69191 2770
charlesmn 0:3d72bef69191 2771 VL53L1_signed_fixed_point_sprintf(
charlesmn 0:3d72bef69191 2772 (int32_t)pdata->algo__crosstalk_detect_max_sigma_mm,
charlesmn 0:3d72bef69191 2773 2,
charlesmn 0:3d72bef69191 2774 VL53L1_MAX_STRING_LENGTH,
charlesmn 0:3d72bef69191 2775 fp_text);
charlesmn 0:3d72bef69191 2776
charlesmn 0:3d72bef69191 2777 trace_print(
charlesmn 0:3d72bef69191 2778 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 2779 "%s%s = %s\n",
charlesmn 0:3d72bef69191 2780 pprefix,
charlesmn 0:3d72bef69191 2781 "algo__crosstalk_detect_max_sigma_mm",
charlesmn 0:3d72bef69191 2782 fp_text);
charlesmn 0:3d72bef69191 2783
charlesmn 0:3d72bef69191 2784 }
charlesmn 0:3d72bef69191 2785
charlesmn 0:3d72bef69191 2786
charlesmn 0:3d72bef69191 2787 void VL53L1_print_xtalk_extract_config(
charlesmn 0:3d72bef69191 2788 VL53L1_xtalkextract_config_t *pdata,
charlesmn 0:3d72bef69191 2789 char *pprefix,
charlesmn 0:3d72bef69191 2790 uint32_t trace_flags)
charlesmn 0:3d72bef69191 2791 {
charlesmn 0:3d72bef69191 2792
charlesmn 0:3d72bef69191 2793
charlesmn 0:3d72bef69191 2794 char fp_text[VL53L1_MAX_STRING_LENGTH];
charlesmn 0:3d72bef69191 2795
charlesmn 0:3d72bef69191 2796
charlesmn 0:3d72bef69191 2797 VL53L1_signed_fixed_point_sprintf(
charlesmn 0:3d72bef69191 2798 (int32_t)pdata->dss_config__target_total_rate_mcps,
charlesmn 0:3d72bef69191 2799 7,
charlesmn 0:3d72bef69191 2800 VL53L1_MAX_STRING_LENGTH,
charlesmn 0:3d72bef69191 2801 fp_text);
charlesmn 0:3d72bef69191 2802
charlesmn 0:3d72bef69191 2803 trace_print(
charlesmn 0:3d72bef69191 2804 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 2805 "%s%s = %s\n",
charlesmn 0:3d72bef69191 2806 pprefix,
charlesmn 0:3d72bef69191 2807 "dss_config__target_total_rate_mcps",
charlesmn 0:3d72bef69191 2808 fp_text);
charlesmn 0:3d72bef69191 2809
charlesmn 0:3d72bef69191 2810 trace_print(
charlesmn 0:3d72bef69191 2811 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 2812 "%s%s = %u\n",
charlesmn 0:3d72bef69191 2813 pprefix,
charlesmn 0:3d72bef69191 2814 "mm_config_timeout_us",
charlesmn 0:3d72bef69191 2815 pdata->mm_config_timeout_us);
charlesmn 0:3d72bef69191 2816
charlesmn 0:3d72bef69191 2817 trace_print(
charlesmn 0:3d72bef69191 2818 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 2819 "%s%s = %u\n",
charlesmn 0:3d72bef69191 2820 pprefix,
charlesmn 0:3d72bef69191 2821 "range_config_timeout_us",
charlesmn 0:3d72bef69191 2822 pdata->range_config_timeout_us);
charlesmn 0:3d72bef69191 2823
charlesmn 0:3d72bef69191 2824 trace_print(
charlesmn 0:3d72bef69191 2825 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 2826 "%s%s = %u\n",
charlesmn 0:3d72bef69191 2827 pprefix,
charlesmn 0:3d72bef69191 2828 "num_of_samples",
charlesmn 0:3d72bef69191 2829 pdata->num_of_samples);
charlesmn 0:3d72bef69191 2830
charlesmn 0:3d72bef69191 2831
charlesmn 0:3d72bef69191 2832 trace_print(
charlesmn 0:3d72bef69191 2833 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 2834 "%s%s = %u\n",
charlesmn 0:3d72bef69191 2835 pprefix,
charlesmn 0:3d72bef69191 2836 "algo__crosstalk_extract_max_valid_range_mm",
charlesmn 0:3d72bef69191 2837 pdata->algo__crosstalk_extract_max_valid_range_mm);
charlesmn 0:3d72bef69191 2838
charlesmn 0:3d72bef69191 2839 trace_print(
charlesmn 0:3d72bef69191 2840 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 2841 "%s%s = %u\n",
charlesmn 0:3d72bef69191 2842 pprefix,
charlesmn 0:3d72bef69191 2843 "algo__crosstalk_extract_min_valid_range_mm",
charlesmn 0:3d72bef69191 2844 pdata->algo__crosstalk_extract_min_valid_range_mm);
charlesmn 0:3d72bef69191 2845
charlesmn 0:3d72bef69191 2846 VL53L1_signed_fixed_point_sprintf(
charlesmn 0:3d72bef69191 2847 (int32_t)pdata->algo__crosstalk_extract_max_valid_rate_kcps,
charlesmn 0:3d72bef69191 2848 9,
charlesmn 0:3d72bef69191 2849 VL53L1_MAX_STRING_LENGTH,
charlesmn 0:3d72bef69191 2850 fp_text);
charlesmn 0:3d72bef69191 2851
charlesmn 0:3d72bef69191 2852 trace_print(
charlesmn 0:3d72bef69191 2853 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 2854 "%s%s = %s\n",
charlesmn 0:3d72bef69191 2855 pprefix,
charlesmn 0:3d72bef69191 2856 "algo__crosstalk_extract_max_valid_rate_kcps",
charlesmn 0:3d72bef69191 2857 fp_text);
charlesmn 0:3d72bef69191 2858
charlesmn 0:3d72bef69191 2859 VL53L1_signed_fixed_point_sprintf(
charlesmn 0:3d72bef69191 2860 (int32_t)pdata->algo__crosstalk_extract_max_sigma_mm,
charlesmn 0:3d72bef69191 2861 2,
charlesmn 0:3d72bef69191 2862 VL53L1_MAX_STRING_LENGTH,
charlesmn 0:3d72bef69191 2863 fp_text);
charlesmn 0:3d72bef69191 2864
charlesmn 0:3d72bef69191 2865 trace_print(
charlesmn 0:3d72bef69191 2866 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 2867 "%s%s = %s\n",
charlesmn 0:3d72bef69191 2868 pprefix,
charlesmn 0:3d72bef69191 2869 "algo__crosstalk_extract_max_sigma_mm",
charlesmn 0:3d72bef69191 2870 fp_text);
charlesmn 0:3d72bef69191 2871
charlesmn 0:3d72bef69191 2872 }
charlesmn 0:3d72bef69191 2873
charlesmn 0:3d72bef69191 2874
charlesmn 0:3d72bef69191 2875 void VL53L1_print_zone_cal_config(
charlesmn 0:3d72bef69191 2876 VL53L1_zonecal_config_t *pdata,
charlesmn 0:3d72bef69191 2877 char *pprefix,
charlesmn 0:3d72bef69191 2878 uint32_t trace_flags)
charlesmn 0:3d72bef69191 2879 {
charlesmn 0:3d72bef69191 2880
charlesmn 0:3d72bef69191 2881
charlesmn 0:3d72bef69191 2882 char fp_text[VL53L1_MAX_STRING_LENGTH];
charlesmn 0:3d72bef69191 2883
charlesmn 0:3d72bef69191 2884 VL53L1_signed_fixed_point_sprintf(
charlesmn 0:3d72bef69191 2885 (int32_t)pdata->dss_config__target_total_rate_mcps,
charlesmn 0:3d72bef69191 2886 7,
charlesmn 0:3d72bef69191 2887 VL53L1_MAX_STRING_LENGTH,
charlesmn 0:3d72bef69191 2888 fp_text);
charlesmn 0:3d72bef69191 2889
charlesmn 0:3d72bef69191 2890 trace_print(
charlesmn 0:3d72bef69191 2891 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 2892 "%s%s = %s\n",
charlesmn 0:3d72bef69191 2893 pprefix,
charlesmn 0:3d72bef69191 2894 "dss_config__target_total_rate_mcps",
charlesmn 0:3d72bef69191 2895 fp_text);
charlesmn 0:3d72bef69191 2896
charlesmn 0:3d72bef69191 2897
charlesmn 0:3d72bef69191 2898 trace_print(
charlesmn 0:3d72bef69191 2899 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 2900 "%s%s = %u\n",
charlesmn 0:3d72bef69191 2901 pprefix,
charlesmn 0:3d72bef69191 2902 "mm_config_timeout_us",
charlesmn 0:3d72bef69191 2903 pdata->mm_config_timeout_us);
charlesmn 0:3d72bef69191 2904
charlesmn 0:3d72bef69191 2905 trace_print(
charlesmn 0:3d72bef69191 2906 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 2907 "%s%s = %u\n",
charlesmn 0:3d72bef69191 2908 pprefix,
charlesmn 0:3d72bef69191 2909 "range_config_timeout_us",
charlesmn 0:3d72bef69191 2910 pdata->range_config_timeout_us);
charlesmn 0:3d72bef69191 2911
charlesmn 0:3d72bef69191 2912 trace_print(
charlesmn 0:3d72bef69191 2913 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 2914 "%s%s = %u\n",
charlesmn 0:3d72bef69191 2915 pprefix,
charlesmn 0:3d72bef69191 2916 "phasecal_config_timeout_us",
charlesmn 0:3d72bef69191 2917 pdata->phasecal_config_timeout_us);
charlesmn 0:3d72bef69191 2918
charlesmn 0:3d72bef69191 2919
charlesmn 0:3d72bef69191 2920 trace_print(
charlesmn 0:3d72bef69191 2921 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 2922 "%s%s = %u\n",
charlesmn 0:3d72bef69191 2923 pprefix,
charlesmn 0:3d72bef69191 2924 "phasecal_num_of_samples",
charlesmn 0:3d72bef69191 2925 pdata->phasecal_num_of_samples);
charlesmn 0:3d72bef69191 2926
charlesmn 0:3d72bef69191 2927
charlesmn 0:3d72bef69191 2928 trace_print(
charlesmn 0:3d72bef69191 2929 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 2930 "%s%s = %u\n",
charlesmn 0:3d72bef69191 2931 pprefix,
charlesmn 0:3d72bef69191 2932 "zone_num_of_samples",
charlesmn 0:3d72bef69191 2933 pdata->zone_num_of_samples);
charlesmn 0:3d72bef69191 2934
charlesmn 0:3d72bef69191 2935 }
charlesmn 0:3d72bef69191 2936
charlesmn 0:3d72bef69191 2937 void VL53L1_print_offset_cal_config(
charlesmn 0:3d72bef69191 2938 VL53L1_offsetcal_config_t *pdata,
charlesmn 0:3d72bef69191 2939 char *pprefix,
charlesmn 0:3d72bef69191 2940 uint32_t trace_flags)
charlesmn 0:3d72bef69191 2941 {
charlesmn 0:3d72bef69191 2942
charlesmn 0:3d72bef69191 2943
charlesmn 0:3d72bef69191 2944 char fp_text[VL53L1_MAX_STRING_LENGTH];
charlesmn 0:3d72bef69191 2945
charlesmn 0:3d72bef69191 2946 VL53L1_signed_fixed_point_sprintf(
charlesmn 0:3d72bef69191 2947 (int32_t)pdata->dss_config__target_total_rate_mcps,
charlesmn 0:3d72bef69191 2948 7,
charlesmn 0:3d72bef69191 2949 VL53L1_MAX_STRING_LENGTH,
charlesmn 0:3d72bef69191 2950 fp_text);
charlesmn 0:3d72bef69191 2951
charlesmn 0:3d72bef69191 2952 trace_print(
charlesmn 0:3d72bef69191 2953 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 2954 "%s%s = %s\n",
charlesmn 0:3d72bef69191 2955 pprefix,
charlesmn 0:3d72bef69191 2956 "dss_config__target_total_rate_mcps",
charlesmn 0:3d72bef69191 2957 fp_text);
charlesmn 0:3d72bef69191 2958
charlesmn 0:3d72bef69191 2959 trace_print(
charlesmn 0:3d72bef69191 2960 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 2961 "%s%s = %u\n",
charlesmn 0:3d72bef69191 2962 pprefix,
charlesmn 0:3d72bef69191 2963 "phasecal_config_timeout_us",
charlesmn 0:3d72bef69191 2964 pdata->phasecal_config_timeout_us);
charlesmn 0:3d72bef69191 2965
charlesmn 0:3d72bef69191 2966 trace_print(
charlesmn 0:3d72bef69191 2967 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 2968 "%s%s = %u\n",
charlesmn 0:3d72bef69191 2969 pprefix,
charlesmn 0:3d72bef69191 2970 "range_config_timeout_us",
charlesmn 0:3d72bef69191 2971 pdata->range_config_timeout_us);
charlesmn 0:3d72bef69191 2972
charlesmn 0:3d72bef69191 2973 trace_print(
charlesmn 0:3d72bef69191 2974 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 2975 "%s%s = %u\n",
charlesmn 0:3d72bef69191 2976 pprefix,
charlesmn 0:3d72bef69191 2977 "pre_num_of_samples",
charlesmn 0:3d72bef69191 2978 pdata->pre_num_of_samples);
charlesmn 0:3d72bef69191 2979
charlesmn 0:3d72bef69191 2980 trace_print(
charlesmn 0:3d72bef69191 2981 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 2982 "%s%s = %u\n",
charlesmn 0:3d72bef69191 2983 pprefix,
charlesmn 0:3d72bef69191 2984 "mm1_num_of_samples",
charlesmn 0:3d72bef69191 2985 pdata->mm1_num_of_samples);
charlesmn 0:3d72bef69191 2986
charlesmn 0:3d72bef69191 2987 trace_print(
charlesmn 0:3d72bef69191 2988 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 2989 "%s%s = %u\n",
charlesmn 0:3d72bef69191 2990 pprefix,
charlesmn 0:3d72bef69191 2991 "mm2_num_of_samples",
charlesmn 0:3d72bef69191 2992 pdata->mm2_num_of_samples);
charlesmn 0:3d72bef69191 2993
charlesmn 0:3d72bef69191 2994
charlesmn 0:3d72bef69191 2995 }
charlesmn 0:3d72bef69191 2996
charlesmn 0:3d72bef69191 2997
charlesmn 0:3d72bef69191 2998 void VL53L1_print_dmax_calibration_data(
charlesmn 0:3d72bef69191 2999 VL53L1_dmax_calibration_data_t *pdata,
charlesmn 0:3d72bef69191 3000 char *pprefix,
charlesmn 0:3d72bef69191 3001 uint32_t trace_flags)
charlesmn 0:3d72bef69191 3002 {
charlesmn 0:3d72bef69191 3003
charlesmn 0:3d72bef69191 3004
charlesmn 0:3d72bef69191 3005 char fp_text[VL53L1_MAX_STRING_LENGTH];
charlesmn 0:3d72bef69191 3006
charlesmn 0:3d72bef69191 3007 VL53L1_signed_fixed_point_sprintf(
charlesmn 0:3d72bef69191 3008 (int32_t)pdata->ref__actual_effective_spads,
charlesmn 0:3d72bef69191 3009 8,
charlesmn 0:3d72bef69191 3010 VL53L1_MAX_STRING_LENGTH,
charlesmn 0:3d72bef69191 3011 fp_text);
charlesmn 0:3d72bef69191 3012
charlesmn 0:3d72bef69191 3013 trace_print(
charlesmn 0:3d72bef69191 3014 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 3015 "%s%s = %s\n",
charlesmn 0:3d72bef69191 3016 pprefix,
charlesmn 0:3d72bef69191 3017 "ref__actual_effective_spads",
charlesmn 0:3d72bef69191 3018 fp_text);
charlesmn 0:3d72bef69191 3019
charlesmn 0:3d72bef69191 3020 VL53L1_signed_fixed_point_sprintf(
charlesmn 0:3d72bef69191 3021 (int32_t)pdata->ref__peak_signal_count_rate_mcps,
charlesmn 0:3d72bef69191 3022 7,
charlesmn 0:3d72bef69191 3023 VL53L1_MAX_STRING_LENGTH,
charlesmn 0:3d72bef69191 3024 fp_text);
charlesmn 0:3d72bef69191 3025
charlesmn 0:3d72bef69191 3026 trace_print(
charlesmn 0:3d72bef69191 3027 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 3028 "%s%s = %s\n",
charlesmn 0:3d72bef69191 3029 pprefix,
charlesmn 0:3d72bef69191 3030 "ref__peak_signal_count_rate_mcps",
charlesmn 0:3d72bef69191 3031 fp_text);
charlesmn 0:3d72bef69191 3032
charlesmn 0:3d72bef69191 3033 VL53L1_signed_fixed_point_sprintf(
charlesmn 0:3d72bef69191 3034 (int32_t)pdata->ref__distance_mm,
charlesmn 0:3d72bef69191 3035 4,
charlesmn 0:3d72bef69191 3036 VL53L1_MAX_STRING_LENGTH,
charlesmn 0:3d72bef69191 3037 fp_text);
charlesmn 0:3d72bef69191 3038
charlesmn 0:3d72bef69191 3039 trace_print(
charlesmn 0:3d72bef69191 3040 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 3041 "%s%s = %s\n",
charlesmn 0:3d72bef69191 3042 pprefix,
charlesmn 0:3d72bef69191 3043 "ref__distance_mm",
charlesmn 0:3d72bef69191 3044 fp_text);
charlesmn 0:3d72bef69191 3045
charlesmn 0:3d72bef69191 3046 VL53L1_signed_fixed_point_sprintf(
charlesmn 0:3d72bef69191 3047 (int32_t)pdata->ref_reflectance_pc,
charlesmn 0:3d72bef69191 3048 2,
charlesmn 0:3d72bef69191 3049 VL53L1_MAX_STRING_LENGTH,
charlesmn 0:3d72bef69191 3050 fp_text);
charlesmn 0:3d72bef69191 3051
charlesmn 0:3d72bef69191 3052 trace_print(
charlesmn 0:3d72bef69191 3053 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 3054 "%s%s = %s\n",
charlesmn 0:3d72bef69191 3055 pprefix,
charlesmn 0:3d72bef69191 3056 "ref_reflectance_pc",
charlesmn 0:3d72bef69191 3057 fp_text);
charlesmn 0:3d72bef69191 3058
charlesmn 0:3d72bef69191 3059 VL53L1_signed_fixed_point_sprintf(
charlesmn 0:3d72bef69191 3060 (int32_t)pdata->coverglass_transmission,
charlesmn 0:3d72bef69191 3061 8,
charlesmn 0:3d72bef69191 3062 VL53L1_MAX_STRING_LENGTH,
charlesmn 0:3d72bef69191 3063 fp_text);
charlesmn 0:3d72bef69191 3064
charlesmn 0:3d72bef69191 3065 trace_print(
charlesmn 0:3d72bef69191 3066 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 3067 "%s%s = %s\n",
charlesmn 0:3d72bef69191 3068 pprefix,
charlesmn 0:3d72bef69191 3069 "coverglass_transmission",
charlesmn 0:3d72bef69191 3070 fp_text);
charlesmn 0:3d72bef69191 3071 }
charlesmn 0:3d72bef69191 3072
charlesmn 0:3d72bef69191 3073
charlesmn 0:3d72bef69191 3074 void VL53L1_print_calibration_data(
charlesmn 0:3d72bef69191 3075 VL53L1_calibration_data_t *pdata,
charlesmn 0:3d72bef69191 3076 char *pprefix,
charlesmn 0:3d72bef69191 3077 uint32_t trace_flags)
charlesmn 0:3d72bef69191 3078 {
charlesmn 0:3d72bef69191 3079
charlesmn 0:3d72bef69191 3080
charlesmn 0:3d72bef69191 3081 char pre_text[VL53L1_MAX_STRING_LENGTH];
charlesmn 0:3d72bef69191 3082 char *ppre_text = &(pre_text[0]);
charlesmn 0:3d72bef69191 3083
charlesmn 0:3d72bef69191 3084 trace_print(
charlesmn 0:3d72bef69191 3085 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 3086 "%s%s = 0x%08X\n",
charlesmn 0:3d72bef69191 3087 pprefix,
charlesmn 0:3d72bef69191 3088 "struct_version",
charlesmn 0:3d72bef69191 3089 pdata->struct_version);
charlesmn 0:3d72bef69191 3090
charlesmn 0:3d72bef69191 3091 sprintf(ppre_text, "%scustomer.", pprefix);
charlesmn 0:3d72bef69191 3092 VL53L1_print_customer_nvm_managed(
charlesmn 0:3d72bef69191 3093 &(pdata->customer),
charlesmn 0:3d72bef69191 3094 ppre_text, trace_flags);
charlesmn 0:3d72bef69191 3095
charlesmn 0:3d72bef69191 3096 sprintf(ppre_text, "%sfmt_dmax_cal.", pprefix);
charlesmn 0:3d72bef69191 3097 VL53L1_print_dmax_calibration_data(
charlesmn 0:3d72bef69191 3098 &(pdata->fmt_dmax_cal),
charlesmn 0:3d72bef69191 3099 ppre_text, trace_flags);
charlesmn 0:3d72bef69191 3100
charlesmn 0:3d72bef69191 3101 sprintf(ppre_text, "%scust_dmax_cal.", pprefix);
charlesmn 0:3d72bef69191 3102 VL53L1_print_dmax_calibration_data(
charlesmn 0:3d72bef69191 3103 &(pdata->cust_dmax_cal),
charlesmn 0:3d72bef69191 3104 ppre_text, trace_flags);
charlesmn 0:3d72bef69191 3105
charlesmn 0:3d72bef69191 3106 sprintf(ppre_text, "%sadd_off_cal_data.", pprefix);
charlesmn 0:3d72bef69191 3107 VL53L1_print_additional_offset_cal_data(
charlesmn 0:3d72bef69191 3108 &(pdata->add_off_cal_data),
charlesmn 0:3d72bef69191 3109 ppre_text, trace_flags);
charlesmn 0:3d72bef69191 3110
charlesmn 0:3d72bef69191 3111 sprintf(ppre_text, "%soptical_centre.", pprefix);
charlesmn 0:3d72bef69191 3112 VL53L1_print_optical_centre(
charlesmn 0:3d72bef69191 3113 &(pdata->optical_centre),
charlesmn 0:3d72bef69191 3114 ppre_text, trace_flags);
charlesmn 0:3d72bef69191 3115
charlesmn 0:3d72bef69191 3116 sprintf(ppre_text, "%sxtalkhisto.", pprefix);
charlesmn 0:3d72bef69191 3117 VL53L1_print_xtalk_histogram_data(
charlesmn 0:3d72bef69191 3118 &(pdata->xtalkhisto),
charlesmn 0:3d72bef69191 3119 ppre_text, trace_flags);
charlesmn 0:3d72bef69191 3120
charlesmn 0:3d72bef69191 3121 sprintf(ppre_text, "%sgain_cal.", pprefix);
charlesmn 0:3d72bef69191 3122 VL53L1_print_gain_calibration_data(
charlesmn 0:3d72bef69191 3123 &(pdata->gain_cal),
charlesmn 0:3d72bef69191 3124 ppre_text, trace_flags);
charlesmn 0:3d72bef69191 3125
charlesmn 0:3d72bef69191 3126 sprintf(ppre_text, "%scal_peak_rate_map.", pprefix);
charlesmn 0:3d72bef69191 3127 VL53L1_print_cal_peak_rate_map(
charlesmn 0:3d72bef69191 3128 &(pdata->cal_peak_rate_map),
charlesmn 0:3d72bef69191 3129 ppre_text, trace_flags);
charlesmn 0:3d72bef69191 3130 }
charlesmn 0:3d72bef69191 3131
charlesmn 0:3d72bef69191 3132
charlesmn 0:3d72bef69191 3133 void VL53L1_print_xtalk_debug_data(
charlesmn 0:3d72bef69191 3134 VL53L1_xtalk_debug_data_t *pdata,
charlesmn 0:3d72bef69191 3135 char *pprefix,
charlesmn 0:3d72bef69191 3136 uint32_t trace_flags)
charlesmn 0:3d72bef69191 3137 {
charlesmn 0:3d72bef69191 3138
charlesmn 0:3d72bef69191 3139
charlesmn 0:3d72bef69191 3140 char pre_text[VL53L1_MAX_STRING_LENGTH];
charlesmn 0:3d72bef69191 3141 char *ppre_text = &(pre_text[0]);
charlesmn 0:3d72bef69191 3142
charlesmn 0:3d72bef69191 3143 sprintf(ppre_text, "%scustomer.", pprefix);
charlesmn 0:3d72bef69191 3144 VL53L1_print_customer_nvm_managed(
charlesmn 0:3d72bef69191 3145 &(pdata->customer),
charlesmn 0:3d72bef69191 3146 ppre_text, trace_flags);
charlesmn 0:3d72bef69191 3147
charlesmn 0:3d72bef69191 3148 sprintf(ppre_text, "%sxtalk_cfg.", pprefix);
charlesmn 0:3d72bef69191 3149 VL53L1_print_xtalk_config(
charlesmn 0:3d72bef69191 3150 &(pdata->xtalk_cfg),
charlesmn 0:3d72bef69191 3151 ppre_text, trace_flags);
charlesmn 0:3d72bef69191 3152
charlesmn 0:3d72bef69191 3153 sprintf(ppre_text, "%sxtalk_extract_cfg.", pprefix);
charlesmn 0:3d72bef69191 3154 VL53L1_print_xtalk_extract_config(
charlesmn 0:3d72bef69191 3155 &(pdata->xtalk_extract_cfg),
charlesmn 0:3d72bef69191 3156 ppre_text, trace_flags);
charlesmn 0:3d72bef69191 3157
charlesmn 0:3d72bef69191 3158 sprintf(ppre_text, "%shist_data.", pprefix);
charlesmn 0:3d72bef69191 3159 VL53L1_print_histogram_bin_data(
charlesmn 0:3d72bef69191 3160 &(pdata->hist_data),
charlesmn 0:3d72bef69191 3161 ppre_text, trace_flags);
charlesmn 0:3d72bef69191 3162
charlesmn 0:3d72bef69191 3163 sprintf(ppre_text, "%sxtalk_shapes.", pprefix);
charlesmn 0:3d72bef69191 3164 VL53L1_print_xtalk_histogram_data(
charlesmn 0:3d72bef69191 3165 &(pdata->xtalk_shapes),
charlesmn 0:3d72bef69191 3166 ppre_text, trace_flags);
charlesmn 0:3d72bef69191 3167
charlesmn 0:3d72bef69191 3168 sprintf(ppre_text, "%sgain_cal.", pprefix);
charlesmn 0:3d72bef69191 3169 VL53L1_print_xtalk_range_results(
charlesmn 0:3d72bef69191 3170 &(pdata->xtalk_results),
charlesmn 0:3d72bef69191 3171 ppre_text, trace_flags);
charlesmn 0:3d72bef69191 3172 }
charlesmn 0:3d72bef69191 3173
charlesmn 0:3d72bef69191 3174
charlesmn 0:3d72bef69191 3175 void VL53L1_print_offset_debug_data(
charlesmn 0:3d72bef69191 3176 VL53L1_offset_debug_data_t *pdata,
charlesmn 0:3d72bef69191 3177 char *pprefix,
charlesmn 0:3d72bef69191 3178 uint32_t trace_flags)
charlesmn 0:3d72bef69191 3179 {
charlesmn 0:3d72bef69191 3180
charlesmn 0:3d72bef69191 3181
charlesmn 0:3d72bef69191 3182 char pre_text[VL53L1_MAX_STRING_LENGTH];
charlesmn 0:3d72bef69191 3183 char *ppre_text = &(pre_text[0]);
charlesmn 0:3d72bef69191 3184
charlesmn 0:3d72bef69191 3185 sprintf(ppre_text, "%scustomer.", pprefix);
charlesmn 0:3d72bef69191 3186 VL53L1_print_customer_nvm_managed(
charlesmn 0:3d72bef69191 3187 &(pdata->customer),
charlesmn 0:3d72bef69191 3188 ppre_text, trace_flags);
charlesmn 0:3d72bef69191 3189
charlesmn 0:3d72bef69191 3190 sprintf(ppre_text, "%sfmt_dmax_cal.", pprefix);
charlesmn 0:3d72bef69191 3191 VL53L1_print_dmax_calibration_data(
charlesmn 0:3d72bef69191 3192 &(pdata->fmt_dmax_cal),
charlesmn 0:3d72bef69191 3193 ppre_text, trace_flags);
charlesmn 0:3d72bef69191 3194
charlesmn 0:3d72bef69191 3195 sprintf(ppre_text, "%scust_dmax_cal.", pprefix);
charlesmn 0:3d72bef69191 3196 VL53L1_print_dmax_calibration_data(
charlesmn 0:3d72bef69191 3197 &(pdata->cust_dmax_cal),
charlesmn 0:3d72bef69191 3198 ppre_text, trace_flags);
charlesmn 0:3d72bef69191 3199
charlesmn 0:3d72bef69191 3200 sprintf(ppre_text, "%sadd_off_cal_data.", pprefix);
charlesmn 0:3d72bef69191 3201 VL53L1_print_additional_offset_cal_data(
charlesmn 0:3d72bef69191 3202 &(pdata->add_off_cal_data),
charlesmn 0:3d72bef69191 3203 ppre_text, trace_flags);
charlesmn 0:3d72bef69191 3204
charlesmn 0:3d72bef69191 3205 sprintf(ppre_text, "%soffset_results.", pprefix);
charlesmn 0:3d72bef69191 3206 VL53L1_print_offset_range_results(
charlesmn 0:3d72bef69191 3207 &(pdata->offset_results),
charlesmn 0:3d72bef69191 3208 ppre_text, trace_flags);
charlesmn 0:3d72bef69191 3209 }
charlesmn 0:3d72bef69191 3210
charlesmn 0:3d72bef69191 3211
charlesmn 0:3d72bef69191 3212 void VL53L1_print_zone_config(
charlesmn 0:3d72bef69191 3213 VL53L1_zone_config_t *pdata,
charlesmn 0:3d72bef69191 3214 char *pprefix,
charlesmn 0:3d72bef69191 3215 uint32_t trace_flags)
charlesmn 0:3d72bef69191 3216 {
charlesmn 0:3d72bef69191 3217
charlesmn 0:3d72bef69191 3218
charlesmn 0:3d72bef69191 3219
charlesmn 0:3d72bef69191 3220 char pre_text[VL53L1_MAX_STRING_LENGTH];
charlesmn 0:3d72bef69191 3221 char *ppre_text = &(pre_text[0]);
charlesmn 0:3d72bef69191 3222
charlesmn 0:3d72bef69191 3223 uint8_t i = 0;
charlesmn 0:3d72bef69191 3224
charlesmn 0:3d72bef69191 3225 trace_print(
charlesmn 0:3d72bef69191 3226 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 3227 "%s%s = %u\n",
charlesmn 0:3d72bef69191 3228 pprefix,
charlesmn 0:3d72bef69191 3229 "max_zones",
charlesmn 0:3d72bef69191 3230 pdata->max_zones);
charlesmn 0:3d72bef69191 3231
charlesmn 0:3d72bef69191 3232 trace_print(
charlesmn 0:3d72bef69191 3233 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 3234 "%s%s = %u\n",
charlesmn 0:3d72bef69191 3235 pprefix,
charlesmn 0:3d72bef69191 3236 "active_zones",
charlesmn 0:3d72bef69191 3237 pdata->active_zones);
charlesmn 0:3d72bef69191 3238
charlesmn 0:3d72bef69191 3239 for (i = 0; i < pdata->active_zones; i++) {
charlesmn 0:3d72bef69191 3240 sprintf(ppre_text, "%suser_zones[%u].", pprefix, i);
charlesmn 0:3d72bef69191 3241 VL53L1_print_user_zone(
charlesmn 0:3d72bef69191 3242 &pdata->user_zones[i],
charlesmn 0:3d72bef69191 3243 ppre_text,
charlesmn 0:3d72bef69191 3244 trace_flags);
charlesmn 0:3d72bef69191 3245 }
charlesmn 0:3d72bef69191 3246 }
charlesmn 0:3d72bef69191 3247
charlesmn 0:3d72bef69191 3248
charlesmn 0:3d72bef69191 3249 void VL53L1_print_optical_centre(
charlesmn 0:3d72bef69191 3250 VL53L1_optical_centre_t *pdata,
charlesmn 0:3d72bef69191 3251 char *pprefix,
charlesmn 0:3d72bef69191 3252 uint32_t trace_flags)
charlesmn 0:3d72bef69191 3253 {
charlesmn 0:3d72bef69191 3254
charlesmn 0:3d72bef69191 3255
charlesmn 0:3d72bef69191 3256
charlesmn 0:3d72bef69191 3257 char fp_text[VL53L1_MAX_STRING_LENGTH];
charlesmn 0:3d72bef69191 3258
charlesmn 0:3d72bef69191 3259 VL53L1_signed_fixed_point_sprintf(
charlesmn 0:3d72bef69191 3260 (int32_t)pdata->x_centre,
charlesmn 0:3d72bef69191 3261 4,
charlesmn 0:3d72bef69191 3262 VL53L1_MAX_STRING_LENGTH,
charlesmn 0:3d72bef69191 3263 fp_text);
charlesmn 0:3d72bef69191 3264
charlesmn 0:3d72bef69191 3265 trace_print(
charlesmn 0:3d72bef69191 3266 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 3267 "%s%s = %s\n",
charlesmn 0:3d72bef69191 3268 pprefix,
charlesmn 0:3d72bef69191 3269 "x_centre",
charlesmn 0:3d72bef69191 3270 fp_text);
charlesmn 0:3d72bef69191 3271
charlesmn 0:3d72bef69191 3272 VL53L1_signed_fixed_point_sprintf(
charlesmn 0:3d72bef69191 3273 (int32_t)pdata->y_centre,
charlesmn 0:3d72bef69191 3274 4,
charlesmn 0:3d72bef69191 3275 VL53L1_MAX_STRING_LENGTH,
charlesmn 0:3d72bef69191 3276 fp_text);
charlesmn 0:3d72bef69191 3277
charlesmn 0:3d72bef69191 3278 trace_print(
charlesmn 0:3d72bef69191 3279 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 3280 "%s%s = %s\n",
charlesmn 0:3d72bef69191 3281 pprefix,
charlesmn 0:3d72bef69191 3282 "y_centre",
charlesmn 0:3d72bef69191 3283 fp_text);
charlesmn 0:3d72bef69191 3284 }
charlesmn 0:3d72bef69191 3285
charlesmn 0:3d72bef69191 3286
charlesmn 0:3d72bef69191 3287 void VL53L1_print_user_zone(
charlesmn 0:3d72bef69191 3288 VL53L1_user_zone_t *pdata,
charlesmn 0:3d72bef69191 3289 char *pprefix,
charlesmn 0:3d72bef69191 3290 uint32_t trace_flags)
charlesmn 0:3d72bef69191 3291 {
charlesmn 0:3d72bef69191 3292
charlesmn 0:3d72bef69191 3293
charlesmn 0:3d72bef69191 3294
charlesmn 0:3d72bef69191 3295 trace_print(
charlesmn 0:3d72bef69191 3296 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 3297 "%s%s = %u\n",
charlesmn 0:3d72bef69191 3298 pprefix,
charlesmn 0:3d72bef69191 3299 "x_centre",
charlesmn 0:3d72bef69191 3300 pdata->x_centre);
charlesmn 0:3d72bef69191 3301
charlesmn 0:3d72bef69191 3302 trace_print(
charlesmn 0:3d72bef69191 3303 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 3304 "%s%s = %u\n",
charlesmn 0:3d72bef69191 3305 pprefix,
charlesmn 0:3d72bef69191 3306 "y_centre",
charlesmn 0:3d72bef69191 3307 pdata->y_centre);
charlesmn 0:3d72bef69191 3308
charlesmn 0:3d72bef69191 3309 trace_print(
charlesmn 0:3d72bef69191 3310 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 3311 "%s%s = %u\n",
charlesmn 0:3d72bef69191 3312 pprefix,
charlesmn 0:3d72bef69191 3313 "width",
charlesmn 0:3d72bef69191 3314 pdata->width);
charlesmn 0:3d72bef69191 3315
charlesmn 0:3d72bef69191 3316 trace_print(VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 3317 "%s%s = %u\n",
charlesmn 0:3d72bef69191 3318 pprefix,
charlesmn 0:3d72bef69191 3319 "height",
charlesmn 0:3d72bef69191 3320 pdata->height);
charlesmn 0:3d72bef69191 3321 }
charlesmn 0:3d72bef69191 3322
charlesmn 0:3d72bef69191 3323
charlesmn 0:3d72bef69191 3324 void VL53L1_print_spad_rate_data(
charlesmn 0:3d72bef69191 3325 VL53L1_spad_rate_data_t *pspad_rates,
charlesmn 0:3d72bef69191 3326 char *pprefix,
charlesmn 0:3d72bef69191 3327 uint32_t trace_flags)
charlesmn 0:3d72bef69191 3328 {
charlesmn 0:3d72bef69191 3329
charlesmn 0:3d72bef69191 3330
charlesmn 0:3d72bef69191 3331
charlesmn 0:3d72bef69191 3332 uint16_t spad_no = 0;
charlesmn 0:3d72bef69191 3333 uint8_t row = 0;
charlesmn 0:3d72bef69191 3334 uint8_t col = 0;
charlesmn 0:3d72bef69191 3335
charlesmn 0:3d72bef69191 3336 char fp_text[VL53L1_MAX_STRING_LENGTH];
charlesmn 0:3d72bef69191 3337
charlesmn 0:3d72bef69191 3338 trace_print(
charlesmn 0:3d72bef69191 3339 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 3340 "%s%8s,%4s,%4s, %s\n",
charlesmn 0:3d72bef69191 3341 pprefix,
charlesmn 0:3d72bef69191 3342 "spad_no",
charlesmn 0:3d72bef69191 3343 "row",
charlesmn 0:3d72bef69191 3344 "col",
charlesmn 0:3d72bef69191 3345 "peak_rate_mcps");
charlesmn 0:3d72bef69191 3346
charlesmn 0:3d72bef69191 3347 for (spad_no = 0; spad_no < pspad_rates->no_of_values; spad_no++) {
charlesmn 0:3d72bef69191 3348
charlesmn 0:3d72bef69191 3349
charlesmn 0:3d72bef69191 3350 VL53L1_decode_row_col(
charlesmn 0:3d72bef69191 3351 (uint8_t)spad_no,
charlesmn 0:3d72bef69191 3352 &row,
charlesmn 0:3d72bef69191 3353 &col);
charlesmn 0:3d72bef69191 3354
charlesmn 0:3d72bef69191 3355
charlesmn 0:3d72bef69191 3356
charlesmn 0:3d72bef69191 3357 VL53L1_signed_fixed_point_sprintf(
charlesmn 0:3d72bef69191 3358 (int32_t)pspad_rates->rate_data[spad_no],
charlesmn 0:3d72bef69191 3359 pspad_rates->fractional_bits,
charlesmn 0:3d72bef69191 3360 VL53L1_MAX_STRING_LENGTH,
charlesmn 0:3d72bef69191 3361 fp_text);
charlesmn 0:3d72bef69191 3362
charlesmn 0:3d72bef69191 3363
charlesmn 0:3d72bef69191 3364
charlesmn 0:3d72bef69191 3365 trace_print(
charlesmn 0:3d72bef69191 3366 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 3367 "%s%8u,%4u,%4u, %s\n",
charlesmn 0:3d72bef69191 3368 pprefix,
charlesmn 0:3d72bef69191 3369 spad_no,
charlesmn 0:3d72bef69191 3370 row,
charlesmn 0:3d72bef69191 3371 col,
charlesmn 0:3d72bef69191 3372 fp_text);
charlesmn 0:3d72bef69191 3373 }
charlesmn 0:3d72bef69191 3374 }
charlesmn 0:3d72bef69191 3375
charlesmn 0:3d72bef69191 3376
charlesmn 0:3d72bef69191 3377 void VL53L1_print_spad_rate_map(
charlesmn 0:3d72bef69191 3378 VL53L1_spad_rate_data_t *pspad_rates,
charlesmn 0:3d72bef69191 3379 char *pprefix,
charlesmn 0:3d72bef69191 3380 uint32_t trace_flags)
charlesmn 0:3d72bef69191 3381 {
charlesmn 0:3d72bef69191 3382
charlesmn 0:3d72bef69191 3383
charlesmn 0:3d72bef69191 3384
charlesmn 0:3d72bef69191 3385 uint8_t spad_no = 0;
charlesmn 0:3d72bef69191 3386 uint8_t row = 0;
charlesmn 0:3d72bef69191 3387 uint8_t col = 0;
charlesmn 0:3d72bef69191 3388
charlesmn 0:3d72bef69191 3389 char fp_text[VL53L1_MAX_STRING_LENGTH];
charlesmn 0:3d72bef69191 3390
charlesmn 0:3d72bef69191 3391
charlesmn 0:3d72bef69191 3392 trace_print(
charlesmn 0:3d72bef69191 3393 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 3394 "%s%4s",
charlesmn 0:3d72bef69191 3395 pprefix,
charlesmn 0:3d72bef69191 3396 " ");
charlesmn 0:3d72bef69191 3397
charlesmn 0:3d72bef69191 3398 for (col = 0; col < VL53L1_SPAD_ARRAY_WIDTH; col++)
charlesmn 0:3d72bef69191 3399 trace_print(
charlesmn 0:3d72bef69191 3400 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 3401 ",%8u",
charlesmn 0:3d72bef69191 3402 col);
charlesmn 0:3d72bef69191 3403
charlesmn 0:3d72bef69191 3404 trace_print(
charlesmn 0:3d72bef69191 3405 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 3406 "\n");
charlesmn 0:3d72bef69191 3407
charlesmn 0:3d72bef69191 3408
charlesmn 0:3d72bef69191 3409
charlesmn 0:3d72bef69191 3410 for (row = 0; row < VL53L1_SPAD_ARRAY_HEIGHT; row++) {
charlesmn 0:3d72bef69191 3411
charlesmn 0:3d72bef69191 3412 trace_print(
charlesmn 0:3d72bef69191 3413 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 3414 "%s%4u",
charlesmn 0:3d72bef69191 3415 pprefix,
charlesmn 0:3d72bef69191 3416 row);
charlesmn 0:3d72bef69191 3417
charlesmn 0:3d72bef69191 3418 for (col = 0; col < VL53L1_SPAD_ARRAY_HEIGHT; col++) {
charlesmn 0:3d72bef69191 3419
charlesmn 0:3d72bef69191 3420
charlesmn 0:3d72bef69191 3421
charlesmn 0:3d72bef69191 3422 VL53L1_encode_row_col(
charlesmn 0:3d72bef69191 3423 row,
charlesmn 0:3d72bef69191 3424 col,
charlesmn 0:3d72bef69191 3425 &spad_no);
charlesmn 0:3d72bef69191 3426
charlesmn 0:3d72bef69191 3427
charlesmn 0:3d72bef69191 3428
charlesmn 0:3d72bef69191 3429 VL53L1_signed_fixed_point_sprintf(
charlesmn 0:3d72bef69191 3430 (int32_t)pspad_rates->rate_data[spad_no],
charlesmn 0:3d72bef69191 3431 pspad_rates->fractional_bits,
charlesmn 0:3d72bef69191 3432 VL53L1_MAX_STRING_LENGTH,
charlesmn 0:3d72bef69191 3433 fp_text);
charlesmn 0:3d72bef69191 3434
charlesmn 0:3d72bef69191 3435
charlesmn 0:3d72bef69191 3436
charlesmn 0:3d72bef69191 3437 trace_print(
charlesmn 0:3d72bef69191 3438 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 3439 ",%8s",
charlesmn 0:3d72bef69191 3440 fp_text);
charlesmn 0:3d72bef69191 3441 }
charlesmn 0:3d72bef69191 3442
charlesmn 0:3d72bef69191 3443 trace_print(
charlesmn 0:3d72bef69191 3444 VL53L1_TRACE_LEVEL_INFO,
charlesmn 0:3d72bef69191 3445 "\n");
charlesmn 0:3d72bef69191 3446 }
charlesmn 0:3d72bef69191 3447 }
charlesmn 0:3d72bef69191 3448
charlesmn 0:3d72bef69191 3449
charlesmn 0:3d72bef69191 3450 #endif
charlesmn 0:3d72bef69191 3451
charlesmn 0:3d72bef69191 3452
charlesmn 0:3d72bef69191 3453