VectorNav C Library
compositedata.h
1 #ifndef _VNCOMPOSITEDATA_H_
2 #define _VNCOMPOSITEDATA_H_
3 
4 #include "vn/bool.h"
6 #include "vn/enum.h"
7 #include "vn/int.h"
8 #include "vn/math/vector.h"
9 #include "vn/math/matrix.h"
10 #include "vn/protocol/upack.h"
11 #include "vn/math/vector.h"
12 
13 #ifdef __cplusplus
14 extern "C" {
15 #endif
16 
17 #ifdef _WIN32
18 #pragma warning(push)
19 #pragma warning(disable : 4820)
20 #endif
21 
23 typedef struct
24 {
32  VelocityType velocityType;
42  #ifdef EXTRA
43  vec3f magneticRaw;
44  #endif
52  #ifdef EXTRA
53  vec3f accelerationRaw;
54  #endif
57  #ifdef EXTRA
58  vec3f angularRateRaw;
59  #endif
60  float temperature;
61  #ifdef EXTRA
62  float temperatureRaw;
63  #endif
64  float pressure;
65  uint64_t timeStartup;
66  float deltaTime;
69  double tow;
70  uint16_t week;
71  uint8_t gpsFix;
72  uint8_t numSats;
73  uint64_t timeGps;
74  uint64_t timeGpsPps;
75  uint64_t gpsTow;
82  uint32_t timeUncertainty;
83  uint16_t vpeStatus;
84  uint16_t insStatus;
85  uint64_t timeSyncIn;
86  uint32_t syncInCnt;
87  uint16_t sensSat;
88  #ifdef EXTRA
89  vec3f yprRates;
90  #endif
91 
93 #ifdef _WIN32
94 #pragma warning(pop)
95 #endif
96 
101 bool VnCompositeData_hasCourseOverGround(VnCompositeData* compositeData);
102 
108 bool VnCompositeData_courseOverGround(VnCompositeData* compositeData, float* courseOverGroundOut);
109 
114 bool VnCompositeData_hasSpeedOverGround(VnCompositeData* compositeData);
115 
121 bool VnCompositeData_speedOverGround(VnCompositeData* compositeData, float* speedOverGroundOut);
122 
129 void VnCompositeData_initialize(VnCompositeData* compositeData);
130 
137 void VnCompositeData_processBinaryPacket(VnCompositeData* compositeData, VnUartPacket* packet, VnCriticalSection* criticalSection);
138 
145 void VnCompositeData_processAsciiAsyncPacket(VnCompositeData* compositeData, VnUartPacket* packet, VnCriticalSection* criticalSection);
146 
153 void VnCompositeData_processBinaryPacketCommonGroup(
154  VnCompositeData* compositeData,
155  VnUartPacket* packet,
156  CommonGroup groupFlags);
157 
164 void VnCompositeData_processBinaryPacketTimeGroup(
165  VnCompositeData* compositeData,
166  VnUartPacket* packet,
167  TimeGroup groupFlags);
168 
175 void VnCompositeData_processBinaryPacketImuGroup(
176  VnCompositeData* compositeData,
177  VnUartPacket* packet,
178  ImuGroup groupFlags);
179 
186 void VnCompositeData_processBinaryPacketGpsGroup(
187  VnCompositeData* compositeData,
188  VnUartPacket* packet,
189  GpsGroup groupFlags);
190 
197 void VnCompositeData_processBinaryPacketAttitudeGroup(
198  VnCompositeData* compositeData,
199  VnUartPacket* packet,
200  AttitudeGroup groupFlags);
201 
208 void VnCompositeData_processBinaryPacketInsGroup(
209  VnCompositeData* compositeData,
210  VnUartPacket* packet,
211  InsGroup groupFlags);
212 
213 #ifdef __cplusplus
214 }
215 #endif
216 
217 #endif
float deltaTime
Definition: compositedata.h:66
vec3f attitudeUncertainty
Definition: compositedata.h:76
vec3f velocityEstimatedNed
Definition: compositedata.h:36
vec3f accelerationLinearNed
Definition: compositedata.h:50
mat3f directionCosineMatrix
Definition: compositedata.h:27
vec3f deltaVelocity
Definition: compositedata.h:68
vec3f angularRate
Definition: compositedata.h:55
uint8_t numSats
Definition: compositedata.h:72
vec4f quaternion
Definition: compositedata.h:26
Structure representing a UART packet received from a VectorNav sensor.
Definition: upack.h:34
float positionUncertaintyEstimated
Definition: compositedata.h:79
vec3f yawPitchRoll
Definition: compositedata.h:25
uint16_t insStatus
Definition: compositedata.h:84
uint32_t timeUncertainty
Definition: compositedata.h:82
vec3f accelerationUncompensated
Definition: compositedata.h:46
uint16_t week
Definition: compositedata.h:70
float velocityUncertaintyGps
Definition: compositedata.h:80
uint64_t gpsTow
Definition: compositedata.h:75
vec3f accelerationLinearEcef
Definition: compositedata.h:51
vec3d positionEstimatedEcef
Definition: compositedata.h:31
float velocityUncertaintyEstimated
Definition: compositedata.h:81
uint64_t timeStartup
Definition: compositedata.h:65
vec3f magneticUncompensated
Definition: compositedata.h:39
float temperature
Definition: compositedata.h:60
Represents a 4 component vector with an underlying data type of float.
Definition: vector.h:68
Represents a 3 component vector with an underlying data type of double.
Definition: vector.h:41
vec3f magneticNed
Definition: compositedata.h:40
vec3d positionGpsEcef
Definition: compositedata.h:29
vec3f positionUncertaintyGpsNed
Definition: compositedata.h:77
uint8_t gpsFix
Definition: compositedata.h:71
uint64_t timeGpsPps
Definition: compositedata.h:74
vec3f deltaTheta
Definition: compositedata.h:67
vec3f magnetic
Definition: compositedata.h:38
vec3f positionUncertaintyGpsEcef
Definition: compositedata.h:78
Definition: criticalsection.h:38
vec3f accelerationNed
Definition: compositedata.h:47
Composite structure of all available data types from VectorNav sensors.
Definition: compositedata.h:23
uint16_t sensSat
Definition: compositedata.h:87
vec3f accelerationLinearBody
Definition: compositedata.h:49
vec3f angularRateUncompensated
Definition: compositedata.h:56
VelocityType velocityType
Definition: compositedata.h:32
Represents a 3x3 matrix with an underlying data type of float.
Definition: matrix.h:11
vec3f acceleration
Definition: compositedata.h:45
vec3d positionGpsLla
Definition: compositedata.h:28
vec3f velocityEstimatedEcef
Definition: compositedata.h:37
double tow
Definition: compositedata.h:69
vec3f velocityEstimatedBody
Definition: compositedata.h:35
uint64_t timeGps
Definition: compositedata.h:73
vec3f velocityGpsEcef
Definition: compositedata.h:34
Various vector types and operations.
Definition: vector.h:14
uint16_t vpeStatus
Definition: compositedata.h:83
uint32_t syncInCnt
Definition: compositedata.h:86
vec3f velocityGpsNed
Definition: compositedata.h:33
vec3d positionEstimatedLla
Definition: compositedata.h:30
vec3f magneticEcef
Definition: compositedata.h:41
uint64_t timeSyncIn
Definition: compositedata.h:85
vec3f accelerationEcef
Definition: compositedata.h:48
float pressure
Definition: compositedata.h:64