MRPT  1.9.9
xsdataidentifier.h
Go to the documentation of this file.
1 /* +------------------------------------------------------------------------+
2  | Mobile Robot Programming Toolkit (MRPT) |
3  | https://www.mrpt.org/ |
4  | |
5  | Copyright (c) 2005-2019, Individual contributors, see AUTHORS file |
6  | See: https://www.mrpt.org/Authors - All rights reserved. |
7  | Released under BSD License. See: https://www.mrpt.org/License |
8  +------------------------------------------------------------------------+ */
9 #ifndef XSDATAIDENTIFIER_H
10 #define XSDATAIDENTIFIER_H
11 
12 //////////////////////////////////////////////////////////////////////////////////////////
13 /*! \addtogroup enums Global enumerations
14  @{
15 */
16 
17 /*! \enum XsDataIdentifier
18  \brief Defines the data identifiers
19 
20  \internal
21  IMPORTANT! How to add new TYPE values:
22  Use the bit reverse of 1, 2, 3 .. etc..
23  This way we have the possibility to play with the border between TYPE and
24  FORMAT at a later stage
25  so\n
26  0 = 0b000000..00 = 0x0000\n
27  1 = 0b100000..00 = 0x8000\n
28  2 = 0b010000..00 = 0x4000\n
29  3 = 0b110000..00 = 0xC000\n
30  4 = 0b001000..00 = 0x2000\n
31  etc\n
32  8 = 0b000100..00 = 0x1000
33 
34  So the TYPE grows from left to right
35  the FORMAT grows from right to left
36 
37  Data that is output in float, fixedpoint or double (etc...) a sub format
38  range is used (currently the lowest 4 bits).
39 */
41 {
42  XDI_None = 0x0000,
43  XDI_TypeMask = 0xFE00,
44  XDI_FullTypeMask = 0xFFF0,
45  XDI_FullMask = 0xFFFF,
46  XDI_FormatMask = 0x01FF,
48 
49  XDI_SubFormatMask = 0x0003, // determines, float, fp12.20, fp16.32, double
50  // output... (where applicable)
55 
57  XDI_Temperature = 0x0810,
58 
60  XDI_UtcTime = 0x1010,
62  XDI_Itow = 0x1030,
63  XDI_GpsAge = 0x1040,
64  XDI_PressureAge = 0x1050,
67  XDI_FrameRange = 0x1080, // add for MTw (if needed)
69  XDI_SampleTime64 = 0x10A0,
70 
72  XDI_CoordSysMask = 0x000C,
73  XDI_CoordSysEnu = 0x0000,
74  XDI_CoordSysNed = 0x0004,
75  XDI_CoordSysNwu = 0x0008,
76  XDI_Quaternion = 0x2010,
78  XDI_EulerAngles = 0x2030,
79 
81  XDI_BaroPressure = 0x3010,
82 
84  XDI_DeltaV = 0x4010,
85  XDI_Acceleration = 0x4020,
87 #ifdef NOT_FOR_PUBLIC_RELEASE
88 // XDI_TransposedAcceleration = 0x4040,
89 #endif // NOT_FOR_PUBLIC_RELEASE
90 
92  XDI_AltitudeMsl = 0x5010,
94  XDI_PositionEcef = 0x5030,
95  XDI_LatLon = 0x5040,
96 
98  XDI_RateOfTurn = 0x8020,
99  XDI_DeltaQ = 0x8030,
100 
101  XDI_GpsGroup = 0x8800,
102  XDI_GpsDop = 0x8830,
103  XDI_GpsSol = 0x8840,
104  XDI_GpsTimeUtc = 0x8880,
105  XDI_GpsSvInfo = 0x88A0,
106 
109  XDI_RawGyroTemp = 0xA020,
110  XDI_RawAcc = 0xA030,
111  XDI_RawGyr = 0xA040,
112  XDI_RawMag = 0xA050,
113 
115  XDI_AnalogIn1 = 0xB010,
116  XDI_AnalogIn2 = 0xB020,
117 
120 
122  XDI_VelocityXYZ = 0xD010,
123 
124  XDI_StatusGroup = 0xE000,
125  XDI_StatusByte = 0xE010,
126  XDI_StatusWord = 0xE020,
127  XDI_Rssi = 0xE040,
128 
130  0x4800, // 0100.1000 -> bit reverse = 0001.0010 -> type 18
131  XDI_TriggerIn1 = 0x4810,
132  XDI_TriggerIn2 = 0x4820,
133 
134 #ifdef NOT_FOR_PUBLIC_RELEASE
135 /*
136 XDI_Accuracy = 0xF000,
137 XDI_GpsHAcc = 0xF010,
138 XDI_GpsVAcc = 0xF020,
139 XDI_GpsSAcc = 0xF030,
140 */
141 #endif // NOT_FOR_PUBLIC_RELEASE
142 };
143 /*! @} */
144 
146 
147 #define XDI_MAX_FREQUENCY ((uint16_t)0xFFFF)
148 
149 #ifdef __cplusplus
151 {
152  return (XsDataIdentifier)((int)a | (int)b);
153 }
154 
156 {
157  return (XsDataIdentifier)((int)a & (int)b);
158 }
159 
160 inline XsDataIdentifier operator~(XsDataIdentifier a)
161 {
162  return (XsDataIdentifier) ~((unsigned short)a);
163 }
164 #endif
165 
166 #endif // file guard
XsDataIdentifier
Defines the data identifiers.
GLubyte GLubyte b
Definition: glext.h:6372
GLubyte GLubyte GLubyte a
Definition: glext.h:6372



Page generated by Doxygen 1.8.14 for MRPT 1.9.9 Git: 8fe78517f Sun Jul 14 19:43:28 2019 +0200 at lun oct 28 02:10:00 CET 2019