AFBR-S50 API Reference Manual v1.5.6
AFBR-S50 Time-of-Flight Sensor SDK for Embedded Software
Loading...
Searching...
No Matches
argus_def.h
Go to the documentation of this file.
1/*************************************************************************/
38#ifndef ARGUS_DEF_H
39#define ARGUS_DEF_H
40#ifdef __cplusplus
41extern "C" {
42#endif
43
44/*!***************************************************************************
45 * Include files
46 *****************************************************************************/
47#include "argus_status.h"
48#include "argus_version.h"
49#include "utility/fp_def.h"
50#include "utility/time.h"
51#include <assert.h>
52#include <stdbool.h>
53#include <stddef.h>
54#include <stdint.h>
55#include <string.h>
56
57/*!***************************************************************************
58 * @addtogroup argus_api
59 * @{
60 *****************************************************************************/
61
62/*!***************************************************************************
63 * @brief Maximum number of phases per measurement cycle.
64 * @details The actual phase number is defined in the register configuration.
65 * However the software does only support a fixed value of 4 yet.
66 *****************************************************************************/
67#define ARGUS_PHASECOUNT 4
68
69/*!***************************************************************************
70 * @brief The device pixel field size in x direction (long edge).
71 *****************************************************************************/
72#define ARGUS_PIXELS_X 8
73
74/*!***************************************************************************
75 * @brief The device pixel field size in y direction (short edge).
76 *****************************************************************************/
77#define ARGUS_PIXELS_Y 4
78
79/*!***************************************************************************
80 * @brief The total device pixel count.
81 *****************************************************************************/
82#define ARGUS_PIXELS ((ARGUS_PIXELS_X)*(ARGUS_PIXELS_Y))
83
84/*!***************************************************************************
85 * @brief A flag indicating that the device is a extended range device.
86 *****************************************************************************/
87#define MODULE_EXTENDED_FLAG (0x40U)
88
89/*!***************************************************************************
90 * @brief The AFBR-S50 module types.
91 *****************************************************************************/
170
171/*!***************************************************************************
172 * @brief The AFBR-S50 laser configurations.
173 *****************************************************************************/
175{
178
181
184
187
190
193
195
196/*!***************************************************************************
197 * @brief The AFBR-S50 chip versions.
198 *****************************************************************************/
220
221
222/*!***************************************************************************
223 * @brief The measurement mode flags.
224 * @details The measurement mode flags that can be combined to a measurement
225 * mode, e.g. high speed short range mode. See #argus_mode_t for
226 * a complete list of available measurement modes.
227 *
228 * - Bit 0: Short Range Mode
229 * - Bit 1: Long Range Mode
230 * - Bit 2: High Speed Mode
231 *
232 * Note that the Long and Short Range Flags are mutual exclusive but
233 * any of those 2 must be set. Thus the value 0 is invalid!
234 * All other flags enhance the base configurations, e.g. the High
235 * Speed flag create the high speed mode of the selected base
236 * measurement mode.
237 *****************************************************************************/
250
251/*!***************************************************************************
252 * @brief The measurement modes.
253 * @details The measurement modes are composed in binary from of the flags
254 * define in #argus_mode_flags_t, i.e. each bit has a special meaning:
255 *
256 * - Bit 0: Short Range Mode
257 * - Bit 1: Long Range Mode
258 * - Bit 2: High Speed Mode
259 *
260 * Note that the Long and Short Range Bits are mutual exclusive but any
261 * of those 2 must be set. Thus the value 0 is invalid!
262 *****************************************************************************/
282
285
286/*!***************************************************************************
287 * @brief Measurement Ready API callback function.
288 *
289 * @details Invoked by the API whenever a measurement cycle is finished and
290 * new data is ready to be evaluated via the #Argus_EvaluateData API
291 * function.
292 * The callback is passed to the API via the #Argus_TriggerMeasurement
293 * or #Argus_StartMeasurementTimer API functions.
294 * The API passes the status of the currently finished measurement
295 * cycle to the callback as first parameters. The second parameter is
296 * a pointer the API handle structure. The latter is used to identify
297 * the calling instance of the API in case of multiple devices.
298 * Further it can be passed to the #Argus_EvaluateData function.
299 *
300 * @warning Since the callback is called from an interrupt context, the
301 * callback execution must return as fast as possible. The usual task
302 * in the callback is to post an event to the main thread to inform it
303 * about the new data and that is must call the #Argus_EvaluateData
304 * function.
305 *
306 * @param status The module status that caused the callback. #STATUS_OK if
307 * everything was as expected.
308 *
309 * @param hnd The API handle pointer to the calling instance. Identifies the
310 * instance of the API that was invoking the callback and thus the
311 * instance that must call the #Argus_EvaluateData for.
312 *
313 * @return Returns the \link #status_t status\endlink (#STATUS_OK on success).
314 *****************************************************************************/
316
318#ifdef __cplusplus
319} // extern "C"
320#endif
321#endif /* ARGUS_DEF_H */
This file is part of the AFBR-S50 API.
This file is part of the AFBR-S50 API.
This file is part of the AFBR-S50 API.
#define MODULE_EXTENDED_FLAG
A flag indicating that the device is a extended range device.
Definition argus_def.h:87
argus_module_version_t
The AFBR-S50 module types.
Definition argus_def.h:93
status_t(* argus_measurement_ready_callback_t)(status_t status, argus_hnd_t *hnd)
Measurement Ready API callback function.
Definition argus_def.h:315
struct argus_hnd_t argus_hnd_t
Definition argus_def.h:284
argus_chip_version_t
The AFBR-S50 chip versions.
Definition argus_def.h:200
argus_mode_t
The measurement modes.
Definition argus_def.h:264
argus_laser_type_t
The AFBR-S50 laser configurations.
Definition argus_def.h:175
argus_mode_flags_t
The measurement mode flags.
Definition argus_def.h:239
@ AFBR_S50LV85D_V1
Definition argus_def.h:113
@ AFBR_S50MV85G_V2
Definition argus_def.h:107
@ AFBR_S50LX85D_V1
Definition argus_def.h:143
@ AFBR_S50MV85I_V1
Definition argus_def.h:125
@ AFBR_S50MX85G_V1
Definition argus_def.h:167
@ AFBR_S50MV68B_V1
Definition argus_def.h:119
@ MODULE_NONE
Definition argus_def.h:95
@ AFBR_S50MV85G_V1
Definition argus_def.h:101
@ AFBR_S50MX85I_V1
Definition argus_def.h:155
@ AFBR_S50SV85K_V1
Definition argus_def.h:131
@ AFBR_S50MX68B_V1
Definition argus_def.h:149
@ AFBR_S50SX85K_V1
Definition argus_def.h:161
@ AFBR_S50MV85G_V3
Definition argus_def.h:137
@ ADS0032_V1D
Definition argus_def.h:214
@ ADS0032_V1A
Definition argus_def.h:205
@ ADS0032_V1E
Definition argus_def.h:217
@ ADS0032_V1C
Definition argus_def.h:211
@ ADS0032_V1B
Definition argus_def.h:208
@ ADS0032_NONE
Definition argus_def.h:202
@ ARGUS_MODE_HIGH_SPEED_LONG_RANGE
Definition argus_def.h:278
@ ARGUS_MODE_LONG_RANGE
Definition argus_def.h:270
@ ARGUS_MODE_SHORT_RANGE
Definition argus_def.h:266
@ ARGUS_MODE_HIGH_SPEED_SHORT_RANGE
Definition argus_def.h:274
@ LASER_H_V1
Definition argus_def.h:180
@ LASER_R_V1
Definition argus_def.h:186
@ LASER_R_V1X
Definition argus_def.h:192
@ LASER_H_V2X
Definition argus_def.h:189
@ LASER_NONE
Definition argus_def.h:177
@ LASER_H_V2
Definition argus_def.h:183
@ ARGUS_MODE_FLAG_SHORT_RANGE
Definition argus_def.h:241
@ ARGUS_MODE_FLAG_HIGH_SPEED
Definition argus_def.h:247
@ ARGUS_MODE_FLAG_LONG_RANGE
Definition argus_def.h:244
int32_t status_t
Type used for all status and error return values.
Definition argus_status.h:70
static status_t status
Definition argus_xtalk_cal_cli.c:140
argus_hnd_t * hnd
Definition main.c:100
This file is part of the AFBR-S50 API.