DI_CH08_1_0.h
Go to the documentation of this file.
1 /* This file provides the definition of the struct AlgoIFOutput in the interface version DIA1_1.0.
2 
3  It also provides endianess-aware functions to safely convert a binary buffer to an
4  instance of this struct (if possible).
5 */
6 
7 #ifndef IFM_O3M_ALGOIFOUTPUT_DIA1_1_0_CONVERTER_H_INCLUDED
8 #define IFM_O3M_ALGOIFOUTPUT_DIA1_1_0_CONVERTER_H_INCLUDED
9 
10 #include "ifm_types.h"
11 
12 /* For a documentation of the struct members refer to your reference manual.
13  The struct has explicit padding, so that it should be usable on any target
14  without special compiler flags or pragmas related to padding.
15 */
16 typedef struct
17 {
18  struct
19  {
22  ifm_o3m_uint16_t distanceData[1024];
26  ifm_o3m_uint16_t confidence[1024];
27  ifm_o3m_uint16_t amplitude[1024];
28  ifm_o3m_float32_t amplitude_normalization[4];
32  struct
33  {
40  } cameraCalibration;
41  struct
42  {
43  ifm_o3m_float32_t upperLeft[3];
44  ifm_o3m_float32_t upperRight[3];
45  ifm_o3m_float32_t lowerLeft[3];
46  ifm_o3m_float32_t lowerRight[3];
47  } fieldOfView;
48  } distanceImageResult;
49  struct
50  {
52  struct
53  {
54  ifm_o3m_float32_t transX;
55  ifm_o3m_float32_t transY;
56  ifm_o3m_float32_t transZ;
57  ifm_o3m_float32_t rotX;
58  ifm_o3m_float32_t rotY;
59  ifm_o3m_float32_t rotZ;
60  } pacResult;
62  ifm_o3m_uint8_t pad_001; /* explicit padding, do not access this member */
63  ifm_o3m_uint8_t pad_002; /* explicit padding, do not access this member */
64  ifm_o3m_uint8_t pad_003; /* explicit padding, do not access this member */
65  struct
66  {
69  ifm_o3m_float32_t corners[3][2];
70  } triangleDetections[8];
74  } calibrationResult;
76 
77 
78 /* Casts the buffer to ifm_o3m_AlgoIFOutput_DIA1_1_0 (if possible) and returns a pointer to it.
79  Use this function on little Endian systems.
80 
81  Returns NULL in case of errors. */
83 
84 /* Converts the endianess of the buffer to native form and returns a pointer to ifm_o3m_AlgoIFOutput_DIA1_1_0.
85  Note: The original buffer is modified in place.
86  Use this function on big Endian systems.
87 
88  Returns NULL in case of errors. */
90 
91 #endif
ifm_o3m_uint16_t sensorWidth
Definition: DI_CH08_1_0.h:20
unsigned int ifm_o3m_uint32_t
Definition: ifm_types.h:7
ifm_o3m_float32_t frameReprojectError
Definition: DI_CH08_1_0.h:72
ifm_o3m_uint32_t frameCounter
Definition: DI_CH08_1_0.h:30
ifm_o3m_float32_t rotY
Definition: DI_CH08_1_0.h:38
signed int ifm_o3m_sint32_t
Definition: ifm_types.h:8
ifm_o3m_float32_t transY
Definition: DI_CH08_1_0.h:35
unsigned short ifm_o3m_uint16_t
Definition: ifm_types.h:4
ifm_o3m_float32_t transX
Definition: DI_CH08_1_0.h:34
ifm_o3m_uint16_t sensorHeight
Definition: DI_CH08_1_0.h:21
ifm_o3m_uint8_t numTrianglesDetected
Definition: DI_CH08_1_0.h:61
ifm_o3m_float32_t score
Definition: DI_CH08_1_0.h:67
ifm_o3m_uint32_t masterclockTimestamp
Definition: DI_CH08_1_0.h:29
ifm_o3m_float32_t rotX
Definition: DI_CH08_1_0.h:37
float ifm_o3m_float32_t
Definition: ifm_types.h:13
ifm_o3m_sint32_t calibrationStableCounter
Definition: DI_CH08_1_0.h:73
ifm_o3m_sint32_t pacValid
Definition: DI_CH08_1_0.h:51
ifm_o3m_float32_t rotZ
Definition: DI_CH08_1_0.h:39
ifm_o3m_AlgoIFOutput_DIA1_1_0 * ifm_o3m_ConvertBufferToBigEndian_DIA1_1_0(void *buffer, ifm_o3m_uint32_t bufferSize)
Definition: DI_CH08_1_0.cpp:28
ifm_o3m_sint32_t frameValid
Definition: DI_CH08_1_0.h:71
unsigned char ifm_o3m_uint8_t
Definition: ifm_types.h:1
ifm_o3m_float32_t transZ
Definition: DI_CH08_1_0.h:36
ifm_o3m_AlgoIFOutput_DIA1_1_0 * ifm_o3m_ConvertBufferToLittleEndian_DIA1_1_0(void *buffer, ifm_o3m_uint32_t bufferSize)
Definition: DI_CH08_1_0.cpp:12
ifm_o3m_uint32_t available
Definition: DI_CH08_1_0.h:31


ifm_o3mxxx
Author(s):
autogenerated on Mon Jun 10 2019 13:34:12