Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: X_NUCLEO_COMMON ST_INTERFACES
Dependents: VL53L1CB_noshield_1sensor_polls_auton VL53L1CB_noshield_1sensor_interrupt_auton X_NUCLEO_53L1A2
inc/vl53l1_api_core.h
- Committer:
- Charles MacNeill
- Date:
- 2021-06-08
- Revision:
- 7:1add29d51e72
- Parent:
- 0:3ac96e360672
File content as of revision 7:1add29d51e72:
/* SPDX-License-Identifier: GPL-2.0+ OR BSD-3-Clause */
/******************************************************************************
* Copyright (c) 2020, STMicroelectronics - All Rights Reserved
This file is part of VL53L1 and is dual licensed,
either GPL-2.0+
or 'BSD 3-clause "New" or "Revised" License' , at your option.
******************************************************************************
*/
#ifndef _VL53L1_API_CORE_H_
#define _VL53L1_API_CORE_H_
#include "vl53l1_platform.h"
#ifdef __cplusplus
extern "C" {
#endif
VL53L1_Error VL53L1_get_version(
VL53L1_DEV Dev,
VL53L1_ll_version_t *pversion);
VL53L1_Error VL53L1_get_device_firmware_version(
VL53L1_DEV Dev,
uint16_t *pfw_version);
VL53L1_Error VL53L1_data_init(
VL53L1_DEV Dev,
uint8_t read_p2p_data);
VL53L1_Error VL53L1_read_p2p_data(
VL53L1_DEV Dev);
VL53L1_Error VL53L1_software_reset(
VL53L1_DEV Dev);
VL53L1_Error VL53L1_set_part_to_part_data(
VL53L1_DEV Dev,
VL53L1_calibration_data_t *pcal_data);
VL53L1_Error VL53L1_get_part_to_part_data(
VL53L1_DEV Dev,
VL53L1_calibration_data_t *pcal_data);
VL53L1_Error VL53L1_get_tuning_debug_data(
VL53L1_DEV Dev,
VL53L1_tuning_parameters_t *ptun_data);
VL53L1_Error VL53L1_set_inter_measurement_period_ms(
VL53L1_DEV Dev,
uint32_t inter_measurement_period_ms);
VL53L1_Error VL53L1_get_inter_measurement_period_ms(
VL53L1_DEV Dev,
uint32_t *pinter_measurement_period_ms);
VL53L1_Error VL53L1_set_timeouts_us(
VL53L1_DEV Dev,
uint32_t phasecal_config_timeout_us,
uint32_t mm_config_timeout_us,
uint32_t range_config_timeout_us);
VL53L1_Error VL53L1_get_timeouts_us(
VL53L1_DEV Dev,
uint32_t *pphasecal_config_timeout_us,
uint32_t *pmm_config_timeout_us,
uint32_t *prange_config_timeout_us);
VL53L1_Error VL53L1_set_calibration_repeat_period(
VL53L1_DEV Dev,
uint16_t cal_config__repeat_period);
VL53L1_Error VL53L1_get_calibration_repeat_period(
VL53L1_DEV Dev,
uint16_t *pcal_config__repeat_period);
VL53L1_Error VL53L1_set_sequence_config_bit(
VL53L1_DEV Dev,
VL53L1_DeviceSequenceConfig bit_id,
uint8_t value);
VL53L1_Error VL53L1_get_sequence_config_bit(
VL53L1_DEV Dev,
VL53L1_DeviceSequenceConfig bit_id,
uint8_t *pvalue);
VL53L1_Error VL53L1_set_interrupt_polarity(
VL53L1_DEV Dev,
VL53L1_DeviceInterruptPolarity interrupt_polarity);
VL53L1_Error VL53L1_get_interrupt_polarity(
VL53L1_DEV Dev,
VL53L1_DeviceInterruptPolarity *pinterrupt_polarity);
VL53L1_Error VL53L1_get_refspadchar_config_struct(
VL53L1_DEV Dev,
VL53L1_refspadchar_config_t *pdata);
VL53L1_Error VL53L1_set_refspadchar_config_struct(
VL53L1_DEV Dev,
VL53L1_refspadchar_config_t *pdata);
VL53L1_Error VL53L1_set_range_ignore_threshold(
VL53L1_DEV Dev,
uint8_t range_ignore_thresh_mult,
uint16_t range_ignore_threshold_mcps);
VL53L1_Error VL53L1_get_range_ignore_threshold(
VL53L1_DEV Dev,
uint8_t *prange_ignore_thresh_mult,
uint16_t *prange_ignore_threshold_mcps_internal,
uint16_t *prange_ignore_threshold_mcps_current);
VL53L1_Error VL53L1_set_user_zone(
VL53L1_DEV Dev,
VL53L1_user_zone_t *puser_zone);
VL53L1_Error VL53L1_get_user_zone(
VL53L1_DEV Dev,
VL53L1_user_zone_t *puser_zone);
VL53L1_Error VL53L1_get_mode_mitigation_roi(
VL53L1_DEV Dev,
VL53L1_user_zone_t *pmm_roi);
VL53L1_Error VL53L1_set_zone_config(
VL53L1_DEV Dev,
VL53L1_zone_config_t *pzone_cfg);
VL53L1_Error VL53L1_get_zone_config(
VL53L1_DEV Dev,
VL53L1_zone_config_t *pzone_cfg);
VL53L1_Error VL53L1_set_preset_mode(
VL53L1_DEV Dev,
VL53L1_DevicePresetModes device_preset_mode,
uint16_t dss_config__target_total_rate_mcps,
uint32_t phasecal_config_timeout_us,
uint32_t mm_config_timeout_us,
uint32_t range_config_timeout_us,
uint32_t inter_measurement_period_ms);
VL53L1_Error VL53L1_get_preset_mode_timing_cfg(
VL53L1_DEV Dev,
VL53L1_DevicePresetModes device_preset_mode,
uint16_t *pdss_config__target_total_rate_mcps,
uint32_t *pphasecal_config_timeout_us,
uint32_t *pmm_config_timeout_us,
uint32_t *prange_config_timeout_us);
VL53L1_Error VL53L1_set_zone_preset(
VL53L1_DEV Dev,
VL53L1_DeviceZonePreset zone_preset);
VL53L1_Error VL53L1_enable_xtalk_compensation(
VL53L1_DEV Dev);
VL53L1_Error VL53L1_disable_xtalk_compensation(
VL53L1_DEV Dev);
void VL53L1_get_xtalk_compensation_enable(
VL53L1_DEV Dev,
uint8_t *pcrosstalk_compensation_enable);
VL53L1_Error VL53L1_init_and_start_range(
VL53L1_DEV Dev,
uint8_t measurement_mode,
VL53L1_DeviceConfigLevel device_config_level);
VL53L1_Error VL53L1_stop_range(
VL53L1_DEV Dev);
VL53L1_Error VL53L1_get_measurement_results(
VL53L1_DEV Dev,
VL53L1_DeviceResultsLevel device_result_level);
VL53L1_Error VL53L1_get_device_results(
VL53L1_DEV Dev,
VL53L1_DeviceResultsLevel device_result_level,
VL53L1_range_results_t *prange_results);
VL53L1_Error VL53L1_clear_interrupt_and_enable_next_range(
VL53L1_DEV Dev,
uint8_t measurement_mode);
VL53L1_Error VL53L1_get_histogram_bin_data(
VL53L1_DEV Dev,
VL53L1_histogram_bin_data_t *phist_data);
void VL53L1_copy_sys_and_core_results_to_range_results(
int32_t gain_factor,
VL53L1_system_results_t *psys,
VL53L1_core_results_t *pcore,
VL53L1_range_results_t *presults);
VL53L1_Error VL53L1_set_zone_dss_config(
VL53L1_DEV Dev,
VL53L1_zone_private_dyn_cfg_t *pzone_dyn_cfg);
VL53L1_Error VL53L1_calc_ambient_dmax(
VL53L1_DEV Dev,
uint16_t target_reflectance,
int16_t *pambient_dmax_mm);
VL53L1_Error VL53L1_set_GPIO_interrupt_config(
VL53L1_DEV Dev,
VL53L1_GPIO_Interrupt_Mode intr_mode_distance,
VL53L1_GPIO_Interrupt_Mode intr_mode_rate,
uint8_t intr_new_measure_ready,
uint8_t intr_no_target,
uint8_t intr_combined_mode,
uint16_t thresh_distance_high,
uint16_t thresh_distance_low,
uint16_t thresh_rate_high,
uint16_t thresh_rate_low
);
VL53L1_Error VL53L1_set_GPIO_interrupt_config_struct(
VL53L1_DEV Dev,
VL53L1_GPIO_interrupt_config_t intconf);
VL53L1_Error VL53L1_get_GPIO_interrupt_config(
VL53L1_DEV Dev,
VL53L1_GPIO_interrupt_config_t *pintconf);
VL53L1_Error VL53L1_set_dmax_mode(
VL53L1_DEV Dev,
VL53L1_DeviceDmaxMode dmax_mode);
VL53L1_Error VL53L1_get_dmax_mode(
VL53L1_DEV Dev,
VL53L1_DeviceDmaxMode *pdmax_mode);
VL53L1_Error VL53L1_get_dmax_calibration_data(
VL53L1_DEV Dev,
VL53L1_DeviceDmaxMode dmax_mode,
uint8_t zone_id,
VL53L1_dmax_calibration_data_t *pdmax_cal);
VL53L1_Error VL53L1_set_hist_dmax_config(
VL53L1_DEV Dev,
VL53L1_hist_gen3_dmax_config_t *pdmax_cfg);
VL53L1_Error VL53L1_get_hist_dmax_config(
VL53L1_DEV Dev,
VL53L1_hist_gen3_dmax_config_t *pdmax_cfg);
VL53L1_Error VL53L1_set_offset_calibration_mode(
VL53L1_DEV Dev,
VL53L1_OffsetCalibrationMode offset_cal_mode);
VL53L1_Error VL53L1_get_offset_calibration_mode(
VL53L1_DEV Dev,
VL53L1_OffsetCalibrationMode *poffset_cal_mode);
VL53L1_Error VL53L1_set_offset_correction_mode(
VL53L1_DEV Dev,
VL53L1_OffsetCalibrationMode offset_cor_mode);
VL53L1_Error VL53L1_get_offset_correction_mode(
VL53L1_DEV Dev,
VL53L1_OffsetCorrectionMode *poffset_cor_mode);
VL53L1_Error VL53L1_set_zone_calibration_data(
VL53L1_DEV Dev,
VL53L1_zone_calibration_results_t *pzone_cal);
VL53L1_Error VL53L1_get_zone_calibration_data(
VL53L1_DEV Dev,
VL53L1_zone_calibration_results_t *pzone_cal);
VL53L1_Error VL53L1_get_lite_xtalk_margin_kcps(
VL53L1_DEV Dev,
int16_t *pxtalk_margin);
VL53L1_Error VL53L1_set_lite_xtalk_margin_kcps(
VL53L1_DEV Dev,
int16_t xtalk_margin);
VL53L1_Error VL53L1_get_histogram_xtalk_margin_kcps(
VL53L1_DEV Dev,
int16_t *pxtalk_margin);
VL53L1_Error VL53L1_set_histogram_xtalk_margin_kcps(
VL53L1_DEV Dev,
int16_t xtalk_margin);
VL53L1_Error VL53L1_get_histogram_phase_consistency(
VL53L1_DEV Dev,
uint8_t *pphase_consistency);
VL53L1_Error VL53L1_set_histogram_phase_consistency(
VL53L1_DEV Dev,
uint8_t phase_consistency);
VL53L1_Error VL53L1_get_histogram_event_consistency(
VL53L1_DEV Dev,
uint8_t *pevent_consistency);
VL53L1_Error VL53L1_set_histogram_event_consistency(
VL53L1_DEV Dev,
uint8_t event_consistency);
VL53L1_Error VL53L1_get_histogram_ambient_threshold_sigma(
VL53L1_DEV Dev,
uint8_t *pamb_thresh_sigma);
VL53L1_Error VL53L1_set_histogram_ambient_threshold_sigma(
VL53L1_DEV Dev,
uint8_t amb_thresh_sigma);
VL53L1_Error VL53L1_get_lite_min_count_rate(
VL53L1_DEV Dev,
uint16_t *plite_mincountrate);
VL53L1_Error VL53L1_set_lite_min_count_rate(
VL53L1_DEV Dev,
uint16_t lite_mincountrate);
VL53L1_Error VL53L1_get_lite_sigma_threshold(
VL53L1_DEV Dev,
uint16_t *plite_sigma);
VL53L1_Error VL53L1_set_lite_sigma_threshold(
VL53L1_DEV Dev,
uint16_t lite_sigma);
VL53L1_Error VL53L1_restore_xtalk_nvm_default(
VL53L1_DEV Dev);
VL53L1_Error VL53L1_get_xtalk_detect_config(
VL53L1_DEV Dev,
int16_t *pmax_valid_range_mm,
int16_t *pmin_valid_range_mm,
uint16_t *pmax_valid_rate_kcps,
uint16_t *pmax_sigma_mm);
VL53L1_Error VL53L1_set_xtalk_detect_config(
VL53L1_DEV Dev,
int16_t max_valid_range_mm,
int16_t min_valid_range_mm,
uint16_t max_valid_rate_kcps,
uint16_t max_sigma_mm);
VL53L1_Error VL53L1_get_target_order_mode(
VL53L1_DEV Dev,
VL53L1_HistTargetOrder *phist_target_order);
VL53L1_Error VL53L1_set_target_order_mode(
VL53L1_DEV Dev,
VL53L1_HistTargetOrder hist_target_order);
VL53L1_Error VL53L1_set_dmax_reflectance_values(
VL53L1_DEV Dev,
VL53L1_dmax_reflectance_array_t *pdmax_reflectances);
VL53L1_Error VL53L1_get_dmax_reflectance_values(
VL53L1_DEV Dev,
VL53L1_dmax_reflectance_array_t *pdmax_reflectances);
VL53L1_Error VL53L1_set_vhv_config(
VL53L1_DEV Dev,
uint8_t vhv_init_en,
uint8_t vhv_init_value);
VL53L1_Error VL53L1_get_vhv_config(
VL53L1_DEV Dev,
uint8_t *pvhv_init_en,
uint8_t *pvhv_init_value);
VL53L1_Error VL53L1_set_vhv_loopbound(
VL53L1_DEV Dev,
uint8_t vhv_loopbound);
VL53L1_Error VL53L1_get_vhv_loopbound(
VL53L1_DEV Dev,
uint8_t *pvhv_loopbound);
VL53L1_Error VL53L1_get_tuning_parm(
VL53L1_DEV Dev,
VL53L1_TuningParms tuning_parm_key,
int32_t *ptuning_parm_value);
VL53L1_Error VL53L1_set_tuning_parm(
VL53L1_DEV Dev,
VL53L1_TuningParms tuning_parm_key,
int32_t tuning_parm_value);
VL53L1_Error VL53L1_dynamic_xtalk_correction_enable(
VL53L1_DEV Dev
);
VL53L1_Error VL53L1_dynamic_xtalk_correction_disable(
VL53L1_DEV Dev
);
VL53L1_Error VL53L1_dynamic_xtalk_correction_apply_enable(
VL53L1_DEV Dev
);
VL53L1_Error VL53L1_dynamic_xtalk_correction_apply_disable(
VL53L1_DEV Dev
);
VL53L1_Error VL53L1_dynamic_xtalk_correction_single_apply_enable(
VL53L1_DEV Dev
);
VL53L1_Error VL53L1_dynamic_xtalk_correction_single_apply_disable(
VL53L1_DEV Dev
);
VL53L1_Error VL53L1_dynamic_xtalk_correction_set_scalers(
VL53L1_DEV Dev,
int16_t x_scaler_in,
int16_t y_scaler_in,
uint8_t user_scaler_set_in
);
VL53L1_Error VL53L1_get_current_xtalk_settings(
VL53L1_DEV Dev,
VL53L1_xtalk_calibration_results_t *pxtalk
);
VL53L1_Error VL53L1_set_current_xtalk_settings(
VL53L1_DEV Dev,
VL53L1_xtalk_calibration_results_t *pxtalk
);
VL53L1_Error VL53L1_load_patch(VL53L1_DEV Dev);
VL53L1_Error VL53L1_unload_patch(VL53L1_DEV Dev);
#ifdef __cplusplus
}
#endif
#endif