/* GPS header file */
/* Steven J. Merrifield July 2005 */

//#define COMMS_PORT	"/dev/ttyUSB0"	// serial port descriptor
#define COMMS_PORT	"/dev/ttyS0"	// serial port descriptor
#define SCREEN_TIMEOUT	5		// screen update timeout in seconds
#define NMEA_LINE	80		// max length of NMEA data on one line

//#define Pi	4*atan(1)	/* exact, but slow */
#define Pi	3.141592653589	
#define a	6378137.0	/* semi major axis */
#define K0	0.9996		/* Central scale factor */
#define e	0.081819191043	/* sqrt(eccentricity) */
#define FalseE	500000.0	/* False Easting */
#define FalseN	10000000.0	/* False Northing */
#define zone_width	6.0	/* in degrees */
#define lon_cent_merid	-177.0	/* Lon of central meridian of zone 1 in deg */
#define lon_west_edge	-186.0	/* Lon of western edge of zone 0 in deg */
#define zero_cent_merid	-183.0	/* Central meridian of zone 0 in deg */

struct rmc_struct
{
	char UTC[10];	// Time of fix
	char Status;	// A=okay, V=warning
	double Lat;	// Latitude
	char NS;	// North or South
	double Lon;	// Longitude
	char EW;	// East or West
	double Speed;	// Speed in knots
	double Heading;	// Heading in degrees
	char Date[7];	// Date of fix
	char Var[7];	// Magnetic variation
};

struct gga_struct
{
	char UTC[10];	// Time of fix
	double Lat;	// Latitude
	char NS;	// North or South
	double Lon;	// Longitude
	char EW;	// East or West
	int Fix;	// 0=invalid, 1=GPS fix, 2=DGPS fix
	int NumSats;	// Number of satellites being tracked
	float Dil;	// Horizontal dilution
	float Alt;	// Altitude
	char AltMF;	// Metres or feet
	float Geo;	// Height of geoid above ellipsoid
	char GeoMF;	// Metres or feet
	int Last;	// Seconds since last DGPS update
	int ID;		// DGPS station ID
};


struct rmc_struct rmc;
struct gga_struct gga;

