parser_nmea.h
Go to the documentation of this file.
1 
8 #ifndef PARSER_NMEA_H
9 #define PARSER_NMEA_H
10 
12 #define NMEA_MAX_LENGTH 100
13 
17 typedef enum nmea_sentence_id {
18  NMEA_INVALID = -1,
19  NMEA_UNKNOWN = 0,
20  NMEA_SENTENCE_RMC,
21  NMEA_SENTENCE_GGA,
22  NMEA_SENTENCE_GSA,
23  NMEA_SENTENCE_GLL,
24  NMEA_SENTENCE_GST,
25  NMEA_SENTENCE_GSV,
26  NMEA_SENTENCE_VTG
27 };
28 
32 typedef struct nmea_sentence_rmc {
34  int valid;
36  float latitude;
38  float longitude;
40  float speed;
42  float heading;
44 
48 typedef struct nmea_sentence_gga {
50  float latitude;
52  float longitude;
58  float hdop;
60  float altitude;
64  float height;
68  int dgps_age;
70 
78 int hex2int(char c);
79 
98 int nmea_scan(const char *sentence, const char *format, ...);
99 
107 int nmea_isfield(char c);
108 
115 enum nmea_sentence_id nmea_sentence_id(char *sentence);
116 
126  int nmea_check(const char *sentence, int strict);
127 
136 int nmea_parse_rmc(nmea_sentence_rmc *frame, const char *sentence);
137 
146 int nmea_parse_gga(nmea_sentence_gga *frame, const char *sentence);
147 // int nmea_parse_gsa(nmea_sentence_gsa *frame, const char *sentence);
148 // int nmea_parse_gll(nmea_sentence_gll *frame, const char *sentence);
149 // int nmea_parse_gst(nmea_sentence_gst *frame, const char *sentence);
150 // int nmea_parse_gsv(nmea_sentence_gsv *frame, const char *sentence);
151 // int nmea_parse_vtg(nmea_sentence_vtg *frame, const char *sentence);
152 
153 #endif
float longitude
Longitude.
Definition: parser_nmea.h:38
int nmea_parse_rmc(nmea_sentence_rmc *frame, const char *sentence)
Parse a RMC sentence.
Definition: parser_nmea.c:236
float hdop
HDOP.
Definition: parser_nmea.h:58
float heading
Heading.
Definition: parser_nmea.h:42
int hex2int(char c)
Transform hexa to integer.
Definition: parser_nmea.c:19
char altitude_units
Altitude unit.
Definition: parser_nmea.h:62
struct nmea_sentence_gga nmea_sentence_gga
float altitude
Altitude.
Definition: parser_nmea.h:60
nmea_sentence_id
Definition: parser_nmea.h:17
char height_units
Height unit.
Definition: parser_nmea.h:66
int nmea_scan(const char *sentence, const char *format,...)
Scanf-like processor for NMEA sentences.
Definition: parser_nmea.c:59
int nmea_isfield(char c)
Check if the char is part of the field.
Definition: parser_nmea.c:55
int satellites_tracked
Number of satellites.
Definition: parser_nmea.h:56
int valid
Sentence validity.
Definition: parser_nmea.h:34
float latitude
Latitude.
Definition: parser_nmea.h:50
float longitude
Longitude.
Definition: parser_nmea.h:52
int nmea_parse_gga(nmea_sentence_gga *frame, const char *sentence)
Parse a GGA sentence.
Definition: parser_nmea.c:265
float speed
Speed.
Definition: parser_nmea.h:40
int fix_quality
Quality.
Definition: parser_nmea.h:54
float height
Height.
Definition: parser_nmea.h:64
Definition: parser_nmea.h:48
Definition: parser_nmea.h:32
int dgps_age
Age.
Definition: parser_nmea.h:68
float latitude
Latitude.
Definition: parser_nmea.h:36
int nmea_check(const char *sentence, int strict)
Check sentence validity and checksum.
Definition: parser_nmea.c:295
struct nmea_sentence_rmc nmea_sentence_rmc