/* * 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 nmea_parser_code2info(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); }; class nmeaGPALMParser:nmeaParser { void nmea_parser_code2info(nmeaCode* code, nmeaInfo* info); }; //codigos NMEA que se pueden enviar al receptor GPS GARMIN class nmeaPGRMIParser:nmeaParser { void nmea_parser_code2info(nmeaCode* code, nmeaInfo* info); }; class nmeaPGRMCParser:nmeaParser { void nmea_parser_code2info(nmeaCode* code, nmeaInfo* info); }; class nmeaPGRMC1Parser:nmeaParser { void nmea_parser_code2info(nmeaCode* code, nmeaInfo* info); }; class nmeaPGRMOParser:nmeaParser { void nmea_parser_code2info(nmeaCode* code, nmeaInfo* info); }; //Codigos NMEA que puede transmitir el receptor GNSS class nmeaGPGGAParser:nmeaParser { void nmea_parser_code2info(nmeaCode* code, nmeaInfo* info); }; class nmeaGPGSAParser:nmeaParser { void nmea_parser_code2info(nmeaCode* code, nmeaInfo* info); }; class nmeaGPGSVParser:nmeaParser { void nmea_parser_code2info(nmeaCode* code, nmeaInfo* info); }; class nmeaGPRMCParser:nmeaParser { void nmea_parser_code2info(nmeaCode* code, nmeaInfo* info); }; class nmeaGPVTGParser:nmeaParser { void nmea_parser_code2info(nmeaCode* code, nmeaInfo* info); }; class nmeaGPGLLParser:nmeaParser { void nmea_parser_code2info(nmeaCode* code, nmeaInfo* info); }; //codigos de propiedad de GARMIN class nmeaPGRMEParser:nmeaParser { void nmea_parser_code2info(nmeaCode* code, nmeaInfo* info); }; class nmeaPGRMFParser:nmeaParser { void nmea_parser_code2info(nmeaCode* code, nmeaInfo* info); }; class nmeaPGRMMParser:nmeaParser { void nmea_parser_code2info(nmeaCode* code, nmeaInfo* info); }; class nmeaPGRMTParser:nmeaParser { void nmea_parser_code2info(nmeaCode* code, nmeaInfo* info); }; class nmeaPGRMVParser:nmeaParser { void nmea_parser_code2info(nmeaCode* code, nmeaInfo* info); }; class nmeaPGRMBParser:nmeaParser { void nmea_parser_code2info(nmeaCode* code, nmeaInfo* info); }; #endif /* NMEALIB_NMEALIB___NMEAPARSER_H_ */