AFBR-S50 API Reference Manual  v1.6.5
AFBR-S50 Time-of-Flight Sensor SDK for Embedded Software
argus_res.h
Go to the documentation of this file.
1 /*************************************************************************/
37 #ifndef ARGUS_RES_H
38 #define ARGUS_RES_H
39 #ifdef __cplusplus
40 extern "C" {
41 #endif
42 
43 /*!***************************************************************************
44  * @defgroup argus_res Measurement Data
45  * @ingroup argus_api
46  *
47  * @brief Measurement results data structures.
48  *
49  * @details The interface defines all data structures that correspond to
50  * the AFBR-S50 measurement results, e.g.
51  * - 1D distance and amplitude values,
52  * - 3D distance and amplitude values (i.e. per pixel),
53  * - Auxiliary channel measurement results (VDD, IAPD, temperature, ...)
54  * - Device and result status
55  * - ...
56  * .
57  *
58  * @addtogroup argus_res
59  * @{
60  *****************************************************************************/
61 
62 #include "argus_px.h"
63 #include "argus_def.h"
64 #include "argus_meas.h"
65 #include "argus_xtalk.h"
66 
67 /*!***************************************************************************
68  * @brief The 1d measurement results data structure.
69  * @details The 1d measurement results obtained by the Pixel Binning Algorithm.
70  *****************************************************************************/
71 typedef struct argus_results_bin_t
72 {
76 
82 
87  uint8_t SignalQuality;
88 
90 
91 /*!***************************************************************************
92  * @brief The auxiliary measurement results data structure.
93  * @details The auxiliary measurement results obtained by the auxiliary task.\n
94  * Special values, i.e. 0xFFFFU, indicate no readout value available.
95  *****************************************************************************/
96 typedef struct argus_results_aux_t
97 {
102 
107 
112 
117 
122 
128 
135 
137 
138 /*!***************************************************************************
139  * @brief The debug data of measurement results data structure.
140  * @details This data structure will be filled with API internal data for
141  * debugging purposes.
142  *****************************************************************************/
143 typedef struct argus_results_debug_t
144 {
147 
168 
176 
184 
186 
187 /*!***************************************************************************
188  * @brief The measurement results data structure.
189  * @details This structure contains all information obtained by a single
190  * distance measurement on the device:
191  * - The measurement status can be read from the #Status.
192  * - A timing information is given via the #TimeStamp.
193  * - Information about the frame state is in the #Frame structure.
194  * - The 1D distance results are gathered under #Bin.
195  * - The 3D distance results for each pixel is at #Pixels or #Pixel.
196  * - Auxiliary values such as temperature can be found at #Auxiliary.
197  * - Raw data and debug information from the device and API is stored
198  * in the optional #Debug data structure. Note that this points to
199  * an optional structure and can be null!
200  * .
201  *
202  * The pixel x-y orientation is sketched in the following graph. Note that
203  * the laser source would be on the right side beyond the reference pixel.
204  * See also \link argus_map ADC Channel Mapping\endlink
205  * @code
206  * // Pixel Field: Pixel[x][y]
207  * //
208  * // 0 -----------> x
209  * // | O O O O O O O O
210  * // | O O O O O O O O
211  * // | O O O O O O O O O (ref. Px)
212  * // y O O O O O O O O
213  * @endcode
214  *****************************************************************************/
215 typedef struct argus_results_t
216 {
222 
226 
229 
230  union
231  {
242 
243  struct
244  {
254 
265  };
266  };
267 
270 
273 
279 
281 
282 
284 #ifdef __cplusplus
285 } // extern "C"
286 #endif
287 #endif /* ARGUS_RES_H */
argus_results_t::Frame
argus_meas_frame_t Frame
Definition: argus_res.h:228
argus_meas.h
This file is part of the AFBR-S50 hardware API.
argus_results_aux_t
The auxiliary measurement results data structure.
Definition: argus_res.h:96
argus_results_debug_t::Data
uint32_t Data[ARGUS_RAW_DATA_VALUES]
Definition: argus_res.h:167
argus_results_debug_t::XtalkPredictor
xtalk_t XtalkPredictor[ARGUS_PIXELS_Y/2U]
Definition: argus_res.h:175
argus_results_debug_t::DCAAmplitude
uq12_4_t DCAAmplitude
Definition: argus_res.h:146
argus_def.h
This file is part of the AFBR-S50 hardware API.
uq12_4_t
uint16_t uq12_4_t
Unsigned fixed point number: UQ12.4.
Definition: fp_def.h:231
q9_22_t
int32_t q9_22_t
Signed fixed point number: Q9.22.
Definition: fp_def.h:538
argus_results_t::Pixels
argus_pixel_t Pixels[ARGUS_PIXELS+1U]
Definition: argus_res.h:241
argus_results_t::Auxiliary
argus_results_aux_t Auxiliary
Definition: argus_res.h:272
argus_results_aux_t::TEMP
q11_4_t TEMP
Definition: argus_res.h:106
argus_results_debug_t::XtalkMonitor
xtalk_t XtalkMonitor[ARGUS_PIXELS_Y]
Definition: argus_res.h:183
argus_results_bin_t
The 1d measurement results data structure.
Definition: argus_res.h:71
argus_results_aux_t::SNA
uq12_4_t SNA
Definition: argus_res.h:134
argus_results_debug_t
The debug data of measurement results data structure.
Definition: argus_res.h:143
xtalk_t
Pixel Crosstalk Compensation Vector.
Definition: argus_xtalk.h:57
ARGUS_RAW_DATA_VALUES
#define ARGUS_RAW_DATA_VALUES
Definition: argus_meas.h:60
argus_results_t
The measurement results data structure.
Definition: argus_res.h:215
ARGUS_PIXELS
#define ARGUS_PIXELS
The total device pixel count.
Definition: argus_def.h:82
argus_xtalk.h
This file is part of the AFBR-S50 hardware API.
argus_meas_frame_t
The device measurement configuration structure.
Definition: argus_meas.h:76
argus_results_t::TimeStamp
ltc_t TimeStamp
Definition: argus_res.h:225
argus_results_bin_t::Amplitude
uq12_4_t Amplitude
Definition: argus_res.h:81
argus_results_aux_t::VSUB
uq12_4_t VSUB
Definition: argus_res.h:111
argus_results_t::PixelRef
argus_pixel_t PixelRef
Definition: argus_res.h:264
ltc_t
A data structure to represent current time.
Definition: time.h:69
argus_results_t::Debug
argus_results_debug_t * Debug
Definition: argus_res.h:278
argus_pixel_t
The evaluated measurement results per pixel.
Definition: argus_px.h:130
ARGUS_PIXELS_Y
#define ARGUS_PIXELS_Y
The device pixel field size in y direction (short edge).
Definition: argus_def.h:77
argus_results_aux_t::VDD
uq12_4_t VDD
Definition: argus_res.h:101
ARGUS_PIXELS_X
#define ARGUS_PIXELS_X
The device pixel field size in x direction (long edge).
Definition: argus_def.h:72
argus_results_aux_t::BGL
uq12_4_t BGL
Definition: argus_res.h:127
argus_results_t::Bin
argus_results_bin_t Bin
Definition: argus_res.h:269
argus_results_t::Pixel
argus_pixel_t Pixel[ARGUS_PIXELS_X][ARGUS_PIXELS_Y]
Definition: argus_res.h:253
argus_results_aux_t::IAPD
uq12_4_t IAPD
Definition: argus_res.h:121
argus_px.h
This file is part of the AFBR-S50 API.
argus_results_t::Status
status_t Status
Definition: argus_res.h:221
status_t
int32_t status_t
Type used for all status and error return values.
Definition: argus_status.h:70
argus_results_bin_t::Range
q9_22_t Range
Definition: argus_res.h:75
q11_4_t
int16_t q11_4_t
Signed fixed point number: Q11.4.
Definition: fp_def.h:312
argus_results_bin_t::SignalQuality
uint8_t SignalQuality
Definition: argus_res.h:87
argus_results_aux_t::VDDL
uq12_4_t VDDL
Definition: argus_res.h:116