sbgEComBinaryLogGps.h
Go to the documentation of this file.
1 
20 #ifndef __SBG_ECOM_BINARY_LOG_GPS_H__
21 #define __SBG_ECOM_BINARY_LOG_GPS_H__
22 
23 #include <sbgCommon.h>
25 
26 //----------------------------------------------------------------------//
27 //- Log GPS velocity const definitions -//
28 //----------------------------------------------------------------------//
29 
33 #define SBG_ECOM_GPS_VEL_STATUS_SHIFT (0u)
34 #define SBG_ECOM_GPS_VEL_STATUS_MASK (0x0000003Fu)
35 #define SBG_ECOM_GPS_VEL_TYPE_SHIFT (6u)
36 #define SBG_ECOM_GPS_VEL_TYPE_MASK (0x0000003Fu)
38 //----------------------------------------------------------------------//
39 //- Log GPS position const definitions -//
40 //----------------------------------------------------------------------//
41 
45 #define SBG_ECOM_GPS_POS_STATUS_SHIFT (0u)
46 #define SBG_ECOM_GPS_POS_STATUS_MASK (0x0000003Fu)
47 #define SBG_ECOM_GPS_POS_TYPE_SHIFT (6u)
48 #define SBG_ECOM_GPS_POS_TYPE_MASK (0x0000003Fu)
53 #define SBG_ECOM_GPS_POS_GPS_L1_USED (0x00000001u << 12)
54 #define SBG_ECOM_GPS_POS_GPS_L2_USED (0x00000001u << 13)
55 #define SBG_ECOM_GPS_POS_GPS_L5_USED (0x00000001u << 14)
56 #define SBG_ECOM_GPS_POS_GLO_L1_USED (0x00000001u << 15)
57 #define SBG_ECOM_GPS_POS_GLO_L2_USED (0x00000001u << 16)
59 //----------------------------------------------------------------------//
60 //- Log GPS HDT const definitions -//
61 //----------------------------------------------------------------------//
62 
66 #define SBG_ECOM_GPS_HDT_STATUS_SHIFT (0u)
67 #define SBG_ECOM_GPS_HDT_STATUS_MASK (0x0000003Fu)
72 #define SBG_ECOM_GPS_HDT_BASELINE_VALID (0x0001 << 6)
74 //----------------------------------------------------------------------//
75 //- Log GPS RAW const definitions -//
76 //----------------------------------------------------------------------//
77 
78 #define SBG_ECOM_GPS_RAW_MAX_BUFFER_SIZE (4086u)
80 //----------------------------------------------------------------------//
81 //- Log GPS velocity enums definitions -//
82 //----------------------------------------------------------------------//
83 
88 {
94 
98 typedef enum _SbgEComGpsVelType
99 {
105 
106 //----------------------------------------------------------------------//
107 //- Log GPS position enums definitions -//
108 //----------------------------------------------------------------------//
109 
114 {
120 
124 typedef enum _SbgEComGpsPosType
125 {
138 
139 //----------------------------------------------------------------------//
140 //- Log GPS HDT enums definitions -//
141 //----------------------------------------------------------------------//
142 
147 {
153 
154 //----------------------------------------------------------------------//
155 //- Helpers methods for velocity status access -//
156 //----------------------------------------------------------------------//
157 
164 {
166 }
167 
174 {
176 }
177 
185 {
186  //
187  // Create the combined status field
188  //
189  return ((((uint32_t)status)&SBG_ECOM_GPS_VEL_STATUS_MASK) << SBG_ECOM_GPS_VEL_STATUS_SHIFT) |
191 }
192 
193 //----------------------------------------------------------------------//
194 //- Helpers methods for position status access -//
195 //----------------------------------------------------------------------//
196 
203 {
205 }
206 
213 {
215 }
216 
225 {
226  //
227  // Create the combined status field
228  //
229  return ((((uint32_t)status)&SBG_ECOM_GPS_POS_STATUS_MASK) << SBG_ECOM_GPS_POS_STATUS_SHIFT) |
230  ((((uint32_t)type)&SBG_ECOM_GPS_POS_TYPE_MASK) << SBG_ECOM_GPS_POS_TYPE_SHIFT) | masks;
231 }
232 
233 //----------------------------------------------------------------------//
234 //- Helpers methods for HDT status access -//
235 //----------------------------------------------------------------------//
236 
243 {
245 }
246 
254 {
255  //
256  // Create the combined status field
257  //
258  return ((((uint32_t)status)&SBG_ECOM_GPS_HDT_STATUS_MASK) << SBG_ECOM_GPS_HDT_STATUS_SHIFT) | masks;
259 }
260 
261 //----------------------------------------------------------------------//
262 //- Log structure definitions -//
263 //----------------------------------------------------------------------//
264 
268 typedef struct _SbgLogGpsVel
269 {
270  uint32_t timeStamp;
271  uint32_t status;
272  uint32_t timeOfWeek;
273  float velocity[3];
274  float velocityAcc[3];
275  float course;
276  float courseAcc;
277 } SbgLogGpsVel;
278 
282 typedef struct _SbgLogGpsPos
283 {
284  uint32_t timeStamp;
285  uint32_t status;
286  uint32_t timeOfWeek;
287  double latitude;
288  double longitude;
289  double altitude;
290  float undulation;
294  uint8_t numSvUsed;
295  uint16_t baseStationId;
296  uint16_t differentialAge;
297 } SbgLogGpsPos;
298 
302 typedef struct _SbgLogGpsHdt
303 {
304  uint32_t timeStamp;
305  uint16_t status;
306  uint32_t timeOfWeek;
307  float heading;
309  float pitch;
311  float baseline;
312 } SbgLogGpsHdt;
313 
317 typedef struct _SbgLogGpsRaw
318 {
320  size_t bufferSize;
321 } SbgLogGpsRaw;
322 
323 //----------------------------------------------------------------------//
324 //- Operations -//
325 //----------------------------------------------------------------------//
326 
334 
342 
350 
358 
366 
374 
382 
390 
391 #endif
_SbgLogGpsPos::longitudeAccuracy
float longitudeAccuracy
Definition: sbgEComBinaryLogGps.h:292
sbgEComLogGpsVelGetType
SBG_INLINE SbgEComGpsVelType sbgEComLogGpsVelGetType(uint32_t status)
Definition: sbgEComBinaryLogGps.h:173
SBG_ECOM_VEL_SOL_COMPUTED
@ SBG_ECOM_VEL_SOL_COMPUTED
Definition: sbgEComBinaryLogGps.h:89
SBG_ECOM_VEL_INSUFFICIENT_OBS
@ SBG_ECOM_VEL_INSUFFICIENT_OBS
Definition: sbgEComBinaryLogGps.h:90
SBG_ECOM_GPS_VEL_TYPE_SHIFT
#define SBG_ECOM_GPS_VEL_TYPE_SHIFT
Definition: sbgEComBinaryLogGps.h:35
_SbgLogGpsVel::course
float course
Definition: sbgEComBinaryLogGps.h:275
sbgEComLogGpsHdtBuildStatus
SBG_INLINE uint32_t sbgEComLogGpsHdtBuildStatus(SbgEComGpsHdtStatus status, uint32_t masks)
Definition: sbgEComBinaryLogGps.h:253
SBG_ECOM_POS_RTK_FLOAT
@ SBG_ECOM_POS_RTK_FLOAT
Definition: sbgEComBinaryLogGps.h:132
SbgLogGpsVel
struct _SbgLogGpsVel SbgLogGpsVel
SBG_ECOM_POS_FIXED
@ SBG_ECOM_POS_FIXED
Definition: sbgEComBinaryLogGps.h:136
SBG_ECOM_VEL_LIMIT
@ SBG_ECOM_VEL_LIMIT
Definition: sbgEComBinaryLogGps.h:92
_SbgLogGpsHdt::headingAccuracy
float headingAccuracy
Definition: sbgEComBinaryLogGps.h:308
sbgEComLogGpsHdtGetStatus
SBG_INLINE SbgEComGpsHdtStatus sbgEComLogGpsHdtGetStatus(uint32_t status)
Definition: sbgEComBinaryLogGps.h:242
_SbgLogGpsRaw::rawBuffer
uint8_t rawBuffer[SBG_ECOM_GPS_RAW_MAX_BUFFER_SIZE]
Definition: sbgEComBinaryLogGps.h:319
_SbgLogGpsVel::velocity
float velocity[3]
Definition: sbgEComBinaryLogGps.h:273
_SbgLogGpsHdt::timeStamp
uint32_t timeStamp
Definition: sbgEComBinaryLogGps.h:304
SBG_ECOM_VEL_DIFFERENTIAL
@ SBG_ECOM_VEL_DIFFERENTIAL
Definition: sbgEComBinaryLogGps.h:103
SBG_ECOM_HDT_INTERNAL_ERROR
@ SBG_ECOM_HDT_INTERNAL_ERROR
Definition: sbgEComBinaryLogGps.h:150
_SbgLogGpsHdt::status
uint16_t status
Definition: sbgEComBinaryLogGps.h:305
SBG_ECOM_POS_UNKNOWN_TYPE
@ SBG_ECOM_POS_UNKNOWN_TYPE
Definition: sbgEComBinaryLogGps.h:127
_SbgEComGpsVelStatus
_SbgEComGpsVelStatus
Definition: sbgEComBinaryLogGps.h:87
_SbgLogGpsHdt
Definition: sbgEComBinaryLogGps.h:302
sbgEComLogGpsVelGetStatus
SBG_INLINE SbgEComGpsVelStatus sbgEComLogGpsVelGetStatus(uint32_t status)
Definition: sbgEComBinaryLogGps.h:163
SBG_ECOM_HDT_HEIGHT_LIMIT
@ SBG_ECOM_HDT_HEIGHT_LIMIT
Definition: sbgEComBinaryLogGps.h:151
_SbgLogGpsVel::timeOfWeek
uint32_t timeOfWeek
Definition: sbgEComBinaryLogGps.h:272
SbgEComGpsPosType
enum _SbgEComGpsPosType SbgEComGpsPosType
SBG_ECOM_POS_INTERNAL_ERROR
@ SBG_ECOM_POS_INTERNAL_ERROR
Definition: sbgEComBinaryLogGps.h:117
_SbgLogGpsVel::status
uint32_t status
Definition: sbgEComBinaryLogGps.h:271
sbgCommon.h
SbgEComGpsVelStatus
enum _SbgEComGpsVelStatus SbgEComGpsVelStatus
sbgEComBinaryLogParseGpsRawData
SbgErrorCode sbgEComBinaryLogParseGpsRawData(SbgStreamBuffer *pInputStream, SbgLogGpsRaw *pOutputData)
Definition: sbgEComBinaryLogGps.c:239
SBG_ECOM_GPS_HDT_STATUS_SHIFT
#define SBG_ECOM_GPS_HDT_STATUS_SHIFT
Definition: sbgEComBinaryLogGps.h:66
sbgEComLogGpsVelBuildStatus
SBG_INLINE uint32_t sbgEComLogGpsVelBuildStatus(SbgEComGpsVelStatus status, SbgEComGpsVelType type)
Definition: sbgEComBinaryLogGps.h:184
SBG_INLINE
#define SBG_INLINE
Definition: sbgDefines.h:186
SbgLogGpsRaw
struct _SbgLogGpsRaw SbgLogGpsRaw
SBG_ECOM_GPS_POS_STATUS_MASK
#define SBG_ECOM_GPS_POS_STATUS_MASK
Definition: sbgEComBinaryLogGps.h:46
sbgEComBinaryLogWriteGpsRawData
SbgErrorCode sbgEComBinaryLogWriteGpsRawData(SbgStreamBuffer *pOutputStream, const SbgLogGpsRaw *pInputData)
Definition: sbgEComBinaryLogGps.c:283
_SbgLogGpsPos::undulation
float undulation
Definition: sbgEComBinaryLogGps.h:290
SbgLogGpsHdt
struct _SbgLogGpsHdt SbgLogGpsHdt
SBG_ECOM_POS_SBAS
@ SBG_ECOM_POS_SBAS
Definition: sbgEComBinaryLogGps.h:130
_SbgLogGpsPos::baseStationId
uint16_t baseStationId
Definition: sbgEComBinaryLogGps.h:295
SBG_ECOM_POS_SINGLE
@ SBG_ECOM_POS_SINGLE
Definition: sbgEComBinaryLogGps.h:128
_SbgLogGpsPos::differentialAge
uint16_t differentialAge
Definition: sbgEComBinaryLogGps.h:296
_SbgLogGpsPos::altitudeAccuracy
float altitudeAccuracy
Definition: sbgEComBinaryLogGps.h:293
SBG_ECOM_VEL_UNKNOWN_TYPE
@ SBG_ECOM_VEL_UNKNOWN_TYPE
Definition: sbgEComBinaryLogGps.h:101
SBG_ECOM_VEL_INTERNAL_ERROR
@ SBG_ECOM_VEL_INTERNAL_ERROR
Definition: sbgEComBinaryLogGps.h:91
_SbgEComGpsPosStatus
_SbgEComGpsPosStatus
Definition: sbgEComBinaryLogGps.h:113
SBG_ECOM_POS_PPP_FLOAT
@ SBG_ECOM_POS_PPP_FLOAT
Definition: sbgEComBinaryLogGps.h:134
_SbgEComGpsPosType
_SbgEComGpsPosType
Definition: sbgEComBinaryLogGps.h:124
_SbgLogGpsHdt::timeOfWeek
uint32_t timeOfWeek
Definition: sbgEComBinaryLogGps.h:306
SBG_ECOM_POS_NO_SOLUTION
@ SBG_ECOM_POS_NO_SOLUTION
Definition: sbgEComBinaryLogGps.h:126
SBG_ECOM_GPS_HDT_STATUS_MASK
#define SBG_ECOM_GPS_HDT_STATUS_MASK
Definition: sbgEComBinaryLogGps.h:67
SBG_ECOM_POS_HEIGHT_LIMIT
@ SBG_ECOM_POS_HEIGHT_LIMIT
Definition: sbgEComBinaryLogGps.h:118
sbgEComLogGpsPosBuildStatus
SBG_INLINE uint32_t sbgEComLogGpsPosBuildStatus(SbgEComGpsPosStatus status, SbgEComGpsPosType type, uint32_t masks)
Definition: sbgEComBinaryLogGps.h:224
sbgEComBinaryLogWriteGpsHdtData
SbgErrorCode sbgEComBinaryLogWriteGpsHdtData(SbgStreamBuffer *pOutputStream, const SbgLogGpsHdt *pInputData)
Definition: sbgEComBinaryLogGps.c:210
_SbgLogGpsPos::longitude
double longitude
Definition: sbgEComBinaryLogGps.h:288
SBG_ECOM_GPS_VEL_STATUS_MASK
#define SBG_ECOM_GPS_VEL_STATUS_MASK
Definition: sbgEComBinaryLogGps.h:34
SBG_ECOM_HDT_SOL_COMPUTED
@ SBG_ECOM_HDT_SOL_COMPUTED
Definition: sbgEComBinaryLogGps.h:148
sbgEComLogGpsPosGetType
SBG_INLINE SbgEComGpsPosType sbgEComLogGpsPosGetType(uint32_t status)
Definition: sbgEComBinaryLogGps.h:212
_SbgLogGpsPos
Definition: sbgEComBinaryLogGps.h:282
_SbgLogGpsPos::latitudeAccuracy
float latitudeAccuracy
Definition: sbgEComBinaryLogGps.h:291
SBG_ECOM_GPS_POS_TYPE_MASK
#define SBG_ECOM_GPS_POS_TYPE_MASK
Definition: sbgEComBinaryLogGps.h:48
_SbgLogGpsHdt::heading
float heading
Definition: sbgEComBinaryLogGps.h:307
_SbgLogGpsVel
Definition: sbgEComBinaryLogGps.h:268
SBG_ECOM_POS_OMNISTAR
@ SBG_ECOM_POS_OMNISTAR
Definition: sbgEComBinaryLogGps.h:131
_SbgStreamBuffer
Definition: sbgStreamBufferCommon.h:188
_SbgLogGpsPos::latitude
double latitude
Definition: sbgEComBinaryLogGps.h:287
SBG_ECOM_POS_PSRDIFF
@ SBG_ECOM_POS_PSRDIFF
Definition: sbgEComBinaryLogGps.h:129
SBG_ECOM_GPS_VEL_STATUS_SHIFT
#define SBG_ECOM_GPS_VEL_STATUS_SHIFT
This file is used to parse received GPS binary logs.
Definition: sbgEComBinaryLogGps.h:33
sbgStreamBuffer.h
SBG_ECOM_GPS_RAW_MAX_BUFFER_SIZE
#define SBG_ECOM_GPS_RAW_MAX_BUFFER_SIZE
Definition: sbgEComBinaryLogGps.h:78
SBG_ECOM_HDT_INSUFFICIENT_OBS
@ SBG_ECOM_HDT_INSUFFICIENT_OBS
Definition: sbgEComBinaryLogGps.h:149
SBG_ECOM_GPS_POS_TYPE_SHIFT
#define SBG_ECOM_GPS_POS_TYPE_SHIFT
Definition: sbgEComBinaryLogGps.h:47
sbgEComBinaryLogParseGpsVelData
SbgErrorCode sbgEComBinaryLogParseGpsVelData(SbgStreamBuffer *pInputStream, SbgLogGpsVel *pOutputData)
Definition: sbgEComBinaryLogGps.c:13
SbgLogGpsPos
struct _SbgLogGpsPos SbgLogGpsPos
sbgEComBinaryLogParseGpsPosData
SbgErrorCode sbgEComBinaryLogParseGpsPosData(SbgStreamBuffer *pInputStream, SbgLogGpsPos *pOutputData)
Definition: sbgEComBinaryLogGps.c:76
_SbgLogGpsPos::status
uint32_t status
Definition: sbgEComBinaryLogGps.h:285
SBG_ECOM_POS_SOL_COMPUTED
@ SBG_ECOM_POS_SOL_COMPUTED
Definition: sbgEComBinaryLogGps.h:115
sbgEComBinaryLogWriteGpsPosData
SbgErrorCode sbgEComBinaryLogWriteGpsPosData(SbgStreamBuffer *pOutputStream, const SbgLogGpsPos *pInputData)
Definition: sbgEComBinaryLogGps.c:129
_SbgLogGpsVel::timeStamp
uint32_t timeStamp
Definition: sbgEComBinaryLogGps.h:270
SBG_ECOM_POS_RTK_INT
@ SBG_ECOM_POS_RTK_INT
Definition: sbgEComBinaryLogGps.h:133
SbgErrorCode
enum _SbgErrorCode SbgErrorCode
Header file that defines all error codes for SBG Systems libraries.
_SbgLogGpsPos::timeOfWeek
uint32_t timeOfWeek
Definition: sbgEComBinaryLogGps.h:286
SbgEComGpsVelType
enum _SbgEComGpsVelType SbgEComGpsVelType
SBG_ECOM_VEL_DOPPLER
@ SBG_ECOM_VEL_DOPPLER
Definition: sbgEComBinaryLogGps.h:102
_SbgLogGpsPos::altitude
double altitude
Definition: sbgEComBinaryLogGps.h:289
sbgEComBinaryLogParseGpsHdtData
SbgErrorCode sbgEComBinaryLogParseGpsHdtData(SbgStreamBuffer *pInputStream, SbgLogGpsHdt *pOutputData)
Definition: sbgEComBinaryLogGps.c:170
SBG_ECOM_GPS_POS_STATUS_SHIFT
#define SBG_ECOM_GPS_POS_STATUS_SHIFT
Definition: sbgEComBinaryLogGps.h:45
SBG_ECOM_GPS_VEL_TYPE_MASK
#define SBG_ECOM_GPS_VEL_TYPE_MASK
Definition: sbgEComBinaryLogGps.h:36
SbgEComGpsPosStatus
enum _SbgEComGpsPosStatus SbgEComGpsPosStatus
sbgEComLogGpsPosGetStatus
SBG_INLINE SbgEComGpsPosStatus sbgEComLogGpsPosGetStatus(uint32_t status)
Definition: sbgEComBinaryLogGps.h:202
SBG_ECOM_VEL_NO_SOLUTION
@ SBG_ECOM_VEL_NO_SOLUTION
Definition: sbgEComBinaryLogGps.h:100
_SbgEComGpsVelType
_SbgEComGpsVelType
Definition: sbgEComBinaryLogGps.h:98
_SbgLogGpsPos::timeStamp
uint32_t timeStamp
Definition: sbgEComBinaryLogGps.h:284
_SbgLogGpsHdt::pitch
float pitch
Definition: sbgEComBinaryLogGps.h:309
sbgEComBinaryLogWriteGpsVelData
SbgErrorCode sbgEComBinaryLogWriteGpsVelData(SbgStreamBuffer *pOutputStream, const SbgLogGpsVel *pInputData)
Definition: sbgEComBinaryLogGps.c:45
_SbgLogGpsRaw::bufferSize
size_t bufferSize
Definition: sbgEComBinaryLogGps.h:320
_SbgLogGpsHdt::baseline
float baseline
Definition: sbgEComBinaryLogGps.h:311
_SbgLogGpsVel::velocityAcc
float velocityAcc[3]
Definition: sbgEComBinaryLogGps.h:274
SBG_ECOM_POS_INSUFFICIENT_OBS
@ SBG_ECOM_POS_INSUFFICIENT_OBS
Definition: sbgEComBinaryLogGps.h:116
_SbgLogGpsHdt::pitchAccuracy
float pitchAccuracy
Definition: sbgEComBinaryLogGps.h:310
_SbgLogGpsVel::courseAcc
float courseAcc
Definition: sbgEComBinaryLogGps.h:276
_SbgLogGpsPos::numSvUsed
uint8_t numSvUsed
Definition: sbgEComBinaryLogGps.h:294
SBG_ECOM_POS_PPP_INT
@ SBG_ECOM_POS_PPP_INT
Definition: sbgEComBinaryLogGps.h:135
SbgEComGpsHdtStatus
enum _SbgEComGpsHdtStatus SbgEComGpsHdtStatus
_SbgLogGpsRaw
Definition: sbgEComBinaryLogGps.h:317
_SbgEComGpsHdtStatus
_SbgEComGpsHdtStatus
Definition: sbgEComBinaryLogGps.h:146


sbg_driver
Author(s): SBG Systems
autogenerated on Fri Oct 11 2024 02:13:40