AFBR-S50 API Reference Manual v1.6.5
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 * @brief The measurement mode flags.
223 * @details The measurement mode flags that can be combined to a measurement
224 * mode, e.g. high speed short range mode. See #argus_mode_t for
225 * a complete list of available measurement modes.
226 *
227 * - Bit 0: Short Range Mode
228 * - Bit 1: Long Range Mode
229 * - Bit 2: High Speed Mode
230 * - Bit 3: High Precision Mode
231 * - Bit 7: Laser Class 2 Mode
232 *
233 * Note that the Long and Short Range Flags are mutual exclusive but
234 * any of those 2 must be set. Thus the value 0 is invalid!
235 *
236 * All other flags enhance the base configurations, e.g.
237 * - the High Speed flag create the high speed mode,
238 * - the High Precision flag create the high precision mode and
239 * - the Laser Class 2 flag extends the laser output to laser class 2
240 * of the selected base measurement mode.
241 *****************************************************************************/
260
261/*!***************************************************************************
262 * @brief The measurement modes.
263 * @details The measurement modes are composed in binary from of the flags
264 * define in #argus_mode_flags_t, i.e. each bit has a special meaning:
265 *
266 * - Bit 0: Short Range Mode
267 * - Bit 1: Long Range Mode
268 * - Bit 2: High Speed Mode
269 * - Bit 3: High Precision Mode (Short Range Mode only)
270 * - Bit 7: Laser Class 2 (Type-B devices only)
271 *
272 * Note that the Long and Short Range Bits are mutual exclusive but any
273 * of those 2 must be set. Thus the value 0 is invalid!
274 *****************************************************************************/
318
321
322/*!***************************************************************************
323 * @brief Measurement Ready API callback function.
324 *
325 * @details Invoked by the API whenever a measurement cycle is finished and
326 * new data is ready to be evaluated via the #Argus_EvaluateData API
327 * function.
328 * The callback is passed to the API via the #Argus_TriggerMeasurement
329 * or #Argus_StartMeasurementTimer API functions.
330 * The API passes the status of the currently finished measurement
331 * cycle to the callback as first parameters. The second parameter is
332 * a pointer the API handle structure. The latter is used to identify
333 * the calling instance of the API in case of multiple devices.
334 * Further it can be passed to the #Argus_EvaluateData function.
335 *
336 * @warning Since the callback is called from an interrupt context, the
337 * callback execution must return as fast as possible. The usual task
338 * in the callback is to post an event to the main thread to inform it
339 * about the new data and that is must call the #Argus_EvaluateData
340 * function.
341 *
342 * @param status The module status that caused the callback. #STATUS_OK if
343 * everything was as expected.
344 *
345 * @param hnd The API handle pointer to the calling instance. Identifies the
346 * instance of the API that was invoking the callback and thus the
347 * instance that must call the #Argus_EvaluateData for.
348 *
349 * @return Returns the \link #status_t status\endlink (#STATUS_OK on success).
350 *****************************************************************************/
352
354#ifdef __cplusplus
355} // extern "C"
356#endif
357#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:351
struct argus_hnd_t argus_hnd_t
Definition argus_def.h:320
argus_chip_version_t
The AFBR-S50 chip versions.
Definition argus_def.h:200
argus_mode_t
The measurement modes.
Definition argus_def.h:276
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:243
@ 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:290
@ ARGUS_MODE_LONG_RANGE_LASER_CLASS_2
Definition argus_def.h:302
@ ARGUS_MODE_LONG_RANGE
Definition argus_def.h:282
@ ARGUS_MODE_HIGH_PRECISION_SHORT_RANGE_LASER_CLASS_2
Definition argus_def.h:314
@ ARGUS_MODE_SHORT_RANGE
Definition argus_def.h:278
@ ARGUS_MODE_HIGH_SPEED_SHORT_RANGE
Definition argus_def.h:286
@ ARGUS_MODE_HIGH_SPEED_SHORT_RANGE_LASER_CLASS_2
Definition argus_def.h:306
@ ARGUS_MODE_SHORT_RANGE_LASER_CLASS_2
Definition argus_def.h:298
@ ARGUS_MODE_HIGH_PRECISION_SHORT_RANGE
Definition argus_def.h:294
@ ARGUS_MODE_HIGH_SPEED_LONG_RANGE_LASER_CLASS_2
Definition argus_def.h:310
@ 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:245
@ ARGUS_MODE_FLAG_HIGH_PRECISION
Definition argus_def.h:254
@ ARGUS_MODE_FLAG_HIGH_SPEED
Definition argus_def.h:251
@ ARGUS_MODE_FLAG_LONG_RANGE
Definition argus_def.h:248
@ ARGUS_MODE_FLAG_LASER_CLASS_2
Definition argus_def.h:257
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.