00001 #ifndef GPS_NMEA_h 00002 #define GPS_NMEA_h 00003 00004 #include <inttypes.h> 00005 00006 #define GPS_BUFFERSIZE 120 00007 00008 class GPS_NMEA_Class 00009 { 00010 private: 00011 // Internal variables 00012 uint8_t GPS_checksum; 00013 uint8_t GPS_checksum_calc; 00014 char buffer[GPS_BUFFERSIZE]; 00015 int bufferidx; 00016 00017 void parse_nmea_gps(void); 00018 uint8_t parseHex(char c); 00019 long parsedecimal(char *str,uint8_t num_car); 00020 long parsenumber(char *str,uint8_t numdec); 00021 00022 public: 00023 // Methods 00024 GPS_NMEA_Class(); 00025 void Init(); 00026 void Read(); 00027 // Properties 00028 long Time; //GPS Millisecond Time of Week 00029 long Lattitude; // Geographic coordinates 00030 long Longitude; 00031 long Altitude; 00032 long Ground_Speed; 00033 long Speed_3d; //Speed (3-D) 00034 long Ground_Course; 00035 uint8_t Type; // Type of GPS (library used) 00036 uint8_t NumSats; // Number of visible satelites 00037 uint8_t Fix; // >=1:GPS FIX 0:No FIX (normal logic) 00038 uint8_t Quality; // GPS Signal quality 00039 uint8_t NewData; // 1:New GPS Data 00040 uint8_t PrintErrors; // 1: To Print GPS Errors (for debug) 00041 int HDOP; // HDOP 00042 }; 00043 00044 extern GPS_NMEA_Class GPS; 00045 00046 #endif