Files
Cnomicon/include/libgps++/UbloxParser.h
2021-01-22 10:16:20 -05:00

112 lines
2.3 KiB
C++

//
// Linux GPS
//
/* prevent multiple inclusions */
#ifndef __UbloxParser__
#define __UbloxParser__
/* includes *****************************************************************/
#include <vector>
#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