Rename library

Dependencies:   X_NUCLEO_COMMON ST_INTERFACES

Dependents:   VL53L3CX_NoShield_1Sensor_poll_Mb06x VL53L3_NoShield_1Sensor_polling_Mb63 X_NUCLEO_53L3A2 53L3A2_Ranging

modules/vl53lx_api_core.h

Committer:
charlesmn
Date:
2021-07-21
Revision:
7:7f1bbf370283
Parent:
5:89031b2f5316

File content as of revision 7:7f1bbf370283:


/* SPDX-License-Identifier: GPL-2.0+ OR BSD-3-Clause */
/******************************************************************************
 * Copyright (c) 2020, STMicroelectronics - All Rights Reserved

 This file is part of VL53LX and is dual licensed,
 either GPL-2.0+
 or 'BSD 3-clause "New" or "Revised" License' , at your option.
 ******************************************************************************
 */




#ifndef _VL53LX_API_CORE_H_
#define _VL53LX_API_CORE_H_

#include "vl53lx_platform.h"

#ifdef __cplusplus
extern "C" {
#endif




VL53LX_Error VL53LX_get_version(
	VL53LX_DEV            Dev,
	VL53LX_ll_version_t  *pversion);





VL53LX_Error VL53LX_data_init(
	VL53LX_DEV         Dev,
	uint8_t            read_p2p_data);




VL53LX_Error VL53LX_read_p2p_data(
	VL53LX_DEV      Dev);




VL53LX_Error VL53LX_set_part_to_part_data(
	VL53LX_DEV                            Dev,
	VL53LX_calibration_data_t            *pcal_data);




VL53LX_Error VL53LX_get_part_to_part_data(
	VL53LX_DEV                            Dev,
	VL53LX_calibration_data_t            *pcal_data);




VL53LX_Error VL53LX_get_tuning_debug_data(
	VL53LX_DEV                            Dev,
	VL53LX_tuning_parameters_t            *ptun_data);




VL53LX_Error VL53LX_set_inter_measurement_period_ms(
	VL53LX_DEV          Dev,
	uint32_t            inter_measurement_period_ms);




VL53LX_Error VL53LX_get_inter_measurement_period_ms(
	VL53LX_DEV          Dev,
	uint32_t           *pinter_measurement_period_ms);




VL53LX_Error VL53LX_set_timeouts_us(
	VL53LX_DEV          Dev,
	uint32_t            phasecal_config_timeout_us,
	uint32_t            mm_config_timeout_us,
	uint32_t            range_config_timeout_us);




VL53LX_Error VL53LX_get_timeouts_us(
	VL53LX_DEV          Dev,
	uint32_t           *pphasecal_config_timeout_us,
	uint32_t           *pmm_config_timeout_us,
	uint32_t           *prange_config_timeout_us);




VL53LX_Error VL53LX_set_user_zone(
	VL53LX_DEV          Dev,
	VL53LX_user_zone_t *puser_zone);




VL53LX_Error VL53LX_get_user_zone(
	VL53LX_DEV          Dev,
	VL53LX_user_zone_t *puser_zone);




VL53LX_Error VL53LX_get_mode_mitigation_roi(
	VL53LX_DEV          Dev,
	VL53LX_user_zone_t *pmm_roi);

VL53LX_Error VL53LX_init_zone_config_histogram_bins(VL53LX_zone_config_t *pdata);
VL53LX_Error VL53LX_set_zone_config(VL53LX_DEV Dev, VL53LX_zone_config_t *pzone_cfg);
VL53LX_Error VL53LX_get_zone_config(VL53LX_DEV Dev, VL53LX_zone_config_t *pzone_cfg);



VL53LX_Error VL53LX_set_preset_mode(
	VL53LX_DEV                   Dev,
	VL53LX_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);




VL53LX_Error VL53LX_get_preset_mode_timing_cfg(
	VL53LX_DEV                   Dev,
	VL53LX_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);



VL53LX_Error VL53LX_enable_xtalk_compensation(
	VL53LX_DEV                 Dev);



VL53LX_Error VL53LX_disable_xtalk_compensation(
	VL53LX_DEV                 Dev);




void VL53LX_get_xtalk_compensation_enable(
	VL53LX_DEV    Dev,
	uint8_t       *pcrosstalk_compensation_enable);



VL53LX_Error VL53LX_init_and_start_range(
	VL53LX_DEV                      Dev,
	uint8_t                         measurement_mode,
	VL53LX_DeviceConfigLevel        device_config_level);




VL53LX_Error VL53LX_stop_range(
	VL53LX_DEV  Dev);




VL53LX_Error VL53LX_get_measurement_results(
	VL53LX_DEV                  Dev,
	VL53LX_DeviceResultsLevel   device_result_level);




VL53LX_Error VL53LX_get_device_results(
	VL53LX_DEV                 Dev,
	VL53LX_DeviceResultsLevel  device_result_level,
	VL53LX_range_results_t    *prange_results);




VL53LX_Error VL53LX_clear_interrupt_and_enable_next_range(
	VL53LX_DEV       Dev,
	uint8_t          measurement_mode);




VL53LX_Error VL53LX_get_histogram_bin_data(
	VL53LX_DEV                   Dev,
	VL53LX_histogram_bin_data_t *phist_data);




void VL53LX_copy_sys_and_core_results_to_range_results(
	int32_t                           gain_factor,
	VL53LX_system_results_t          *psys,
	VL53LX_core_results_t            *pcore,
	VL53LX_range_results_t           *presults);



VL53LX_Error VL53LX_set_zone_dss_config(
	  VL53LX_DEV                      Dev,
	  VL53LX_zone_private_dyn_cfg_t  *pzone_dyn_cfg);




VL53LX_Error VL53LX_set_dmax_mode(
	VL53LX_DEV              Dev,
	VL53LX_DeviceDmaxMode   dmax_mode);



VL53LX_Error VL53LX_get_dmax_mode(
	VL53LX_DEV               Dev,
	VL53LX_DeviceDmaxMode   *pdmax_mode);




VL53LX_Error VL53LX_get_dmax_calibration_data(
	VL53LX_DEV                      Dev,
	VL53LX_DeviceDmaxMode           dmax_mode,
	VL53LX_dmax_calibration_data_t *pdmax_cal);




VL53LX_Error VL53LX_set_offset_correction_mode(
	VL53LX_DEV                     Dev,
	VL53LX_OffsetCalibrationMode   offset_cor_mode);




VL53LX_Error VL53LX_get_offset_correction_mode(
	VL53LX_DEV                    Dev,
	VL53LX_OffsetCorrectionMode  *poffset_cor_mode);




VL53LX_Error VL53LX_get_tuning_parm(
	VL53LX_DEV                     Dev,
	VL53LX_TuningParms             tuning_parm_key,
	int32_t                       *ptuning_parm_value);



VL53LX_Error VL53LX_set_tuning_parm(
	VL53LX_DEV                     Dev,
	VL53LX_TuningParms             tuning_parm_key,
	int32_t                        tuning_parm_value);



VL53LX_Error VL53LX_dynamic_xtalk_correction_enable(
	VL53LX_DEV                     Dev
	);



VL53LX_Error VL53LX_dynamic_xtalk_correction_disable(
	VL53LX_DEV                     Dev
	);




VL53LX_Error VL53LX_dynamic_xtalk_correction_apply_enable(
	VL53LX_DEV                          Dev
	);



VL53LX_Error VL53LX_dynamic_xtalk_correction_apply_disable(
	VL53LX_DEV                          Dev
	);



VL53LX_Error VL53LX_dynamic_xtalk_correction_single_apply_enable(
	VL53LX_DEV                          Dev
	);



VL53LX_Error VL53LX_dynamic_xtalk_correction_single_apply_disable(
	VL53LX_DEV                          Dev
	);



VL53LX_Error VL53LX_get_current_xtalk_settings(
	VL53LX_DEV                          Dev,
	VL53LX_xtalk_calibration_results_t *pxtalk
	);



VL53LX_Error VL53LX_set_current_xtalk_settings(
	VL53LX_DEV                          Dev,
	VL53LX_xtalk_calibration_results_t *pxtalk
	);

VL53LX_Error VL53LX_load_patch(VL53LX_DEV Dev);

VL53LX_Error VL53LX_unload_patch(VL53LX_DEV Dev);

#ifdef __cplusplus
}
#endif

#endif