CN108304193A - 一种gps数据解析方法及系统 - Google Patents

一种gps数据解析方法及系统 Download PDF

Info

Publication number
CN108304193A
CN108304193A CN201710736928.XA CN201710736928A CN108304193A CN 108304193 A CN108304193 A CN 108304193A CN 201710736928 A CN201710736928 A CN 201710736928A CN 108304193 A CN108304193 A CN 108304193A
Authority
CN
China
Prior art keywords
gps data
signal
value
information
read
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201710736928.XA
Other languages
English (en)
Inventor
付印鹏
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Leauto Intelligent Technology Beijing Co Ltd
Original Assignee
Leauto Intelligent Technology Beijing Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Leauto Intelligent Technology Beijing Co Ltd filed Critical Leauto Intelligent Technology Beijing Co Ltd
Priority to CN201710736928.XA priority Critical patent/CN108304193A/zh
Publication of CN108304193A publication Critical patent/CN108304193A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/42Syntactic analysis
    • G06F8/427Parsing

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Position Fixing By Use Of Radio Waves (AREA)
  • Navigation (AREA)

Abstract

本发明提出一种GPS数据解析方法及系统。该方法包括:1)定义用于保存GPS数据所包含信号的全部或者一部分的结构体;2)在接收到包含一条完整语句的GPS数据后,将其保存在一个数组中;3)读取步骤2)得到的数组中与步骤1)定义的结构体对应的信号,并将所读取的信号的信息值存储所述结构体中;4)输出所读取的信号的数目,并且输出每个信号的信息值;5)参考GPS数据对应的协议得到每个信息值所代表的真实值。根据本发明的GPS数据解析方法及系统充分利用编程语言自带的函数,按照GPS数据的协议格式,将需要解析的语句通过算法运算得到实际数据,减少了代码容量,提高了代码执行效率,并且缩短了开发周期,降低了生产成本。

Description

一种GPS数据解析方法及系统
技术领域
本发明涉及GPS定位技术领域,更具体地,涉及一种GPS数据解析方法及系统。
背景技术
随着智能化大潮的涌来,身边的一切都在发生变化,各行各业也在交叉融合,GPS定位也从原来的汽车、船舶等扩大到共享单车、智能手表等行业,解析GPS数据的准确性和响应时间变得更为重要。
现有技术中,GPS模块发出的数据都遵循NMEA-0183协议,传统解析的方法是将接收到的一条语句按照协议逐个解析得到实际的数据。这种解析方法存在代码冗长、执行时间较长、维护难度大以及开发周期长等缺陷。因此,有必要开发一种执行效率高的GPS数据解析方法及系统。
公开于本发明背景技术部分的信息仅仅旨在加深对本发明的一般背景技术的理解,而不应当被视为承认或以任何形式暗示该信息构成已为本领域技术人员所公知的现有技术。
发明内容
针对现有技术中的上述问题,本发明提出了一种GPS数据解析方法及系统,能够有效地减少代码容量、提高代码执行效率。
根据本发明的一方面,提出一种GPS数据解析方法。该方法可以包括:
1)定义用于保存GPS数据所包含信号的全部或者一部分的结构体;
2)在接收到包含一条完整语句的GPS数据后,将其保存在一个数组中;
3)读取步骤2)得到的数组中与步骤1)定义的结构体对应的信号,并将所读取的信号的信息值存储所述结构体中;
4)输出所读取的信号的数目,并且输出每个信号的信息值;
5)参考GPS数据对应的协议得到每个信息值所代表的真实值。
优选地,所接收的GPS数据格式包括GNRMC格式、GNGGA格式、GNGLL格式。
优选地,GPS数据对应的协议为NMEA-0183协议。
优选地,步骤2)包括,当接收到GPS数据中的结束符则判断出已接收一条完整语句。
根据本发明的另一方面,提出一种GPS数据解析系统。该系统包括用于接收GPS数据的接收设备、存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现以下步骤:
1)定义用于保存GPS数据所包含信号的全部或者一部分的结构体;
2)在接收到包含一条完整语句的GPS数据后,将其保存在一个数组中;
3)读取步骤2)得到的数组中与步骤1)定义的结构体对应的信号,并将所读取的信号的信息值存储所述结构体中;
4)输出所读取的信号的数目,并且输出每个信号的信息值;
5)参考GPS数据对应的协议得到每个信息值所代表的真实值。
优选地,所接收的GPS数据格式包括GNRMC格式、GNGGA格式、GNGLL格式。
优选地,GPS数据对应的协议为NMEA-0183协议。
优选地,步骤2)包括,当接收到GPS数据中的结束符则判断出已接收一条完整语句。
根据本发明的GPS数据解析方法及系统充分利用编程语言自带的函数,按照GPS数据的协议格式,将需要解析的语句通过算法运算得到实际数据,减少了代码容量,提高了代码执行效率,并且缩短了开发周期,降低了生产成本。
本发明的方法和装置具有其它的特性和优点,这些特性和优点从并入本文中的附图和随后的具体实施例中将是显而易见的,或者将在并入本文中的附图和随后的具体实施例中进行详细陈述,这些附图和具体实施例共同用于解释本发明的特定原理。
附图说明
通过结合附图对本发明示例性实施例进行更详细的描述,本发明的上述以及其它目的、特征和优势将变得更加明显,其中,在本发明示例性实施例中,相同的参考标号通常代表相同部件。
图1为根据本发明的示例性实施方案的GPS数据解析方法流程图。
具体实施方式
下面将参照附图更详细地描述本发明。虽然附图中显示了本发明的优选实施例,然而应该理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了使本发明更加透彻和完整,并且能够将本发明的范围完整地传达给本领域的技术人员。
本发明按照GPS数据的协议格式,将需要解析的语句通过算法运算得到实际数据。以下参考图1详细描述根据本发明示例性实施方案的GPS数据解析方法,其主要包括以下步骤:
步骤1:定义用于保存GPS数据所包含信号的全部或者一部分的结构体。
例如,对于格式为$GNRMC的GPS数据,其包含12个信号:UTC时间、定位状态、纬度、纬度半球、经度、经度半球、速度、地面航向、UTC日期、磁偏角、磁偏角方向、模式指示。可以定义保存这12个信号的结构体,也可以定义保存其中几个信号的结构体。
步骤2:在接收到包含一条完整语句的GPS数据后,将其保存在一个数组中。当接收到GPS数据中的结束符则判断出已接收一条完整语句。
假设从GPS接收到的是$GNRMC完整的一条语句,数据例如为:
$GNRMC,040755.000,A,3957.707256,N,11618.225323,E,0.000,323.553,171215,,E,A*37,可以将数据保存在一个数组中。
步骤3:读取步骤2)得到的数组中与步骤1)定义的结构体对应的信号,并将所读取的信号的信息值存储到步骤1)中定义的结构体中。
在C语言运行环境中,可以通过以下语句从步骤2)得到的数组中提取与步骤1)定义的结构体对应的信号:
const char*GNRMC="$GNRMC,%f,%c,%f,%c,%f,%c,%f,%f,%d",
之后通过“sscanf”函数读取相应信号的信息值,并存储到该结构体中。
步骤4:输出所读取的信号的数目,并且输出每个信号的信息值。
通过上述方法,可以一次得出所有需要从该语句中提取的数据。
步骤5:参考GPS数据对应的协议得到每个信息值所代表的真实值。
如果GPS数据对应的协议是NMEA-0183,则参考该协议做相应的处理可以得到真实值。通过所输出的信号数目可判断出当前收到数据的完整性和准确性。
为便于理解本发明实施例的方案及其效果,以下给出一个具体应用示例。本领域技术人员应理解,该示例仅为了便于理解本发明,其任何具体细节并非意在以任何方式限制本发明。
应用示例1
以下示例运行环境为C语言:
首先,定义用于存储GNRMC格式的GPS数据中UTC时间、定位状态、纬度、纬度半球、经度、经度半球、地面速率、地面航向、UTC日期这9个信号的数据体。
首先做变量类型声明:
typedef float fp32;
typedef unsigned char uint8;
typedef unsigned long uint32;
接下来定义保存GPS数据的结构体:
定义结构体类型的变量:
STRUCT_RMC_INFO g_stRmcData={0};
定义返回值:
int status=0;
从GPS接收到的是$GNRMC完整的一条语句,为:
$GNRMC,040755.000,A,3957.707256,N,11618.225323,E,0.000,323.553,171215,,E,A*37将数据保存在g_u8RecGNRMC数组中。
提取与所定义的结构体对应的信号:
const char*GNRMC="$GNRMC,%f,%c,%f,%c,%f,%c,%f,%f,%d"。
读取相应信号的信息值,并存储到该结构体:
status=sscanf((char*)g_u8RecGNRMC,GNRMC,&g_stRmcData.utctime,
&g_stRmcData.PositioningStatus,
&g_stRmcData.latitude_value,
&g_stRmcData.latitude_flag,
&g_stRmcData.longtitude_value,
&g_stRmcData.longtitude_flag,
&g_stRmcData.velocity,
&g_stRmcData.direction,
&g_stRmcData.utcdate);
输出以上函数的运行结果(不考虑小数存储的差异):
statsu=9
g_stRmcData.utctime=40755.000000
g_stRmcData.PositioningStatus=A
g_stRmcData.latitude_value=3957.707256
g_stRmcData.latitude_flag=N
g_stRmcData.longtitude_value=11618.225323
g_stRmcData.longtitude_flag=E
g_stRmcData.velocity=0.000000
g_stRmcData.direction=323.553000
g_stRmcData.utcdate=171215
如果GPS数据对应的协议是NMEA-0183,则参考该协议做相应的处理可以得到真实值。由于本例取的是前9个信号,没有跳过某个信号,因此本例中如果输出的信号数目不等于9则可以判断出此条语句中有错误。
应用示例2
以下示例运行环境为C语言:
首先,定义用于存储GNGGA格式的GPS数据中卫星个数、高度这2个信号的数据体。
typedef struct
{
uint8gga_linknum;/*卫星个数*/
fp32gga_ground_height;/*高度*/
}STRUCT_GGA_INFO;
定义结构体类型的变量:
STRUCT_GGA_INFO g_stGgaData={0};
定义一个存放无效数据的变量
fp32finvalid=0.0;
假设从GPS接收到的是$GNGGA完整的一条语句,为:
$GNGGA,040754.000,3957.708650,N,11618.222351,E,1,14,1.115,25.639,M,0,M,,*5A
将数据保存在g_u8RecGNGGA数组中。
提取与所定义的结构体对应的信号:
const char*GNGGA="$GNGGA,%f,%f,%c,%f,%c,%c,%d,%f,%f,%c";
读取相应信号的信息值,并存储到该结构体:
status=sscanf((char*)g_u8RecGNGGA,GNGGA,&finvalid,
&finvalid,
&finvalid,
&finvalid,
&finvalid,
&finvalid,
&g_stGgaData.gga_linknum,
&finvalid,
&g_stGgaData.gga_ground_height,
&finvalid);
输出以上函数的运行结果(不考虑小数存储的差异):
status=10
g_stGgaData.gga_linknum=14
g_stGgaData.gga_ground_height=25.639000
本发明还提出了一种GPS数据解析系统。该系统包括用于接收GPS数据的接收设备、存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现以下步骤:
1)定义用于保存GPS数据所包含信号的全部或者一部分的结构体;
2)在接收到包含一条完整语句的GPS数据后,将其保存在一个数组中;
3)读取步骤2)中得到的数组,将所读取的信号的信息值存储到步骤1)中定义的结构体中;
4)输出所读取的信号的数目,并且输出每个信号的信息值;
5)参考GPS数据对应的协议得到每个信息值所代表的真实值。
在一个示例中,所接收的GPS数据为GNRMC格式。
在一个示例中,GPS数据对应的协议为NMEA-0183协议。
在一个示例中,步骤2)包括,当接收到GPS数据中的结束符则判断出已接收到一条完整语句。
本领域技术人员应理解,上面对本发明的实施例的描述的目的仅为了示例性地说明本发明的实施例的有益效果,并不意在将本发明的实施例限制于所给出的任何示例。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。

Claims (8)

1.一种GPS数据解析方法,其特征在于,包括:
1)定义用于保存GPS数据所包含信号的全部或者一部分的结构体;
2)在接收到包含一条完整语句的GPS数据后,将其保存在一个数组中;
3)读取步骤2)得到的数组中与步骤1)定义的结构体对应的信号,并将所读取的信号的信息值存储所述结构体中;
4)输出所读取的信号的数目,并且输出每个信号的信息值;
5)参考GPS数据对应的协议得到每个信息值所代表的真实值。
2.根据权利要求1所述的GPS数据解析方法,其中,所接收的GPS数据格式包括GNRMC格式、GNGGA格式、GNGLL格式。
3.根据权利要求1所述的GPS数据解析方法,其中,GPS数据对应的协议为NMEA-0183协议。
4.根据权利要求1所述的GPS数据解析方法,其中,步骤2)包括,当接收到GPS数据中的结束符则判断出已接收一条完整语句。
5.一种GPS数据解析系统,其特征在于,包括用于接收GPS数据的接收设备、存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现以下步骤:
1)定义用于保存GPS数据所包含信号的全部或者一部分的结构体;
2)在接收到包含一条完整语句的GPS数据后,将其保存在一个数组中;
3)读取步骤2)得到的数组中与步骤1)定义的结构体对应的信号,并将所读取的信号的信息值存储所述结构体中;
4)输出所读取的信号的数目,并且输出每个信号的信息值;
5)参考GPS数据对应的协议得到每个信息值所代表的真实值。
6.根据权利要求5所述的GPS数据解析系统,其中,所接收的GPS数据格式包括GNRMC格式、GNGGA格式、GNGLL格式。
7.根据权利要求5所述的GPS数据解析系统,其中,GPS数据对应的协议为NMEA-0183协议。
8.根据权利要求5所述的GPS数据解析系统,其中,步骤2)包括,当接收到GPS数据中的结束符则判断出已接收一条完整语句。
CN201710736928.XA 2017-08-24 2017-08-24 一种gps数据解析方法及系统 Pending CN108304193A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710736928.XA CN108304193A (zh) 2017-08-24 2017-08-24 一种gps数据解析方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710736928.XA CN108304193A (zh) 2017-08-24 2017-08-24 一种gps数据解析方法及系统

Publications (1)

Publication Number Publication Date
CN108304193A true CN108304193A (zh) 2018-07-20

Family

ID=62869257

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710736928.XA Pending CN108304193A (zh) 2017-08-24 2017-08-24 一种gps数据解析方法及系统

Country Status (1)

Country Link
CN (1) CN108304193A (zh)

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101262304A (zh) * 2008-04-24 2008-09-10 浙江大学 一种基于通用通讯数据格式的数据流解析方法
CN101742401A (zh) * 2009-12-16 2010-06-16 惠州Tcl移动通信有限公司 移动通信终端获取天气信息方法及移动通信终端
US20120219175A1 (en) * 2011-02-28 2012-08-30 Intuit Inc. Associating an object in an image with an asset in a financial application
CN104125502A (zh) * 2013-04-28 2014-10-29 深圳市同洲电子股份有限公司 一种数字电视终端全球定位系统的虚拟化方法及装置
CN105044739A (zh) * 2015-06-29 2015-11-11 中国电建集团成都勘测设计研究院有限公司 Gps速度信号解析方法
CN105430115A (zh) * 2015-11-20 2016-03-23 车智互联(北京)科技有限公司 一种优化ip库的方法、装置及计算设备
CN106201643A (zh) * 2016-07-14 2016-12-07 北京邮电大学 数据解析方法及装置
CN106850547A (zh) * 2016-12-15 2017-06-13 华北计算技术研究所(中国电子科技集团公司第十五研究所) 一种基于http协议的数据还原方法及系统

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101262304A (zh) * 2008-04-24 2008-09-10 浙江大学 一种基于通用通讯数据格式的数据流解析方法
CN101742401A (zh) * 2009-12-16 2010-06-16 惠州Tcl移动通信有限公司 移动通信终端获取天气信息方法及移动通信终端
US20120219175A1 (en) * 2011-02-28 2012-08-30 Intuit Inc. Associating an object in an image with an asset in a financial application
CN104125502A (zh) * 2013-04-28 2014-10-29 深圳市同洲电子股份有限公司 一种数字电视终端全球定位系统的虚拟化方法及装置
CN105044739A (zh) * 2015-06-29 2015-11-11 中国电建集团成都勘测设计研究院有限公司 Gps速度信号解析方法
CN105430115A (zh) * 2015-11-20 2016-03-23 车智互联(北京)科技有限公司 一种优化ip库的方法、装置及计算设备
CN106201643A (zh) * 2016-07-14 2016-12-07 北京邮电大学 数据解析方法及装置
CN106850547A (zh) * 2016-12-15 2017-06-13 华北计算技术研究所(中国电子科技集团公司第十五研究所) 一种基于http协议的数据还原方法及系统

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
佚名: "GNRMC解析", 《HTTPS://WWW.CNBLOGS.COM/TINYOS/P/6741685.HTML》 *
佚名: "GPS的NMEA数据解析", 《HTTPS://BLOG.CSDN.NET/ZHANDOUSHI1982/ARTICLE/DETAILS/7947682》 *
刘赋山: "一种新的NMEA0183协议解析方法实现", 《全球定位系统 技术应用》 *

Similar Documents

Publication Publication Date Title
CN100405370C (zh) 本地与远程语音呈现之间的动态转换方法和装置
CN107423278B (zh) 评价要素的识别方法、装置及系统
CN109934892B (zh) 惯导运动轨迹绘制方法、装置和计算机设备
CN105825715A (zh) 一种基于移动终端的船舶防碰撞的优化方法及系统
CN110376617A (zh) 一种生成电文的方法、存储介质和装置
CN103235961A (zh) 一种基带控制芯片和超高频射频读写装置
CN106953717B (zh) 一种船舶ais数据大批量高效解码方法及系统
CN115470232A (zh) 模型训练和数据查询方法、装置、电子设备和存储介质
CN114996261A (zh) 基于ais数据的去重方法、装置、终端设备及存储介质
CN104064184A (zh) 异构解码网络的构建方法及系统、语音识别方法及系统
CN108304193A (zh) 一种gps数据解析方法及系统
CN108701335A (zh) 通过连接基于s-100的海事数据与大数据来生成标准信息的系统及方法
CN111862955B (zh) 一种语音识别方法与终端、计算机可读存储介质
CN114694637A (zh) 混合语音识别方法、装置、电子设备及存储介质
CN115730156B (zh) 一种船舶新闻到轨迹的匹配系统及方法
CN102855115A (zh) 一种基于拼接墙显示文字标注的方法及系统
CN104280747A (zh) 一种卫星导航电文容错方法及装置
WO2011154769A1 (en) Handling data with limited applicability area
CN111858093B (zh) 一种消息处理的方法、装置、设备及存储介质
CN114660635A (zh) 一种自适应的gnss接收机原始数据流解码技术
CN113115254A (zh) 无人机定位方法及服务器
CN109782307B (zh) 一种载波相位的极性判定方法及装置
CN112633283A (zh) 一种英文邮件地址的识别与翻译方法及系统
CN102156629A (zh) 32位指令扩展的方法
CN109784111A (zh) 标签信号解码方法、装置及标签阅读器

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication

Application publication date: 20180720

RJ01 Rejection of invention patent application after publication