GPS数据处理

java-GPS数据处理 /** 题目内容: NMEA-0183协议是为了在不同的GPS(全球定位系统)导航设备中建立统一的BTCM(海事无线电技术委员会)标准,由美国国家海洋电子协会(NMEA-The National Marine Electronics Associa-tion)制定的一套通讯协议。GPS接收机根据NMEA-0183协议的标准规范,将位置、速度等信息通过串口传送到PC机、PDA等设备。 NME... 阅读详情

题目内容:

NMEA-0183协议是为了在不同的GPS(全球定位系统)导航设备中建立统一的BTCM(海事无线电技术委员会)标准,由美国国家海洋电子协会(NMEA-The National Marine Electronics Associa-tion)制定的一套通讯协议。GPS接收机根据NMEA-0183协议的标准规范,将位置、速度等信息通过串口传送到PC机、PDA等设备。


NMEA-0183协议是GPS接收机应当遵守的标准协议,也是目前GPS接收机上使用最广泛的协议,大多数常见的GPS接收机、GPS数据处理软件、导航软件都遵守或者至少兼容这个协议。


NMEA-0183协议定义的语句非常多,但是常用的或者说兼容性最广的语句只有$GPGGA、$GPGSA、$GPGSV、$GPRMC、$GPVTG、$GPGLL等。


其中$GPRMC语句的格式如下:

    $GPRMC,024813.640,A,3158.4608,N,11848.3737,E,10.05,324.27,150706,,,A*50


这里整条语句是一个文本行,行中以逗号“,”隔开各个字段,每个字段的大小(长度)不一,这里的示例只是一种可能,并不能认为字段的大小就如上述例句一样。

    字段0:$GPRMC,语句ID,表明该语句为Recommended Minimum Specific GPS/TRANSIT Data(RMC)推荐最小定位信息

    字段1:UTC时间,hhmmss.sss格式

    字段2:状态,A=定位,V=未定位

    字段3:纬度ddmm.mmmm,度分格式(前导位数不足则补0)

    字段4:纬度N(北纬)或S(南纬)

    字段5:经度dddmm.mmmm,度分格式(前导位数不足则补0)

    字段6:经度E(东经)或W(西经)

    字段7:速度,节,Knots

    字段8:方位角,度

    字段9:UTC日期,DDMMYY格式

    字段10:磁偏角,(000 - 180)度(前导位数不足则补0)

    字段11:磁偏角方向,E=东W=西

    字段16:校验值

这里,“*”为校验和识别符,其后面的两位数为校验和,代表了“$”和“*”之间所有字符(不包括这两个字符)的异或值的十六进制值。上面这条例句的校验和是十六进制的50,也就是十进制的80。


提示:^运算符的作用是异或。将$和*之间所有的字符做^运算(第一个字符和第二个字符异或,结果再和第三个字符异或,依此类推)之后的值对65536取余后的结果,应该和*后面的两个十六进制数字的值相等,否则的话说明这条语句在传输中发生了错误。注意这个十六进制值中是会出现A-F的大写字母的。


现在,你的程序要读入一系列GPS输出,其中包含$GPRMC,也包含其他语句。在数据的最后,有一行单独的

    END

表示数据的结束。


你的程序要从中找出$GPRMC语句,计算校验和,找出其中校验正确,并且字段2表示已定位的语句,从中计算出时间,换算成北京时间。一次数据中会包含多条$GPRMC语句,以最后一条语句得到的北京时间作为结果输出。

你的程序一定会读到一条有效的$GPRMC语句。


输入格式:

多条GPS语句,每条均以回车换行结束。最后一行是END三个大写字母。


输出格式:

6位数时间,表达为:

    hh:mm:ss

其中,hh是两位数的小时,不足两位时前面补0;mm是两位数的分钟,不足两位时前面补0;ss是两位数的秒,不足两位时前面补0。


输入样例:

$GPRMC,024813.640,A,3158.4608,N,11848.3737,E,10.05,324.27,150706,,,A*50

END


输出样例:

10:48:13

时间限制:500ms内存限制:32000kb
#include <stdio.h>
#include <string.h>

int main()
{
	char s[1000],*p;
	int check,sum,hour,min,sec;
	do
	{
		scanf("%s",s);
		if (s[0]=='$' && s[1]=='G'&&s[2]=='P'&&s[3]=='R'&&s[4]=='M'&&s[5]=='C')
		{
			for (p=s+7;*p!=',';p++);        //找到定位的位置,刚开始直接输的第19位,结果错误,简直是个大坑 
			if (*(p+1)=='A') 
			{
				p=s;
				check=*(++p);
				for (p=p+1;*p!='*';p++)         //进行异或计算 
				{
					check = check^(*p);
				}
				p++;
				sum=0;
				for (;*p!='\0';p++)              //将十六进制转换为10进制 
				{
					if (*p>='0' && *p<='9')
					{
						sum = sum*16+*p-'0';
					}else if (*p>='A' && *p<='F')
					{
						sum = sum*16 +*p-'A'+10;
					}
				}
				if (sum==(check%65536))            //记录时间 
				{
					hour = (s[7]-'0')*10+s[8]-'0'+8;
					if (hour>=24) hour=hour-24;
					min = (s[9]-'0')*10+s[10]-'0';
					sec = (s[11]-'0')*10+s[12]-'0';
				}
			}
		}
	}while(strcmp(s,"END")!=0);
	printf("%02d:%02d:%02d\n",hour,min,sec);
	return 0;
}


C语言入门-第八周:作业02 2GPS数据处理(6分)题目内容: NMEA-0183协议是为了在不同的GPS(全球定位系统)导航设备中建立统一的BTCM(海事无线电技术委员会)标准,由美国国家海洋电子协会(NMEA-The National Marine Electronics Associa-tion)制定的一套通讯协议。GPS接收机根据NMEA-0183协议的标准规范,将位置、速度等信息通过串口传送到PC机、PDA等设备。 阅读详情

相关推荐

Gps的GPRMC数据格式详解及要注意的地方

GPRMC数据格式如下: $GPRMC,014600.00,A,2237.496474,N,11356.089515,E,0.0,225.5,310518,2.3,W,A*23 其中,每个字段的描述如下: field 0:$GPRMC, 格式ID,表示该格式为建议的最低特定GPS / TRANSIT数据(RMC)推荐最低定位信息 field 1: UTC时间, 格式hhmmss.ssss,代表时分...

wolfnx 2万+

GPS 数据处理

gps

u014421313的博客 1484

python gps数据处理_GPS数据处理简述(上)

前前言最近在上海出差,有对数据挖掘和机器学习的实践感兴趣,想要面基的小伙伴可以联系我。联系方式在 Resume 里面,也可以看一下我的介绍,到时候咱们可以面基面的更有针对性。困死了,实在写不下去了,前两节定的内容公式太多,打的我脑壳子痛,急需一份睡眠来缓解一下……前言GPS数据是很重要的用户数据,但同时其处理也是特别困难的,在信号不好的时候容易产生噪声,很多时候用户的行为本身也自带噪声(相对于描述...

weixin_39948442的博客 1558

gps数据处理

GPS数据处理 题目内容: NMEA-0183协议是为了在不同的GPS(全球定位系统)导航设备中建立统一的BTCM(海事无线电技术委员会)标准,由美国国家海洋电子协会(NMEA-The National Marine Electronics Associa-tion)制定的一套通讯协议。GPS接收机根据NMEA-0183协议的标准规范,将位置、速度等信息通过串口传送到PC机、PDA等设备。 ...

royzou的专栏 1023

Java应用基础进阶——GPS数据处理

首先是题目。 题目内容: NMEA-0183协议是为了在不同的GPS(全球定位系统)导航设备中建立统一的BTCM(海事无线电技术委员会)标准,由美国国家海洋电子协会(NMEA-The National Marine Electronics Associa-tion)制定的一套通讯协议。GPS接收机根据NMEA-0183协议的标准规范,将位置、速度等信息通过串口传送到PC机、PD

xnf1996224的博客 1124

滴滴驾驶行为开放数据集:GPS和IMU数据处理

滴滴驾驶行为开放数据集1.数据集介绍1.1 驾驶行为基础信息:driver_accident_base_data1.2 GPS&IMU数据1.3 数据申请2. GPS数据处理2.1 GPS数据详情2.2 数据处理思路2.2.1 官方思路2.2.2 直接导入jar包,使用java程序进行解压。2.2 IMU数据反编码 1.数据集介绍 数据来源: https://gaia.didichuxing.com . 数据来自于滴滴网约车2020年10月份抽样司机行驶中的所有传感器数据,包括IMU&GP

weixin_41223591的博客 2万+

gps数据处理c语言例子,gps数据处理软件有哪些

GPS静态测量数据处理软件有哪些EXCEL MATLAB Origin 等等当前流行的图形可视化和数据分析软件有Matlab,Mathmatica和Maple等。这些软件功能强大,可满足科技工作中的许多需要,但使用这些软件需要一定的计算机编程知识和矩阵知识,并熟悉其中大量的函数和命令。而使用Origin就像使用Excel和Word那样简单,只需点击鼠标,选择菜单命令就可以完成大部分工作,获得满意的...

weixin_35637837的博客 701

GPS数据处理_C语言

题目内容: NMEA-0183协议是为了在不同的GPS(全球定位系统)导航设备中建立统一的BTCM(海事无线电技术委员会)标准,由美国国家海洋电子协会(NMEA-The National Marine Electronics Associa-tion)制定的一套通讯协议。GPS接收机根据NMEA-0183协议的标准规范,将位置、速度等信息通过串口传送到PC机、PDA等设备。 NMEA-0183协议是GPS接收机应当遵守的标准协议,也是目前GPS接收机上使用最广泛的协议,大多数常见的GPS接收机、GPS数据处

国家一级致癌物 698

gps数据处理 java_GPS数据读取与处理

GPS数据读取与处理GPS模块简介SiRF芯片在2004年发布的最新的第三代芯片SiRFstar III(GSW 3.0/3.1),使得民用GPS芯片在性能方面登上了一个顶峰,灵敏度比以前的产品大为提升。这一芯片通过采用20万次/频率的相关器提高了灵敏度,冷开机/暖开机/热开机的时间分别达到42s/38s/8s,可以同时追踪20个卫星信道。是目前市场上应用最为广泛,同时性价比也非常高的一款芯片,因...

weixin_36162235的博客 1564

VB在GPS数据处理中的应用详解

在使用Visual Basic进行GPS数据接收和解析之前,选择合适的GPS接收器是第一步。市场上有许多类型的GPS接收器,包括USB、蓝牙以及串行端口设备。选择时,应考虑与计算机的兼容性、所需的精确度、信号的稳定性和设备的成本。配置GPS接收器通常包括设置波特率、数据位、停止位和校验位等串行通信参数。在VB中,这可以通过打开相应端口并使用MSComm控件进行设置来实现。以下是一个简单的代码示例,展示了如何配置串行端口:' 创建一个新的SerialPort对象实例。

weixin_42497762的博客 795

MATLAB在GPS数据处理中的应用指南

伪距码(Pseudo-Random Noise, PRN)是GPS系统中用于区分不同卫星信号的一种编码技术。每个GPS卫星发射的信号都携带了唯一的PRN码,这些代码具有以下特性:高度正交性:不同的PRN码之间在相关操作下几乎为零,即互相关性非常低,这允许地面接收器区分同时到达的不同卫星信号。周期性:PRN码具有固定的周期,GPS系统通常采用长周期的码,比如C/A码的周期是1ms,P码的周期是7天。伪随机性。

weixin_35835030的博客 681

MOOC 浙江大学 翁恺 程序设计入门C GPS数据处理

GPS数据处理 题目内容: NMEA-0183协议是为了在不同的GPS(全球定位系统)导航设备中建立统一的BTCM(海事无线电技术委员会)标准,由美国国家海洋电子协会(NMEA-The National Marine Electronics Associa-tion)制定的一套通讯协议。GPS接收机根据NMEA-0183协议的标准规范,将位置、速度等信息通过串口传送到PC机、PDA等设备。 NME...

willing0228的博客 886

GPS模块数据处理实战指南

全球定位系统(GPS)是一种由美国军事开发的空间技术,最初用于军事导航,后广泛应用于民用领域,如汽车导航、户外探险、地图绘制等。GPS模块是接收和处理GPS信号的核心组件,它能确定地球表面上某一点的精确位置信息,包括纬度、经度和高度等。Win32 API是Windows操作系统的核心应用程序接口,它提供了一系列函数、消息、数据结构、宏和全局变量,使得开发者可以编写能够在Windows平台上运行的应用程序。

weixin_42502089的博客 755

C语言编程练习 - GPS数据处理

怎么都想不明白为什么我的代码所有cases都报错,网上看到的一篇则没有问题。 如有好心人可以指出我的错误,不胜感激。愿微信红包感谢(Wechat ID michael_320)! GPS数据处理(10分) 题目内容: NMEA-0183协议是为了在不同的GPS(全球定位系统)导航设备中建立统一的BTCM(海事无线电技术委员会)标准,由美国国家海洋电子协会(NMEA-The Nationa...

michael_320的博客 3392

MATLAB GPS数据处理与改正技术实战

MATLAB(Matrix Laboratory)是由美国MathWorks公司开发的一款高性能数值计算和可视化软件。其在工程和科研领域,尤其是GPS数据处理方面,提供了强大的矩阵运算和信号处理功能。MATLAB的工具箱(Toolbox)包含大量特定领域的专业算法和函数,大大简化了复杂数据的处理流程,尤其适合于算法开发和原型设计。接收独立交换格式(Receiver Independent Exchange Format,RINEX)是全球定位系统(GPS)数据存储的标准格式之一。

weixin_42593549的博客 1097

YOLOv8验证的命令以及计算coco指标

好久不看代码,都不知道怎么验证的了,来记录一下。1、计算coco指标。

毕竟是Shy哥 1481

GAMIT/GLOBK/GIPSY著名的GPS数据处理软件介绍

GAMIT/GLOBK/GIPSY著名的GPS数据处理软件介绍

qq_72175463的博客 1365

MATLAB联合Fluent优化仿真

matlab与fluent交互

keleke_的博客 4726
上一篇: 单词长度
下一篇: 简易的学生成绩录入系统(结构,结构指针,结构数组的运用)
PAT-python-zjw
博客等级 码龄10年 381粉丝 408原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值