73 lines
2.8 KiB
C
73 lines
2.8 KiB
C
//
|
|
// Created by villuton on 25.03.25.
|
|
//
|
|
|
|
#ifndef NMEA_GGA_H
|
|
#define NMEA_GGA_H
|
|
|
|
#include "Nmea0183Parser_Time.h"
|
|
#include "Nmea0183_Sentence.h"
|
|
#define GGA_MSG_ID "GGA"
|
|
#define GGA_MSG_ID_LEN (3)
|
|
|
|
#define DGPS_SID_MIN (0000)
|
|
#define DGPS_SID_MAX (1023)
|
|
|
|
/**
|
|
* GPS Quality indicator:
|
|
*/
|
|
typedef enum {
|
|
SIG_Invalid = 0, /**< Fix not valid*/
|
|
SIG_Fix = 1, /**< GPS fix */
|
|
SIG_Differential = 2, /**< Differential GPS fix (DGNSS), SBAS, OmniSTAR VBS, Beacon, RTX in GVBS mode */
|
|
SIG_Sensitive = 3, /**< Not applicable */
|
|
SIG_RtkFixed = 4, /**< RTK Fixed, xFill */
|
|
SIG_RtkFloat = 5, /**< RTK Float, OmniSTAR XP/HP, Location RTK, RTX */
|
|
SIG_InsDead = 6 /**< INS Dead reckoning */
|
|
}eGGA_sig;
|
|
|
|
/**
|
|
* Reference station ID's descriptors
|
|
* When using one of the MSS (Mobile Satellite Services),
|
|
* the Reference Station ID field indicates the following services:
|
|
*/
|
|
typedef enum {
|
|
SID_CenterPoint = 0002, /**< CenterPoint or ViewPoint RTX */
|
|
SID_RangePoint = 0005, /**< RangePoint RTX */
|
|
SID_FieldPoint = 0006, /**< FieldPoint RTX */
|
|
SID_VBS = 0100, /**< VBS */
|
|
SID_HP = 1000, /**< HP */
|
|
SID_HP_XP_Orbits = 1001, /**< HP/XP (Orbits) */
|
|
SID_HP_G2_Orbits = 1002, /**< HP/G2 (Orbits) */
|
|
SID_XP_GPS = 1008, /**< XP (GPS) */
|
|
SID_G2_GPS = 1012, /**< G2 (GPS) */
|
|
SID_G2_GPS_GLONASS = 1013, /**< G2 (GPS/GLONASS) */
|
|
SID_G2_GLONASS = 1014, /**< G2 (GLONASS) */
|
|
SID_HP_XP_GPS = 1016, /**< HP/XP (GPS) */
|
|
SID_HP_G2_GPS = 1020, /**< HP/G2 (GPS) */
|
|
SID_HP_G2_GPS_GLONASS = 1021, /**< HP/G2 (GPS/GLONASS) */
|
|
|
|
}eGGA_dgps_sid;
|
|
|
|
|
|
/**
|
|
* GGA packet information structure (Global Positioning System Fix Data)
|
|
*/
|
|
typedef struct
|
|
{
|
|
tNmeaUtc utc; /**< UTC of position (just time) */
|
|
tNmeaLocation location; /**< Sentence location data in fractional NDEG and Cardinal directions */
|
|
eGGA_sig sig; /**< GPS quality indicator (0 = Invalid; 1 = Fix; 2 = Differential, 3 = Sensitive) */
|
|
int satinuse; /**< Number of satellites in use (not those in view) */
|
|
double HDOP; /**< Horizontal dilution of precision */
|
|
double elv; /**< Antenna altitude above/below mean sea level (geoid) */
|
|
char elv_units; /**< [M]eters (Antenna height unit) */
|
|
double diff; /**< Geoidal separation (Diff. between WGS-84 earth ellipsoid and mean sea level. '-' = geoid is below WGS-84 ellipsoid) */
|
|
char diff_units; /**< [M]eters (Units of geoidal separation) */
|
|
double dgps_age; /**< Time in seconds since last DGPS update */
|
|
int dgps_sid; /**< DGPS station ID number */
|
|
} tNmeaGGA;
|
|
|
|
|
|
#endif //NMEA_GGA_H
|