TwiceAsNice  2019-02-18
Macros | Functions
minmea.c File Reference
#include "minmea.h"
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
#include <stdarg.h>
#include <time.h>
Include dependency graph for minmea.c:

Macros

#define boolstr(s)   ((s) ? "true" : "false")
 
#define next_field()
 

Functions

static int hex2int (char c)
 
uint8_t minmea_checksum (const char *sentence)
 Calculate raw sentence checksum. More...
 
bool minmea_check (const char *sentence, bool strict)
 Check sentence validity and checksum. More...
 
static bool minmea_isfield (char c)
 
bool minmea_scan (const char *sentence, const char *format,...)
 Scanf-like processor for NMEA sentences. More...
 
bool minmea_talker_id (char talker[3], const char *sentence)
 Determine talker identifier. More...
 
enum minmea_sentence_id minmea_sentence_id (const char *sentence, bool strict)
 Determine sentence identifier. More...
 
bool minmea_parse_rmc (struct minmea_sentence_rmc *frame, const char *sentence)
 
bool minmea_parse_gga (struct minmea_sentence_gga *frame, const char *sentence)
 
bool minmea_parse_gsa (struct minmea_sentence_gsa *frame, const char *sentence)
 
bool minmea_parse_gll (struct minmea_sentence_gll *frame, const char *sentence)
 
bool minmea_parse_gst (struct minmea_sentence_gst *frame, const char *sentence)
 
bool minmea_parse_gsv (struct minmea_sentence_gsv *frame, const char *sentence)
 
bool minmea_parse_vtg (struct minmea_sentence_vtg *frame, const char *sentence)
 
bool minmea_parse_zda (struct minmea_sentence_zda *frame, const char *sentence)
 
int minmea_gettime (struct timespec *ts, const struct minmea_date *date, const struct minmea_time *time_)
 Convert GPS UTC date/time representation to a UNIX timestamp. More...
 

Macro Definition Documentation

◆ boolstr

#define boolstr (   s)    ((s) ? "true" : "false")

◆ next_field

#define next_field ( )
Value:
do { \
/* Progress to the next field. */ \
while (minmea_isfield(*sentence)) \
sentence++; \
/* Make sure there is a field there. */ \
if (*sentence == ',') { \
sentence++; \
field = sentence; \
} else { \
field = NULL; \
} \
} while (0)
#define NULL
Definition: PciTypes.h:160
static bool minmea_isfield(char c)
Definition: minmea.c:88

Function Documentation

◆ hex2int()

static int hex2int ( char  c)
static

◆ minmea_check()

bool minmea_check ( const char *  sentence,
bool  strict 
)

Check sentence validity and checksum.

Returns true for valid sentences.

◆ minmea_checksum()

uint8_t minmea_checksum ( const char *  sentence)

Calculate raw sentence checksum.

Does not check sentence integrity.

◆ minmea_gettime()

int minmea_gettime ( struct timespec *  ts,
const struct minmea_date date,
const struct minmea_time time_ 
)

Convert GPS UTC date/time representation to a UNIX timestamp.

◆ minmea_isfield()

static bool minmea_isfield ( char  c)
inlinestatic

◆ minmea_parse_gga()

bool minmea_parse_gga ( struct minmea_sentence_gga frame,
const char *  sentence 
)

◆ minmea_parse_gll()

bool minmea_parse_gll ( struct minmea_sentence_gll frame,
const char *  sentence 
)

◆ minmea_parse_gsa()

bool minmea_parse_gsa ( struct minmea_sentence_gsa frame,
const char *  sentence 
)

◆ minmea_parse_gst()

bool minmea_parse_gst ( struct minmea_sentence_gst frame,
const char *  sentence 
)

◆ minmea_parse_gsv()

bool minmea_parse_gsv ( struct minmea_sentence_gsv frame,
const char *  sentence 
)

◆ minmea_parse_rmc()

bool minmea_parse_rmc ( struct minmea_sentence_rmc frame,
const char *  sentence 
)

◆ minmea_parse_vtg()

bool minmea_parse_vtg ( struct minmea_sentence_vtg frame,
const char *  sentence 
)

◆ minmea_parse_zda()

bool minmea_parse_zda ( struct minmea_sentence_zda frame,
const char *  sentence 
)

◆ minmea_scan()

bool minmea_scan ( const char *  sentence,
const char *  format,
  ... 
)

Scanf-like processor for NMEA sentences.

Supports the following formats: c - single character (char *) d - direction, returned as 1/-1, default 0 (int *) f - fractional, returned as value + scale (int *, int *) i - decimal, default zero (int *) s - string (char *) t - talker identifier and type (char *) T - date/time stamp (int *, int *, int *) Returns true on success. See library source code for details.

◆ minmea_sentence_id()

enum minmea_sentence_id minmea_sentence_id ( const char *  sentence,
bool  strict 
)

Determine sentence identifier.

◆ minmea_talker_id()

bool minmea_talker_id ( char  talker[3],
const char *  sentence 
)

Determine talker identifier.