lib
xspublic
xscontroller
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