Guido Ottaviani / Mbed 2 deprecated LeonardoMbos

Dependencies:   mbos Watchdog TextLCD mbed ConfigFile

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers info.h Source File

info.h

Go to the documentation of this file.
00001 /*
00002  *
00003  * NMEA library
00004  * URL: http://nmea.sourceforge.net
00005  * Author: Tim (xtimor@gmail.com)
00006  * Licence: http://www.gnu.org/licenses/lgpl.html
00007  * $Id: info.h 10 2007-11-15 14:50:15Z xtimor $
00008  *
00009  */
00010 
00011 /*! \file */
00012 
00013 #ifndef __NMEA_INFO_H__
00014 #define __NMEA_INFO_H__
00015 
00016 #include "time.h "
00017 
00018 #define NMEA_SIG_BAD        (0)
00019 #define NMEA_SIG_LOW        (1)
00020 #define NMEA_SIG_MID        (2)
00021 #define NMEA_SIG_HIGH       (3)
00022 
00023 #define NMEA_FIX_BAD        (1)
00024 #define NMEA_FIX_2D         (2)
00025 #define NMEA_FIX_3D         (3)
00026 
00027 #define NMEA_MAXSAT         (12)
00028 #define NMEA_SATINPACK      (4)
00029 #define NMEA_NSATPACKS      (NMEA_MAXSAT / NMEA_SATINPACK)
00030 
00031 #define NMEA_DEF_LAT        (5001.2621)
00032 #define NMEA_DEF_LON        (3613.0595)
00033 
00034 #ifdef  __cplusplus
00035 extern "C" {
00036 #endif
00037 
00038 /**
00039  * Position data in fractional degrees or radians
00040  */
00041 typedef struct _nmeaPOS
00042 {
00043     double lat;         /**< Latitude */
00044     double lon;         /**< Longitude */
00045 
00046 } nmeaPOS;
00047 
00048 /**
00049  * Information about satellite
00050  * @see nmeaSATINFO
00051  * @see nmeaGPGSV
00052  */
00053 typedef struct _nmeaSATELLITE
00054 {
00055     int     id;         /**< Satellite PRN number */
00056     int     in_use;     /**< Used in position fix */
00057     int     elv;        /**< Elevation in degrees, 90 maximum */
00058     int     azimuth;    /**< Azimuth, degrees from true north, 000 to 359 */
00059     int     sig;        /**< Signal, 00-99 dB */
00060 
00061 } nmeaSATELLITE;
00062 
00063 /**
00064  * Information about all satellites in view
00065  * @see nmeaINFO
00066  * @see nmeaGPGSV
00067  */
00068 typedef struct _nmeaSATINFO
00069 {
00070     int     inuse;      /**< Number of satellites in use (not those in view) */
00071     int     inview;     /**< Total number of satellites in view */
00072     nmeaSATELLITE sat[NMEA_MAXSAT]; /**< Satellites information */
00073 
00074 } nmeaSATINFO;
00075 
00076 /**
00077  * Summary GPS information from all parsed packets,
00078  * used also for generating NMEA stream
00079  * @see nmea_parse
00080  * @see nmea_GPGGA2info,  nmea_...2info
00081  */
00082 typedef struct _nmeaINFO
00083 {
00084     int     smask;      /**< Mask specifying types of packages from which data have been obtained */
00085 
00086     nmeaTIME utc;       /**< UTC of position */
00087 
00088     int     sig;        /**< GPS quality indicator (0 = Invalid; 1 = Fix; 2 = Differential, 3 = Sensitive) */
00089     int     fix;        /**< Operating mode, used for navigation (1 = Fix not available; 2 = 2D; 3 = 3D) */
00090 
00091     double  PDOP;       /**< Position Dilution Of Precision */
00092     double  HDOP;       /**< Horizontal Dilution Of Precision */
00093     double  VDOP;       /**< Vertical Dilution Of Precision */
00094 
00095     double  lat;        /**< Latitude in NDEG - +/-[degree][min].[sec/60] */
00096     double  lon;        /**< Longitude in NDEG - +/-[degree][min].[sec/60] */
00097     double  elv;        /**< Antenna altitude above/below mean sea level (geoid) in meters */
00098     double  speed;      /**< Speed over the ground in kilometers/hour */
00099     double  direction;  /**< Track angle in degrees True */
00100     double  declination; /**< Magnetic variation degrees (Easterly var. subtracts from true course) */
00101 
00102     nmeaSATINFO satinfo; /**< Satellites information */
00103 
00104 } nmeaINFO;
00105 
00106 void nmea_zero_INFO(nmeaINFO *info);
00107 
00108 #ifdef  __cplusplus
00109 }
00110 #endif
00111 
00112 #endif /* __NMEA_INFO_H__ */