aboutsummaryrefslogtreecommitdiff
path: root/apps/gps/nmealib/nmea/info.h
diff options
context:
space:
mode:
Diffstat (limited to 'apps/gps/nmealib/nmea/info.h')
-rw-r--r--apps/gps/nmealib/nmea/info.h112
1 files changed, 112 insertions, 0 deletions
diff --git a/apps/gps/nmealib/nmea/info.h b/apps/gps/nmealib/nmea/info.h
new file mode 100644
index 000000000..09ccd4c09
--- /dev/null
+++ b/apps/gps/nmealib/nmea/info.h
@@ -0,0 +1,112 @@
+/*
+ *
+ * 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__ */