aboutsummaryrefslogtreecommitdiff
path: root/apps/gps/nmealib/nmea/parser.h
diff options
context:
space:
mode:
Diffstat (limited to 'apps/gps/nmealib/nmea/parser.h')
-rw-r--r--apps/gps/nmealib/nmea/parser.h59
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__ */