File syn_nmea.h¶
FileList > proto > syn_nmea.h
Go to the source code of this file
NMEA 0183 / GNSS sentence parser and encoder. More...
#include "../common/syn_defs.h"#include <stdbool.h>#include <stddef.h>#include <stdint.h>
Classes¶
| Type | Name |
|---|---|
| struct | SYN_NMEA_GGA Parsed NMEA GGA (Fix Data) Structure. |
| struct | SYN_NMEA_GSA Parsed NMEA GSA (DOP & Active Satellites) Structure. |
| struct | SYN_NMEA_Parser Streaming NMEA Parser State Machine. |
| struct | SYN_NMEA_RMC Parsed NMEA RMC (Recommended Minimum Data) Structure. |
| struct | SYN_NMEA_VTG Parsed NMEA VTG (Velocity & Course) Structure. |
| struct | SYN_NMEA_ZDA Parsed NMEA ZDA (UTC Date & Time) Structure. |
Public Types¶
| Type | Name |
|---|---|
| enum | SYN_NMEA_FixQuality GPS Fix Quality Enum (from GGA) |
| enum | SYN_NMEA_SentenceType NMEA Sentence Type Enum. |
Public Functions¶
| Type | Name |
|---|---|
| uint8_t | syn_nmea_checksum (const char * sentence) Calculate XOR checksum of an NMEA sentence payload (between '$' and '*'). |
| SYN_NMEA_SentenceType | syn_nmea_get_type (const char * sentence) Identify sentence type from NMEA string. |
| double | syn_nmea_parse_coord (const char * nmea_coord, char dir) Parse NMEA DDMM.MMMM coordinate string and direction indicator. |
| bool | syn_nmea_parse_gga (const char * sentence, SYN_NMEA_GGA * gga) Parse a $GPGGA / $GNGGA sentence. |
| bool | syn_nmea_parse_gsa (const char * sentence, SYN_NMEA_GSA * gsa) Parse a $GPGSA / $GNGSA sentence. |
| bool | syn_nmea_parse_rmc (const char * sentence, SYN_NMEA_RMC * rmc) Parse a $GPRMC / $GNRMC sentence. |
| bool | syn_nmea_parse_vtg (const char * sentence, SYN_NMEA_VTG * vtg) Parse a $GPVTG / $GNVTG sentence. |
| bool | syn_nmea_parse_zda (const char * sentence, SYN_NMEA_ZDA * zda) Parse a $GPZDA / $GNZDA sentence. |
| bool | syn_nmea_parser_feed (SYN_NMEA_Parser * parser, char byte, char * out_sentence) Feed a byte into the NMEA streaming parser. |
| void | syn_nmea_parser_init (SYN_NMEA_Parser * parser) Initialize an NMEA streaming parser. |
| bool | syn_nmea_validate (const char * sentence) Validate an NMEA sentence string (checks start '$', '*XX' checksum, and CRLF). |
Macros¶
| Type | Name |
|---|---|
| define | SYN_NMEA_MAX_SENTENCE_LEN 82 |
Detailed Description¶
Provides a zero-allocation, streaming byte-at-a-time NMEA 0183 parser, sentence checksum verification, and structured data decoders for standard GNSS sentences: * GGA: Global Positioning System Fix Data * RMC: Recommended Minimum Specific GNSS Data * VTG: Course Over Ground & Ground Speed * GSA: GNSS DOP & Active Satellites * ZDA: UTC Time & Date
Public Types Documentation¶
enum SYN_NMEA_FixQuality¶
GPS Fix Quality Enum (from GGA)
enum SYN_NMEA_FixQuality {
SYN_NMEA_FIX_INVALID = 0,
SYN_NMEA_FIX_GPS = 1,
SYN_NMEA_FIX_DGPS = 2,
SYN_NMEA_FIX_PPS = 3,
SYN_NMEA_FIX_RTK = 4,
SYN_NMEA_FIX_FLOAT_RTK = 5,
SYN_NMEA_FIX_ESTIMATED = 6
};
enum SYN_NMEA_SentenceType¶
NMEA Sentence Type Enum.
enum SYN_NMEA_SentenceType {
SYN_NMEA_SENTENCE_UNKNOWN = 0,
SYN_NMEA_SENTENCE_GGA,
SYN_NMEA_SENTENCE_RMC,
SYN_NMEA_SENTENCE_VTG,
SYN_NMEA_SENTENCE_GSA,
SYN_NMEA_SENTENCE_ZDA
};
Public Functions Documentation¶
function syn_nmea_checksum¶
Calculate XOR checksum of an NMEA sentence payload (between '$' and '*').
Parameters:
sentenceNMEA sentence string.
Returns:
8-bit XOR checksum value.
function syn_nmea_get_type¶
Identify sentence type from NMEA string.
Parameters:
sentenceNMEA sentence string.
Returns:
SYN_NMEA_SentenceType enum.
function syn_nmea_parse_coord¶
Parse NMEA DDMM.MMMM coordinate string and direction indicator.
Parameters:
nmea_coordCoordinate string (e.g. "4807.038").dirDirection char ('N', 'S', 'E', 'W').
Returns:
Decimal degrees (+N/+E, -S/-W).
function syn_nmea_parse_gga¶
Parse a $GPGGA / $GNGGA sentence.
Parameters:
sentenceNMEA sentence string.ggaPointer to destination GGA struct.
Returns:
true on success.
function syn_nmea_parse_gsa¶
Parse a $GPGSA / $GNGSA sentence.
Parameters:
sentenceNMEA sentence string.gsaPointer to destination GSA struct.
Returns:
true on success.
function syn_nmea_parse_rmc¶
Parse a $GPRMC / $GNRMC sentence.
Parameters:
sentenceNMEA sentence string.rmcPointer to destination RMC struct.
Returns:
true on success.
function syn_nmea_parse_vtg¶
Parse a $GPVTG / $GNVTG sentence.
Parameters:
sentenceNMEA sentence string.vtgPointer to destination VTG struct.
Returns:
true on success.
function syn_nmea_parse_zda¶
Parse a $GPZDA / $GNZDA sentence.
Parameters:
sentenceNMEA sentence string.zdaPointer to destination ZDA struct.
Returns:
true on success.
function syn_nmea_parser_feed¶
Feed a byte into the NMEA streaming parser.
Parameters:
parserPointer to parser instance.byteReceived character.out_sentenceOutput buffer for completed NMEA sentence string (if returns true).
Returns:
true if a complete, valid NMEA sentence was received.
function syn_nmea_parser_init¶
Initialize an NMEA streaming parser.
Parameters:
parserPointer to parser state machine.
function syn_nmea_validate¶
Validate an NMEA sentence string (checks start '$', '*XX' checksum, and CRLF).
Parameters:
sentenceNMEA sentence string.
Returns:
true if valid sentence and matching checksum.
Macro Definition Documentation¶
define SYN_NMEA_MAX_SENTENCE_LEN¶
Max NMEA 0183 sentence length
The documentation for this class was generated from the following file src/syntropic/proto/syn_nmea.h