⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gpsapi.h

📁 Gpsapi 2.0(标准mobile接口)
💻 H
字号:
/**************************************************************************/
/*                                                                        */
/* Copyright (c) 2000-2004  YULONG Company                         */
/*         宇龙计算机通信科技(深圳)有限公司  版权所有 2000-2006         */
/*                                                                        */
/* PROPRIETARY RIGHTS of YULONG Company are involved in the         */
/* subject matter of this material.  All manufacturing, reproduction, use,*/
/* and sales rights pertaining to this subject matter are governed by the */
/* license agreement.  The recipient of this software implicitly accepts  */ 
/* the terms of the license.                                              */
/* 本软件文档资料是宇龙公司的资产,任何人士阅读和使用本资料必须获得        */
/* 相应的书面授权,承担保密责任和接受相应的法律约束.                       */
/*                                                                        */
/**************************************************************************
Copyright (C), 2000-2010, Yulong Tech. Co., Ltd.
FileName:          Gpsapi.h
Author:            ganjingjun
Version :          1.0
Date:             2008年01月30号
Description:           
History:         
<author>      <time>      <version >              <desc>
ganjingjun    2007/05/30      1.0             Create this module  
*****************************************************************************/

#pragma once
#ifdef GPSAPI_EXPORTS
#define GPSAPI_API __declspec(dllexport)
#else
#define GPSAPI_API __declspec(dllimport)
#endif

#define GPS_MAX_SATELLITES              12   //最大可见卫星数
#define GPS_MAX_FRIENDLY_NAME           64   //保留
#define GPS_MAX_PREFIX_NAME             16   //保留 

#pragma pack(push, 1)

//定位质量
typedef enum {
	GPS_FIX_QUALITY_UNKNOWN = 0,
	GPS_FIX_QUALITY_GPS,
	GPS_FIX_QUALITY_DGPS
} GPS_FIX_QUALITY;

//定位类型
typedef enum {
	GPS_FIX_UNKNOWN = 0,
	GPS_FIX_2D,
	GPS_FIX_3D
} GPS_FIX_TYPE;

//定位选择
typedef enum {
	GPS_FIX_SELECTION_UNKNOWN = 0,
	GPS_FIX_SELECTION_AUTO,
	GPS_FIX_SELECTION_MANUAL
} GPS_FIX_SELECTION;

//设备驱动信息(保留未用)
typedef struct _GPS_DEVICE {
	DWORD    dwVersion;
	DWORD    dwSize;
	DWORD    dwServiceState;
	DWORD    dwDeviceState;
	FILETIME ftLastDataReceived;
	WCHAR    szGPSDriverPrefix[GPS_MAX_PREFIX_NAME];
	WCHAR    szGPSMultiplexPrefix[GPS_MAX_PREFIX_NAME];
	WCHAR    szGPSFriendlyName[GPS_MAX_FRIENDLY_NAME];
} *PGPS_DEVICE, GPS_DEVICE;

typedef struct _GPS_POSITION {
	DWORD dwVersion;                                         // 版本号(默认0)
	DWORD dwSize;                                            // 默认0

	DWORD dwValidFields;                                     // 默认0

	DWORD dwFlags;                                           // 默认0

	SYSTEMTIME stUTCTime;                                    // 卫星时间(UTC时间)

	double dblLatitude;                                      // 纬度
	double dblLongitude;                                     // 经度
	float  flSpeed;                                          // 速度
	float  flHeading;                                        // 方向
	double dblMagneticVariation;                             // 默认0
	float  flAltitudeWRTSeaLevel;                            // 海拔高度
	float  flAltitudeWRTEllipsoid;                           // 默认0

	GPS_FIX_QUALITY     FixQuality;                          // 定位质量
	GPS_FIX_TYPE        FixType;                             // 定位类型
	GPS_FIX_SELECTION   SelectionType;                       // 选择类型
	float flPositionDilutionOfPrecision;                     // 位置经度因子
	float flHorizontalDilutionOfPrecision;                   // 水平经度因子
	float flVerticalDilutionOfPrecision;                     // 垂直经度因子

	DWORD dwSatelliteCount;                                  // 定位卫星数
	DWORD rgdwSatellitesUsedPRNs[GPS_MAX_SATELLITES];        // 保留

	DWORD dwSatellitesInView;                                // 可见卫星数
	DWORD rgdwSatellitesInViewPRNs[GPS_MAX_SATELLITES];      // 卫星编号
	DWORD rgdwSatellitesInViewElevation[GPS_MAX_SATELLITES]; //卫星仰角
	DWORD rgdwSatellitesInViewAzimuth[GPS_MAX_SATELLITES];   // 卫星方位角
	DWORD rgdwSatellitesInViewSignalToNoiseRatio[GPS_MAX_SATELLITES];   //卫星信噪比
} GPS_POSITION, *PGPS_POSITION;
#pragma pack(pop)
/**
*  函数:打开GPS(此处把要打开连接的虚串口号,波特率等写在程序里, 当前函数的其中三个参数都作为保留参数以兼容mobile标准接口)
*  @param  [HANDLE] hNewLocationData   信号量句柄(NULL或通过CreateEvent创建的信号量, 如果不为NULL时, 当有GPS新数据时,则使此新号量有值)
*  @param  [HANDLE] hDeviceStateChange 保留参数(NULL)
*  @param  [WCHAR] *szDeviceName       保留参数(NULL)
*  @param  [DWORD] dwFlags             保留参数(0)
*  @return HANDLE
*/
GPSAPI_API HANDLE GPSOpenDevice(HANDLE hNewLocationData,HANDLE hDeviceStateChange, const WCHAR* szDeviceName,DWORD dwFlags);
/**
*  函数:关闭GPS
*  @param  [HANDLE] hGpsHandle  GPS设备句柄
*  @return DWORD
*/
GPSAPI_API DWORD GPSCloseDevice(HANDLE hGPSDevice);

/**
*  函数:  取得数据信息
*  @param  [HANDLE] hGPSDevice  GPS设备句柄
*  @param  [GPS_POSITION] pGPSPosition  数据信息结构指针
*  @param  [DOWRD] dwMaximumAge 保留参数
*  @param  [DWORD] dwFlags   保留参数
*  @return DWORD
*/
GPSAPI_API DWORD GPSGetPosition(HANDLE hGPSDevice,GPS_POSITION *pGPSPosition,DWORD dwMaximumAge,DWORD dwFlags);

/**保留接口函数
*  函数:  获得设备状态信息
*  @param  [GPS_DEVICE] *pGPSDevice  设备驱动状态结构指针
*  @return DWORD
*/
GPSAPI_API DWORD GPSGetDeviceState(GPS_DEVICE *pGPSDevice);

/**针对现有的硬件缺陷增加的手动复位接口
*  函数:  复位
*  @param  [HANDLE] hGPSDevice  GPS设备句柄
*  @return DWORD
*/
GPSAPI_API BOOL GPSResetDevice(HANDLE hGPSDevice);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -