VectorNav C Library
enum.h
1 #ifndef VNENUM_H_INCLUDED
2 #define VNENUM_H_INCLUDED
3 
5 typedef enum
6 {
7  PACKETTYPE_BINARY,
8  PACKETTYPE_ASCII,
9  PACKETTYPE_UNKNOWN
10 } PacketType;
11 
13 typedef enum
14 {
15  BINARYGROUPTYPE_COMMON = 0x01,
16  BINARYGROUPTYPE_TIME = 0x02,
17  BINARYGROUPTYPE_IMU = 0x04,
18  BINARYGROUPTYPE_GPS = 0x08,
19  BINARYGROUPTYPE_ATTITUDE = 0x10,
20  BINARYGROUPTYPE_INS = 0x20
21 } BinaryGroupType;
22 
24 typedef enum
25 {
26  ASYNCMODE_NONE = 0,
27  ASYNCMODE_PORT1 = 1,
28  ASYNCMODE_PORT2 = 2,
29  ASYNCMODE_BOTH = 3
30 } AsyncMode;
31 
33 typedef enum
34 {
35  COMMONGROUP_NONE = 0x0000,
36  COMMONGROUP_TIMESTARTUP = 0x0001,
37  COMMONGROUP_TIMEGPS = 0x0002,
38  COMMONGROUP_TIMESYNCIN = 0x0004,
39  COMMONGROUP_YAWPITCHROLL = 0x0008,
40  COMMONGROUP_QUATERNION = 0x0010,
41  COMMONGROUP_ANGULARRATE = 0x0020,
42  COMMONGROUP_POSITION = 0x0040,
43  COMMONGROUP_VELOCITY = 0x0080,
44  COMMONGROUP_ACCEL = 0x0100,
45  COMMONGROUP_IMU = 0x0200,
46  COMMONGROUP_MAGPRES = 0x0400,
47  COMMONGROUP_DELTATHETA = 0x0800,
48  COMMONGROUP_INSSTATUS = 0x1000,
49  COMMONGROUP_SYNCINCNT = 0x2000,
50  COMMONGROUP_TIMEGPSPPS = 0x4000
51 } CommonGroup;
52 
54 typedef enum
55 {
56  TIMEGROUP_NONE = 0x0000,
57  TIMEGROUP_TIMESTARTUP = 0x0001,
58  TIMEGROUP_TIMEGPS = 0x0002,
59  TIMEGROUP_GPSTOW = 0x0004,
60  TIMEGROUP_GPSWEEK = 0x0008,
61  TIMEGROUP_TIMESYNCIN = 0x0010,
62  TIMEGROUP_TIMEGPSPPS = 0x0020,
63  TIMEGROUP_TIMEUTC = 0x0040,
64  TIMEGROUP_SYNCINCNT = 0x0080
65 } TimeGroup;
66 
68 typedef enum
69 {
70  IMUGROUP_NONE = 0x0000,
71  IMUGROUP_IMUSTATUS = 0x0001,
72  IMUGROUP_UNCOMPMAG = 0x0002,
73  IMUGROUP_UNCOMPACCEL = 0x0004,
74  IMUGROUP_UNCOMPGYRO = 0x0008,
75  IMUGROUP_TEMP = 0x0010,
76  IMUGROUP_PRES = 0x0020,
77  IMUGROUP_DELTATHETA = 0x0040,
78  IMUGROUP_DELTAVEL = 0x0080,
79  IMUGROUP_MAG = 0x0100,
80  IMUGROUP_ACCEL = 0x0200,
81  IMUGROUP_ANGULARRATE = 0x0400,
82  IMUGROUP_SENSSAT = 0x0800
83  #ifdef EXTRA
84  ,
85  IMUGROUP_RAW = 0x1000
86  #endif
87 } ImuGroup;
88 
90 typedef enum
91 {
92  GPSGROUP_NONE = 0x0000,
93  GPSGROUP_UTC = 0x0001,
94  GPSGROUP_TOW = 0x0002,
95  GPSGROUP_WEEK = 0x0004,
96  GPSGROUP_NUMSATS = 0x0008,
97  GPSGROUP_FIX = 0x0010,
98  GPSGROUP_POSLLA = 0x0020,
99  GPSGROUP_POSECEF = 0x0040,
100  GPSGROUP_VELNED = 0x0080,
101  GPSGROUP_VELECEF = 0x0100,
102  GPSGROUP_POSU = 0x0200,
103  GPSGROUP_VELU = 0x0400,
104  GPSGROUP_TIMEU = 0x0800
105  #ifdef EXTRA
106  ,
107  GPSGROUP_SVSTAT = 0x1000
108  #endif
109 } GpsGroup;
110 
112 typedef enum
113 {
114  ATTITUDEGROUP_NONE = 0x0000,
115  ATTITUDEGROUP_VPESTATUS = 0x0001,
116  ATTITUDEGROUP_YAWPITCHROLL = 0x0002,
117  ATTITUDEGROUP_QUATERNION = 0x0004,
118  ATTITUDEGROUP_DCM = 0x0008,
119  ATTITUDEGROUP_MAGNED = 0x0010,
120  ATTITUDEGROUP_ACCELNED = 0x0020,
121  ATTITUDEGROUP_LINEARACCELBODY = 0x0040,
122  ATTITUDEGROUP_LINEARACCELNED = 0x0080,
123  ATTITUDEGROUP_YPRU = 0x0100
124  #ifdef EXTRA
125  ,
126  ATTITUDEGROUP_YPRRATE = 0x0200,
127  ATTITUDEGROUP_STATEAHRS = 0x0400,
128  ATTITUDEGROUP_COVAHRS = 0x0800
129  #endif
130 } AttitudeGroup;
131 
133 typedef enum
134 {
135  INSGROUP_NONE = 0x0000,
136  INSGROUP_INSSTATUS = 0x0001,
137  INSGROUP_POSLLA = 0x0002,
138  INSGROUP_POSECEF = 0x0004,
139  INSGROUP_VELBODY = 0x0008,
140  INSGROUP_VELNED = 0x0010,
141  INSGROUP_VELECEF = 0x0020,
142  INSGROUP_MAGECEF = 0x0040,
143  INSGROUP_ACCELECEF = 0x0080,
144  INSGROUP_LINEARACCELECEF = 0x0100,
145  INSGROUP_POSU = 0x0200,
146  INSGROUP_VELU = 0x0400
147  #ifdef EXTRA
148  ,
149  INSGROUP_STATEINS = 0x0800,
150  INSGROUP_COVINS = 0x1000
151  #endif
152 } InsGroup;
153 
155 typedef enum
156 {
157  CDVEL_None,
158  CDVEL_GpsNed,
159  CDVEL_GpsEcef,
160  CDVEL_EstimatedNed,
161  CDVEL_EstimatedEcef,
162  CDVEL_EstimatedBody
163 } VelocityType;
164 
166 typedef enum
167 {
168  ERR_HARD_FAULT = 1,
169  ERR_SERIAL_BUFFER_OVERFLOW = 2,
170  ERR_INVALID_CHECKSUM = 3,
171  ERR_INVALID_COMMAND = 4,
172  ERR_NOT_ENOUGH_PARAMETERS = 5,
173  ERR_TOO_MANY_PARAMETERS = 6,
174  ERR_INVALID_PARAMETER = 7,
175  ERR_INVALID_REGISTER = 8,
176  ERR_UNAUTHORIZED_ACCESS = 9,
177  ERR_WATCHDOG_RESET = 10,
178  ERR_OUTPUT_BUFFER_OVERFLOW = 11,
179  ERR_INSUFFICIENT_BAUD_RATE = 12,
180  ERR_ERROR_BUFFER_OVERFLOW = 255
181 } SensorError;
182 
184 typedef enum
185 {
187  E_NONE,
188 
190  E_UNKNOWN,
191 
193  E_BUFFER_TOO_SMALL,
194 
196  E_INVALID_VALUE,
197 
199  E_NOT_IMPLEMENTED,
200 
202  E_NOT_SUPPORTED,
203 
205  E_NOT_FOUND,
206 
208  E_TIMEOUT,
209 
211  E_PERMISSION_DENIED,
212 
214  E_INVALID_OPERATION,
215 
217  E_SIGNALED,
218 
220  E_MEMORY_NOT_ALLOCATED,
221 
223  E_SENSOR_HARD_FAULT = 1001,
224 
226  E_SENSOR_SERIAL_BUFFER_OVERFLOW = 1002,
227 
229  E_SENSOR_INVALID_CHECKSUM = 1003,
230 
232  E_SENSOR_INVALID_COMMAND = 1004,
233 
235  E_SENSOR_NOT_ENOUGH_PARAMETERS = 1005,
236 
238  E_SENSOR_TOO_MANY_PARAMETERS = 1006,
239 
241  E_SENSOR_INVALID_PARAMETER = 1007,
242 
244  E_SENSOR_INVALID_REGISTER = 1008,
245 
247  E_SENSOR_UNAUTHORIZED_ACCESS = 1009,
248 
250  E_SENSOR_WATCHDOG_RESET = 1010,
251 
253  E_SENSOR_OUTPUT_BUFFER_OVERFLOW = 1011,
254 
256  E_SENSOR_INSUFFICIENT_BAUD_RATE = 1012,
257 
259  E_SENSOR_ERROR_BUFFER_OVERFLOW = 1013,
260 
261  E_DATA_NOT_ELLIPTICAL = 2001,
262  E_ILL_CONDITIONED = 2002,
263  E_EXCEEDED_MAX_ITERATIONS = 2003,
264  E_BAD_FINAL_INTERATION = 2004,
265  E_INSUFFICIENT_DATA = 2005
267 } VnError;
268 
271 typedef enum
272 {
274  VNERRORDETECTIONMODE_NONE,
275 
277  VNERRORDETECTIONMODE_CHECKSUM,
278 
280  VNERRORDETECTIONMODE_CRC
281 
282 } VnErrorDetectionMode;
283 
285 typedef enum
286 {
287  #ifdef EXTRA
288 
291  VNSYNCINMODE_COUNT2 = 0,
295  VNSYNCINMODE_ADC2 = 1,
299  VNSYNCINMODE_ASYNC2 = 2,
300  #endif
301 
303  VNSYNCINMODE_COUNT = 3,
306  VNSYNCINMODE_IMU = 4,
309  VNSYNCINMODE_ASYNC = 5
310 } VnSyncInMode;
311 
313 typedef enum
314 {
317  VNSYNCINEDGE_RISING = 0,
320  VNSYNCINEDGE_FALLING = 1
321 } VnSyncInEdge;
322 
324 typedef enum
325 {
328  VNSYNCOUTMODE_NONE = 0,
331  VNSYNCOUTMODE_ITEMSTART = 1,
334  VNSYNCOUTMODE_IMUREADY = 2,
337  VNSYNCOUTMODE_INS = 3,
340  VNSYNCOUTMODE_GPSPPS = 6
341 } VnSyncOutMode;
342 
344 typedef enum
345 {
348  VNSYNCOUTPOLARITY_NEGATIVE = 0,
351  VNSYNCOUTPOLARITY_POSITIVE = 1
352 } VnSyncOutPolarity;
353 
355 typedef enum
356 {
359  VNCOUNTMODE_NONE = 0,
362  VNCOUNTMODE_SYNCINCOUNT = 1,
365  VNCOUNTMODE_SYNCINTIME = 2,
368  VNCOUNTMODE_SYNCOUTCOUNTER = 3,
371  VNCOUNTMODE_GPSPPS = 4
372 } VnCountMode;
373 
375 typedef enum
376 {
379  VNSTATUSMODE_OFF = 0,
382  VNSTATUSMODE_VPESTATUS = 1,
385  VNSTATUSMODE_INSSTATUS = 2
386 } VnStatusMode;
387 
389 typedef enum
390 {
393  VNCHECKSUMMODE_OFF = 0,
396  VNCHECKSUMMODE_CHECKSUM = 1,
399  VNCHECKSUMMODE_CRC = 2
400 } VnChecksumMode;
401 
403 typedef enum
404 {
407  VNERRORMODE_IGNORE = 0,
410  VNERRORMODE_SEND = 1,
413  VNERRORMODE_SENDANDOFF = 2
414 } VnErrorMode;
415 
417 typedef enum
418 {
421  VNFILTERMODE_NOFILTERING = 0,
424  VNFILTERMODE_ONLYRAW = 1,
427  VNFILTERMODE_ONLYCOMPENSATED = 2,
430  VNFILTERMODE_BOTH = 3
431 } VnFilterMode;
432 
434 typedef enum
435 {
438  VNINTEGRATIONFRAME_BODY = 0,
441  VNINTEGRATIONFRAME_NED = 1
442 } VnIntegrationFrame;
443 
445 typedef enum
446 {
449  VNCOMPENSATIONMODE_NONE = 0,
452  VNCOMPENSATIONMODE_BIAS = 1
453 } VnCompensationMode;
454 
456 typedef enum
457 {
460  VNGPSFIX_NOFIX = 0,
463  VNGPSFIX_TIMEONLY = 1,
466  VNGPSFIX_2D = 2,
469  VNGPSFIX_3D = 3
470 } VnGpsFix;
471 
473 typedef enum
474 {
477  VNGPSMODE_ONBOARDGPS = 0,
480  VNGPSMODE_EXTERNALGPS = 1,
483  VNGPSMODE_EXTERNALVN200GPS = 2
484 } VnGpsMode;
485 
487 typedef enum
488 {
491  VNPPSSOURCE_GPSPPSRISING = 0,
494  VNPPSSOURCE_GPSPPSFALLING = 1,
497  VNPPSSOURCE_SYNCINRISING = 2,
500  VNPPSSOURCE_SYNCINFALLING = 3
501 } VnPpsSource;
502 
504 typedef enum
505 {
508  VNVPEENABLE_DISABLE = 0,
511  VNVPEENABLE_ENABLE = 1
512 } VnVpeEnable;
513 
515 typedef enum
516 {
519  VNHEADINGMODE_ABSOLUTE = 0,
522  VNHEADINGMODE_RELATIVE = 1,
525  VNHEADINGMODE_INDOOR = 2
526 } VnHeadingMode;
527 
529 typedef enum
530 {
533  VNVPEMODE_OFF = 0,
536  VNVPEMODE_MODE1 = 1
537 } VnVpeMode;
538 
540 typedef enum
541 {
544  VNSCENARIO_AHRS = 0,
547  VNSCENARIO_INSWITHPRESSURE = 1,
550  VNSCENARIO_INSWITHOUTPRESSURE = 2,
553  VNSCENARIO_GPSMOVINGBASELINEDYNAMIC = 3,
556  VNSCENARIO_GPSMOVINGBASELINESTATIC = 4
557 } VnScenario;
558 
560 typedef enum
561 {
564  VNHSIMODE_OFF = 0,
567  VNHSIMODE_RUN = 1,
570  VNHSIMODE_RESET = 2
571 } VnHsiMode;
572 
574 typedef enum
575 {
578  VNHSIOUTPUT_NOONBOARD = 1,
581  VNHSIOUTPUT_USEONBOARD = 3
582 } VnHsiOutput;
583 
585 typedef enum
586 {
589  VNVELOCITYCOMPENSATIONMODE_DISABLED = 0,
592  VNVELOCITYCOMPENSATIONMODE_BODYMEASUREMENT = 1
593 } VnVelocityCompensationMode;
594 
596 typedef enum
597 {
600  VNMAGNETICMODE_2D = 0,
603  VNMAGNETICMODE_3D = 1
604 } VnMagneticMode;
605 
607 typedef enum
608 {
611  VNEXTERNALSENSORMODE_INTERNAL = 0,
614  VNEXTERNALSENSORMODE_EXTERNAL200HZ = 1,
617  VNEXTERNALSENSORMODE_EXTERNALONUPDATE = 2
618 } VnExternalSensorMode;
619 
621 typedef enum
622 {
625  VNFOAMINIT_NOFOAMINIT = 0,
628  VNFOAMINIT_FOAMINITPITCHROLL = 1,
631  VNFOAMINIT_FOAMINITHEADINGPITCHROLL = 2,
634  VNFOAMINIT_FOAMINITPITCHROLLCOVARIANCE = 3,
637  VNFOAMINIT_FOAMINITHEADINGPITCHROLLCOVARIANCE = 4
638 } VnFoamInit;
639 
640 #endif