sbgECom Library  4.0.1987-stable
C library to interface SBG Systems IMU/AHRS/INS
sbgEComLogGnssPos.h
Go to the documentation of this file.
1 
33 #ifndef SBG_ECOM_LOG_GPS_POS_H
34 #define SBG_ECOM_LOG_GPS_POS_H
35 
36 // sbgCommonLib headers
37 #include <sbgCommon.h>
39 
40 #ifdef __cplusplus
41 extern "C" {
42 #endif
43 
44 //----------------------------------------------------------------------//
45 //- Public definitions -//
46 //----------------------------------------------------------------------//
47 
51 #define SBG_ECOM_GNSS_POS_GPS_L1_USED (0x00000001u << 12)
52 #define SBG_ECOM_GNSS_POS_GPS_L2_USED (0x00000001u << 13)
53 #define SBG_ECOM_GNSS_POS_GPS_L5_USED (0x00000001u << 14)
55 #define SBG_ECOM_GNSS_POS_GLO_L1_USED (0x00000001u << 15)
56 #define SBG_ECOM_GNSS_POS_GLO_L2_USED (0x00000001u << 16)
57 #define SBG_ECOM_GNSS_POS_GLO_L3_USED (0x00000001u << 17)
59 #define SBG_ECOM_GNSS_POS_GAL_E1_USED (0x00000001u << 18)
60 #define SBG_ECOM_GNSS_POS_GAL_E5A_USED (0x00000001u << 19)
61 #define SBG_ECOM_GNSS_POS_GAL_E5B_USED (0x00000001u << 20)
62 #define SBG_ECOM_GNSS_POS_GAL_E5ALT_USED (0x00000001u << 21)
63 #define SBG_ECOM_GNSS_POS_GAL_E6_USED (0x00000001u << 22)
65 #define SBG_ECOM_GNSS_POS_BDS_B1_USED (0x00000001u << 23)
66 #define SBG_ECOM_GNSS_POS_BDS_B2_USED (0x00000001u << 24)
67 #define SBG_ECOM_GNSS_POS_BDS_B3_USED (0x00000001u << 25)
69 #define SBG_ECOM_GNSS_POS_QZSS_L1_USED (0x00000001u << 26)
70 #define SBG_ECOM_GNSS_POS_QZSS_L2_USED (0x00000001u << 27)
71 #define SBG_ECOM_GNSS_POS_QZSS_L5_USED (0x00000001u << 28)
77 {
83 
87 typedef enum _SbgEComGnssPosType
88 {
101 
106 {
113 
118 {
125 
130 {
138 
139 //----------------------------------------------------------------------//
140 //- Log structure definitions -//
141 //----------------------------------------------------------------------//
142 
146 typedef struct _SbgEComLogGnssPos
147 {
148  uint32_t timeStamp;
149  uint32_t status;
150  uint32_t timeOfWeek;
151  double latitude;
152  double longitude;
153  double altitude;
154  float undulation;
158  uint8_t numSvUsed;
159  uint16_t baseStationId;
160  uint16_t differentialAge;
161  uint8_t numSvTracked;
162  uint32_t statusExt;
164 
165 //----------------------------------------------------------------------//
166 //- Public methods -//
167 //----------------------------------------------------------------------//
168 
175 
184 
193 
194 //----------------------------------------------------------------------//
195 //- Public setters/getters -//
196 //----------------------------------------------------------------------//
197 
205 
215 
223 
233 
240 void sbgEComLogGnssPosSetSignalsUsed(SbgEComLogGnssPos *pLogData, uint32_t signalMask);
241 
251 bool sbgEComLogGnssPosSignalsAreUsed(const SbgEComLogGnssPos *pLogData, uint32_t signalsMask);
252 
260 
268 
276 
284 
294 void sbgEComLogGnssPosSetDifferentialAge(SbgEComLogGnssPos *pLogData, float differentialAge);
295 
305 
313 
321 
329 
337 
345 
353 
354 //----------------------------------------------------------------------//
355 //- DEPRECATED - Used for backward compatibility -//
356 //----------------------------------------------------------------------//
357 
358 #ifdef SBG_ECOM_USE_DEPRECATED_MACROS
359  #define SBG_ECOM_GPS_POS_GPS_L1_USED (0x00000001u << 12)
360  #define SBG_ECOM_GPS_POS_GPS_L2_USED (0x00000001u << 13)
361  #define SBG_ECOM_GPS_POS_GPS_L5_USED (0x00000001u << 14)
362 
363  #define SBG_ECOM_GPS_POS_GLO_L1_USED (0x00000001u << 15)
364  #define SBG_ECOM_GPS_POS_GLO_L2_USED (0x00000001u << 16)
365  #define SBG_ECOM_GPS_POS_GLO_L3_USED (0x00000001u << 17)
366 
367  #define SBG_ECOM_GPS_POS_GAL_E1_USED (0x00000001u << 18)
368  #define SBG_ECOM_GPS_POS_GAL_E5A_USED (0x00000001u << 19)
369  #define SBG_ECOM_GPS_POS_GAL_E5B_USED (0x00000001u << 20)
370  #define SBG_ECOM_GPS_POS_GAL_E5ALT_USED (0x00000001u << 21)
371  #define SBG_ECOM_GPS_POS_GAL_E6_USED (0x00000001u << 22)
372 
373  #define SBG_ECOM_GPS_POS_BDS_B1_USED (0x00000001u << 23)
374  #define SBG_ECOM_GPS_POS_BDS_B2_USED (0x00000001u << 24)
375  #define SBG_ECOM_GPS_POS_BDS_B3_USED (0x00000001u << 25)
376 
377  #define SBG_ECOM_GPS_POS_QZSS_L1_USED (0x00000001u << 26)
378  #define SBG_ECOM_GPS_POS_QZSS_L2_USED (0x00000001u << 27)
379  #define SBG_ECOM_GPS_POS_QZSS_L5_USED (0x00000001u << 28)
380 
381  #define SBG_ECOM_POS_SOL_COMPUTED (SBG_ECOM_GNSS_POS_STATUS_SOL_COMPUTED)
382  #define SBG_ECOM_POS_INSUFFICIENT_OBS (SBG_ECOM_GNSS_POS_STATUS_INSUFFICIENT_OBS)
383  #define SBG_ECOM_POS_INTERNAL_ERROR (SBG_ECOM_GNSS_POS_STATUS_INTERNAL_ERROR)
384  #define SBG_ECOM_POS_HEIGHT_LIMIT (SBG_ECOM_GNSS_POS_STATUS_HEIGHT_LIMIT)
385 
386  #define SBG_ECOM_POS_NO_SOLUTION (SBG_ECOM_GNSS_POS_TYPE_NO_SOLUTION)
387  #define SBG_ECOM_POS_UNKNOWN_TYPE (SBG_ECOM_GNSS_POS_TYPE_UNKNOWN)
388  #define SBG_ECOM_POS_SINGLE (SBG_ECOM_GNSS_POS_TYPE_SINGLE)
389  #define SBG_ECOM_POS_PSRDIFF (SBG_ECOM_GNSS_POS_TYPE_PSRDIFF)
390  #define SBG_ECOM_POS_SBAS (SBG_ECOM_GNSS_POS_TYPE_SBAS)
391  #define SBG_ECOM_POS_OMNISTAR (SBG_ECOM_GNSS_POS_TYPE_OMNISTAR)
392  #define SBG_ECOM_POS_RTK_FLOAT (SBG_ECOM_GNSS_POS_TYPE_RTK_FLOAT)
393  #define SBG_ECOM_POS_RTK_INT (SBG_ECOM_GNSS_POS_TYPE_RTK_INT)
394  #define SBG_ECOM_POS_PPP_FLOAT (SBG_ECOM_GNSS_POS_TYPE_PPP_FLOAT)
395  #define SBG_ECOM_POS_PPP_INT (SBG_ECOM_GNSS_POS_TYPE_PPP_INT)
396  #define SBG_ECOM_POS_FIXED (SBG_ECOM_GNSS_POS_TYPE_FIXED)
397 #endif
398 
399 SBG_DEPRECATED_TYPEDEF(typedef enum _SbgEComGnssPosStatus SbgEComGpsPosStatus);
400 SBG_DEPRECATED_TYPEDEF(typedef enum _SbgEComGnssPosType SbgEComGpsPosType);
401 SBG_DEPRECATED_TYPEDEF(typedef struct _SbgEComLogGnssPos SbgLogGpsPos);
402 
403 SBG_DEPRECATED(uint32_t sbgEComLogGpsPosBuildStatus(SbgEComGnssPosStatus status, SbgEComGnssPosType type, uint32_t masks));
404 SBG_DEPRECATED(SbgEComGnssPosStatus sbgEComLogGpsPosGetStatus(uint32_t status));
405 SBG_DEPRECATED(SbgEComGnssPosType sbgEComLogGpsPosGetType(uint32_t status));
406 
407 SBG_DEPRECATED(SbgErrorCode sbgEComBinaryLogParseGpsPosData(SbgStreamBuffer *pStreamBuffer, SbgEComLogGnssPos *pLogData));
408 SBG_DEPRECATED(SbgErrorCode sbgEComBinaryLogWriteGpsPosData(SbgStreamBuffer *pStreamBuffer, const SbgEComLogGnssPos *pLogData));
409 
410 #ifdef __cplusplus
411 }
412 #endif
413 
414 #endif // SBG_ECOM_LOG_GNSS_POS_H
Main header for the SBG Systems common C library.
#define SBG_DEPRECATED_TYPEDEF(decl)
Definition: sbgDefines.h:349
enum _SbgEComGnssPosStatus SbgEComGnssPosStatus
bool sbgEComLogGnssPosSignalsAreUsed(const SbgEComLogGnssPos *pLogData, uint32_t signalsMask)
bool sbgEComLogGnssPosDifferentialAgeIsValid(const SbgEComLogGnssPos *pLogData)
enum _SbgEComGnssPosType SbgEComGnssPosType
void sbgEComLogGnssPosSetType(SbgEComLogGnssPos *pLogData, SbgEComGnssPosType posType)
SbgErrorCode sbgEComLogGnssPosReadFromStream(SbgEComLogGnssPos *pLogData, SbgStreamBuffer *pStreamBuffer)
float sbgEComLogGnssPosGetDifferentialAge(const SbgEComLogGnssPos *pLogData)
void sbgEComLogGnssPosSetStatus(SbgEComLogGnssPos *pLogData, SbgEComGnssPosStatus status)
SbgEComGnssOsnmaStatus sbgEComLogGnssPosGetOsnmaStatus(const SbgEComLogGnssPos *pLogData)
bool sbgEComLogGnssPosNumSvTrackedIsValid(const SbgEComLogGnssPos *pLogData)
SbgEComGnssIfmStatus sbgEComLogGnssPosGetIfmStatus(const SbgEComLogGnssPos *pLogData)
SbgEComGnssSpoofingStatus sbgEComLogGnssPosGetSpoofingStatus(const SbgEComLogGnssPos *pLogData)
bool sbgEComLogGnssPosNumSvUsedIsValid(const SbgEComLogGnssPos *pLogData)
void sbgEComLogGnssPosSetSignalsUsed(SbgEComLogGnssPos *pLogData, uint32_t signalMask)
SbgEComGnssPosStatus sbgEComLogGnssPosGetStatus(const SbgEComLogGnssPos *pLogData)
SbgEComGnssPosType sbgEComLogGnssPosGetType(const SbgEComLogGnssPos *pLogData)
_SbgEComGnssSpoofingStatus
Definition: sbgEComLogGnssPos.h:118
@ SBG_ECOM_GNSS_SPOOFING_STATUS_MULTIPLE
Definition: sbgEComLogGnssPos.h:123
@ SBG_ECOM_GNSS_SPOOFING_STATUS_CLEAN
Definition: sbgEComLogGnssPos.h:121
@ SBG_ECOM_GNSS_SPOOFING_STATUS_SINGLE
Definition: sbgEComLogGnssPos.h:122
@ SBG_ECOM_GNSS_SPOOFING_STATUS_ERROR
Definition: sbgEComLogGnssPos.h:119
@ SBG_ECOM_GNSS_SPOOFING_STATUS_UNKNOWN
Definition: sbgEComLogGnssPos.h:120
_SbgEComGnssPosType
Definition: sbgEComLogGnssPos.h:88
@ SBG_ECOM_GNSS_POS_TYPE_RTK_FLOAT
Definition: sbgEComLogGnssPos.h:95
@ SBG_ECOM_GNSS_POS_TYPE_RTK_INT
Definition: sbgEComLogGnssPos.h:96
@ SBG_ECOM_GNSS_POS_TYPE_SBAS
Definition: sbgEComLogGnssPos.h:93
@ SBG_ECOM_GNSS_POS_TYPE_PPP_FLOAT
Definition: sbgEComLogGnssPos.h:97
@ SBG_ECOM_GNSS_POS_TYPE_PSRDIFF
Definition: sbgEComLogGnssPos.h:92
@ SBG_ECOM_GNSS_POS_TYPE_NO_SOLUTION
Definition: sbgEComLogGnssPos.h:89
@ SBG_ECOM_GNSS_POS_TYPE_UNKNOWN
Definition: sbgEComLogGnssPos.h:90
@ SBG_ECOM_GNSS_POS_TYPE_FIXED
Definition: sbgEComLogGnssPos.h:99
@ SBG_ECOM_GNSS_POS_TYPE_SINGLE
Definition: sbgEComLogGnssPos.h:91
@ SBG_ECOM_GNSS_POS_TYPE_OMNISTAR
Definition: sbgEComLogGnssPos.h:94
@ SBG_ECOM_GNSS_POS_TYPE_PPP_INT
Definition: sbgEComLogGnssPos.h:98
_SbgEComGnssIfmStatus
Definition: sbgEComLogGnssPos.h:106
@ SBG_ECOM_GNSS_IFM_STATUS_MITIGATED
Definition: sbgEComLogGnssPos.h:110
@ SBG_ECOM_GNSS_IFM_STATUS_CRITICAL
Definition: sbgEComLogGnssPos.h:111
@ SBG_ECOM_GNSS_IFM_STATUS_UNKNOWN
Definition: sbgEComLogGnssPos.h:108
@ SBG_ECOM_GNSS_IFM_STATUS_CLEAN
Definition: sbgEComLogGnssPos.h:109
@ SBG_ECOM_GNSS_IFM_STATUS_ERROR
Definition: sbgEComLogGnssPos.h:107
void sbgEComLogGnssPosSetDifferentialAge(SbgEComLogGnssPos *pLogData, float differentialAge)
enum _SbgEComGnssIfmStatus SbgEComGnssIfmStatus
void sbgEComLogGnssPosSetIfmStatus(SbgEComLogGnssPos *pLogData, SbgEComGnssIfmStatus status)
void sbgEComLogGnssPosSetOsnmaStatus(SbgEComLogGnssPos *pLogData, SbgEComGnssOsnmaStatus status)
enum _SbgEComGnssOsnmaStatus SbgEComGnssOsnmaStatus
bool sbgEComLogGnssPosBaseStationIdIsValid(const SbgEComLogGnssPos *pLogData)
void sbgEComLogGnssPosZeroInit(SbgEComLogGnssPos *pLogData)
void sbgEComLogGnssPosSetSpoofingStatus(SbgEComLogGnssPos *pLogData, SbgEComGnssSpoofingStatus status)
_SbgEComGnssPosStatus
Definition: sbgEComLogGnssPos.h:77
@ SBG_ECOM_GNSS_POS_STATUS_INSUFFICIENT_OBS
Definition: sbgEComLogGnssPos.h:79
@ SBG_ECOM_GNSS_POS_STATUS_INTERNAL_ERROR
Definition: sbgEComLogGnssPos.h:80
@ SBG_ECOM_GNSS_POS_STATUS_HEIGHT_LIMIT
Definition: sbgEComLogGnssPos.h:81
@ SBG_ECOM_GNSS_POS_STATUS_SOL_COMPUTED
Definition: sbgEComLogGnssPos.h:78
struct _SbgEComLogGnssPos SbgEComLogGnssPos
enum _SbgEComGnssSpoofingStatus SbgEComGnssSpoofingStatus
SbgErrorCode sbgEComLogGnssPosWriteToStream(const SbgEComLogGnssPos *pLogData, SbgStreamBuffer *pStreamBuffer)
_SbgEComGnssOsnmaStatus
Definition: sbgEComLogGnssPos.h:130
@ SBG_ECOM_GNSS_OSNMA_STATUS_VALID
Definition: sbgEComLogGnssPos.h:135
@ SBG_ECOM_GNSS_OSNMA_STATUS_SPOOFED
Definition: sbgEComLogGnssPos.h:136
@ SBG_ECOM_GNSS_OSNMA_STATUS_ERROR
Definition: sbgEComLogGnssPos.h:131
@ SBG_ECOM_GNSS_OSNMA_STATUS_DISABLED
Definition: sbgEComLogGnssPos.h:132
@ SBG_ECOM_GNSS_OSNMA_STATUS_WAITING_NTP
Definition: sbgEComLogGnssPos.h:134
@ SBG_ECOM_GNSS_OSNMA_STATUS_INITIALIZING
Definition: sbgEComLogGnssPos.h:133
enum _SbgErrorCode SbgErrorCode
Used to read/write data from/to a memory buffer stream.
SBG_DEPRECATED(SBG_INLINE uint32_t SBG_VERSION(uint8_t major, uint8_t minor, uint8_t rev, uint8_t build))
Definition: sbgEComLogGnssPos.h:147
double latitude
Definition: sbgEComLogGnssPos.h:151
uint16_t baseStationId
Definition: sbgEComLogGnssPos.h:159
uint16_t differentialAge
Definition: sbgEComLogGnssPos.h:160
uint32_t timeStamp
Definition: sbgEComLogGnssPos.h:148
float longitudeAccuracy
Definition: sbgEComLogGnssPos.h:156
uint32_t statusExt
Definition: sbgEComLogGnssPos.h:162
double altitude
Definition: sbgEComLogGnssPos.h:153
float altitudeAccuracy
Definition: sbgEComLogGnssPos.h:157
double longitude
Definition: sbgEComLogGnssPos.h:152
uint8_t numSvTracked
Definition: sbgEComLogGnssPos.h:161
float latitudeAccuracy
Definition: sbgEComLogGnssPos.h:155
float undulation
Definition: sbgEComLogGnssPos.h:154
uint32_t status
Definition: sbgEComLogGnssPos.h:149
uint32_t timeOfWeek
Definition: sbgEComLogGnssPos.h:150
uint8_t numSvUsed
Definition: sbgEComLogGnssPos.h:158
Definition: sbgStreamBufferCommon.h:201