开发工具:DEV 1、在搜集资料过程中发现网上很多都不完整,而且有的会有很多小错误,无法有效运行,自己调试后做了一些修改,能成功实现功能。 这段是判断数据包是否有效,根据有效时间来判断新
NMEA协议基础知识可参见:GPS理论知识NMEA 0813协议为完成课程设计而参照网上例子,按照课程要求修改而来
2、因为是上个学期的作业,有些细节不太记得了,但是代码里有修改的地方我都有注释,大家可以参照这些代码段根据自己的需求构建程序。
3、完整工程可以私信我,留下邮箱,看到就会第一时间发送。 加上网盘链接吧,里面还附了DEV(免安装的)
baidu链接
提取码:axpl
4、有错误的地方也希望大家能够指正。系列三:数据包判断
包和旧包,旧包将抛弃 int Package(char *state) { int signal; static u32 time; static u32 date; static u32 htime; static u32 hdate; static int avail = 0;/*数据包有效性*/ static int packg = 0;/*封包标志*/ u8 step; //只在有时间日期信息的报文中提取 //有的报文中是 GNRMC,有的是 GPRMC,根据手机收集的报文信息做修正 //原为$GNRMC,修正为 "$GPRMC" if(strstr(state,"$GPRMC")) { step = NMEA_Comma_Pos((u8*)state, 1); time = NMEA_Str2num((u8*)state + step) / 100; //hhmmss.ss step = NMEA_Comma_Pos((u8*)state, 9); date = NMEA_Str2num((u8*)state + step); //ddmmyy } if(strstr(state,"$GNVTG")) { } //原为$GNGGA,修正为 "$GPGGA" //根据自己采集的数据形式选择 if(strstr(state,"$GPGGA")) { step = NMEA_Comma_Pos((u8*)state, 1); time = NMEA_Str2num((u8*)state + step) / 100; //hhmmss.ss } if(strstr(state,"$GNGSA")) { } if(strstr(state,"$GPGSV")) { } if(strstr(state,"$GNGLL")) { step = NMEA_Comma_Pos((u8*)state, 5); time = NMEA_Str2num((u8*)state + step) / 100; //hhmmss.ss } //$GNZDA,hhmmss.00,dd,mm,yy, 本地区域小时, 本地区域分钟*hh(CR)(LF) if(strstr(state,"$GNZDA")) { step = NMEA_Comma_Pos((u8*)state, 1); time = NMEA_Str2num((u8*)state + step) / 100; //年月日转换颠倒了 /* step = NMEA_Comma_Pos((u8*)state, 2); date = date + NMEA_Str2num((u8*)state + step)*10000; step = NMEA_Comma_Pos((u8*)state, 3); date = date + NMEA_Str2num((u8*)state + step)*100; step = NMEA_Comma_Pos((u8*)state, 4); date = date + NMEA_Str2num((u8*)state + step);*/ //改正 step = NMEA_Comma_Pos((u8*)state, 2); date = date + NMEA_Str2num((u8*)state + step); step = NMEA_Comma_Pos((u8*)state, 3); date = date + NMEA_Str2num((u8*)state + step)*100; step = NMEA_Comma_Pos((u8*)state, 4); date = date + NMEA_Str2num((u8*)state + step)*10000; } if ((time != 0) && (date != 0))/*存在有效时间信息*/ { avail = 1; if((time != htime)||(date != hdate))/*存在时间信息更新*/ { packg = 1;/*新包开始,旧包结束*/ htime = time; hdate = date; } else/*时间信息没有更新*/ { packg = 0;/*同数据包*/ } } else //不存在有效时间信息 { avail = 0;/*无效数据*/ } if(!avail) { signal = 0; } else //存在有效时间信息 { if(!packg)/*0同数据包*/ { signal = 1; } else/*1新数据包*/ { signal = 2; } } return signal; }
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算