传感器数据的传输方法及装置、虚拟现实头戴设备与流程

文档序号:12908236阅读:491来源:国知局
传感器数据的传输方法及装置、虚拟现实头戴设备与流程

本发明涉及数据传输技术领域,更具体地,涉及一种传感器数据的传输方法及装置、虚拟现实头戴设备。



背景技术:

传感器是用户和智能硬件设备(例如,虚拟现实头戴设备)交互的一个重要器件。智能硬件设备上运行的软件程序利用传感器(例如,陀螺仪、加速度计)采集到的数据,计算出智能硬件设备在空间中的位置、姿态和运动轨迹等信息,并将计算出的智能硬件设备的位置、姿态和运动轨迹在显示屏上进行显示。从传感器的数据的采集,到根据传感器采集到的数据在显示屏上显示相应的位置、姿态和运动轨迹,整个过程需要的时间为智能硬件设备的延迟时间。从智能硬件设备的性能角度考虑,延迟时间越短,其性能越优越。

以安卓系统为例,智能硬件设备上运行的软件程序通过安卓系统的传感器服务端(sensorservice)获取传感器数据。每个软件程序需要注册一个监听者。该监听者用于监听安卓系统的sensorservice是否获取到新的传感器数据。若监听者监听到sensorservice获取到新的传感器数据,则软件程序从sensorservice读取传感器数据。同时,sensorservice还用于判断监听者的注册数量,根据监听者的注册数量,将获取的传感器数据发送至各个软件程序。监听者和sensorservice执行各自对应的操作指令,都需要调用线程(looper)消息管理进程。而looper消息管理进程可负责管理多个线程的消息队列和消息循环,并不仅限于监听者和sensorservice的调用。因此,在其他线程在调用looper消息管理进程时,使得监听者和sensorservice处于等待状态,这样造成上述提及的延迟时间过长,降低了智能硬件设备的性能。

因此,需要提供一种新的技术方案,针对上述现有技术中存在的技术问题进行改进。



技术实现要素:

本发明的一个目的是提供一种传感器数据的传输方法的新技术方案。

根据本发明的第一方面,提供了一种传感器数据的传输方法,包括:

获取传感器采集到的传感器数据;

判断所述客户端列表是否记录有与服务端已建立连接的客户端的相关信息,其中,所述客户端列表用于记录与服务端已建立连接的客户端的相关信息;

在判断结果是记录有与服务端已建立连接的客户端的相关信息的情况下,将所述传感器数据发送至与所述服务端已建立连接的客户端。

可选地,在判断所述客户端列表是否记录有与所述服务端已建立连接的客户端的相关信息之前,所述方法还包括:

根据接收到的所述客户端的请求消息,更改所述客户端列表记录的客户端的相关信息;其中,

在接收到的客户端的请求消息是建立连接请求消息的情况下,将发送建立连接请求消息的客户端的相关信息保存至所述客户端列表;或者,

在接收到的客户端的请求消息是断开连接请求消息的情况下,将发送断开连接请求消息的客户端的相关信息从所述客户端列表中删除。

可选地,所述客户端的相关信息至少包括:客户端的标识信息、客户端接收传感器数据的传输频率信息。

可选地,获取传感器采集到的传感器数据之后,所述方法还包括:

对所述传感器数据进行转换,得到预定数据格式的传感器数据;

将所述预定数据格式的传感器数据保存至数据队列中;

将所述传感器数据发送至与所述服务端已建立连接的客户端,包括:

从所述数据队列中获取待传输的传感器数据;

根据所述客户端接收传感器数据的传输频率信息,将所述待传输的传感器数据发送至对应的客户端。

可选地,在将所述待传输的传感器数据发送至对应的客户端之后,所述方法还包括:

将所述待传输的传感器数据从所述数据队列中删除。

可选地,在判断结果是未记录有与服务端已建立连接的客户端的相关信息的情况下,所述方法还包括:

将所述传感器数据进行删除。

根据本发明的第二方面,提供了一种传感器数据的传输装置,包括:

获取模块,用于获取传感器采集到的传感器数据;

判断模块,用于判断所述客户端列表是否记录有与服务端已建立连接的客户端的相关信息,其中,所述客户端列表用于记录与服务端已建立连接的客户端的相关信息;

发送模块,用于在判断结果是记录有与服务端已建立连接的客户端的相关信息的情况下,将所述传感器数据发送至所述服务端已建立连接的客户端。

可选地,所述装置还包括:

更改模块,用于根据接收到的所述客户端的请求消息,更改所述客户端列表记录的客户端的相关信息;

其中,所述更改模块还用于:在接收到的客户端的请求消息是建立连接请求消息的情况下,将发送建立连接请求消息的客户端的相关信息保存至所述客户端列表;或者,

在接收到的客户端的请求消息是断开连接请求消息的情况下,将发送断开连接请求消息的客户端的相关信息从所述客户端列表中删除。

可选地,所述装置还包括:

转换模块,用于对所述传感器数据进行转换,得到预定数据格式的传感器数据;

保存模块,用于将所述预定数据格式的传感器数据保存至数据队列中;

所述发送模块还用于:

从所述数据队列中获取待传输的传感器数据;

根据所述客户端接收传感器数据的传输频率信息,将所述待传输的传感器数据发送至对应的客户端。

根据本发明的第三方面,提供了一种虚拟现实头戴设备,包括传感器和上述任一项所述的传输装置,其中,所述传感器将采集的传感器数据发送给所述传输装置。

根据本发明的一个实施例,服务端和客户端之间建立通信连接,并将与服务端已建立通信连接的客户端的相关信息记录在客户端列表中,服务端在获取到传感器数据之后,根据客户端列表是否记录有客户端的相关信息,确定是否将获取的传感器数据发送至对应的客户端,实现了传感器的实时传输。另外,相对于现有技术,本发明不再需要注册监听者,也不需要调用系统的消息管理线程,避免了其他线程调用系统的消息管理线程导致监听者需要等待的问题,进而降低了延迟时间,提高了设备的性能。

通过以下参照附图对本发明的示例性实施例的详细描述,本发明的其它特征及其优点将会变得清楚。

附图说明

被结合在说明书中并构成说明书的一部分的附图示出了本发明的实施例,并且连同其说明一起用于解释本发明的原理。

图1示出了根据本发明一个实施例的传感器数据的传输方法的处理流程图。

图2示出了根据本发明一个实施例的更改客户端列表的处理流程图。

图3示出了根据本发明一个实施例的对获取的传感器数据进行处理的流程示意图。

图4示出了根据本发明一个实施例的传感器数据的传输方法的另一种处理流程图。

图5示出了根据本发明一个实施例的传感器数据的传输装置的结构示意图。

图6示出了根据本发明一个实施例的传感器数据的传输装置的另一种结构示意图。

图7示出了根据本发明一个实施例的虚拟现实头戴设备的结构示意图。

具体实施方式

现在将参照附图来详细描述本发明的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本发明的范围。

以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。

对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。

在这里示出和讨论的所有例子中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它例子可以具有不同的值。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。

本发明的一个实施例提供了一种传感器数据的传输方法。图1示出了根据本发明一个实施例的传感器数据的传输方法的处理流程图。参见图1,该方法至少包括步骤s102至步骤s106。

步骤s102,获取传感器采集到的传感器数据;

步骤s104,判断客户端列表是否记录有与服务端已建立连接的客户端的相关信息,其中,客户端列表用于记录与服务端已建立连接的客户端的相关信息;

步骤s106,在判断结果是记录有与服务器已建立连接的客户端的相关信息的情况下,将传感器数据发送至与服务端已建立连接的客户端。

本发明实施例中,服务端和客户端之间建立通信连接,并将与服务端已建立通信连接的客户端的相关信息记录在客户端列表中,服务端在获取到传感器数据之后,根据客户端列表是否记录有客户端的相关信息,确定是否将获取的传感器数据发送至对应的客户端,实现了传感器的实时传输。另外,相对于现有技术,本发明不再需要注册监听者,也不需要调用系统的消息管理线程,避免了其他线程调用系统的消息管理线程导致监听者需要等待的问题,进而降低了延迟时间,提高了设备的性能。

本发明实施例提供的传感器的传输方法适用于安装有任意类型传感器的智能终端设备,例如,虚拟现实头戴设备。本发明实施例涉及的服务端为智能终端设备的操作系统,客户端为运行在智能终端设备上的各种应用,例如,游戏类应用、视频类应用等。

本发明的一个实施例中,客户端列表用于记录与服务端已建立连接的客户端的相关信息,其中,客户端的相关信息至少包括:客户端的标识信息、客户端接收传感器数据的传输频率信息。客户端接收传感器数据的传输频率信息是指单位时间内客户端可接收传感器数据的数量。例如,在1s内传感器采集到100个数据,某一客户端接收传感器数据的传输频率信息是1s内可接收10个数据,此时,在向该客户端发送传感器数据之前,需要对1s内的100个数据进行处理,即从这100个数据中均匀地筛选出10个数据,并将筛选出的10个数据发送至该客户端。需要说明地是,筛选出的10个数据能够保证计算出这1s内的智能终端设备的位置、姿态和运动轨迹。

本发明的一个实施例中,在判断客户端列表是否记录有与服务端已建立连接的客户端的相关信息之前,根据接收到的客户端的请求消息,可更改客户端列表记录的客户端的相关信息。当服务端接收到客户端的建立连接请求消息时,将发送建立连接请求的客户端的相关信息保存至客户端列表中。当服务端接收到客户端的断开连接请求消息时,将发送断开连接请求消息的客户端的相关信息从客户端列表中删除。

图2示出了根据本发明一个实施例的更改客户端列表的处理流程图。参见图2,更改客户端列表的处理流程图至少包括步骤s202至步骤s212。

步骤s202,接收到客户端的请求消息;

步骤s204,判断客户端的请求消息是否是建立连接的请求消息;

若步骤s204的判断结果为是,则执行步骤s206,将已建立连接的客户端的相关信息保存至客户端列表;

若步骤s204的判断结果为否,则执行步骤s208,判断客户端的请求消息是否是断开连接的请求消息;

若步骤s208的判断结果为是,则执行步骤s210,将断开连接的客户端的相关信息从客户端列表中删除;

若步骤s208的判断结果为否,则执行步骤s212,等待接收客户端的请求消息。

本发明的一个实施例中,在获取传感器采集到的传感器数据之后,对传感器数据进行处理。具体地,对传感器数据进行转换,得到预定数据格式的传感器数据,然后,将预定数据格式的传感器数据保存至数据队列中。图3示出了根据本发明一个实施例的对获取的传感器数据进行处理的流程示意图。参见图3,对获取的传感器数据进行处理的流程示意图至少包括步骤s302至步骤s306。

步骤s302,从传感器节点读取传感器采集到的数据;

步骤s304,将读取的传感器数据转换成预定传感器格式的数据;例如,若服务端为安卓系统,则将读取的传感器数据转换成与安卓系统相适应的传感器格式的数据;

步骤s306,将预定传感器格式的数据加入数据队列中。

本发明的一个实施例中,在判断结果是记录有与服务端已建立连接的客户端的相关信息的情况下,从数据队列中取出待传输的传感器数据,并将其发送至客户端列表记录的客户端。当客户端列表记录的客户端为多个时,将从数据队列中取出的传感器数据一一发送至对应的客户端。根据记录的各个客户端对应的传感器数据的传输频率信息,对待传输的传感器数据进行处理,并将处理后的传感器数据一一发送至对应的客户端。在将待传输的传感器数据成功发送至对应的客户端后,将该传感器数据从数据队列中删除。之后,将数据队列中的下一个待传输的传感器数据发送至客户端列表记录的客户端。

本发明的一个实施例中,在判断结果是未记录有与服务端已建立连接的客户端的相关信息的情况下,将获取的传感器数据进行删除。

需要说明地是,本发明实施例提供的传感器数据的传输方法,获取传感器采集到的传感器数据是实时进行的,将获取的传感器数据发送至客户端也是实时进行的,并且,客户端可是随时与服务端建立连接或者断开连接。上述三部分是并行的,服务端可定义三个线程,分别是读取传感器数据线程、管理客户端线程和发送传感器数据线程。读取传感器数据线程向数据队列中加入传感器数据。当数据队列记录有传感器数据时,发送数据线程从数据队列中取出传感器数据,并将其发送至管理客户端线程记录的客户端。当数据队列未记录有传感器数据时,发送传感器数据线程处于等待状态,当读取传感器数据线程向数据队列中加入数据后,唤醒发送传感器数据线程。

下面以一个具体实施例对本发明提供的传感器数据的传输方法进行进一步说明。图4示出了根据本发明一个实施例的传感器数据的传输方法的另一种处理流程图。参见图4,该方法至少包括步骤s402至步骤s412。

步骤s402,判断数据队列是否加入有传感器数据;

若步骤s402的判断结果为是,则执行步骤s404,从数据队列中取出传感器数据,并将取出的传感器数据从数据队列中删除;

若步骤s404的判断结果为否,则继续执行步骤s402;

步骤s406,判断客户端列表是否记录有与服务端建立连接的客户端的相关信息;

若步骤s406的判断结果为是,则执行步骤s408,将取出的传感器数据发送至客户端列表记录的客户端;

若步骤s406的判断结果为否,则执行步骤s410,将取出的传感器数据进行删除;

步骤s412,客户端利用接收到的传感器数据进行相应运算。

上述步骤s402至步骤s410均是在服务端进行的,步骤s412是在客户端进行的。

基于同一发明构思,本发明还提供了一种传感器数据的传输装置。图5示出了根据本发明一个实施例的传感器数据的传输装置的结构示意图。参见图5,该装置至少包括:获取模块510,用于获取传感器采集到的传感器数据;判断模块520,用于判断客户端列表是否记录有与服务端已建立连接的客户端的相关信息,其中,客户端列表用于记录与服务端已建立连接的客户端的相关信息;发送模块530,用于在判断结果是记录有与服务端已建立连接的客户端的相关信息的情况下,将传感器数据发送至服务端已建立连接的客户端。

参见图6,传感器数据的传输装置还包括:更改模块540,用于根据接收到的客户端的请求消息,更改客户端列表记录的客户端的相关信息。

本发明的一个实施例中,更改模块540还用于:在接收到的客户端的请求消息是建立连接请求消息的情况下,将发送建立连接请求消息的客户端的相关信息保存至客户端列表;或者,在接收到的客户端的请求消息是断开连接请求消息的情况下,将发送断开连接请求消息的客户端的相关信息从客户端列表中删除。

本发明的一个实施例中,客户端的相关信息至少包括:客户端的标识信息、客户端接收传感器数据的传输频率信息。

参见图6,传感器数据的传输装置还包括:转换模块550,用于对传感器数据进行转换,得到预定数据格式的传感器数据;保存模块560,用于将预定数据格式的传感器数据保存至数据队列中;

本发明的一个实施例中,发送模块530还用于:从数据队列中获取待传输的传感器数据;根据客户端接收传感器数据的传输频率信息,将待传输的传感器数据发送至对应的客户端。

本发明的一个实施例中,参见图6,传感器数据的传输装置还包括:第一删除模块570,用于将待传输的传感器数据从数据队列中删除。

参见图6,传感器数据的传输装置还包括:第二删除模块580,用于在判断结果是未记录有与服务端已建立连接的客户端的相关信息的情况下,将传感器数据进行删除。

基于同一发明构思,本发明提供了一种虚拟现实头戴设备。图7示出了根据本发明一个实施例的虚拟现实头戴设备的结构示意图。参见图7,虚拟现实头戴设备700至少包括传感器710和传感器数据的传输装置720。传感器710将采集的传感器数据发送给传感器数据的传输装置720。

本发明可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本发明的各个方面的计算机可读程序指令。

计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、静态随机存取存储器(sram)、便携式压缩盘只读存储器(cd-rom)、数字多功能盘(dvd)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。

这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。

用于执行本发明操作的计算机程序指令可以是汇编指令、指令集架构(isa)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,编程语言包括面向对象的编程语言—诸如smalltalk、c++等,以及常规的过程式编程语言—诸如“c”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(lan)或广域网(wan)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(fpga)或可编程逻辑阵列(pla),该电子电路可以执行计算机可读程序指令,从而实现本发明的各个方面。

这里参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本发明的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。

这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。

也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。

附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。对于本领域技术人员来说公知的是,通过硬件方式实现、通过软件方式实现以及通过软件和硬件结合的方式实现都是等价的。

以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。本发明的范围由所附权利要求来限定。

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