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.
Fork of GPS by
GPS_parser.h
- Committer:
- tylerjw
- Date:
- 2012-12-12
- Revision:
- 6:4ed12067a314
- Parent:
- 5:94daced1e61a
- Child:
- 7:01a8379370e4
File content as of revision 6:4ed12067a314:
#include "mbed.h" #ifndef MBED_GPS_PARSER_H #define MBED_GPS_PARSER_H #define NO_LOCK 1 #define NOT_PARSED 2 #define GGA 3 #define GLL 4 #define RMC 5 #define VTG 6 #define PI (3.141592653589793) /** A GPS_parser interface for reading from a Globalsat EM-406 GPS Module */ class GPS_Parser { public: GPS_Parser(); /** Sample the incoming GPS data, returning whether there is a lock * * @return 1 if there was a lock when the sample was taken (and therefore .longitude and .latitude are valid), else 0 */ int sample(char *); int get_lock() { return lock; } int get_date() { return date; } float get_time() { return utc_time; } float get_nmea_longitude(); float get_nmea_latitude(); float get_dec_longitude(); float get_dec_latitude(); float get_msl_altitude(); float get_course_t(); float get_course_m(); float get_speed_k(); float get_speed_km(); int get_satelites(); float get_altitude_ft(); // navigational functions float calc_course_to(float, float); double calc_dist_to_mi(float, float); double calc_dist_to_ft(float, float); double calc_dist_to_km(float, float); double calc_dist_to_m(float, float); private: float nmea_to_dec(float, char); float trunc(float v); // calculated values volatile float dec_longitude; volatile float dec_latitude; volatile float altitude_ft; // GGA - Global Positioning System Fixed Data volatile float nmea_longitude; volatile float nmea_latitude; volatile float utc_time; volatile char ns, ew; volatile int lock; volatile int satelites; volatile float hdop; volatile float msl_altitude; volatile char msl_units; // RMC - Recommended Minimmum Specific GNS Data volatile char rmc_status; volatile float speed_k; volatile float course_d; volatile int date; // GLL volatile char gll_status; // VTG - Course over ground, ground speed volatile float course_t; // ground speed true volatile char course_t_unit; volatile float course_m; // magnetic volatile char course_m_unit; volatile char speed_k_unit; volatile float speed_km; // speek km/hr volatile char speed_km_unit; }; #endif