GNSS数据同步方法和装置转让专利

申请号 : CN201610195992.7

文献号 : CN105717516B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 王一乾

申请人 : 沈阳泰科易科技有限公司

摘要 :

本发明公开了一种GNSS数据同步方法和装置,其中,GNSS数据同步方法包括:读取全球卫星导航系统GNSS的GNSS数据,GNSS数据包括RMC数据和GGA数据;解析GNSS数据,以获取RMC数据中包含的第一时间信息和GGA数据中包含的第二时间信息;判断第一时间信息和第二时间信息是否一致;以及若第一时间信息和第二时间信息一致,则将解析后的GNSS数据同步至共享内存中。本发明实施例的GNSS数据同步方法和装置,能够解决无法实时获取GNSS数据的问题,避免多个应用程序调用GNSS数据产生冲突的问题。

权利要求 :

1.一种GNSS数据同步方法,其特征在于,包括以下步骤:读取全球卫星导航系统GNSS的GNSS数据,所述GNSS数据包括RMC数据和GGA数据;

解析所述GNSS数据,以获取所述RMC数据中包含的第一时间信息和所述GGA数据中包含的第二时间信息;

判断所述第一时间信息和所述第二时间信息是否一致;以及若所述第一时间信息和所述第二时间信息一致,则将解析后的GNSS数据同步至共享内存中,以使应用程序随时调用所述共享内存中的GNSS数据。

2.如权利要求1所述的方法,其特征在于,读取全球卫星导航系统GNSS的GNSS数据,包括:基于美国国家海洋电子协会NMEA协议,通过EIA-422接口读取全球卫星导航系统GNSS的GNSS数据。

3.如权利要求2所述的方法,其特征在于,通过EIA-422接口读取全球卫星导航系统GNSS的GNSS数据,包括:以阻塞方式开启所述EIA-422接口;

以行为单位读取所述GNSS数据。

4.如权利要求1所述的方法,其特征在于,在将解析后的GNSS数据同步至共享内存中之前,包括:申请共享内存,所述共享内存用于存储解析后的GNSS数据。

5.如权利要求1所述的方法,其特征在于,将解析后的GNSS数据同步至所述共享内存中,包括:将所述RMC数据包含的所述第一时间信息、日期信息、纬度信息、经度信息、速度信息、对地方位角信息和所述GGA数据包含的所述第二时间信息、高度信息、可使用卫星数、坐标修正指示,同步至所述共享内存中的对应位置。

6.一种GNSS数据同步装置,其特征在于,包括:读取模块,用于读取全球卫星导航系统GNSS的GNSS数据,所述GNSS数据包括RMC数据和GGA数据;

解析模块,用于解析所述GNSS数据,以获取所述RMC数据中包含的第一时间信息和所述GGA数据中包含的第二时间信息;

判断模块,用于判断所述第一时间信息和所述第二时间信息是否一致;以及同步模块,用于当所述第一时间信息和所述第二时间信息一致时,将解析后的GNSS数据同步至共享内存中,以使应用程序随时调用所述共享内存中的GNSS数据。

7.如权利要求6所述的装置,其特征在于,所述读取模块,用于:基于美国国家海洋电子协会NMEA协议,通过EIA-422接口读取全球卫星导航系统GNSS的GNSS数据。

8.如权利要求7所述的装置,其特征在于,所述读取模块,用于:以阻塞方式开启所述EIA-422接口;

以行为单位读取所述GNSS数据。

9.如权利要求6所述的装置,其特征在于,所述装置还包括:申请模块,用于在将解析后的GNSS数据同步至共享内存中之前,申请共享内存,所述共享内存用于存储解析后的GNSS数据。

10.如权利要求6所述的装置,其特征在于,所述同步模块,用于:将所述RMC数据包含的所述第一时间信息、日期信息、纬度信息、经度信息、速度信息、对地方位角信息和所述GGA数据包含的所述第二时间信息、高度信息、可使用卫星数、坐标修正指示,同步至所述共享内存中的对应位置。

说明书 :

GNSS数据同步方法和装置

技术领域

[0001] 本发明涉及卫星定位技术领域,尤其涉及一种GNSS数据同步方法和装置。

背景技术

[0002] GNSS的全称是全球导航卫星系统(Global Navigation Satellite System),泛指全球范围内的所有卫星导航系统。目前,GNSS多数采用固定时间间隔的方式输出GNSS信息,而无法通过实时响应请求的方式回传GNSS信息。因此,计算机系统无法随时获取当前的GNSS信息,运行效率低。另外,如果有多个应用程序均需要获取GNSS信息,则可能会发生冲突。

发明内容

[0003] 本发明旨在至少在一定程度上解决相关技术中的技术问题之一。为此,本发明的一个目的在于提出一种GNSS数据同步方法,能够解决无法实时获取GNSS数据的问题,避免多个应用程序调用GNSS数据产生冲突的问题。
[0004] 本发明的第二个目的在于提出一种GNSS数据同步装置。
[0005] 为了实现上述目的,本发明第一方面实施例提出了一种GNSS数据同步方法,包括:读取全球卫星导航系统GNSS的GNSS数据,所述GNSS数据包括RMC数据和GGA数据;解析所述GNSS数据,以获取所述RMC数据中包含的第一时间信息和所述GGA数据中包含的第二时间信息;判断所述第一时间信息和所述第二时间信息是否一致;以及若所述第一时间信息和所述第二时间信息一致,则将解析后的GNSS数据同步至共享内存中。
[0006] 本发明实施例的GNSS数据同步方法,通过读取全球卫星导航系统GNSS的GNSS数据,解析GNSS数据,以获取RMC数据中包含的第一时间信息和GGA数据中包含的第二时间信息,并判断第一时间信息和第二时间信息是否一致,以及若第一时间信息和第二时间信息一致,则将解析后的GNSS数据同步至共享内存中,能够解决无法实时获取GNSS数据的问题,避免多个应用程序调用GNSS数据产生冲突的问题。
[0007] 本发明第二方面实施例提出了一种GNSS数据同步装置,包括:读取模块,用于读取全球卫星导航系统GNSS的GNSS数据,所述GNSS数据包括RMC数据和GGA数据;解析模块,用于解析所述GNSS数据,以获取所述RMC数据中包含的第一时间信息和所述GGA数据中包含的第二时间信息;判断模块,用于判断所述第一时间信息和所述第二时间信息是否一致;以及同步模块,用于当所述第一时间信息和所述第二时间信息一致时,将解析后的GNSS数据同步至共享内存中。
[0008] 本发明实施例的GNSS数据同步装置,通过读取全球卫星导航系统GNSS的GNSS数据,解析GNSS数据,以获取RMC数据中包含的第一时间信息和GGA数据中包含的第二时间信息,并判断第一时间信息和第二时间信息是否一致,以及若第一时间信息和第二时间信息一致,则将解析后的GNSS数据同步至共享内存中,能够解决无法实时获取GNSS数据的问题,避免多个应用程序调用GNSS数据产生冲突的问题。

附图说明

[0009] 图1是根据本发明一个实施例的GNSS数据同步方法的流程图一。
[0010] 图2是根据本发明一个实施例的GNSS数据同步方法的流程图二。
[0011] 图3是根据本发明一个实施例的GNSS数据同步装置的结构示意图一。
[0012] 图4是根据本发明一个实施例的GNSS数据同步装置的结构示意图二。

具体实施方式

[0013] 下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。
[0014] 下面参考附图描述本发明实施例的GNSS数据同步方法和装置。
[0015] 图1是根据本发明一个实施例的GNSS数据同步方法的流程图一。
[0016] 如图1所示,GNSS数据同步方法可包括:
[0017] S1、读取全球卫星导航系统GNSS的GNSS数据,GNSS数据包括RMC数据和GGA数据。
[0018] 在本发明的一个实施例中,在计算机系统中可开启一守护进程,该守护进程负责处理GNSS数据。具体地,可基于NMEA(National Marine Electronics Association,美国国家海洋电子协会)协议,通过EIA-422接口读取GNSS发送的GNSS数据。其中,读取GNSS数据,可通过阻塞方式开启EIA-422接口,然后以行为单位读取GNSS数据。
[0019] S2、解析GNSS数据,以获取RMC数据中包含的第一时间信息和GGA数据中包含的第二时间信息。
[0020] 在读取GNSS数据后,可对该GNSS数据进行解析。其中,GNSS数据可包括RMC数据、GGA数据、GSA数据、GSV数据等。在本实施例中,只需要解析RMC数据和GGA数据。其中,RMC数据可包含第一时间信息、日期信息、纬度信息、经度信息、速度信息、对地方位角信息。GGA数据可包含第二时间信息、高度信息、可使用卫星数、坐标修正指示。
[0021] S3、判断第一时间信息和第二时间信息是否一致。
[0022] S4、若第一时间信息和第二时间信息一致,则将解析后的GNSS数据同步至共享内存中。
[0023] 具体地,若RMC数据包含的第一时间信息和GGA数据包含的第二时间信息一致,那么可将RMC数据中的第一时间信息、日期信息、纬度信息、经度信息、速度信息、对地方位角信息,以及GGA数据中的第二时间信息、高度信息、可使用卫星数、坐标修正指示,同步至共享内存中的对应位置。从而使得应用程序能够随时调用共享内存中的GNSS数据,不会产生冲突情况。
[0024] 另外,如图2所示,本发明实施例的GNSS数据同步方法还可包括以下步骤:
[0025] S5、申请共享内存,共享内存用于存储解析后的GNSS数据。
[0026] 在将解析后的GNSS数据同步至共享内存中之前,可先申请共享内存。共享内存用于存储解析后的GNSS数据,供应用程序随时调用GNSS数据,且可避免冲突。
[0027] 举例来说,计算机系统可开启一守护进程,该守护进程可申请一个共享内存。该共享内存可分为八段,其中,4个字节用于存储时间和日期,8个字节用于存储纬度,8个字节用于存储经度,4个字节用于存储高度,4个字节用于存储速度,4个字节用于存储对地方位角,1个字节用于存储可使用卫星数,1个字节用于存储座标修正指示。守护进程可基于NMEA协议,通过EIA-422协议兼容串口读取GNSS发送的GNSS数据。GNSS数据中可包括RMC数据、GGA数据、GSA数据、GSV数据等多组数据。此处只需要解析RMC数据和GGA数据。具体地,解析RMC数据时,RMC数据中的第一时间信息和日期信息,采用POSIX(Portable Operating System Interface,可移植操作系统接口)标准时间格式表示;纬度信息和经度信息以度为单位,用IEEE-754双精度浮点数表示,默认值为0;速度信息以千米/小时为单位,用IEEE-754单精度浮点数表示,默认值为0;对地方位角信息以度为单位,用IEEE-754单精度浮点数表示,默认值为0。在RMC数据解析成功后,可将上述数据保存至共享内存对应的位置中。然后,解析GGA数据。GGA数据中包含第二时间信息,但不包含日期信息;高度信息以米为单位,用IEEE-754单精度浮点数表示,默认值为0;可使用卫星数和坐标修正指示为有符号整数,默认值为-1。
在解析GGA数据成功后,可将第一时间信息与第二时间信息进行比对,两者若一致,则可将解析出的RMC数据和GGA数据,保存至共享内存中的对应位置。应用程序可随时直接从共享内存中调用所需的GNSS数据,从而解决了无法实时获取GNSS数据的问题,避免了多个应用程序调用GNSS数据产生冲突的问题。
[0028] 以下为一组GNSS数据示例:
[0029] $GPGGA,092750.000,5321.6802,N,00630.3372,W,1,8,1.03,61.7,M,55.2,M,,*76
[0030] $GPGSA,A,3,10,07,05,02,29,04,08,13,,,,,1.72,1.03,1.38*0A
[0031] $GPGSV,3,1,11,10,63,137,17,07,61,098,15,05,59,290,20,08,54,157,30*70[0032] $GPGSV,3,2,11,02,39,223,19,13,28,070,17,26,23,252,,04,14,186,14*79[0033] $GPGSV,3,3,11,29,09,301,24,16,09,020,,36,,,*76
[0034] $GPRMC,092750.000,A,5321.6802,N,00630.3372,W,0.02,31.66,280511,,,A*43[0035] $GPGGA,092751.000,5321.6802,N,00630.3371,W,1,8,1.03,61.7,M,55.3,M,,*75
[0036] $GPGSA,A,3,10,07,05,02,29,04,08,13,,,,,1.72,1.03,1.38*0A
[0037] $GPGSV,3,1,11,10,63,137,17,07,61,098,15,05,59,290,20,08,54,157,30*70[0038] $GPGSV,3,2,11,02,39,223,16,13,28,070,17,26,23,252,,04,14,186,15*77[0039] $GPGSV,3,3,11,29,09,301,24,16,09,020,,36,,,*76
[0040] $GPRMC,092751.000,A,5321.6802,N,00630.3371,W,0.06,31.66,280511,,,A*45[0041] 守护进程可逐行对GNSS数据进行分析。第一行数据为
[0042] $GPGGA,092750.000,5321.6802,N,00630.3372,W,1,8,1.03,61.7,M,55.2,M,,*76
[0043] 可解析出第一行数据为GGA数据,解析后可获得时间为09:27:50,高度为61.7米,可使用卫星数为8个,坐标修正指示为1。
[0044] 第二行数据为
[0045] $GPGSA,A,3,10,07,05,02,29,04,08,13,,,,,1.72,1.03,1.38*0A
[0046] 可解析出第二行数据GSA数据,不进行处理。
[0047] 第三行数据为
[0048] $GPGSV,3,1,11,10,63,137,17,07,61,098,15,05,59,290,20,08,54,157,30*70[0049] 第四行数据为
[0050] $GPGSV,3,2,11,02,39,223,19,13,28,070,17,26,23,252,,04,14,186,14*79[0051] 第五行数据为
[0052] $GPGSV,3,3,11,29,09,301,24,16,09,020,,36,,,*76
[0053] 第三行数据、第四行数据和第五行数据均为GSV数据,故不进行处理。
[0054] 第六行数据
[0055] $GPRMC,092750.000,A,5321.6802,N,00630.3372,W,0.02,31.66,280511,,,A*43[0056] 可解析出第六行数据为RMC数据,解析后可获得时间和日期为09:27:50,2011-05-28,纬度为53.361336666666666度,经度为-6.5056200000000000度,速度为0.037039999千米/小时,对地方位角为31.660000度。
[0057] 对比GGA数据与RMC数据中的时间。两者一致,则可将解析出上述数据同步至共享内存。
[0058] 本发明实施例的GNSS数据同步方法,通过读取全球卫星导航系统GNSS的GNSS数据,解析GNSS数据,以获取RMC数据中包含的第一时间信息和GGA数据中包含的第二时间信息,并判断第一时间信息和第二时间信息是否一致,以及若第一时间信息和第二时间信息一致,则将解析后的GNSS数据同步至共享内存中,能够解决无法实时获取GNSS数据的问题,避免多个应用程序调用GNSS数据产生冲突的问题。
[0059] 为实现上述目的,本发明还提出一种GNSS数据同步装置。
[0060] 图3是根据本发明一个实施例的GNSS数据同步装置的结构示意图一。
[0061] 如图3所示,GNSS数据同步装置可包括:读取模块110、解析模块120、判断模块130以及同步模块140。
[0062] 读取模块110用于读取全球卫星导航系统GNSS的GNSS数据,GNSS数据包括RMC数据和GGA数据。具体地,读取模块110可基于NMEA(National Marine Electronics Association,美国国家海洋电子协会)协议,通过EIA-422接口读取GNSS发送的GNSS数据。其中,读取GNSS数据,可通过阻塞方式开启EIA-422接口,然后以行为单位读取GNSS数据。
[0063] 解析模块120用于解析GNSS数据,以获取RMC数据中包含的第一时间信息和GGA数据中包含的第二时间信息。在读取GNSS数据后,解析模块120可对该GNSS数据进行解析。其中,GNSS数据可包括RMC数据、GGA数据、GSA数据、GSV数据等。在本实施例中,只需要解析RMC数据和GGA数据。其中,RMC数据可包含第一时间信息、日期信息、纬度信息、经度信息、速度信息、对地方位角信息。GGA数据可包含第二时间信息、高度信息、可使用卫星数、坐标修正指示。
[0064] 判断模块130用于判断第一时间信息和第二时间信息是否一致。
[0065] 同步模块140用于当第一时间信息和第二时间信息一致时,将解析后的GNSS数据同步至共享内存中。具体地,若RMC数据包含的第一时间信息和GGA数据包含的第二时间信息一致,那么同步模块140可将RMC数据中的第一时间信息、日期信息、纬度信息、经度信息、速度信息、对地方位角信息,以及GGA数据中的第二时间信息、高度信息、可使用卫星数、坐标修正指示,同步至共享内存中的对应位置。从而使得应用程序能够随时调用共享内存中的GNSS数据,不会产生冲突情况。
[0066] 另外,如图4所示,本发明实施例的GNSS数据同步装置还可包括申请模块150。
[0067] 申请模块150用于在将解析后的GNSS数据同步至共享内存中之前,申请共享内存。共享内存可用于存储解析后的GNSS数据,供应用程序随时调用该GNSS数据,且可避免冲突。
[0068] 举例来说,计算机系统可开启一守护进程,该守护进程可申请一个共享内存。该共享内存可分为八段,其中,4个字节用于存储时间和日期,8个字节用于存储纬度,8个字节用于存储经度,4个字节用于存储高度,4个字节用于存储速度,4个字节用于存储对地方位角,1个字节用于存储可使用卫星数,1个字节用于存储座标修正指示。守护进程可基于NMEA协议,通过EIA-422协议兼容串口读取GNSS发送的GNSS数据。GNSS数据中可包括RMC数据、GGA数据、GSA数据、GSV数据等多组数据。此处只需要解析RMC数据和GGA数据。具体地,解析RMC数据时,RMC数据中的第一时间信息和日期信息,采用POSIX(Portable Operating System Interface,可移植操作系统接口)标准时间格式表示;纬度信息和经度信息以度为单位,用IEEE-754双精度浮点数表示,默认值为0;速度信息以千米/小时为单位,用IEEE-754单精度浮点数表示,默认值为0;对地方位角信息以度为单位,用IEEE-754单精度浮点数表示,默认值为0。在RMC数据解析成功后,可将上述数据保存至共享内存对应的位置中。然后,解析GGA数据。GGA数据中包含第二时间信息,但不包含日期信息;高度信息以米为单位,用IEEE-754单精度浮点数表示,默认值为0;可使用卫星数和坐标修正指示为有符号整数,默认值为-1。
在解析GGA数据成功后,可将第一时间信息与第二时间信息进行比对,两者若一致,则可将解析出的RMC数据和GGA数据,保存至共享内存中的对应位置。应用程序可随时直接从共享内存中调用所需的GNSS数据,从而解决了无法实时获取GNSS数据的问题,避免了多个应用程序调用GNSS数据产生冲突的问题。
[0069] 以下为一组GNSS数据示例:
[0070] $GPGGA,092750.000,5321.6802,N,00630.3372,W,1,8,1.03,61.7,M,55.2,M,,*76
[0071] $GPGSA,A,3,10,07,05,02,29,04,08,13,,,,,1.72,1.03,1.38*0A
[0072] $GPGSV,3,1,11,10,63,137,17,07,61,098,15,05,59,290,20,08,54,157,30*70[0073] $GPGSV,3,2,11,02,39,223,19,13,28,070,17,26,23,252,,04,14,186,14*79[0074] $GPGSV,3,3,11,29,09,301,24,16,09,020,,36,,,*76
[0075] $GPRMC,092750.000,A,5321.6802,N,00630.3372,W,0.02,31.66,280511,,,A*43[0076] $GPGGA,092751.000,5321.6802,N,00630.3371,W,1,8,1.03,61.7,M,55.3,M,,*75
[0077] $GPGSA,A,3,10,07,05,02,29,04,08,13,,,,,1.72,1.03,1.38*0A
[0078] $GPGSV,3,1,11,10,63,137,17,07,61,098,15,05,59,290,20,08,54,157,30*70[0079] $GPGSV,3,2,11,02,39,223,16,13,28,070,17,26,23,252,,04,14,186,15*77[0080] $GPGSV,3,3,11,29,09,301,24,16,09,020,,36,,,*76
[0081] $GPRMC,092751.000,A,5321.6802,N,00630.3371,W,0.06,31.66,280511,,,A*45[0082] 守护进程可逐行对GNSS数据进行分析。第一行数据为
[0083] $GPGGA,092750.000,5321.6802,N,00630.3372,W,1,8,1.03,61.7,M,55.2,M,,*76
[0084] 可解析出第一行数据为GGA数据,解析后可获得时间为09:27:50,高度为61.7米,可使用卫星数为8个,坐标修正指示为1。
[0085] 第二行数据为
[0086] $GPGSA,A,3,10,07,05,02,29,04,08,13,,,,,1.72,1.03,1.38*0A
[0087] 可解析出第二行数据GSA数据,不进行处理。
[0088] 第三行数据为
[0089] $GPGSV,3,1,11,10,63,137,17,07,61,098,15,05,59,290,20,08,54,157,30*70[0090] 第四行数据为
[0091] $GPGSV,3,2,11,02,39,223,19,13,28,070,17,26,23,252,,04,14,186,14*79[0092] 第五行数据为
[0093] $GPGSV,3,3,11,29,09,301,24,16,09,020,,36,,,*76
[0094] 第三行数据、第四行数据和第五行数据均为GSV数据,故不进行处理。
[0095] 第六行数据
[0096] $GPRMC,092750.000,A,5321.6802,N,00630.3372,W,0.02,31.66,280511,,,A*43[0097] 可解析出第六行数据为RMC数据,解析后可获得时间和日期为09:27:50,2011-05-28,纬度为53.361336666666666度,经度为-6.5056200000000000度,速度为0.037039999千米/小时,对地方位角为31.660000度。
[0098] 对比GGA数据与RMC数据中的时间。两者一致,则可将解析出上述数据同步至共享内存。
[0099] 本发明实施例的GNSS数据同步装置,通过读取全球卫星导航系统GNSS的GNSS数据,解析GNSS数据,以获取RMC数据中包含的第一时间信息和GGA数据中包含的第二时间信息,并判断第一时间信息和第二时间信息是否一致,以及若第一时间信息和第二时间信息一致,则将解析后的GNSS数据同步至共享内存中,能够解决无法实时获取GNSS数据的问题,避免多个应用程序调用GNSS数据产生冲突的问题。
[0100] 在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
[0101] 尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。