A porting of a GPS decoding and presenting program within the mbos RTOS. It is not a definitive application but a study program to test NMEA full decoding library and a first approach to an RTOS. Many thanks to Andrew Levido for his support and his patience on teaching me the RTOS principles from the other side of the Earth. It uses NMEA library by Tim (xtimor@gmail.com) ported by Ken Todotani (http://mbed.org/users/todotani/) on public mbed library (http://mbed.org/users/todotani/programs/GPS_nmeaLib/5yo4h) also available, as original universal C library, on http://nmea.sourceforge.net

Dependencies:   mbos Watchdog TextLCD mbed ConfigFile

Committer:
guiott
Date:
Fri Feb 03 16:29:52 2012 +0000
Revision:
3:a2f9eb3b8a16
Parent:
0:d177c0087d1f

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
guiott 0:d177c0087d1f 1 /*
guiott 0:d177c0087d1f 2 *
guiott 0:d177c0087d1f 3 * NMEA library
guiott 0:d177c0087d1f 4 * URL: http://nmea.sourceforge.net
guiott 0:d177c0087d1f 5 * Author: Tim (xtimor@gmail.com)
guiott 0:d177c0087d1f 6 * Licence: http://www.gnu.org/licenses/lgpl.html
guiott 0:d177c0087d1f 7 * $Id: parser.h 4 2007-08-27 13:11:03Z xtimor $
guiott 0:d177c0087d1f 8 *
guiott 0:d177c0087d1f 9 */
guiott 0:d177c0087d1f 10
guiott 0:d177c0087d1f 11 #ifndef __NMEA_PARSER_H__
guiott 0:d177c0087d1f 12 #define __NMEA_PARSER_H__
guiott 0:d177c0087d1f 13
guiott 0:d177c0087d1f 14 #include "info.h"
guiott 0:d177c0087d1f 15
guiott 0:d177c0087d1f 16 #ifdef __cplusplus
guiott 0:d177c0087d1f 17 extern "C" {
guiott 0:d177c0087d1f 18 #endif
guiott 0:d177c0087d1f 19
guiott 0:d177c0087d1f 20 /*
guiott 0:d177c0087d1f 21 * high level
guiott 0:d177c0087d1f 22 */
guiott 0:d177c0087d1f 23
guiott 0:d177c0087d1f 24 typedef struct _nmeaPARSER
guiott 0:d177c0087d1f 25 {
guiott 0:d177c0087d1f 26 void *top_node;
guiott 0:d177c0087d1f 27 void *end_node;
guiott 0:d177c0087d1f 28 unsigned char *buffer;
guiott 0:d177c0087d1f 29 int buff_size;
guiott 0:d177c0087d1f 30 int buff_use;
guiott 0:d177c0087d1f 31
guiott 0:d177c0087d1f 32 } nmeaPARSER;
guiott 0:d177c0087d1f 33
guiott 0:d177c0087d1f 34 int nmea_parser_init(nmeaPARSER *parser);
guiott 0:d177c0087d1f 35 void nmea_parser_destroy(nmeaPARSER *parser);
guiott 0:d177c0087d1f 36
guiott 0:d177c0087d1f 37 int nmea_parse(
guiott 0:d177c0087d1f 38 nmeaPARSER *parser,
guiott 0:d177c0087d1f 39 const char *buff, int buff_sz,
guiott 0:d177c0087d1f 40 nmeaINFO *info
guiott 0:d177c0087d1f 41 );
guiott 0:d177c0087d1f 42
guiott 0:d177c0087d1f 43 /*
guiott 0:d177c0087d1f 44 * low level
guiott 0:d177c0087d1f 45 */
guiott 0:d177c0087d1f 46
guiott 0:d177c0087d1f 47 int nmea_parser_push(nmeaPARSER *parser, const char *buff, int buff_sz);
guiott 0:d177c0087d1f 48 int nmea_parser_top(nmeaPARSER *parser);
guiott 0:d177c0087d1f 49 int nmea_parser_pop(nmeaPARSER *parser, void **pack_ptr);
guiott 0:d177c0087d1f 50 int nmea_parser_peek(nmeaPARSER *parser, void **pack_ptr);
guiott 0:d177c0087d1f 51 int nmea_parser_drop(nmeaPARSER *parser);
guiott 0:d177c0087d1f 52 int nmea_parser_buff_clear(nmeaPARSER *parser);
guiott 0:d177c0087d1f 53 int nmea_parser_queue_clear(nmeaPARSER *parser);
guiott 0:d177c0087d1f 54
guiott 0:d177c0087d1f 55 #ifdef __cplusplus
guiott 0:d177c0087d1f 56 }
guiott 0:d177c0087d1f 57 #endif
guiott 0:d177c0087d1f 58
guiott 0:d177c0087d1f 59 #endif /* __NMEA_PARSER_H__ */