A basic library for the Adafruit Ultimate GPS module. (MTK3339) http://www.adafruit.com/products/746

Dependents:   GPS-GPRS_Tracker Plan13

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers GPS.h Source File

GPS.h

00001 /******************************************************
00002 * A basic mbed library for the Adafruit ultimate      *
00003 * GPS module NOTE: the LOCUS functions are yet to be  *
00004 * implemented                                         *
00005 *                                                     *
00006 *                              Written by: Sam Clarke *
00007 ******************************************************/
00008 
00009 #include "mbed.h"
00010 #include <string>
00011 
00012 #ifndef GPS_H
00013 #define GPS_H
00014 
00015 // EXAMPLE OUTPUTS
00016 //
00017 // $GPRMC,064951.000,A,2307.1256,N,12016.4438,E,0.03,165.48,260406,3.05,W,A*2C
00018 // $GPRMC, time, status, latitude, N/S, longitude, E/W, speed(knots), heading, date, N/A, N/A, MODE*CHECKSUM
00019 //
00020 // $GPGGA,064951.000,2307.1256,N,12016.4438,E,1,8,0.95,39.9,M,17.8,M,,*65
00021 // $GPGGA, time, latitude, N/S, longitude, E/W, fix, satellites, hdop, altitude, M, geoidal sep , M,,*CHECKSUM
00022 // $GPGGA, %f, %*f, %*c, %*f, %*c, %d, %d, %*f, %*f, %*c, %*f , %*c,,%*c%*c%*c0
00023 
00024 class GPS
00025 {
00026 public:
00027 
00028     GPS(PinName tx, PinName rx);
00029     void Init();
00030     int parseData();
00031     float time;         // UTC time
00032     int hours;
00033     int minutes;
00034     float seconds;
00035     char validity,ns,ew;// RMC data status A = Data Valid; V = Data Not valid;
00036     float latitude;     //
00037     float longitude;    //
00038     float speed;        // speed in knots
00039     float heading;      // heading in degrees derived from previous & current location
00040     string date;           //
00041     int day;
00042     int month;
00043     int year;
00044     int fixtype;        // 0 = no fix;  1 = fix;  2=differential fix
00045     int satellites;     // number of satellites used
00046     float altitude;     //
00047     string fix; 
00048     string cardinal;
00049     float kph;
00050 
00051 private:
00052 
00053     float trunc ( float v);
00054     void getData();
00055     Serial _UltimateGps;
00056     char NEMA[256];
00057 };
00058 #endif
00059 
00060 /*
00061 #define 1HZ_STREAM  "$PMTK220,1000*1F\r\n"  // 1.0 second interval
00062 #define 5HZ_STREAM  "$PMTK220,200*2C\r\n"   // 0.2 second interval
00063 #define 10HZ_STREAM "$PMTK220,100*2F\r\n"   // 0.1 second interval
00064 
00065 #define OUTPUT_RMC    "$PMTK314,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0*29\r\n"
00066 #define OUTPUT_RMCGGA "$PMTK314,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0*28\r\n"
00067 #define OUTPUT_OFF    "$PMTK314,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0*28\r\n"
00068 */