Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependents: Xadow_MPU9150AHRS Hexi_GPSIMU_Hotshoe
Fork of MBed_Adafruit-GPS-Library by
Diff: MBed_Adafruit_GPS.h
- Revision:
- 0:a23e3099bb0a
- Child:
- 1:857102793de1
diff -r 000000000000 -r a23e3099bb0a MBed_Adafruit_GPS.h
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/MBed_Adafruit_GPS.h Sat Mar 22 05:00:47 2014 +0000
@@ -0,0 +1,115 @@
+/***********************************
+This is the Adafruit GPS library - the ultimate GPS library
+for the ultimate GPS module!
+
+Tested and works great with the Adafruit Ultimate GPS module
+using MTK33x9 chipset
+ ------> http://www.adafruit.com/products/746
+Pick one up today at the Adafruit electronics shop
+and help support open source hardware & software! -ada
+
+Adafruit invests time and resources providing this open source code,
+please support Adafruit and open-source hardware by purchasing
+products from Adafruit!
+
+Written by Limor Fried/Ladyada for Adafruit Industries.
+BSD license, check license.txt for more information
+All text above must be included in any redistribution
+****************************************/
+#include "mbed.h"
+#include <stdint.h>
+#include <math.h>
+#include <ctype.h>
+
+#ifndef _MBED_ADAFRUIT_GPS_H
+#define _MBED_ADAFRUIT_GPS_H
+
+
+// different commands to set the update rate from once a second (1 Hz) to 10 times a second (10Hz)
+#define PMTK_SET_NMEA_UPDATE_1HZ "$PMTK220,1000*1F"
+#define PMTK_SET_NMEA_UPDATE_5HZ "$PMTK220,200*2C"
+#define PMTK_SET_NMEA_UPDATE_10HZ "$PMTK220,100*2F"
+
+
+#define PMTK_SET_BAUD_57600 "$PMTK251,57600*2C"
+#define PMTK_SET_BAUD_9600 "$PMTK251,9600*17"
+
+// turn on only the second sentence (GPRMC)
+#define PMTK_SET_NMEA_OUTPUT_RMCONLY "$PMTK314,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0*29"
+// turn on GPRMC and GGA
+#define PMTK_SET_NMEA_OUTPUT_RMCGGA "$PMTK314,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0*28"
+// turn on ALL THE DATA
+#define PMTK_SET_NMEA_OUTPUT_ALLDATA "$PMTK314,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0*28"
+// turn off output
+#define PMTK_SET_NMEA_OUTPUT_OFF "$PMTK314,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0*28"
+
+// to generate your own sentences, check out the MTK command datasheet and use a checksum calculator
+// such as the awesome http://www.hhhh.org/wiml/proj/nmeaxor.html
+
+#define PMTK_LOCUS_STARTLOG "$PMTK185,0*22"
+#define PMTK_LOCUS_LOGSTARTED "$PMTK001,185,3*3C"
+#define PMTK_LOCUS_QUERY_STATUS "$PMTK183*38"
+#define PMTK_LOCUS_ERASE_FLASH "$PMTK184,1*22"
+#define LOCUS_OVERLAP 0
+#define LOCUS_FULLSTOP 1
+
+// standby command & boot successful message
+#define PMTK_STANDBY "$PMTK161,0*28"
+#define PMTK_STANDBY_SUCCESS "$PMTK001,161,3*36" // Not needed currently
+#define PMTK_AWAKE "$PMTK010,002*2D"
+
+// ask for the release and version
+#define PMTK_Q_RELEASE "$PMTK605*31"
+
+// request for updates on antenna status
+#define PGCMD_ANTENNA "$PGCMD,33,1*6C"
+#define PGCMD_NOANTENNA "$PGCMD,33,0*6D"
+
+// how long to wait when we're looking for a response
+#define MAXWAITSENTENCE 5
+
+
+
+class Adafruit_GPS {
+ public:
+ void begin(int baud);
+
+ Adafruit_GPS(Serial * ser);
+
+ char *lastNMEA(void);
+ bool newNMEAreceived();
+ void common_init(void);
+ void sendCommand(char *);
+ void pause(bool b);
+
+ bool parseNMEA(char *response);
+ uint8_t parseHex(char c);
+
+ char read(void);
+ bool parse(char * nmea);
+ void interruptReads(bool r);
+
+ bool wakeup(void);
+ bool standby(void);
+
+ uint8_t hour, minute, seconds, year, month, day;
+ uint16_t milliseconds;
+ float latitude, longitude, geoidheight, altitude;
+ float speed, angle, magvariation, HDOP;
+ char lat, lon, mag;
+ bool fix;
+ uint8_t fixquality, satellites;
+
+ bool waitForSentence(char *wait, uint8_t max = MAXWAITSENTENCE);
+ bool LOCUS_StartLogger(void);
+ bool LOCUS_ReadStatus(void);
+
+ uint16_t LOCUS_serial, LOCUS_records;
+ uint8_t LOCUS_type, LOCUS_mode, LOCUS_config, LOCUS_interval, LOCUS_distance, LOCUS_speed, LOCUS_status, LOCUS_percent;
+ private:
+ bool paused;
+
+ Serial * gpsSerial;
+};
+
+#endif
\ No newline at end of file
