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 lib_gps by
Diff: gps.h
- Revision:
- 0:0bd73064b7f6
- Child:
- 1:2f5fbb33ae8b
diff -r 000000000000 -r 0bd73064b7f6 gps.h
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/gps.h Wed Mar 18 00:55:27 2015 +0000
@@ -0,0 +1,66 @@
+
+/*!
+ * Generic definition
+ */
+#ifndef SUCCESS
+#define SUCCESS 1
+#endif
+
+#ifndef FAIL
+#define FAIL 0
+#endif
+
+#define NUM_RX_BUFS 6
+#define RX_BUF_SIZE 96
+
+/* Structure to handle the GPS parsed data in ASCII */
+typedef struct
+{
+ char NmeaDataType[6];
+ char NmeaUtcTime[11];
+ char NmeaDataStatus[2];
+ char NmeaLatitude[10];
+ char NmeaLatitudePole[2];
+ char NmeaLongitude[11];
+ char NmeaLongitudePole[2];
+ char NmeaFixQuality[2];
+ char NmeaSatelliteTracked[3];
+ char NmeaHorizontalDilution[6];
+ char NmeaAltitude[8];
+ char NmeaAltitudeUnit[2];
+ char NmeaHeightGeoid[8];
+ char NmeaHeightGeoidUnit[2];
+ char NmeaSpeed[8];
+ char NmeaDetectionAngle[8];
+ char NmeaDate[8];
+}tNmeaGpsData;
+
+class GPS {
+ public:
+ GPS();
+ ~GPS();
+ void enable(bool);
+ bool enabled(void);
+ void service(void);
+ void init(void);
+
+ double Latitude, Longitude;
+ char verbose; // flag
+ tNmeaGpsData NmeaGpsData;
+ int32_t LatitudeBinary, LongitudeBinary;
+
+ private:
+ int ParseGPSData(int idx);
+ bool NmeaValidateChecksum(int idx);
+ int NmeaChecksum( char *nmeaStr, uint8_t nmeaStrSize, char * checksum );
+ void on_uart_rx(void);
+ uint8_t rx_buf_lens[NUM_RX_BUFS];
+ uint8_t rx_bufs_in_idx;
+ uint8_t rx_bufs_out_idx;
+ char rx_bufs[NUM_RX_BUFS][RX_BUF_SIZE];
+ void ConvertPositionFromStringToNumerical( );
+ void ConvertPositionIntoBinary( );
+ void pps(void);
+ bool pps_occurred;
+};
+
