aboutsummaryrefslogtreecommitdiff
path: root/GEOLOC/lib/gps.h
diff options
context:
space:
mode:
Diffstat (limited to 'GEOLOC/lib/gps.h')
-rw-r--r--GEOLOC/lib/gps.h53
1 files changed, 53 insertions, 0 deletions
diff --git a/GEOLOC/lib/gps.h b/GEOLOC/lib/gps.h
new file mode 100644
index 0000000..49dbdd6
--- /dev/null
+++ b/GEOLOC/lib/gps.h
@@ -0,0 +1,53 @@
+#ifndef gps_h
+#define gps_h
+
+/**
+ * Define NMEA frame types
+ */
+typedef enum NMEA_TYPE NMEA_TYPE;
+enum NMEA_TYPE { GGA=125,NONE }; // TODO : other frame type
+
+/**
+ * Define compass N,S,E,W
+ */
+typedef enum COMPASS COMPASS;
+enum COMPASS { NORTH=78, SOUTH=83, EAST=69, WEST=87};
+
+/**
+ * Define GPS state
+ */
+typedef enum GPS_STATE GPS_STATE;
+enum GPS_STATE { FIXED_GPS=1, FIXED_DGPS=2, UNFIXED=0};
+
+/**
+ * Define NMEA GGA FRAME
+ */
+struct NMEA_GGA {
+ short hour;
+ short min;
+ short sec;
+ short ms;
+
+ short latDeg;
+ short latMin;
+ float latSec;
+ COMPASS latDir;
+
+ short lonDeg;
+ short lonMin;
+ float lonSec;
+ COMPASS lonDir;
+
+ short sats;
+ GPS_STATE state;
+
+ // TODO : Finish Frame
+
+};
+
+/**
+ * Fetch the last NMEA_GGA frame
+ */
+struct NMEA_GGA getNMEA_GGAFrame();
+
+#endif