xsdef.h
Go to the documentation of this file.
1 
2 // Copyright (c) 2003-2021 Xsens Technologies B.V. or subsidiaries worldwide.
3 // All rights reserved.
4 //
5 // Redistribution and use in source and binary forms, with or without modification,
6 // are permitted provided that the following conditions are met:
7 //
8 // 1. Redistributions of source code must retain the above copyright notice,
9 // this list of conditions, and the following disclaimer.
10 //
11 // 2. Redistributions in binary form must reproduce the above copyright notice,
12 // this list of conditions, and the following disclaimer in the documentation
13 // and/or other materials provided with the distribution.
14 //
15 // 3. Neither the names of the copyright holders nor the names of their contributors
16 // may be used to endorse or promote products derived from this software without
17 // specific prior written permission.
18 //
19 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
20 // EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
21 // MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
22 // THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
23 // SPECIAL, EXEMPLARY OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
24 // OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
25 // HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY OR
26 // TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
27 // SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.THE LAWS OF THE NETHERLANDS
28 // SHALL BE EXCLUSIVELY APPLICABLE AND ANY DISPUTES SHALL BE FINALLY SETTLED UNDER THE RULES
29 // OF ARBITRATION OF THE INTERNATIONAL CHAMBER OF COMMERCE IN THE HAGUE BY ONE OR MORE
30 // ARBITRATORS APPOINTED IN ACCORDANCE WITH SAID RULES.
31 //
32 
33 
34 // Copyright (c) 2003-2021 Xsens Technologies B.V. or subsidiaries worldwide.
35 // All rights reserved.
36 //
37 // Redistribution and use in source and binary forms, with or without modification,
38 // are permitted provided that the following conditions are met:
39 //
40 // 1. Redistributions of source code must retain the above copyright notice,
41 // this list of conditions, and the following disclaimer.
42 //
43 // 2. Redistributions in binary form must reproduce the above copyright notice,
44 // this list of conditions, and the following disclaimer in the documentation
45 // and/or other materials provided with the distribution.
46 //
47 // 3. Neither the names of the copyright holders nor the names of their contributors
48 // may be used to endorse or promote products derived from this software without
49 // specific prior written permission.
50 //
51 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
52 // EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
53 // MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
54 // THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
55 // SPECIAL, EXEMPLARY OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
56 // OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
57 // HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY OR
58 // TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
59 // SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.THE LAWS OF THE NETHERLANDS
60 // SHALL BE EXCLUSIVELY APPLICABLE AND ANY DISPUTES SHALL BE FINALLY SETTLED UNDER THE RULES
61 // OF ARBITRATION OF THE INTERNATIONAL CHAMBER OF COMMERCE IN THE HAGUE BY ONE OR MORE
62 // ARBITRATORS APPOINTED IN ACCORDANCE WITH SAID RULES.
63 //
64 
76 #ifndef XSDEF_H
77 #define XSDEF_H
78 
79 #include "xscontrollerconfig.h"
80 
82 // Field message indices
83 #define XS_IND_PREAMBLE 0
84 #define XS_IND_BID 1
85 #define XS_IND_MID 2
86 #define XS_IND_LEN 3
87 #define XS_IND_DATA0 4
88 #define XS_IND_LENEXTH 4
89 #define XS_IND_LENEXTL 5
90 #define XS_IND_DATAEXT0 6
91 
92 #define XS_SELFTEST_OK 0x1FF
93 
94 // message data lengths
95 #define XS_LEN_TRANSPORTMODE 1
96 #define XS_LEN_DEVICEID 4
97 #define XS_LEN_INITBUSRESULTS 4
98 #define XS_LEN_PERIOD 2
99 #define XS_LEN_BUSPWR 2
100 #define XS_LEN_DATALENGTH 2
101 #define XS_LEN_CONFIGURATION 118
102 #define XS_LEN_FIRMWAREREV 3
103 #define XS_LEN_BTDISABLE 1
104 #define XS_LEN_OPMODE 1
105 #define XS_LEN_BAUDRATE 1
106 #define XS_LEN_SYNCMODE 1
107 #define XS_LEN_PRODUCTCODE 20
108 #define XS_LEN_PROCESSINGFLAGS 2
109 #define XS_LEN_XMPWROFF 0
110 #define XS_LEN_OUTPUTMODE 2
111 #define XS_LEN_OUTPUTSETTINGS 4
112 #define XS_LEN_OUTPUTSKIPFACTOR 2
113 #define XS_LEN_SYNCINMODE 2
114 #define XS_LEN_SYNCINSKIPFACTOR 2
115 #define XS_LEN_SYNCINOFFSET 4
116 #define XS_LEN_SYNCOUTMODE 2
117 #define XS_LEN_SYNCOUTSKIPFACTOR 2
118 #define XS_LEN_SYNCOUTOFFSET 4
119 #define XS_LEN_SYNCOUTPULSEWIDTH 4
120 #define XS_LEN_ERRORMODE 2
121 #define XS_LEN_TRANSMITDELAY 2
122 #define XS_LEN_OBJECTALIGNMENT 36
123 #define XS_LEN_ALIGNMENTROTATION (4*4)
124 #define XS_LEN_XMERRORMODE 2
125 #define XS_LEN_BUFFERSIZE 2
126 #define XS_LEN_HEADING 4
127 #define XS_LEN_MAGNETICFIELD 12
128 #define XS_LEN_LOCATIONID 2
129 #define XS_LEN_EXTOUTPUTMODE 2
130 #define XS_LEN_INITTRACKMODE 2
131 #define XS_LEN_STOREFILTERSTATE 0
132 #define XS_LEN_UTCTIME 12
133 #define XS_LEN_FILTERPROFILELABEL 20
134 #define XS_LEN_FILTERPROFILEFULL (1+1+XS_LEN_FILTERPROFILELABEL)
135 #define XS_LEN_AVAILABLEFILTERPROFILES (XS_MAX_FILTERPROFILES_IN_MT*XS_LEN_FILTERPROFILEFULL)
136 #define XS_LEN_REQFILTERPROFILEACK 2
137 #define XS_LEN_SETFILTERPROFILE 2
138 #define XS_LEN_GRAVITYMAGNITUDE 4
139 #define XS_LEN_GPSLEVERARM 12
140 #define XS_LEN_LATLONALT 18
141 #define XS_LEN_SETNOROTATION 2
142 #define XS_LEN_FILTERSETTINGS 4
143 #define XS_LEN_AMD 2
144 #define XS_LEN_RESETORIENTATION 2
145 #define XS_LEN_GPSSTATUS (1+5*16)
146 #define XS_LEN_CLIENTUSAGE 1
147 #define XS_LEN_CLIENTPRIORITY 1
148 #define XS_LEN_WIRELESSCONFIG 4
149 #define XS_LEN_INFOREQUEST 1
150 #define XS_LEN_SETOUTPUTTRIGGER 10
151 #define XS_LEN_SETINPUTTRIGGER 10
152 
153 // MTData defines
154 // Length of data blocks in bytes
155 #define XS_LEN_RAWDATA 20
156 #define XS_LEN_CALIBDATA 36
157 #define XS_LEN_CALIB_ACCDATA 12
158 #define XS_LEN_CALIB_GYRDATA 12
159 #define XS_LEN_CALIB_MAGDATA 12
160 #define XS_LEN_ORIENT_QUATDATA 16
161 #define XS_LEN_ORIENT_EULERDATA 12
162 #define XS_LEN_ORIENT_MATRIXSTA 36
163 #define XS_LEN_SAMPLECNT 2
164 #define XS_LEN_TEMPDATA 4
165 
166 // Length of data blocks in floats
167 #define XS_LEN_CALIBDATA_FLT 9
168 #define XS_LEN_TEMPDATA_FLT 1
169 #define XS_LEN_ORIENT_QUATDATA_FLT 4
170 #define XS_LEN_ORIENT_EULERDATA_FLT 3
171 #define XS_LEN_ORIENT_MATRIXSTA_FLT 9
172 
173 #define XS_INVALIDSETTINGVALUE 0xFFFFFFFF
174 
175 
176 
177 // Configuration message defines
178 #define XS_CONF_MASTERDID 0
179 #define XS_CONF_PERIOD 4
180 #define XS_CONF_OUTPUTSKIPFACTOR 6
181 #define XS_CONF_SYNCIN_MODE 8
182 #define XS_CONF_SYNCIN_SKIPFACTOR 10
183 #define XS_CONF_SYNCIN_OFFSET 12
184 #define XS_CONF_DATE 16
185 #define XS_CONF_TIME 24
186 #define XS_CONF_NUMDEVICES 96
187 // Configuration sensor block properties
188 #define XS_CONF_DID 98
189 #define XS_CONF_DATALENGTH 102
190 #define XS_CONF_OUTPUTMODE 104
191 #define XS_CONF_OUTPUTSETTINGS 106
192 #define XS_CONF_BLOCKLEN 20
193 // To calculate the offset in data field for output mode of sensor #2 use
194 // CONF_OUTPUTMODE + 1*CONF_BLOCKLEN
195 #define XS_CONF_MASTERDIDLEN 4
196 #define XS_CONF_PERIODLEN 2
197 #define XS_CONF_OUTPUTSKIPFACTORLEN 2
198 #define XS_CONF_SYNCIN_MODELEN 2
199 #define XS_CONF_SYNCIN_SKIPFACTORLEN 2
200 #define XS_CONF_SYNCIN_OFFSETLEN 4
201 #define XS_CONF_DATELEN 8
202 #define XS_CONF_TIMELEN 8
203 #define XS_CONF_RESERVED_CLIENTLEN 32
204 #define XS_CONF_RESERVED_HOSTLEN 32
205 #define XS_CONF_NUMDEVICESLEN 2
206 // Configuration sensor block properties
207 #define XS_CONF_DIDLEN 4
208 #define XS_CONF_DATALENGTHLEN 2
209 #define XS_CONF_OUTPUTMODELEN 2
210 #define XS_CONF_OUTPUTSETTINGSLEN 4
211 
212 // Clock frequency for offset & pulse width
213 #define XS_SYNC_CLOCKFREQMHZ 29.4912
214 #define XS_SYNC_CLOCK_NS_TO_TICKS (XS_SYNC_CLOCKFREQMHZ * 1.0e-3)
215 #define XS_SYNC_CLOCK_TICKS_TO_NS (1.0e3 / XS_SYNC_CLOCKFREQMHZ)
216 #define XS_SYNC_CLOCK_US_TO_TICKS (XS_SYNC_CLOCKFREQMHZ * 1.0)
217 #define XS_SYNC_CLOCK_TICKS_TO_US (1.0 / XS_SYNC_CLOCKFREQMHZ)
218 
219 // SyncIn params
220 #define XS_PARAM_SYNCIN_MODE 0x00
221 #define XS_PARAM_SYNCIN_SKIPFACTOR 0x01
222 #define XS_PARAM_SYNCIN_OFFSET 0x02
223 
224 // SyncIn mode
225 #define XS_SYNCIN_DISABLED 0x0000
226 #define XS_SYNCIN_EDGE_RISING 0x0001
227 #define XS_SYNCIN_EDGE_FALLING 0x0002
228 #define XS_SYNCIN_EDGE_BOTH 0x0003
229 #define XS_SYNCIN_EDGE_MASK 0x0003
230 #define XS_SYNCIN_TYPE_DOSAMPLING 0x0000
231 #define XS_SYNCIN_TYPE_SENDLASTDATA 0x0004
232 #define XS_SYNCIN_TYPE_CLOCK 0x0010
233 #define XS_SYNCIN_TYPE_MASK 0x001C
234 
235 // SyncOut params
236 #define XS_PARAM_SYNCOUT_MODE 0x00
237 #define XS_PARAM_SYNCOUT_SKIPFACTOR 0x01
238 #define XS_PARAM_SYNCOUT_OFFSET 0x02
239 #define XS_PARAM_SYNCOUT_PULSEWIDTH 0x03
240 
241 // SyncOut mode
242 #define XS_SYNCOUT_DISABLED 0x0000
243 #define XS_SYNCOUT_TYPE_TOGGLE 0x0001
244 #define XS_SYNCOUT_TYPE_PULSE 0x0002
245 #define XS_SYNCOUT_POL_NEG 0x0000
246 #define XS_SYNCOUT_POL_POS 0x0010
247 #define XS_SYNCOUT_TYPE_MASK 0x000F
248 #define XS_SYNCOUT_POL_MASK 0x0010
249 
250 // Initial tracking mode (SetInitTrackMode)
251 #define XS_INITTRACKMODE_DISABLED 0x0000
252 #define XS_INITTRACKMODE_ENABLED 0x0001
253 
254 // Filter settings params
255 #define XS_PARAM_FILTER_GAIN 0x00
256 #define XS_PARAM_FILTER_RHO 0x01
257 #define XS_DONOTSTORE 0x00
258 #define XS_STORE 0x01
259 
260 // AMDSetting (SetAMD)
261 #define XS_AMDSETTING_DISABLED 0x0000
262 #define XS_AMDSETTING_ENABLED 0x0001
263 
264 #define XS_PARAM_ROTSENSOR 0x00
265 #define XS_PARAM_ROTLOCAL 0x01
266 
267 // Send raw string mode
268 #define XS_SENDRAWSTRING_INIT 0
269 #define XS_SENDRAWSTRING_DEFAULT 1
270 #define XS_SENDRAWSTRING_SEND 2
271 
272 // Timeouts
273 #define XS_TO_DEFAULT 500
274 #define XS_TO_INIT 250
275 #define XS_TO_RETRY 50
276 
277 #define XS_PERIOD_10HZ 11520 // invalid with gps pulse time correction
278 #define XS_PERIOD_12HZ 9600
279 #define XS_PERIOD_15HZ 7680 // invalid with gps pulse time correction
280 #define XS_PERIOD_16HZ 7200
281 #define XS_PERIOD_18HZ 6400 // invalid with gps pulse time correction
282 #define XS_PERIOD_20HZ 5760
283 #define XS_PERIOD_24HZ 4800
284 #define XS_PERIOD_25HZ 4608 // invalid with gps pulse time correction
285 #define XS_PERIOD_30HZ 3840
286 #define XS_PERIOD_32HZ 3600
287 #define XS_PERIOD_36HZ 3200
288 #define XS_PERIOD_40HZ 2880
289 #define XS_PERIOD_45HZ 2560 // invalid with gps pulse time correction
290 #define XS_PERIOD_48HZ 2400
291 #define XS_PERIOD_50HZ 2304 // invalid with gps pulse time correction
292 #define XS_PERIOD_60HZ 1920
293 #define XS_PERIOD_64HZ 1800
294 #define XS_PERIOD_72HZ 1600
295 #define XS_PERIOD_75HZ 1536 // invalid with gps pulse time correction
296 #define XS_PERIOD_80HZ 1440
297 #define XS_PERIOD_90HZ 1280 // invalid with gps pulse time correction
298 #define XS_PERIOD_96HZ 1200
299 
300 #define XS_PERIOD_100HZ 1152
301 #define XS_PERIOD_120HZ 960
302 #define XS_PERIOD_128HZ 900
303 #define XS_PERIOD_144HZ 800
304 #define XS_PERIOD_150HZ 768 // invalid with gps pulse time correction
305 #define XS_PERIOD_160HZ 720
306 #define XS_PERIOD_180HZ 640
307 #define XS_PERIOD_192HZ 600
308 #define XS_PERIOD_200HZ 576
309 #define XS_PERIOD_225HZ 512 // invalid with gps pulse time correction
310 #define XS_PERIOD_240HZ 480
311 #define XS_PERIOD_256HZ 450
312 #define XS_PERIOD_288HZ 400
313 #define XS_PERIOD_300HZ 384
314 #define XS_PERIOD_320HZ 360
315 #define XS_PERIOD_360HZ 320
316 #define XS_PERIOD_384HZ 300
317 #define XS_PERIOD_400HZ 288
318 #define XS_PERIOD_450HZ 256 // invalid with gps pulse time correction
319 #define XS_PERIOD_480HZ 240
320 #define XS_PERIOD_512HZ 225
321 
322 #ifndef NOT_FOR_PUBLIC_RELEASE
323  #define XS_PERIOD_576HZ 200
324  #define XS_PERIOD_600HZ 192
325  #define XS_PERIOD_640HZ 180
326  #define XS_PERIOD_720HZ 160
327  #define XS_PERIOD_768HZ 150
328  #define XS_PERIOD_800HZ 144
329  #define XS_PERIOD_900HZ 128
330  #define XS_PERIOD_960HZ 120
331  #define XS_PERIOD_1152HZ 100
332  #define XS_PERIOD_1200HZ 96
333  #define XS_PERIOD_1280HZ 90
334  #define XS_PERIOD_1440HZ 80
335  #define XS_PERIOD_1536HZ 75
336  #define XS_PERIOD_1600HZ 72
337  #define XS_PERIOD_1800HZ 64
338  #define XS_PERIOD_1920HZ 60
339  #define XS_PERIOD_2304HZ 50
340  #define XS_PERIOD_2400HZ 48
341  #define XS_PERIOD_2560HZ 45
342  #define XS_PERIOD_2880HZ 40
343  #define XS_PERIOD_3200HZ 36
344  #define XS_PERIOD_3600HZ 32
345  #define XS_PERIOD_3840HZ 30
346  #define XS_PERIOD_4608HZ 25
347  #define XS_PERIOD_4800HZ 24
348  #define XS_PERIOD_5760HZ 20
349  #define XS_PERIOD_6400HZ 18
350  #define XS_PERIOD_7200HZ 16
351  #define XS_PERIOD_7680HZ 15
352  #define XS_PERIOD_9600HZ 12
353  #define XS_PERIOD_11520HZ 10
354 #endif
355 
358 int XDA_DLL_API xsScaleBatteryLevel(int batteryLevel);
359 
360 #define XS_AUTO_SAVE_FRAMES 5000
361 #define XS_FILE_LAST_FRAME 0xFFFFFFFF
362 
363 #define XEMTS_SIZE 1320
364 
365 #define XS_MAX_VPORTNAME_LEN 32
366  // XS_INTERNAL
368 #endif
XDA_DLL_API
#define XDA_DLL_API
Definition: xscontrollerconfig.h:161
xsScaleBatteryLevel
int xsScaleBatteryLevel(int batteryLevel)
Definition: xsdef.cpp:69
xscontrollerconfig.h


xsens_mti_driver
Author(s):
autogenerated on Sun Sep 3 2023 02:43:20