Rename library

Dependencies:   X_NUCLEO_COMMON ST_INTERFACES

Dependents:   VL53L3CX_NoShield_1Sensor_poll_Mb06x VL53L3_NoShield_1Sensor_polling_Mb63 X_NUCLEO_53L3A2 53L3A2_Ranging

Committer:
Charles MacNeill
Date:
Wed Jul 14 12:45:49 2021 +0100
Revision:
5:89031b2f5316
The class files now just are wrappers for the files in the "MODULES" directory.The porting directory includes the mbed interface

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Charles MacNeill 5:89031b2f5316 1
Charles MacNeill 5:89031b2f5316 2 /* SPDX-License-Identifier: GPL-2.0+ OR BSD-3-Clause */
Charles MacNeill 5:89031b2f5316 3 /******************************************************************************
Charles MacNeill 5:89031b2f5316 4 * Copyright (c) 2020, STMicroelectronics - All Rights Reserved
Charles MacNeill 5:89031b2f5316 5
Charles MacNeill 5:89031b2f5316 6 This file is part of VL53LX and is dual licensed,
Charles MacNeill 5:89031b2f5316 7 either GPL-2.0+
Charles MacNeill 5:89031b2f5316 8 or 'BSD 3-clause "New" or "Revised" License' , at your option.
Charles MacNeill 5:89031b2f5316 9 ******************************************************************************
Charles MacNeill 5:89031b2f5316 10 */
Charles MacNeill 5:89031b2f5316 11
Charles MacNeill 5:89031b2f5316 12
Charles MacNeill 5:89031b2f5316 13
Charles MacNeill 5:89031b2f5316 14
Charles MacNeill 5:89031b2f5316 15
Charles MacNeill 5:89031b2f5316 16 #ifndef _VL53LX_HIST_STRUCTS_H_
Charles MacNeill 5:89031b2f5316 17 #define _VL53LX_HIST_STRUCTS_H_
Charles MacNeill 5:89031b2f5316 18
Charles MacNeill 5:89031b2f5316 19 #include "vl53lx_ll_device.h"
Charles MacNeill 5:89031b2f5316 20 #include "vl53lx_dmax_structs.h"
Charles MacNeill 5:89031b2f5316 21
Charles MacNeill 5:89031b2f5316 22 #ifdef __cplusplus
Charles MacNeill 5:89031b2f5316 23 extern "C"
Charles MacNeill 5:89031b2f5316 24 {
Charles MacNeill 5:89031b2f5316 25 #endif
Charles MacNeill 5:89031b2f5316 26
Charles MacNeill 5:89031b2f5316 27 #define VL53LX_MAX_BIN_SEQUENCE_LENGTH 6
Charles MacNeill 5:89031b2f5316 28 #define VL53LX_MAX_BIN_SEQUENCE_CODE 15
Charles MacNeill 5:89031b2f5316 29 #define VL53LX_HISTOGRAM_BUFFER_SIZE 24
Charles MacNeill 5:89031b2f5316 30 #define VL53LX_XTALK_HISTO_BINS 12
Charles MacNeill 5:89031b2f5316 31
Charles MacNeill 5:89031b2f5316 32
Charles MacNeill 5:89031b2f5316 33
Charles MacNeill 5:89031b2f5316 34 typedef struct {
Charles MacNeill 5:89031b2f5316 35
Charles MacNeill 5:89031b2f5316 36 uint8_t histogram_config__spad_array_selection;
Charles MacNeill 5:89031b2f5316 37
Charles MacNeill 5:89031b2f5316 38 uint8_t histogram_config__low_amb_even_bin_0_1;
Charles MacNeill 5:89031b2f5316 39 uint8_t histogram_config__low_amb_even_bin_2_3;
Charles MacNeill 5:89031b2f5316 40 uint8_t histogram_config__low_amb_even_bin_4_5;
Charles MacNeill 5:89031b2f5316 41
Charles MacNeill 5:89031b2f5316 42 uint8_t histogram_config__low_amb_odd_bin_0_1;
Charles MacNeill 5:89031b2f5316 43 uint8_t histogram_config__low_amb_odd_bin_2_3;
Charles MacNeill 5:89031b2f5316 44 uint8_t histogram_config__low_amb_odd_bin_4_5;
Charles MacNeill 5:89031b2f5316 45
Charles MacNeill 5:89031b2f5316 46 uint8_t histogram_config__mid_amb_even_bin_0_1;
Charles MacNeill 5:89031b2f5316 47 uint8_t histogram_config__mid_amb_even_bin_2_3;
Charles MacNeill 5:89031b2f5316 48 uint8_t histogram_config__mid_amb_even_bin_4_5;
Charles MacNeill 5:89031b2f5316 49
Charles MacNeill 5:89031b2f5316 50 uint8_t histogram_config__mid_amb_odd_bin_0_1;
Charles MacNeill 5:89031b2f5316 51 uint8_t histogram_config__mid_amb_odd_bin_2;
Charles MacNeill 5:89031b2f5316 52 uint8_t histogram_config__mid_amb_odd_bin_3_4;
Charles MacNeill 5:89031b2f5316 53 uint8_t histogram_config__mid_amb_odd_bin_5;
Charles MacNeill 5:89031b2f5316 54
Charles MacNeill 5:89031b2f5316 55 uint8_t histogram_config__user_bin_offset;
Charles MacNeill 5:89031b2f5316 56
Charles MacNeill 5:89031b2f5316 57 uint8_t histogram_config__high_amb_even_bin_0_1;
Charles MacNeill 5:89031b2f5316 58 uint8_t histogram_config__high_amb_even_bin_2_3;
Charles MacNeill 5:89031b2f5316 59 uint8_t histogram_config__high_amb_even_bin_4_5;
Charles MacNeill 5:89031b2f5316 60
Charles MacNeill 5:89031b2f5316 61 uint8_t histogram_config__high_amb_odd_bin_0_1;
Charles MacNeill 5:89031b2f5316 62 uint8_t histogram_config__high_amb_odd_bin_2_3;
Charles MacNeill 5:89031b2f5316 63 uint8_t histogram_config__high_amb_odd_bin_4_5;
Charles MacNeill 5:89031b2f5316 64
Charles MacNeill 5:89031b2f5316 65 uint16_t histogram_config__amb_thresh_low;
Charles MacNeill 5:89031b2f5316 66
Charles MacNeill 5:89031b2f5316 67 uint16_t histogram_config__amb_thresh_high;
Charles MacNeill 5:89031b2f5316 68
Charles MacNeill 5:89031b2f5316 69
Charles MacNeill 5:89031b2f5316 70 } VL53LX_histogram_config_t;
Charles MacNeill 5:89031b2f5316 71
Charles MacNeill 5:89031b2f5316 72
Charles MacNeill 5:89031b2f5316 73
Charles MacNeill 5:89031b2f5316 74
Charles MacNeill 5:89031b2f5316 75 typedef struct {
Charles MacNeill 5:89031b2f5316 76
Charles MacNeill 5:89031b2f5316 77 VL53LX_HistAlgoSelect hist_algo_select;
Charles MacNeill 5:89031b2f5316 78
Charles MacNeill 5:89031b2f5316 79
Charles MacNeill 5:89031b2f5316 80 VL53LX_HistTargetOrder hist_target_order;
Charles MacNeill 5:89031b2f5316 81
Charles MacNeill 5:89031b2f5316 82
Charles MacNeill 5:89031b2f5316 83 uint8_t filter_woi0;
Charles MacNeill 5:89031b2f5316 84
Charles MacNeill 5:89031b2f5316 85 uint8_t filter_woi1;
Charles MacNeill 5:89031b2f5316 86
Charles MacNeill 5:89031b2f5316 87
Charles MacNeill 5:89031b2f5316 88 VL53LX_HistAmbEstMethod hist_amb_est_method;
Charles MacNeill 5:89031b2f5316 89
Charles MacNeill 5:89031b2f5316 90 uint8_t ambient_thresh_sigma0;
Charles MacNeill 5:89031b2f5316 91
Charles MacNeill 5:89031b2f5316 92 uint8_t ambient_thresh_sigma1;
Charles MacNeill 5:89031b2f5316 93
Charles MacNeill 5:89031b2f5316 94
Charles MacNeill 5:89031b2f5316 95
Charles MacNeill 5:89031b2f5316 96 uint16_t ambient_thresh_events_scaler;
Charles MacNeill 5:89031b2f5316 97
Charles MacNeill 5:89031b2f5316 98
Charles MacNeill 5:89031b2f5316 99
Charles MacNeill 5:89031b2f5316 100 int32_t min_ambient_thresh_events;
Charles MacNeill 5:89031b2f5316 101
Charles MacNeill 5:89031b2f5316 102 uint16_t noise_threshold;
Charles MacNeill 5:89031b2f5316 103
Charles MacNeill 5:89031b2f5316 104
Charles MacNeill 5:89031b2f5316 105 int32_t signal_total_events_limit;
Charles MacNeill 5:89031b2f5316 106
Charles MacNeill 5:89031b2f5316 107 uint8_t sigma_estimator__sigma_ref_mm;
Charles MacNeill 5:89031b2f5316 108
Charles MacNeill 5:89031b2f5316 109 uint16_t sigma_thresh;
Charles MacNeill 5:89031b2f5316 110
Charles MacNeill 5:89031b2f5316 111 int16_t range_offset_mm;
Charles MacNeill 5:89031b2f5316 112
Charles MacNeill 5:89031b2f5316 113 uint16_t gain_factor;
Charles MacNeill 5:89031b2f5316 114
Charles MacNeill 5:89031b2f5316 115
Charles MacNeill 5:89031b2f5316 116 uint8_t valid_phase_low;
Charles MacNeill 5:89031b2f5316 117
Charles MacNeill 5:89031b2f5316 118 uint8_t valid_phase_high;
Charles MacNeill 5:89031b2f5316 119
Charles MacNeill 5:89031b2f5316 120 uint8_t algo__consistency_check__phase_tolerance;
Charles MacNeill 5:89031b2f5316 121
Charles MacNeill 5:89031b2f5316 122 uint8_t algo__consistency_check__event_sigma;
Charles MacNeill 5:89031b2f5316 123
Charles MacNeill 5:89031b2f5316 124
Charles MacNeill 5:89031b2f5316 125
Charles MacNeill 5:89031b2f5316 126 uint16_t algo__consistency_check__event_min_spad_count;
Charles MacNeill 5:89031b2f5316 127
Charles MacNeill 5:89031b2f5316 128
Charles MacNeill 5:89031b2f5316 129
Charles MacNeill 5:89031b2f5316 130 uint16_t algo__consistency_check__min_max_tolerance;
Charles MacNeill 5:89031b2f5316 131
Charles MacNeill 5:89031b2f5316 132
Charles MacNeill 5:89031b2f5316 133 uint8_t algo__crosstalk_compensation_enable;
Charles MacNeill 5:89031b2f5316 134
Charles MacNeill 5:89031b2f5316 135 uint32_t algo__crosstalk_compensation_plane_offset_kcps;
Charles MacNeill 5:89031b2f5316 136
Charles MacNeill 5:89031b2f5316 137 int16_t algo__crosstalk_compensation_x_plane_gradient_kcps;
Charles MacNeill 5:89031b2f5316 138
Charles MacNeill 5:89031b2f5316 139 int16_t algo__crosstalk_compensation_y_plane_gradient_kcps;
Charles MacNeill 5:89031b2f5316 140
Charles MacNeill 5:89031b2f5316 141
Charles MacNeill 5:89031b2f5316 142 int16_t algo__crosstalk_detect_min_valid_range_mm;
Charles MacNeill 5:89031b2f5316 143
Charles MacNeill 5:89031b2f5316 144 int16_t algo__crosstalk_detect_max_valid_range_mm;
Charles MacNeill 5:89031b2f5316 145
Charles MacNeill 5:89031b2f5316 146 uint16_t algo__crosstalk_detect_max_valid_rate_kcps;
Charles MacNeill 5:89031b2f5316 147
Charles MacNeill 5:89031b2f5316 148 uint16_t algo__crosstalk_detect_max_sigma_mm;
Charles MacNeill 5:89031b2f5316 149
Charles MacNeill 5:89031b2f5316 150
Charles MacNeill 5:89031b2f5316 151
Charles MacNeill 5:89031b2f5316 152 uint8_t algo__crosstalk_detect_event_sigma;
Charles MacNeill 5:89031b2f5316 153
Charles MacNeill 5:89031b2f5316 154
Charles MacNeill 5:89031b2f5316 155
Charles MacNeill 5:89031b2f5316 156 uint16_t algo__crosstalk_detect_min_max_tolerance;
Charles MacNeill 5:89031b2f5316 157
Charles MacNeill 5:89031b2f5316 158
Charles MacNeill 5:89031b2f5316 159 } VL53LX_hist_post_process_config_t;
Charles MacNeill 5:89031b2f5316 160
Charles MacNeill 5:89031b2f5316 161
Charles MacNeill 5:89031b2f5316 162
Charles MacNeill 5:89031b2f5316 163 typedef struct {
Charles MacNeill 5:89031b2f5316 164
Charles MacNeill 5:89031b2f5316 165
Charles MacNeill 5:89031b2f5316 166 VL53LX_DeviceState cfg_device_state;
Charles MacNeill 5:89031b2f5316 167
Charles MacNeill 5:89031b2f5316 168 VL53LX_DeviceState rd_device_state;
Charles MacNeill 5:89031b2f5316 169
Charles MacNeill 5:89031b2f5316 170
Charles MacNeill 5:89031b2f5316 171 uint8_t zone_id;
Charles MacNeill 5:89031b2f5316 172
Charles MacNeill 5:89031b2f5316 173 uint32_t time_stamp;
Charles MacNeill 5:89031b2f5316 174
Charles MacNeill 5:89031b2f5316 175
Charles MacNeill 5:89031b2f5316 176 uint8_t VL53LX_p_019;
Charles MacNeill 5:89031b2f5316 177
Charles MacNeill 5:89031b2f5316 178 uint8_t VL53LX_p_020;
Charles MacNeill 5:89031b2f5316 179
Charles MacNeill 5:89031b2f5316 180 uint8_t VL53LX_p_021;
Charles MacNeill 5:89031b2f5316 181
Charles MacNeill 5:89031b2f5316 182 uint8_t number_of_ambient_bins;
Charles MacNeill 5:89031b2f5316 183
Charles MacNeill 5:89031b2f5316 184 uint8_t bin_seq[VL53LX_MAX_BIN_SEQUENCE_LENGTH];
Charles MacNeill 5:89031b2f5316 185
Charles MacNeill 5:89031b2f5316 186 uint8_t bin_rep[VL53LX_MAX_BIN_SEQUENCE_LENGTH];
Charles MacNeill 5:89031b2f5316 187
Charles MacNeill 5:89031b2f5316 188 int32_t bin_data[VL53LX_HISTOGRAM_BUFFER_SIZE];
Charles MacNeill 5:89031b2f5316 189
Charles MacNeill 5:89031b2f5316 190
Charles MacNeill 5:89031b2f5316 191 uint8_t result__interrupt_status;
Charles MacNeill 5:89031b2f5316 192
Charles MacNeill 5:89031b2f5316 193 uint8_t result__range_status;
Charles MacNeill 5:89031b2f5316 194
Charles MacNeill 5:89031b2f5316 195 uint8_t result__report_status;
Charles MacNeill 5:89031b2f5316 196
Charles MacNeill 5:89031b2f5316 197 uint8_t result__stream_count;
Charles MacNeill 5:89031b2f5316 198
Charles MacNeill 5:89031b2f5316 199 uint16_t result__dss_actual_effective_spads;
Charles MacNeill 5:89031b2f5316 200
Charles MacNeill 5:89031b2f5316 201
Charles MacNeill 5:89031b2f5316 202 uint16_t phasecal_result__reference_phase;
Charles MacNeill 5:89031b2f5316 203
Charles MacNeill 5:89031b2f5316 204 uint8_t phasecal_result__vcsel_start;
Charles MacNeill 5:89031b2f5316 205
Charles MacNeill 5:89031b2f5316 206 uint8_t cal_config__vcsel_start;
Charles MacNeill 5:89031b2f5316 207
Charles MacNeill 5:89031b2f5316 208 uint16_t vcsel_width;
Charles MacNeill 5:89031b2f5316 209
Charles MacNeill 5:89031b2f5316 210 uint8_t VL53LX_p_005;
Charles MacNeill 5:89031b2f5316 211
Charles MacNeill 5:89031b2f5316 212 uint16_t VL53LX_p_015;
Charles MacNeill 5:89031b2f5316 213
Charles MacNeill 5:89031b2f5316 214 uint32_t total_periods_elapsed;
Charles MacNeill 5:89031b2f5316 215
Charles MacNeill 5:89031b2f5316 216
Charles MacNeill 5:89031b2f5316 217 uint32_t peak_duration_us;
Charles MacNeill 5:89031b2f5316 218
Charles MacNeill 5:89031b2f5316 219 uint32_t woi_duration_us;
Charles MacNeill 5:89031b2f5316 220
Charles MacNeill 5:89031b2f5316 221
Charles MacNeill 5:89031b2f5316 222 int32_t min_bin_value;
Charles MacNeill 5:89031b2f5316 223
Charles MacNeill 5:89031b2f5316 224 int32_t max_bin_value;
Charles MacNeill 5:89031b2f5316 225
Charles MacNeill 5:89031b2f5316 226
Charles MacNeill 5:89031b2f5316 227 uint16_t zero_distance_phase;
Charles MacNeill 5:89031b2f5316 228
Charles MacNeill 5:89031b2f5316 229 uint8_t number_of_ambient_samples;
Charles MacNeill 5:89031b2f5316 230
Charles MacNeill 5:89031b2f5316 231 int32_t ambient_events_sum;
Charles MacNeill 5:89031b2f5316 232
Charles MacNeill 5:89031b2f5316 233 int32_t VL53LX_p_028;
Charles MacNeill 5:89031b2f5316 234
Charles MacNeill 5:89031b2f5316 235
Charles MacNeill 5:89031b2f5316 236 uint8_t roi_config__user_roi_centre_spad;
Charles MacNeill 5:89031b2f5316 237
Charles MacNeill 5:89031b2f5316 238 uint8_t roi_config__user_roi_requested_global_xy_size;
Charles MacNeill 5:89031b2f5316 239
Charles MacNeill 5:89031b2f5316 240
Charles MacNeill 5:89031b2f5316 241 } VL53LX_histogram_bin_data_t;
Charles MacNeill 5:89031b2f5316 242
Charles MacNeill 5:89031b2f5316 243
Charles MacNeill 5:89031b2f5316 244
Charles MacNeill 5:89031b2f5316 245
Charles MacNeill 5:89031b2f5316 246 typedef struct {
Charles MacNeill 5:89031b2f5316 247
Charles MacNeill 5:89031b2f5316 248
Charles MacNeill 5:89031b2f5316 249 uint8_t zone_id;
Charles MacNeill 5:89031b2f5316 250
Charles MacNeill 5:89031b2f5316 251 uint32_t time_stamp;
Charles MacNeill 5:89031b2f5316 252
Charles MacNeill 5:89031b2f5316 253
Charles MacNeill 5:89031b2f5316 254 uint8_t VL53LX_p_019;
Charles MacNeill 5:89031b2f5316 255
Charles MacNeill 5:89031b2f5316 256 uint8_t VL53LX_p_020;
Charles MacNeill 5:89031b2f5316 257
Charles MacNeill 5:89031b2f5316 258 uint8_t VL53LX_p_021;
Charles MacNeill 5:89031b2f5316 259
Charles MacNeill 5:89031b2f5316 260 uint32_t bin_data[VL53LX_XTALK_HISTO_BINS];
Charles MacNeill 5:89031b2f5316 261
Charles MacNeill 5:89031b2f5316 262
Charles MacNeill 5:89031b2f5316 263
Charles MacNeill 5:89031b2f5316 264 uint16_t phasecal_result__reference_phase;
Charles MacNeill 5:89031b2f5316 265
Charles MacNeill 5:89031b2f5316 266 uint8_t phasecal_result__vcsel_start;
Charles MacNeill 5:89031b2f5316 267
Charles MacNeill 5:89031b2f5316 268 uint8_t cal_config__vcsel_start;
Charles MacNeill 5:89031b2f5316 269
Charles MacNeill 5:89031b2f5316 270 uint16_t vcsel_width;
Charles MacNeill 5:89031b2f5316 271
Charles MacNeill 5:89031b2f5316 272 uint16_t VL53LX_p_015;
Charles MacNeill 5:89031b2f5316 273
Charles MacNeill 5:89031b2f5316 274 uint16_t zero_distance_phase;
Charles MacNeill 5:89031b2f5316 275
Charles MacNeill 5:89031b2f5316 276
Charles MacNeill 5:89031b2f5316 277 } VL53LX_xtalk_histogram_shape_t;
Charles MacNeill 5:89031b2f5316 278
Charles MacNeill 5:89031b2f5316 279
Charles MacNeill 5:89031b2f5316 280
Charles MacNeill 5:89031b2f5316 281
Charles MacNeill 5:89031b2f5316 282 typedef struct {
Charles MacNeill 5:89031b2f5316 283
Charles MacNeill 5:89031b2f5316 284
Charles MacNeill 5:89031b2f5316 285 VL53LX_xtalk_histogram_shape_t xtalk_shape;
Charles MacNeill 5:89031b2f5316 286
Charles MacNeill 5:89031b2f5316 287 VL53LX_histogram_bin_data_t xtalk_hist_removed;
Charles MacNeill 5:89031b2f5316 288
Charles MacNeill 5:89031b2f5316 289 } VL53LX_xtalk_histogram_data_t;
Charles MacNeill 5:89031b2f5316 290
Charles MacNeill 5:89031b2f5316 291
Charles MacNeill 5:89031b2f5316 292
Charles MacNeill 5:89031b2f5316 293
Charles MacNeill 5:89031b2f5316 294 #ifdef __cplusplus
Charles MacNeill 5:89031b2f5316 295 }
Charles MacNeill 5:89031b2f5316 296 #endif
Charles MacNeill 5:89031b2f5316 297
Charles MacNeill 5:89031b2f5316 298 #endif
Charles MacNeill 5:89031b2f5316 299