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

📄 nmea0183.h

📁 非常好用的GPS串口通信
💻 H
字号:
///////////////////////////////////////////////////////////////////////////////
// Nmea0183.h: interface for the CNmea0183 class
//
// Copyright (c) 2004,上海合众思壮科技有限责任公司GIS部
//
// All rights reserved
//
// 文件名称:Nmea0183.h
//
// 摘要    :Nmea0183协议类
//
// 作者    :Hansom
//
// 当前版本:1.1
//
// 完成日期:2004年04月12日
///////////////////////////////////////////////////////////////////////////////

///////////////////////////////////////////////////////////////////////////////
#if !defined(AFX_NMEA0183_H__251617C4_9697_46D7_B200_C4C5BFED4BCA__INCLUDED_)
#define AFX_NMEA0183_H__251617C4_9697_46D7_B200_C4C5BFED4BCA__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#include "GpsComm.h"

const double Knot2Meter		= 1.851985;					// 节->公里/小时
const long	 SAT_NUMBER		= 20;						// 定义卫星数
const long	 SAT_ID_NUMBER	= 12;						// 定义卫星ID数目

///////////////////////////////////////////////////////////////////////////////
// GPS主要数据结构体
struct ST_GPS_DATA
{	
	BYTE				byFixType;						// 定位标志,0-no fixed,1-fixed.
	BOOL				bIsAzimuth;						// 方位角无效				
	double				dbLat;							// 纬度
	double				dbLong;							// 经度
	double				dbSpeed;						// 相对于地面的速度
	double				dbAzimuth;						// 方位角
	SYSTEMTIME			UtcTime;						// utc时间
	double				dbAlt;							// 海拔高度
};

///////////////////////////////////////////////////////////////////////////////
// 定位解算精度的几何图形(DOP)数据
struct ST_DOP_DATA
{
	double				dbPdop;							// PDOP值
	double				dbHdop;							// HDOP值
	double				dbVdop;							// VDOP值
	int					nNum;							// 锁定卫星个数
	int					nUsedID[SAT_ID_NUMBER];			// 锁定卫星id
};

///////////////////////////////////////////////////////////////////////////////
// 卫星数据
struct ST_SAT_DATA
{
	int					nSatID;							// 卫星编号
	int					nElevation;						// 仰角
	int					nAzimuth;						// 方位角
	int					nSNR;							// 信噪比.0~99,-1为无效
	BOOL				bUsed;
};

///////////////////////////////////////////////////////////////////////////////
class CNmea0183 : public CGpsComm
{
public:
	CNmea0183();
	virtual ~CNmea0183();

public:
	// 从接收缓冲区的数据搜索完整一帧,并将其转换为具体的数据结构
	virtual int	SearchOneFrame(char *pchRevBuf, const int nRevLen, int &nReadPtr, 
							   const int nWritePtr, ST_MSG *pMsg);

private:
	// 判断数据检验是否正确,如果正确则生成具体数据结构
	BOOL	ProOneFrm(ST_MSG *pMsg);
	double	GetCoor(const double dbIn)const;
	
private:
	ST_SAT_DATA		m_SatData[SAT_NUMBER];
	ST_GPS_DATA		m_GpsData;
	int				m_nAllSatNum;
	int				m_nRevSatNum;
	int				m_nRevFrmNum;
	char			*m_pchProBuf;
	int				m_nWritePtr;

};

#endif // !defined(AFX_NMEA0183_H__251617C4_9697_46D7_B200_C4C5BFED4BCA__INCLUDED_)

⌨️ 快捷键说明

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