/* * * NMEA library * URL: http://nmea.sourceforge.net * Author: Tim (xtimor@gmail.com) * Licence: http://www.gnu.org/licenses/lgpl.html * $Id: info.h 10 2007-11-15 14:50:15Z xtimor $ * */ /*! \file */ #ifndef __NMEA_INFO_H__ #define __NMEA_INFO_H__ #include "time.h" #define NMEA_SIG_BAD (0) #define NMEA_SIG_LOW (1) #define NMEA_SIG_MID (2) #define NMEA_SIG_HIGH (3) #define NMEA_FIX_BAD (1) #define NMEA_FIX_2D (2) #define NMEA_FIX_3D (3) #define NMEA_MAXSAT (12) #define NMEA_SATINPACK (4) #define NMEA_NSATPACKS (NMEA_MAXSAT / NMEA_SATINPACK) #define NMEA_DEF_LAT (5001.2621) #define NMEA_DEF_LON (3613.0595) #ifdef __cplusplus extern "C" { #endif /** * Position data in fractional degrees or radians */ typedef struct _nmeaPOS { float lat; /**< Latitude */ float lon; /**< Longitude */ } nmeaPOS; /** * Information about satellite * @see nmeaSATINFO * @see nmeaGPGSV */ typedef struct _nmeaSATELLITE { int id; /**< Satellite PRN number */ int in_use; /**< Used in position fix */ int elv; /**< Elevation in degrees, 90 maximum */ int azimuth; /**< Azimuth, degrees from true north, 000 to 359 */ int sig; /**< Signal, 00-99 dB */ } nmeaSATELLITE; /** * Information about all satellites in view * @see nmeaINFO * @see nmeaGPGSV */ typedef struct _nmeaSATINFO { int inuse; /**< Number of satellites in use (not those in view) */ int inview; /**< Total number of satellites in view */ nmeaSATELLITE sat[NMEA_MAXSAT]; /**< Satellites information */ } nmeaSATINFO; /** * Summary GPS information from all parsed packets, * used also for generating NMEA stream * @see nmea_parse * @see nmea_GPGGA2info, nmea_...2info */ typedef struct _nmeaINFO { int smask; /**< Mask specifying types of packages from which data have been obtained */ nmeaTIME utc; /**< UTC of position */ int sig; /**< GPS quality indicator (0 = Invalid; 1 = Fix; 2 = Differential, 3 = Sensitive) */ int fix; /**< Operating mode, used for navigation (1 = Fix not available; 2 = 2D; 3 = 3D) */ float PDOP; /**< Position Dilution Of Precision */ float HDOP; /**< Horizontal Dilution Of Precision */ float VDOP; /**< Vertical Dilution Of Precision */ float lat; /**< Latitude in NDEG - +/-[degree][min].[sec/60] */ float lon; /**< Longitude in NDEG - +/-[degree][min].[sec/60] */ float elv; /**< Antenna altitude above/below mean sea level (geoid) in meters */ float speed; /**< Speed over the ground in kilometers/hour */ float direction; /**< Track angle in degrees True */ float declination; /**< Magnetic variation degrees (Easterly var. subtracts from true course) */ nmeaSATINFO satinfo; /**< Satellites information */ } nmeaINFO; void nmea_zero_INFO(nmeaINFO *info); #ifdef __cplusplus } #endif #endif /* __NMEA_INFO_H__ */