📄 handlegpsdata.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 + -