/*
*
* 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 $
*
*/
*
* 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__
#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_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_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_SATINPACK (4)
#define NMEA_NSATPACKS (NMEA_MAXSAT / NMEA_SATINPACK)
#define NMEA_DEF_LAT (5001.2621)
//缺省经纬度
#define NMEA_DEF_LON (3613.0595)
#define NMEA_DEF_LON (3613.0595)
#ifdef __cplusplus
extern "C" {
#endif
extern "C" {
#endif
/**
* Position data in fractional degrees or radians //以小数和弧度定位数据
*/
typedef struct _nmeaPOS
{
double lat; /**< Latitude */
double lon; /**< Longitude */
* Position data in fractional degrees or radians //以小数和弧度定位数据
*/
typedef struct _nmeaPOS
{
double lat; /**< Latitude */
double 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 */
* 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 */
* 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
* Summary GPS information from all parsed packets,
* used also for generating NMEA stream
* @see nmea_parse
* @see nmea_GPGGA2info, nmea_...2info
//gps数据信息的概要
*/
typedef struct _nmeaINFO
{
int smask; /**< Mask specifying types of packages from which data have been obtained */
*/
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) */
int fix; /**< Operating mode, used for navigation (1 = Fix not available; 2 = 2D; 3 = 3D) */
double PDOP; /**< Position Dilution Of Precision */
double HDOP; /**< Horizontal Dilution Of Precision */
double VDOP; /**< Vertical Dilution Of Precision */
double HDOP; /**< Horizontal Dilution Of Precision */
double VDOP; /**< Vertical Dilution Of Precision */
double lat; /**< Latitude in NDEG - +/-[degree][min].[sec/60] */
double lon; /**< Longitude in NDEG - +/-[degree][min].[sec/60] */
double elv; /**< Antenna altitude above/below mean sea level (geoid) in meters */
double speed; /**< Speed over the ground in kilometers/hour */
double direction; /**< Track angle in degrees True */
double declination; /**< Magnetic variation degrees (Easterly var. subtracts from true course) */
double lon; /**< Longitude in NDEG - +/-[degree][min].[sec/60] */
double elv; /**< Antenna altitude above/below mean sea level (geoid) in meters */
double speed; /**< Speed over the ground in kilometers/hour */
double direction; /**< Track angle in degrees True */
double 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
#endif /* __NMEA_INFO_H__ */
/*
*
* NMEA library
* URL: http://nmea.sourceforge.net
* Author: Tim ( xtimor@gmail.com)
* Licence: http://www.gnu.org/licenses/lgpl.html
* $Id: info.c 17 2008-03-11 11:56:11Z xtimor $
*
*/
*
* NMEA library
* URL: http://nmea.sourceforge.net
* Author: Tim ( xtimor@gmail.com)
* Licence: http://www.gnu.org/licenses/lgpl.html
* $Id: info.c 17 2008-03-11 11:56:11Z xtimor $
*
*/
#include <string.h>
#include "nmea/info.h"
void nmea_zero_INFO(nmeaINFO *info)
{
memset(info, 0, sizeof(nmeaINFO));
nmea_time_now(&info->utc); //获取时间
info->sig = NMEA_SIG_BAD; //设置初始值
info->fix = NMEA_FIX_BAD;
}
{
memset(info, 0, sizeof(nmeaINFO));
nmea_time_now(&info->utc); //获取时间
info->sig = NMEA_SIG_BAD; //设置初始值
info->fix = NMEA_FIX_BAD;
}
转载于:https://blog.51cto.com/no001/355164