// // Linux GPS // /* prevent multiple inclusions */ #ifndef __UbloxParser__ #define __UbloxParser__ /* includes *****************************************************************/ #include #include "netlib.h" #include "GpsListener.h" #include "GpsParser.h" #include "NmeaParser.h" #include "NmeaProtocol.h" /* defines ******************************************************************/ /* macros *******************************************************************/ /* structs & typedefs *******************************************************/ /* c class definitions ******************************************************/ class NmeaSentencePUBX : public NmeaSentence { public: int id; timespec utctime; // 00 double latitude; double longitude; double altitude_ref; char navstat[4]; double horizontal_accuracy; double vertical_accuracy; double speed; double course; double vvel; double agec; double horizontal_dilution; double vertical_dilution; double time_dilution; int gps; int glonass; int dead_reckoning; // 01 // 03 int satellites; struct { int prn; char status; double azimuth; double elevation; int signal2noise; int locktime; } satellite[NMEA_MAX_SATELLITE]; // 04 double utc_tow; int week; int clk_b; double clk_d; int granularity; NmeaSentencePUBX(); ~NmeaSentencePUBX(); int Decode( int argc, char *argv[] ); void Update( GpsPoint &PosData, ErrorInfo &ErrInfo, SatelliteInfo &SatInfo ); }; class UbloxParser : public NmeaParser { // public data public: // protected data protected: // u-Blox NmeaSentencePUBX PUBX; // private data private: // data u_char state; // parser state // private methods // public methods public: // constructors UbloxParser(); // destructor virtual ~UbloxParser(); // virtual functions int GpsDecode( const char *buf, int max ) { return UbloxDecode( (const u_char *)buf, max); }; int GpsParse( const char *buf, int max ) { return UbloxParse( buf, max ); }; // public methods int UbloxDecode( const u_char *buf, int max ); int UbloxParse( const char *buf, int max ); }; #endif