You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
112 lines
3.0 KiB
112 lines
3.0 KiB
/* |
|
* |
|
* 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__ */
|
|
|