AFBR-S50 API Reference Manual v1.5.6
AFBR-S50 Time-of-Flight Sensor SDK for Embedded Software
Loading...
Searching...
No Matches
argus_api.h File Reference

This file is part of the AFBR-S50 API. More...

#include "argus_def.h"
#include "argus_res.h"
#include "argus_pba.h"
#include "argus_dfm.h"
#include "argus_snm.h"
#include "argus_xtalk.h"
#include "argus_offset.h"
Include dependency graph for argus_api.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Typedefs

typedef int32_t s2pi_slave_t
 

Functions

status_t Argus_Init (argus_hnd_t *hnd, s2pi_slave_t spi_slave)
 Initializes the device with default measurement mode.
 
status_t Argus_InitMode (argus_hnd_t *hnd, s2pi_slave_t spi_slave, argus_mode_t mode)
 Initializes the device with specified measurement mode.
 
status_t Argus_Reinit (argus_hnd_t *hnd)
 Reinitializes the device with the current measurement mode.
 
status_t Argus_ReinitMode (argus_hnd_t *hnd, argus_mode_t mode)
 Reinitializes the device with a specified measurement mode.
 
status_t Argus_Deinit (argus_hnd_t *hnd)
 Deinitializes the API modules and the device.
 
argus_hnd_tArgus_CreateHandle (void)
 Creates a new device data handle object to store all internal states.
 
status_t Argus_DestroyHandle (argus_hnd_t *hnd)
 Destroys a given device data handle object.
 
status_t Argus_RestoreDeviceState (argus_hnd_t *hnd)
 Restores the device state with a re-write of all register values.
 
uint32_t Argus_GetAPIVersion (void)
 Gets the version number of the current API library.
 
char const * Argus_GetBuildNumber (void)
 Gets the build number of the current API library.
 
argus_module_version_t Argus_GetModuleVersion (argus_hnd_t *hnd)
 Gets the version/variant of the module.
 
char const * Argus_GetModuleName (argus_hnd_t *hnd)
 Gets the name string of the module.
 
argus_chip_version_t Argus_GetChipVersion (argus_hnd_t *hnd)
 Gets the version number of the chip.
 
argus_laser_type_t Argus_GetLaserType (argus_hnd_t *hnd)
 Gets the type number of the device laser.
 
uint32_t Argus_GetChipID (argus_hnd_t *hnd)
 Gets the unique identification number of the chip.
 
s2pi_slave_t Argus_GetSPISlave (argus_hnd_t *hnd)
 Gets the SPI hardware slave identifier.
 
status_t Argus_StartMeasurementTimer (argus_hnd_t *hnd, argus_measurement_ready_callback_t cb)
 Starts the timer based measurement cycle asynchronously.
 
status_t Argus_StopMeasurementTimer (argus_hnd_t *hnd)
 Stops the timer based measurement cycle.
 
status_t Argus_TriggerMeasurement (argus_hnd_t *hnd, argus_measurement_ready_callback_t cb)
 Triggers a single measurement frame asynchronously.
 
bool Argus_IsDataEvaluationPending (argus_hnd_t *hnd)
 Determines whether a data evaluation is pending.
 
bool Argus_IsTimerMeasurementActive (argus_hnd_t *hnd)
 Determines if the device if active with timer based measurements.
 
status_t Argus_Abort (argus_hnd_t *hnd)
 Stops the currently ongoing measurements and SPI activity immediately.
 
status_t Argus_GetStatus (argus_hnd_t *hnd)
 Checks the state of the device/driver.
 
status_t Argus_Ping (argus_hnd_t *hnd)
 Tests the connection to the device by sending a ping message.
 
status_t Argus_EvaluateData (argus_hnd_t *hnd, argus_results_t *res)
 Evaluates measurement data from the raw sensor readout data.
 
status_t Argus_EvaluateDataDebug (argus_hnd_t *hnd, argus_results_t *res, argus_results_debug_t *dbg)
 Evaluates measurement data from the raw sensor readout data.
 
status_t Argus_ExecuteXtalkCalibrationSequence (argus_hnd_t *hnd)
 Executes a crosstalk calibration measurement.
 
status_t Argus_ExecuteRelativeRangeOffsetCalibrationSequence (argus_hnd_t *hnd)
 Executes a relative range offset calibration measurement.
 
status_t Argus_ExecuteAbsoluteRangeOffsetCalibrationSequence (argus_hnd_t *hnd, q9_22_t targetRange)
 Executes an absolute range offset calibration measurement.
 
argus_mode_t Argus_GetDefaultMeasurementMode (argus_module_version_t module)
 Gets the default measurement mode for a specified module type.
 
status_t Argus_SetMeasurementMode (argus_hnd_t *hnd, argus_mode_t mode)
 Sets the measurement mode to a specified device.
 
status_t Argus_ResetMeasurementMode (argus_hnd_t *hnd)
 Resets the measurement mode to a specified device.
 
status_t Argus_GetMeasurementMode (argus_hnd_t *hnd, argus_mode_t *mode)
 Gets the measurement mode from a specified device.
 
status_t Argus_SetConfigurationFrameTime (argus_hnd_t *hnd, uint32_t value)
 Sets the frame time to a specified device.
 
status_t Argus_GetConfigurationFrameTime (argus_hnd_t *hnd, uint32_t *value)
 Gets the frame time from a specified device.
 
status_t Argus_SetConfigurationSmartPowerSaveEnabled (argus_hnd_t *hnd, bool value)
 Sets the smart power save enabled flag to a specified device.
 
status_t Argus_GetConfigurationSmartPowerSaveEnabled (argus_hnd_t *hnd, bool *value)
 Gets the smart power save enabled flag from a specified device.
 
status_t Argus_SetConfigurationDFMMode (argus_hnd_t *hnd, argus_dfm_mode_t value)
 Sets the Dual Frequency Mode (DFM) to a specified device.
 
status_t Argus_GetConfigurationDFMMode (argus_hnd_t *hnd, argus_dfm_mode_t *value)
 Gets the Dual Frequency Mode (DFM) from a specified device.
 
status_t Argus_SetConfigurationShotNoiseMonitorMode (argus_hnd_t *hnd, argus_snm_mode_t value)
 Sets the Shot Noise Monitor (SNM) mode to a specified device.
 
status_t Argus_GetConfigurationShotNoiseMonitorMode (argus_hnd_t *hnd, argus_snm_mode_t *value)
 Gets the Shot Noise Monitor (SNM) mode from a specified device.
 
status_t Argus_SetConfigurationCrosstalkMonitorMode (argus_hnd_t *hnd, bool value)
 Sets the Crosstalk Monitor (XTM) mode to a specified device.
 
status_t Argus_GetConfigurationCrosstalkMonitorMode (argus_hnd_t *hnd, bool *value)
 Gets the Crosstalk Monitor (XTM) mode from a specified device.
 
status_t Argus_SetConfigurationDynamicAdaption (argus_hnd_t *hnd, argus_cfg_dca_t const *value)
 Sets the full DCA module configuration to a specified device.
 
status_t Argus_GetConfigurationDynamicAdaption (argus_hnd_t *hnd, argus_cfg_dca_t *value)
 Gets the # from a specified device.
 
status_t Argus_SetConfigurationPixelBinning (argus_hnd_t *hnd, argus_cfg_pba_t const *value)
 Sets the pixel binning configuration parameters to a specified device.
 
status_t Argus_GetConfigurationPixelBinning (argus_hnd_t *hnd, argus_cfg_pba_t *value)
 Gets the pixel binning configuration parameters from a specified device.
 
status_t Argus_GetConfigurationUnambiguousRange (argus_hnd_t *hnd, uint32_t *range_mm)
 Gets the current unambiguous range in mm.
 
status_t Argus_SetCalibrationGlobalRangeOffsets (argus_hnd_t *hnd, q0_15_t offset_low, q0_15_t offset_high)
 Sets the global range offset values to a specified device.
 
status_t Argus_GetCalibrationGlobalRangeOffsets (argus_hnd_t *hnd, q0_15_t *offset_low, q0_15_t *offset_high)
 Gets the global range offset values from a specified device.
 
status_t Argus_SetCalibrationPixelRangeOffsets (argus_hnd_t *hnd, argus_cal_offset_table_t const *value)
 Sets the relative pixel offset table to a specified device.
 
status_t Argus_GetCalibrationPixelRangeOffsets (argus_hnd_t *hnd, argus_cal_offset_table_t *value)
 Gets the relative pixel offset table from a specified device.
 
status_t Argus_ResetCalibrationPixelRangeOffsets (argus_hnd_t *hnd)
 Resets the relative pixel offset values for the specified device to the factory calibrated default values.
 
void Argus_GetPixelRangeOffsets_Callback (argus_cal_offset_table_t *offsets, argus_mode_t const mode)
 A callback that returns the external pixel range offsets.
 
status_t Argus_SetCalibrationRangeOffsetSequenceSampleTime (argus_hnd_t *hnd, uint16_t value)
 Sets the sample time for the range offset calibration sequence.
 
status_t Argus_GetCalibrationRangeOffsetSequenceSampleTime (argus_hnd_t *hnd, uint16_t *value)
 Gets the sample time for the range offset calibration sequence.
 
status_t Argus_SetCalibrationCrosstalkPixel2Pixel (argus_hnd_t *hnd, argus_cal_p2pxtalk_t const *value)
 Sets the pixel-to-pixel crosstalk compensation parameters to a specified device.
 
status_t Argus_GetCalibrationCrosstalkPixel2Pixel (argus_hnd_t *hnd, argus_cal_p2pxtalk_t *value)
 Gets the pixel-to-pixel crosstalk compensation parameters from a specified device.
 
status_t Argus_SetCalibrationCrosstalkVectorTable (argus_hnd_t *hnd, argus_cal_xtalk_table_t const *value)
 Sets the custom crosstalk vector table to a specified device.
 
status_t Argus_GetCalibrationCrosstalkVectorTable (argus_hnd_t *hnd, argus_cal_xtalk_table_t *value)
 Gets the custom crosstalk vector table from a specified device.
 
status_t Argus_ResetCalibrationCrosstalkVectorTable (argus_hnd_t *hnd)
 Resets the crosstalk vector table for the specified device to the factory calibrated default values.
 
status_t Argus_SetCalibrationCrosstalkSequenceSampleTime (argus_hnd_t *hnd, uint16_t value)
 Sets the sample time for the crosstalk calibration sequence.
 
status_t Argus_GetCalibrationCrosstalkSequenceSampleTime (argus_hnd_t *hnd, uint16_t *value)
 Gets the sample time for the crosstalk calibration sequence.
 
status_t Argus_SetCalibrationCrosstalkSequenceAmplitudeThreshold (argus_hnd_t *hnd, uq12_4_t value)
 Sets the max. amplitude threshold for the crosstalk calibration sequence.
 
status_t Argus_GetCalibrationCrosstalkSequenceAmplitudeThreshold (argus_hnd_t *hnd, uq12_4_t *value)
 Gets the max. amplitude threshold for the crosstalk calibration sequence.
 
status_t Argus_ClearUserCalibration (argus_hnd_t *hnd)
 Clears all user calibration values from NVM for the specified device.
 
void Argus_GetCrosstalkVectorTable_Callback (argus_cal_xtalk_table_t *xtalk, argus_mode_t const mode)
 A callback that returns the external crosstalk vector table.
 
status_t Argus_GetCalibrationGoldenPixel (argus_hnd_t const *hnd, uint8_t *x, uint8_t *y)
 Gets the currently calibrated Golden Pixel coordinates.
 

Detailed Description

This file is part of the AFBR-S50 API.

This file provides generic functionality belonging to all devices from the AFBR-S50 product family.

Copyright (c) 2023, Broadcom Inc. All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

  1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
  2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
  3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.