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

📄 handlegpsdata.h

📁 一个用来实现GPS数据接收和处理分析的程序
💻 H
字号:
#ifndef   _E1GPSV0707_H_
#define   _E1GPSV0707_H_

#define SUCCESS 0
#define TRUE	1 
#define FALSE   0    
#define GPSBUFFERBUSY	0
#define GPSINVALIDDATA  1
#define GPSVALIDDATA	2
#define GPSMALFUNCTION   (-1)
#define CONTINUEREADDATAFLAG		1
#define SUCCESSVERIFYGPSDATA		1
#define OPENSERIALPORTFAILURE	(-1)
#define ERRVERIFYGPSDATA		(-1)
#define READBUFSIZE              80
#define MAXREADBUFSIZE  		 160

 #define ERROR_LENGTHISZERO             1
 #define ERROR_LENGTHINVALID           2 
 #define ERROR_EXCESSMAXLENGTH      3
 
#define CHARSIZE  sizeof(char)
#define  AND(x) (x&0x0F)
#define  DEC(x)  ((AND(x)<<3)+(AND(x)<<1))

typedef struct {
	unsigned char Year;			//年
	unsigned char Month;		//月
	unsigned char Date;			//日
	unsigned char Hour;			//时
	unsigned char Min;			//分
	unsigned char Sec;			//秒
	unsigned char Latitue[4];	//维度
	unsigned char Longitue[4];	//经度
	unsigned char Speed;		//速度
	unsigned char Course;		//航向
	int GpsValid;				//导航状态;1导航;0不导航
}GPS_DAT;
struct GPS{
	unsigned char FrameHeader[6];	//NMEA数据帧类型,$GP+ (RMC,GGA,GSA,GLL,GSV,VTG,ZDA)
	unsigned char Utc[11];			//世界时间
	unsigned char OriStatus;		//定位状态
	unsigned char LatiTue[10];  	//纬度
	unsigned char Lat_indicator;	//纬度指示器
	unsigned char LongiTue[11]; 	//经度
	unsigned char Lon_indicator;	//经度指示器
	unsigned char Earth_Speed[6];	//地面速度
	unsigned char Course_Angle[7];	//航向角度
	unsigned char CurrentDate[7]; 	//日期时间
	unsigned char MagneticDegree[7];
	unsigned char MagneticDirection;
	unsigned char VerifyCode[5];	//校验码
};
typedef struct GPS GPS_NMEA_DAT;
typedef int (*HandleGpsFrame)(char* );

/*******************************************************************************************
//名称 :ASC2Hex
//功能: 转换字符的ASCII码为十六制值
//输入参数: 单个字符
//输出参数: 输入字符的十六进制值
//返回: 返回十六进制值
******************************************************************************************/
unsigned char ASC2Hex(unsigned char dat);
/*******************************************************************************************
//名称 :SetSerial_Port
//功能: 串口配置选项初始化
//输入参数: 1.串口配置选项各成员结构体termios,2.串口传输的波特率
//输出参数: 无
//返回: 无
******************************************************************************************/
void SetSerial_Port(struct termios *GPSDATAIO,int BaudRate);
/*******************************************************************************************
//名称 :Open_UartPort
//功能: 打开串口对应的设备文件
//输入参数: 串口对应的设备文件名,
//输出参数: 打开设备对应的文件描述符
//返回: 成功:返回设备描述文件符  失败:返回  -1
**************************************************************************************/
int Open_UartPort( char* devname);
/*******************************************************************************************
//名称 :Verify_Gps_Data
//功能: 无奇偶校验字符串
//输入参数: 待校验的字符串
//输出参数: 校验结果
//返回: 成功:返回0,失败:返回 -1
******************************************************************************************/
int Verify_Gps_Data(char* sentence);
/*******************************************************************************************
//名称 : Handle_Gps_RMC
//功能: GPS数据中推荐最小数据类型处理,处理结果转换成十六进制值,放在结构体中
//输入参数: 处理的一帧RMC类型数据
//输出参数: RMC类型数据导航状态,是否为导航
//返回: 成功:返回1,导航 失败:返回0,不导航  
******************************************************************************************/
int Handle_Gps_RMC(char *sentence);
/*******************************************************************************************
//名称 :Handle_GpsData
//功能: 预处理读出的GPS数据
//输入参数: 1.读入的原始GPS数据,2,处理GPS数据的函数指针
//输出参数: 处理状态是否成功
//返回: 成功,返回1,失败返回0
******************************************************************************************/
int Handle_GpsData(char *sentence,HandleGpsFrame Handle_Gps_Data);
/*******************************************************************************************
//名称 :GetGpsData
//功能: 从GPS模块缓冲区中读取GPS数据
//输入参数: 用来处理GPS数据的函数指针
//输出参数: 无
//返回: 无
******************************************************************************************/
void GetGpsData(HandleGpsFrame Handgps);
/*******************************************************************************************
//名称 :GPSDevice_On
//功能: GPS模块电源开启
//输入参数: 无
//输出参数: 无
//返回: 无
******************************************************************************************/
void GPSDevice_On();
/*******************************************************************************************
//名称 :GPSDevice_Off
//功能: GPS模块电源关闭
//输入参数: 无
//输出参数: 无
//返回: 无
******************************************************************************************/
void GPSDevice_Off();
/********************************************************************
* 名称 : ThreadGps( ) 
* 功能 : gps线程程序
* 输入: 无
* 输出: 无
********************************************************************/
void ThreadGps();
#endif

⌨️ 快捷键说明

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