VR设备的识别方法及其系统与流程

文档序号:11199147阅读:1241来源:国知局
VR设备的识别方法及其系统与流程

本发明涉及虚拟现实技术领域,尤其涉及一种vr设备的识别方法及其系统。



背景技术:

虚拟现实(virtualreality,简称vr)技术在近两年发展迅速,在医疗、教育、娱乐、新闻、时尚、购物、旅游、房地产、军事训练等领域有着广泛的应用前景,google、facebook、samsung、htc、3glasses、暴风影音、北京蚂视科技、小鸟看看等各大企业纷纷加入,出现cardboard、oculusrift、htcvive、gearvr、3glassess1、暴风靡镜、antvrkit、piconeo各种vr设备,但目前没有形成统一的接口,硬件配置本参差不齐,以至于当前业内没有一款能兼容多种vr设备的测试工具。

而要兼容多种vr设备,首先必须支持自动识别多种设备。当前市面上并没有相关技术应用于pcvr设备自动识别。很多测试平台也只针对测试vr资源,没有涉及到设备,也就没有pcvr设备自动识别技术。



技术实现要素:

本发明所要解决的技术问题是:提出一种vr设备的识别方法及其系统,可进行自动识别,且通用性强。

为了解决上述技术问题,本发明采用的技术方案为:一种vr设备的识别方法,包括:

遍历与vr设备连接的计算机的显示设备的设备编号;

根据所述设备编号,在注册表中获取对应的显示设备信息,所述显示设备信息包括扩展显示标识数据;

根据所述扩展显示标识数据,解析得到所述显示设备的设备名;

若所述设备名与预设的vr设备信息库中的一vr设备的设备名匹配,则获取并加载所述一vr设备的动态链接库;

调用所述动态链接库中的设备初始化接口运行所述显示设备。

本发明还涉及一种vr设备的识别系统,包括:

遍历模块,用于遍历与vr设备连接的计算机的显示设备的设备编号;

第一获取模块,用于根据所述设备编号,在注册表中获取对应的显示设备信息,所述显示设备信息包括扩展显示标识数据;

解析模块,用于根据所述扩展显示标识数据,解析得到所述显示设备的设备名;

第二获取模块,用于若所述设备名与预设的vr设备信息库中的一vr设备的设备名匹配,则获取并加载所述一vr设备的动态链接库;

调用模块,用于调用所述动态链接库中的设备初始化接口运行所述显示设备。

本发明的有益效果在于:pcvr设备有两种模式:扩展模式(extendedmode)和直连模式(directmode);当vr设备处于扩展模式时,vr设备仅作为pc的通用显示设备,和显示器没有区别。而由于计算机每插入一个新的显示设备,显示设备信息(包含edid)都会被记录下来,并且当显示设备拔下来不会自动消失,所以注册表目录下包含了历史的所有显示设备信息。同时,edid(extendeddisplayidentificationdata,扩展显示标识数据)中的第三个dtd(detailedtimingdescription,显示器描述符)块中记录了显示设备的设备名。因此,当vr设备连接计算机时,可以从注册表中获取显示设备信息,再从显示设备信息中的edid中获取设备名,然后根据设备名从vr设备信息库中获取与所述vr设备匹配的动态链接库,通过调用动态链接库中的设备初始化接口即可运行所述vr设备。本发明可对连接计算机的vr设备进行自动识别,且对sdk没有依赖,通用性强。

附图说明

图1为本发明一种vr设备的识别方法的流程图;

图2为本发明实施例一的方法流程图;

图3为本发明实施例二步骤s8的方法流程图;

图4为本发明一种vr设备的识别系统的结构示意图;

图5为本发明实施例三的系统结构示意图。

标号说明:

1、遍历模块;2、第一获取模块;3、解析模块;4、第二获取模块;5、调用模块;6、注册模块;

61、获取单元;62、确定单元;63、导入单元;64、保存单元。

具体实施方式

为详细说明本发明的技术内容、所实现目的及效果,以下结合实施方式并配合附图详予说明。

本发明最关键的构思在于:从vr设备信息库中匹配得到vr设备对应的动态链接库。

请参阅图1,一种vr设备的识别方法,包括:

遍历与vr设备连接的计算机的显示设备的设备编号;

根据所述设备编号,在注册表中获取对应的显示设备信息,所述显示设备信息包括扩展显示标识数据;

根据所述扩展显示标识数据,解析得到所述显示设备的设备名;

若所述设备名与预设的vr设备信息库中的一vr设备的设备名匹配,则获取并加载所述一vr设备的动态链接库;

调用所述动态链接库中的设备初始化接口运行所述显示设备。

从上述描述可知,本发明的有益效果在于:可对连接计算机的vr设备进行自动识别。

进一步地,所述“根据所述扩展显示标识数据,解析得到所述显示设备的设备名”之后,进一步包括:

若所述设备名不与vr设备信息库中的任一vr设备的设备名匹配,则注册所述vr设备。

进一步地,所述“注册所述vr设备”具体为:

获取当前连接计算机的显示设备;

根据所述显示设备的设备名,确定vr设备;

导入所述vr设备的动态链接库,并将所述动态链接库保存至预设的目录下;

将所述vr设备的设备名及其动态链接库的库名保存至vr设备信息库中。

由上述描述可知,通过将新的vr设备注册到vr设备信息库中,丰富vr设备信息库中的信息,不断积累过后,后续可识别几乎所有的vr设备。

进一步地,所述“遍历与vr设备连接的计算机的显示设备的设备编号”具体为:

通过enumdisplaydevices系统接口遍历与vr设备连接的计算机的显示设备的设备编号。

请参照图4,本实施例还提出一种vr设备的识别系统,包括:

遍历模块,用于遍历与vr设备连接的计算机的显示设备的设备编号;

第一获取模块,用于根据所述设备编号,在注册表中获取对应的显示设备信息,所述显示设备信息包括扩展显示标识数据;

解析模块,用于根据所述扩展显示标识数据,解析得到所述显示设备的设备名;

第二获取模块,用于若所述设备名与预设的vr设备信息库中的一vr设备的设备名匹配,则获取并加载所述一vr设备的动态链接库;

调用模块,用于调用所述动态链接库中的设备初始化接口运行所述显示设备。

进一步地,还包括:

注册模块,用于若所述设备名不与vr设备信息库中的任一vr设备的设备名匹配,则注册所述vr设备。

进一步地,所述注册模块包括:

获取单元,用于获取当前连接计算机的显示设备;

确定单元,用于根据所述显示设备的设备名,确定vr设备;

导入单元,用于导入所述vr设备的动态链接库,并将所述动态链接库保存至预设的目录下;

保存单元,用于将所述vr设备的设备名及其动态链接库的库名保存至vr设备信息库中。

进一步地,所述遍历模块具体用于通过enumdisplaydevices系统接口遍历与vr设备连接的计算机的显示设备的设备编号。

实施例一

请参照图2,本发明的实施例一为:一种vr设备的识别方法,包括如下步骤:

s1:遍历与vr设备连接的计算机的显示设备的设备编号;进一步地,可通过enumdisplaydevices系统接口遍历得到所述设备编号。

s2:根据所述设备编号,在注册表中获取对应的显示设备信息,所述显示设备信息包括扩展显示标识数据。

s3:根据所述扩展显示标识数据,解析得到所述显示设备的设备名;

s4:判断所述设备名是否与预设的vr设备信息库中的一vr设备的设备名匹配,若是,执行步骤s5,若否,即所述设备名不与vr设备信息库中的任一vr设备的设备名匹配,则执行步骤s7。所述vr设备信息库中保存了多个vr设备的设备名及其对应的动态链接库的库名的关联关系;这些关联关系可以预先存储在vr设备信息库中,也可以每当检测到新的vr设备时即进行注册得到。

s5:获取并加载所述一vr设备的动态链接库;即根据关联关系,获取并对应所述vr设备的动态链接库,并加载所述动态链接库。

s6:调用所述动态链接库中的设备初始化接口运行所述显示设备。

s7:判断遍历是否结束,若否,则执行步骤s1,若是,则执行步骤s8。

s8:注册所述vr设备;即将所述vr设备注册至vr设备信息库中。

edid(extendeddisplayidentificationdata,扩展显示标识数据)是一种vesa标准数据格式,其中包含有关显示器信息及其性能的参数,包括供应商信息、显示器名、最大图像大小、颜色设置、厂商预设置、频率范围限制以及序列号的字符串。edid包含128bytes的基本edid和128bytes的扩展edid,其中,扩展部分不是必须有的。edid有四个dtd(detailedtimingdescription,详细时序描述)块,每块的大小为18bytes,dtd#3(也叫显示器描述符)用来描述显示器的其他特性(显示器名称、最大频率范围、序列号等),目前强制用于描述显示器名称,dtd#3块的各个字段定义如表1所示。表1为dtd#3块字段定义表。

表1

当前,头戴式pcvr设备有两种模式:扩展模式(extendedmode)和直连模式(directmode)。当vr设备处于扩展模式时,vr设备仅作为pc的通用显示设备,和显示器没有区别。直连模式不是作为pc的通用显示设备,而是显卡直接把画面渲染数据传输到vr设备上,而没有经过系统monitorgui接口,效率更高。因此,本实施例适用于扩展模式下的vr设备,但其仅仅作为显示设备被识别,并不是vr设备,所以还必须识别是哪一款vr设备。

由于每插入一个新的显示设备,显示设备信息(包含edid)都会被记录下来,并且当显示设备拔下来不会自动消失,所以主机的注册表display目录下包含了历史的所有显示设备信息。因此,先通过enumdisplaydevices系统接口遍历当前主机的所有显示设备id;然后通过当前显示设备id,找到在注册表中对应的显示设备目录,进一步找到对应edid;通过edid数据结构,解析出显示设备名(若是vr设备,则是vr设备名);通过找到的设备名,与vr设备信息库的设备名逐个匹配,若匹配成功,则在vr设备信息库中找出对应vr设备的dll(动态链接库)名称并加载dll;最后由vr设备dll中的设备初始化接口进行初始化,完成vr设备识别。

本实施例可对连接计算机的vr设备进行自动识别,且对sdk没有依赖,通用性强。

实施例二

本实施例是实施例一中步骤s8的进一步拓展。

如图3所示,所述步骤s8具体包括:

s81:获取当前连接计算机的显示设备;同样的,可通过enumdisplaydevices系统接口列出当前连接计算机的所有显示设备。

s82:根据所述显示设备的设备名,确定vr设备;enumdisplaydevices系统接口列出的显示设备包括计算机的显示器和vr设备,根据设备名选择vr设备。

s83:导入所述vr设备的动态链接库,并将所述动态链接库保存至预设的目录下。

s84:将所述vr设备的设备名及其动态链接库的库名保存至vr设备信息库中。

本实施例通过将新的vr设备注册到vr设备信息库中,丰富vr设备信息库中的信息,不断积累过后,后续可识别几乎所有的vr设备。

实施例三

请参照图5,本实施例是对应上述实施例的一种vr设备的识别系统,包括:

遍历模块1,用于遍历与vr设备连接的计算机的显示设备的设备编号;

第一获取模块2,用于根据所述设备编号,在注册表中获取对应的显示设备信息,所述显示设备信息包括扩展显示标识数据;

解析模块3,用于根据所述扩展显示标识数据,解析得到所述显示设备的设备名;

第二获取模块4,用于若所述设备名与预设的vr设备信息库中的一vr设备的设备名匹配,则获取并加载所述一vr设备的动态链接库;

调用模块5,用于调用所述动态链接库中的设备初始化接口运行所述显示设备。

进一步地,还包括:

注册模块6,用于若所述设备名不与vr设备信息库中的任一vr设备的设备名匹配,则注册所述vr设备。

进一步地,所述注册模块6包括:

获取单元61,用于获取当前连接计算机的显示设备;

确定单元62,用于根据所述显示设备的设备名,确定vr设备;

导入单元63,用于导入所述vr设备的动态链接库,并将所述动态链接库保存至预设的目录下;

保存单元64,用于将所述vr设备的设备名及其动态链接库的库名保存至vr设备信息库中。

进一步地,所述遍历模块1具体用于通过enumdisplaydevices系统接口遍历与vr设备连接的计算机的显示设备的设备编号。

综上所述,本发明提供的一种vr设备的识别方法及其系统,当vr设备连接计算机时,可以从注册表中获取显示设备信息,再从显示设备信息中的edid中获取设备名,然后根据设备名从vr设备信息库中获取与所述vr设备匹配的动态链接库,通过调用动态链接库中的设备初始化接口即可运行所述vr设备。本发明可对连接计算机的vr设备进行自动识别,且对sdk没有依赖,通用性强。

以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等同变换,或直接或间接运用在相关的技术领域,均同理包括在本发明的专利保护范围内。

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