aboutsummaryrefslogtreecommitdiff
path: root/GEOLOC/lib/gps.h
blob: 49dbdd6aff0d3c42aaa3fcfa408c2e6450f964e6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
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