/* * nmeaParser.h * * Created on: Oct 21, 2014 * Author: Alan Aguilar Sologuren */ #ifndef NMEALIB_NMEALIB___NMEAPARSER_H_ #define NMEALIB_NMEALIB___NMEAPARSER_H_ typedef struct _nmeaParserNODE { nmeaCode* pack; struct _nmeaParserNODE *next_node; } nmeaParserNODE; class nmeaParser { public: nmeaParser(); virtual ~nmeaParser(); int nmea_find_tail(const char *buff, int buff_sz, int *res_crc) int nmea_parse( const char *buff, int buff_sz, nmeaInfo *info ); int nmea_parser_push(const char *buff, int buff_sz); int nmea_parser_top(void); int nmea_parser_pop(nmeaCode **pack_ptr); int nmea_parser_peek(nmeaCode **pack_ptr); int nmea_parser_drop(void); int nmea_parser_buff_clear(void); int nmea_parser_queue_clear(void); virtual void code_2info(nmeaCode* code, nmeaInfo* info); private: void *top_node; void *end_node; unsigned char *buffer; int buff_size; int buff_use; int nmea_parser_real_push(const char *buff, int buff_sz); }; #endif /* NMEALIB_NMEALIB___NMEAPARSER_H_ */