diff options
Diffstat (limited to 'apps/gps/nmealib/nmea/parser.h')
-rw-r--r-- | apps/gps/nmealib/nmea/parser.h | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/apps/gps/nmealib/nmea/parser.h b/apps/gps/nmealib/nmea/parser.h new file mode 100644 index 000000000..51a3fab7f --- /dev/null +++ b/apps/gps/nmealib/nmea/parser.h @@ -0,0 +1,59 @@ +/* + * + * NMEA library + * URL: http://nmea.sourceforge.net + * Author: Tim (xtimor@gmail.com) + * Licence: http://www.gnu.org/licenses/lgpl.html + * $Id: parser.h 4 2007-08-27 13:11:03Z xtimor $ + * + */ + +#ifndef __NMEA_PARSER_H__ +#define __NMEA_PARSER_H__ + +#include "info.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* + * high level + */ + +typedef struct _nmeaPARSER +{ + void *top_node; + void *end_node; + unsigned char *buffer; + int buff_size; + int buff_use; + +} nmeaPARSER; + +int nmea_parser_init(nmeaPARSER *parser); +void nmea_parser_destroy(nmeaPARSER *parser); + +int nmea_parse( + nmeaPARSER *parser, + const char *buff, int buff_sz, + nmeaINFO *info + ); + +/* + * low level + */ + +int nmea_parser_push(nmeaPARSER *parser, const char *buff, int buff_sz); +int nmea_parser_top(nmeaPARSER *parser); +int nmea_parser_pop(nmeaPARSER *parser, void **pack_ptr); +int nmea_parser_peek(nmeaPARSER *parser, void **pack_ptr); +int nmea_parser_drop(nmeaPARSER *parser); +int nmea_parser_buff_clear(nmeaPARSER *parser); +int nmea_parser_queue_clear(nmeaPARSER *parser); + +#ifdef __cplusplus +} +#endif + +#endif /* __NMEA_PARSER_H__ */ |