一种多进程并发差分解算服务器、方法及导航系统与流程

文档序号:12592719阅读:205来源:国知局
一种多进程并发差分解算服务器、方法及导航系统与流程

本发明涉及导航技术领域,特别涉及一种多进程并发差分解算服务器、方法及导航系统。



背景技术:

当前,随着移动互联网设备、通信技术以及全球定位技术的发展,越来越多的智能设备终端内部集成了全球定位芯片,终端用户通过携带全球定位芯片的智能设备,能够随时获知自己当前所处的地理位置或者导航信息,极大地方便了户外出行。

为了提高用户位置的定位精度,当前的全球定位系统中通常集成了差分解算服务器,差分解算服务器能够通过差分解算来对用户的定位位置进行修正,具有广阔的应用前景。然而,当前的差分解算服务器在进行差分解算时,一次只能对单个用户终端通过互联网发送的导航数据进行差分解算,这样大幅限制了差分解算的效率,影响了用户体验。

综上所述可以看出,如果提升差分解算服务器的解算效率是目前有待解决的问题。



技术实现要素:

有鉴于此,本发明的目的在于提供一种多进程并发差分解算服务器、方法及导航系统,提升了差分解算服务器的解算效率。其具体方案如下:

一种多进程并发差分解算服务器,包括:

数据获取模块,用于并行接收N个用户终端通过互联网发送的导航数据流,得到N份导航数据流,N为正整数,并在接收到任一用户终端发送的导航数据流时,获取当前时刻下卫星导航基准站中的基准站数据流;

差分解算模块,用于通过N个解算进程,一对一地调取位于解算函数库中的N个解算函数,利用所述N个解算函数,分别对所述N份导航数据流中的每份导航数据流以及相应的基准站数据流进行差分解算,得到N份解算结果;

结果发送模块,用于将所述N份解算结果发送至相应的用户终端。

优选的,所述差分解算模块包括:

进程生成单元,用于当所述N个用户终端中的任一用户终端与所述数据获取模块完成网络通讯连接,则生成与该用户终端对应的解算进程,相应地得到所述N个解算进程;

函数调取单元,用于通过所述N个解算进程,一对一地调取位于所述解算函数库中的解算函数,得到所述N个解算函数;

差分解算单元,用于利用所述N个解算函数,分别对所述N份导航数据流中的每份导航数据流以及相应的基准站数据流进行差分解算,得到所述N份解算结果。

优选的,所述进程生成单元,具体用于当任一用户终端与所述数据获取模块完成网络通讯连接,则利用Python提供的subprocess.Popen函数生成与该用户终端对应的解算进程。

优选的,所述解算函数库为对解算函数集进行编译以及链接处理后生成的SO文件,其中所述解算函数集为包含基于C语言或C++语言生成的解算函数的集合。

优选的,所述服务器还包括:

数据共享模块,用于将所述数据获取模块获取到的导航数据流和基准站数据流映射至位于内存中的共享区域,以便所述差分解算模块在进行差分解算的过程中从所述共享区域中读取相应的数据进行差分解算。

优选的,所述数据共享模块,具体用于通过Linux中的mmap函数,将所述数据获取模块获取到的导航数据流和基准站数据流映射至位于所述共享区域。

本发明还公开了一种多进程并发差分解算方法,包括:

并行接收N个用户终端通过互联网发送的导航数据流,得到N份导航数据流,N为正整数,并在接收到任一用户终端发送的导航数据流时,获取当前时刻下卫星导航基准站中的基准站数据流;

通过N个解算进程,一对一地调取位于解算函数库中的N个解算函数;

利用所述N个解算函数,分别对所述N份导航数据流中的每份导航数据流以及相应的基准站数据流进行差分解算,得到N份解算结果;

将所述N份解算结果发送至相应的用户终端。

优选的,在所述通过N个解算进程,一对一地调取位于解算函数库中的N个解算函数之前,还包括:

当建立与所述N个用户终端中的任一用户终端的网络通讯连接,则利用Python提供的subprocess.Popen函数生成与该用户终端对应的解算进程,相应地得到所述N个解算进程。

优选的,所述解算函数库为对解算函数集进行编译以及链接处理后生成的SO文件,其中所述解算函数集为包含基于C语言或C++语言生成的解算函数的集合。

优选的,在进行差分解算之前,所述方法还包括:

通过Linux中的mmap函数,将获取到的导航数据流和基准站数据流映射至位于内存中的共享区域,以便在进行差分解算的过程中从所述共享区域中读取相应的数据进行差分解算。

本发明进一步公开了一种导航系统,包括前述的多进程并发差分解算服务器。

本发明中,多进程并发差分解算服务器,包括:数据获取模块,用于并行接收N个用户终端通过互联网发送的导航数据流,得到N份导航数据流,并在接收到任一用户终端发送的导航数据流时,获取当前时刻下卫星导航基准站中的基准站数据流;差分解算模块,用于通过N个解算进程,一对一地调取位于解算函数库中的N个解算函数,利用上述N个解算函数,分别对上述N份导航数据流中的每份导航数据流以及相应的基准站数据流进行差分解算,得到N份解算结果;结果发送模块,用于将上述N份解算结果发送至相应的用户终端。可见,本发明提供的差分解算服务器能够通过调取解算函数库中的多个解算函数,对多个用户终端通过互联网发送的多份导航数据进行差分解算,由此可见,本发明的差分解算服务器实现了对多个用户终端的导航数据进行并行的差分解算,从而提升了差分解算服务器的解算效率。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1为本发明实施例公开的一种多进程并发差分解算服务器结构示意图;

图2为本发明实施例公开的一种多进程并发差分解算方法流程图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明实施例公开了一种多进程并发差分解算服务器,参见图1所示,上述差分解算服务器包括数据获取模块11、差分解算模块12和结果发送模块13;其中,

数据获取模块11,用于并行接收N个用户终端通过互联网发送的导航数据流,得到N份导航数据流,N为正整数,并在接收到任一用户终端发送的导航数据流时,获取当前时刻下卫星导航基准站中的基准站数据流。

可以理解是,上述N个用户终端可以是指同时通过互联网发送导航数据流的多个用户终端,也可以是指在预设的短时间段范围内依次通过互联网发送导航数据流的多个用户终端。另外,上述用户终端的种类是指互联网终端,例如具有全球定位功能的智能手机、智能穿戴终端或平板电脑等移动互联网终端。其次,上述数据获取模块11在任一时刻下获取到某份导航数据流后,则从卫星导航基准站中获取该时刻下对应的基准站数据流。

差分解算模块12,用于通过N个解算进程,一对一地调取位于解算函数库中的N个解算函数,利用上述N个解算函数,分别对上述N份导航数据流中的每份导航数据流以及相应的基准站数据流进行差分解算,得到N份解算结果。

其中,上述每一个解算函数对应一份导航数据流。另外,上述N个解算函数中可以包括相同的解算函数,也可以包括不同的解算函数。

可以理解的是,上述任一解算进程中可维护一个与自身进程状态相关的状态表格,该状态表格中记录该解算进程的状态。

结果发送模块13,用于将上述N份解算结果发送至相应的用户终端。

本发明实施例中,多进程并发差分解算服务器,包括:数据获取模块,用于并行接收N个用户终端通过互联网发送的导航数据流,得到N份导航数据流,并在接收到任一用户终端发送的导航数据流时,获取当前时刻下卫星导航基准站中的基准站数据流;差分解算模块,用于通过N个解算进程,一对一地调取位于解算函数库中的N个解算函数,利用上述N个解算函数,分别对上述N份导航数据流中的每份导航数据流以及相应的基准站数据流进行差分解算,得到N份解算结果;结果发送模块,用于将上述N份解算结果发送至相应的用户终端。可见,本发明实施例提供的差分解算服务器能够通过调取解算函数库中的多个解算函数,对多个用户终端通过互联网发送的多份导航数据进行差分解算,由此可见,本发明实施例的差分解算服务器实现了对多个用户终端的导航数据进行并行的差分解算,从而提升了差分解算服务器的解算效率。

本发明实施例公开了一种具体的多进程并发差分解算服务器,相对于上一实施例,本实施例对技术方案作了进一步的说明和优化。具体的:

上一实施例中的差分解算模块,具体可以包括进程生成单元、函数调取单元和差分解算单元;其中,

进程生成单元,用于当上述N个用户终端中的任一用户终端与数据获取模块完成网络通讯连接,则生成与该用户终端对应的解算进程,相应地得到N个解算进程。

也即,本实施例通过网络通讯连接事件来触发相应解算进程的生成,一旦某一用户终端与上一实施例中公开的数据获取模块完成网络通讯连接,则生成与该用户终端对应的解算进程。当上述N个用户终端均与上述数据获取模块建立了网络通讯连接,上述进程生成单元相应地生成了N个解算进程。

函数调取单元,用于通过上述N个解算进程,一对一地调取位于解算函数库中的解算函数,得到N个解算函数。

差分解算单元,用于利用上述N个解算函数,分别对N份导航数据流中的每份导航数据流以及相应的基准站数据流进行差分解算,得到N份解算结果。

其中,上述进程生成单元,具体用于当任一用户终端与数据获取模块完成网络通讯连接,则利用Python提供的subprocess.Popen函数生成与该用户终端对应的解算进程。需要说明的是,上述Python是一种常用的面向对象、解释型计算机程序设计语言。

进一步的,上述解算函数库具体为对解算函数集进行编译以及链接处理后生成的SO文件,其中,上述解算函数集为包含基于C语言或C++语言生成的解算函数的集合。

另外,本实施例中的多进程并发差分解算服务器,还进一步包括:

数据共享模块,用于将上述数据获取模块获取到的导航数据流和基准站数据流映射至位于内存中的共享区域,以便差分解算模块在进行差分解算的过程中从共享区域中读取相应的数据进行差分解算。当上述差分解算模块从上述共享区域中读取数据来进行差分解算时,由于上述共享区域位于数据读写速率较快的内存中,这样有利于加快差分解算整体过程的处理速度。

进一步的,上述数据共享模块,具体用于通过Linux中的mmap函数,将上述数据获取模块获取到的导航数据流和基准站数据流映射至位于共享区域,从而将导航数据流和基准站数据流保存在上述共享区域。

相应的,本发明实施例还公开了一种多进程并发差分解算方法,参见图2所示,上述方法包括:

步骤S21:并行接收N个用户终端通过互联网发送的导航数据流,得到N份导航数据流,N为正整数,并在接收到任一用户终端发送的导航数据流时,获取当前时刻下卫星导航基准站中的基准站数据流;

步骤S22:通过N个解算进程,一对一地调取位于解算函数库中的N个解算函数;

步骤S23:利用上述N个解算函数,分别对上述N份导航数据流中的每份导航数据流以及相应的基准站数据流进行差分解算,得到N份解算结果;

步骤S24:将上述N份解算结果发送至相应的用户终端。

进一步的,在通过N个解算进程,一对一地调取位于解算函数库中的N个解算函数之前,还包括:当建立与N个用户终端中的任一用户终端的网络通讯连接,则利用Python提供的subprocess.Popen函数生成与该用户终端对应的解算进程,相应地得到N个解算进程。

其中,上述解算函数库具体为对解算函数集进行编译以及链接处理后生成的SO文件,其中解算函数集为包含基于C语言或C++语言生成的解算函数的集合。

另外,在进行差分解算之前,还可以进一步包括:通过Linux中的mmap函数,将获取到的导航数据流和基准站数据流映射至位于内存中的共享区域,以便在进行差分解算的过程中从共享区域中读取相应的数据进行差分解算。

可见,本发明实施例通过调取解算函数库中的多个解算函数,对多个用户终端通过互联网发送的多份导航数据进行差分解算,由此可见,本发明实施例实现了对多个用户终端的导航数据进行并行的差分解算,从而提升了差分解算效率。

进一步的,本发明还公开了一种导航系统,包括前述实施例中公开的多进程并发差分解算服务器,关于该服务器的具体构造可参考前述实施例的相关内容,在此不再赘述。

最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

以上对本发明所提供的一种多进程并发差分解算服务器、方法及导航系统进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1