CN106293682A - 通用输入设备驱动器 - Google Patents
通用输入设备驱动器 Download PDFInfo
- Publication number
- CN106293682A CN106293682A CN201510323587.4A CN201510323587A CN106293682A CN 106293682 A CN106293682 A CN 106293682A CN 201510323587 A CN201510323587 A CN 201510323587A CN 106293682 A CN106293682 A CN 106293682A
- Authority
- CN
- China
- Prior art keywords
- control signal
- agreement
- software application
- input device
- input equipment
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- User Interface Of Digital Computer (AREA)
- Stored Programmes (AREA)
Abstract
用于使用虚拟输入设备来创建针对软件应用兼容的控制信号的方法、系统、装置以及具体体现为程序指令的机器可读介质,虚拟输入设备利用来自与软件应用不兼容的远程输入设备的控制信号来创建针对软件应用兼容的控制信号。一些方法创建驱动器,该驱动器从连接到主机系统的输入设备接收遵循第一控制信号协议类型的第一控制信号。驱动器可以充当对第一控制信号的传导,将其传送到软件模块。同时,驱动器可以创建虚拟输入设备,虚拟输入设备对于软件模块表现为产生遵循第二控制信号协议类型的控制信号的设备。驱动器可以在将控制信号传送到软件模块之前,将控制信号从第一控制信号协议类型转换为第二控制信号协议类型。
Description
技术领域
各个实施方式涉及计算机系统,并且更具体地,涉及用于使用虚拟输入设备来创建针对软件应用兼容的控制信号的系统、方法以及机器可读介质,所述虚拟输入设备利用来自与软件应用不兼容的远程输入设备的控制信号来创建针对软件应用兼容的控制信号。
背景技术
许多现代视频游戏可能只能使用遵循特定输入协议的游戏控制器外设来玩,所述特定输入协议与控制游戏进行的计算机应用兼容。例如,一些视频游戏主题可能只能使用遵循人机接口设备(HID)输入协议的游戏控制器来玩,以及一些主题可能只能使用遵循XInput协议(Xbox 360控制器遵循的协议)的控制器来玩。这样导致了对于希望使用单一游戏控制器来玩一系列主题的操作者,在控制现代视频游戏时的大范围的不兼容性。
例如,如果操作者想要在主机系统上玩特定主题,则他们需要首先知道该主题遵循的输入协议、找到遵循该协议的视频游戏控制器、并之后将视频游戏控制器与主机系统连接。如果一段时间以后,他们想要玩遵循不同输入协议的不同主题,则他们必须再一次知道该主题遵循的输入协议、找到遵循该协议的视频游戏控制器、并之后将视频游戏控制器与主机系统连接。
还有一种情况是,操作者购买的新主题不能使用操作者目前拥有的视频游戏控制器来玩,需要他们购买另外的游戏控制器来支持新主题。
以前为解决这个问题的尝试要求操作者去修改视频游戏主题的可执行目录(包含视频游戏主题的可执行程序的文件夹)内的配置文件。
修改视频游戏配置文件会要求具备对输入协议的详细知识,并且要求关于操作者部分的一些技术能力不仅仅在于发现,还在于之后以正确的方式修改正确的文件。操作者造成的错误能够导致游戏主题变得不可玩,例如,在浏览游戏主题的可执行目录时,操作者意外删除或者修改了错误的文件。
可见,解决以上问题的系统和方法是必要的。
发明内容
本公开的某些实施例通常涉及使用虚拟输入设备来创建针对软件应用兼容的控制信号的系统(例如,网络,设备,或设备组件)、方法以及机器可读介质,所述虚拟输入设备利用来自与软件应用不兼容的远程输入设备的控制信号来创建针对软件应用兼容的控制信号。所述系统、方法以及机器可读介质可以从远程输入设备接收符合第一控制信号协议的第一控制信号;利用所述第一控制信号来创建符合由软件应用使用的第二控制信号协议的第二控制信号;以及向所述软件应用传送第二控制信号。
本发明的一个或多个实施例的细节在以下附图以及说明书中进行阐述。本发明的其他特征、对象以及优点将从说明书和附图、以及权利要求书中体现。
附图说明
图1描述主机系统,其中,一个软件模块不支持驱动器提供的控制信号协议。
图2描述主机系统,其中,驱动器接收第一控制信号协议的输入信号、向软件模块传送该信号、以及创建虚拟输入设备,所述虚拟输入设备用于基于所述输入信号输出第二控制信号协议的不同信号。
图3描述主机系统,其中,软件模块与多种控制信号协议类型兼容,并且可以接收优选类型的控制信号。
图4描述主机系统,其中,控制信号已禁用虚拟输入设备的创建。
图5描述主机系统,其中,只有通过虚拟输入设备创建的控制信号提供给软件模块。
图6描述主机系统,其中,驱动器可以接收符合多种控制信号协议类型中的一者的控制信号,以及,将其转换为符合不同协议类型的控制信号。
图7描述主机系统,其中,驱动器可以接收来自于两个或更多个软件模块中的任意软件模块的控制信号,以及,在向输入设备传送所述控制信号之前执行传递或转换。
图8描述驱动器的实施例,该驱动器创建虚拟输入设备来接收来自于输入设备的输入,以及,向软件模块传送输出。
图9示出了利用虚拟输入设备的系统拓扑的高级视图。
图10示出了创建虚拟输入设备的过程。
图11示出了将遵循协议1的控制信号从输入设备传送到需要遵循协议2的控制信号的软件模块的过程。
图12示出了将遵循协议2的控制信号从软件模块传送到需要遵循协议1的控制信号的输入设备的过程。
图13示出了将信号从输入设备传送到软件模块的过程。
图14示出了将控制信号从软件模块传送到输入设备的过程。
附图中相同的参考标记和名称表示相似的元件。
具体实施方式
可以在主机系统上创建驱动器,所述驱动器可以从与主机系统连接的输入设备接收遵循第一控制信号协议类型的第一控制信号。所述驱动器可以将所述第一控制信号直接或经过一个或多个中间驱动器传送到软件模块。同时,所述驱动器可以创建虚拟输入设备,所述虚拟输入设备对于所述软件模块表现为产生遵循第二控制信号协议类型的控制信号的设备。所述驱动器可以在将第一控制信号协议类型的第一控制信号传送到软件模块之前,将那些信号转换为第二控制信号协议类型的控制信号。
同样地,驱动器可以从软件模块接收遵循第一或第二控制信号协议类型的控制信号。如果所述控制信号为第一控制信号协议类型,所述驱动器可以将其直接或经过一个或多个中间驱动器传送到输入设备。如果所述控制信号为第二控制信号协议类型,所述驱动器可以在将其传送到输入设备之前,将其转换为遵循第一协议类型的控制信号。
因此,例如,所述驱动器可以从任意人机接口设备(HID)外设接收输入,以及,对HID外设的输入数据进行转换以与任意其他协议的输出数据匹配。这可能是经由多种连接方法(包括但不限于USB、经典蓝牙、低功耗蓝牙、Wi-Fi、以及移动高清链接(MHL)通信协议)连接到在多个主机(包括但不限于PC、智能电话、平板电脑、游戏控制台)上运行的多种操作系统(包括但不限于Windows、Mac OSX、Linux、Steam OS、Android、iOS、Fire Fox)的外围设备。
现在转向不同的实施例,描述如下。
示例系统
图1描述了主机系统,其中,软件模块中的一者(软件模块B)不支持驱动器(驱动器X)提供的控制信号协议。
在该描述中,操作者连接输入设备(例如,游戏控制器),所述输入设备生成和/或接收遵循一协议(例如,HID)的控制信号,所述协议不被操作者希望使用的软件应用(软件模块B)支持。
例如,软件模块B可以是只可使用遵循XInput协议的游戏控制器来玩的视频游戏,但是操作者已连接了遵循另一协议(例如,HID协议)的控制器。这样,操作者将不能使用已连接的游戏控制器来控制软件模块B。
操作者就此可以选择遵循所述HID协议的不同视频游戏来玩,或者,拔下他们的游戏控制器以及插入遵循XInput控制协议的游戏控制器。
图2描述了主机系统,其中,驱动器(驱动器Y)创建虚拟输入设备,以将遵循协议1的控制信号转换为遵循协议2的控制信号,同时,所述驱动器传递所述遵循协议1的控制信号,以使软件模块能够接入两种类型的控制信号协议。
例如,如果协议1为HID,协议2为XInput,软件模块A是只能通过所述HID协议控制的视频游戏,以及,软件模块B是只能通过XInput协议控制的视频游戏,使用所述驱动器使得两个游戏中的任何一者能够使用相同的输入控制器来玩。当然,除视频游戏之外的其他类型的软件模块也应当被考虑,以使只使用一个设备就可以完成所述两个软件模块的间歇(intermittent)控制。
在图2的实施例下,驱动器Z是中间驱动器,所述中间驱动器可以在主机系统上被启用或不被启用,以执行另外的转换或充当对遵循协议2的控制信号的传导。例如,驱动器Z可以是用于在所述虚拟输入设备与所述软件模块之间提供接口的功能驱动器。
图3描述了主机系统,其中,软件模块与多种控制信号协议类型兼容,以及,优选类型的控制信号可以被选择(例如,被用户输入选择,或基于预定的设置自动选择)。
例如,软件模块A可以基于操作者已知的特定控制信号协议的某些属性,来向操作者给出关于操作者想要使用哪种类型的输入协议的选择。
例如,玩能够使用HID或XInput控制的视频游戏的操作者可以选择使用HID来控制视频游戏,因为它会比XInput协议暴露出更多的动态范围。
图4描述了主机系统,其中,控制信号禁用虚拟输入设备的创建,或者,禁用先前已启用的虚拟输入设备。
在这种情况下,操作者已指示驱动器Y该操作者不需要驱动器Y来创建或使用虚拟输入设备。
在软件模块A能被遵循协议1或协议2的控制信号控制,且操作者想要使用协议1,但软件模块A不允许操作者选择优选的控制信号协议的情况下,操作者可以选择禁用所述虚拟输入设备。
在这种情况下,事实上,禁用所述虚拟输入设备将会迫使软件模块A使用遵循协议1的控制信号。在一实施例中,事实上,启用所述虚拟输入设备将会迫使软件模块A使用遵循协议2的控制信号,尽管遵循协议1的控制信号可用。
图5描述了主机系统,其中,只有虚拟输入设备创建的控制信号而不是初始控制信号提供给所述软件模块。
在该描述中,驱动器Y已创建虚拟输入设备,并且只输出遵循协议2的控制信号,而不输出遵循协议1的控制信号。
在软件模块B能被遵循协议1或协议2的控制信号控制,并且操作者想要使用协议2,但软件模块B不允许操作者选择优选的控制信号协议的情况下,操作者可以选择禁用遵循协议1的控制信号的传导。
在这种情况下,事实上,禁用遵循协议1的控制信号的传导将会迫使软件模块B使用遵循协议2的控制信号。在一实施例中,事实上,启用遵循协议1的控制信号的传导将会迫使软件模块A使用遵循协议1的控制信号,尽管遵循协议2的控制信号可用。
图6描述了主机系统,其中,驱动器可以接收遵循多种控制信号协议类型中的一者的控制信号,以及,将所述控制信号转换为多种不同的控制信号协议类型中的一者。
例如,驱动器Y可以接入列表/目录/数据库,所述列表/目录/数据库包含可被创建的多个虚拟输入设备,并且还包含输出的控制信号协议类型。此外,这种虚拟输入设备以及控制信号协议类型的集合(collection)可以通过不同方法进行更新以及修改,所述方法包括但不限于软件/固件更新、操作者输入、经过操作者许可的启用、和/或通过互联网连接进行的更新。考虑到在和当另外的输入协议出现时,这些另外的输入协议被支持,因此,提供针对单一游戏外设的输入无关的解决方案。
图7描述了主机系统,其中,驱动器可以从软件模块接收第一或第二控制信号协议类型的控制信号。如果控制信号遵循第一控制信号协议类型,所述驱动器可以充当传导,并将所述控制信号直接或经过一个或多个中间驱动器传送到输入设备。如果控制信号遵循第二控制信号协议类型,所述驱动器可以在将其直接或经过一个或多个中间驱动器传送到输入设备之前,将所述控制信号转换为所述第一控制信号协议类型。
例如,视频游戏控制器可以生成由正在进行的视频游戏的状态变化引发的触觉反馈。如果输入设备不支持遵循XInput协议的控制信号,则视频游戏中产生并从视频游戏输出的所述控制信号(如遵循所述XInput协议的控制信号)可以在驱动器Y中被转换为由正在使用的输入设备支持的控制信号。
图8描述了驱动器的实施例,其中,该驱动器创建虚拟输入设备。该驱动器可以接收来自输入设备的控制信号、对所述控制信号进行转换、并将转换后的控制信号传送到软件模块(例如,应用层/用户模式)。
在所述驱动器中,存在第一物理总线驱动器(PDO 1),所述第一物理总线驱动器(PDO 1)接收来自输入设备的第一协议类型的控制信号。另外,在所述驱动器中,存在第一功能驱动器,所述第一功能驱动器接收来自物理总线驱动器的第一协议类型的第一控制信号,并可以对所述第一控制信号进行转换和/或同时将他们传送到软件模块。
此外,在所述驱动器中,存在第二总线驱动器(PDO 2),所述第二总线驱动器(PDO 2)实施虚拟枚举总线,所述第一功能驱动器可以将一个或多个虚拟/枚举设备添加到所述虚拟枚举总线中,以及将一个或多个虚拟/枚举设备从所述虚拟枚举总线中移除。
图8还示出了主机系统已与虚拟输入设备相关联的第二功能驱动器,在该示例中,所述虚拟输入设备由第一功能驱动器创建并添加到所述虚拟枚举总线(PDO 2)。该第二功能驱动器还可以在将从所述驱动器输出的控制信号传送到软件模块之前,对所述控制信号进行转换。
图9描述了利用虚拟输入设备的系统拓扑的高级视图。
如图所示,输入设备(例如遵循HID协议的游戏控制器)可以与在多个主机(包括但不限于PC、智能电话、平板电脑、游戏控制台)上运行的多种主机系统(包括但不限于Windows、Mac OSX、Linux、Steam OS、Android、iOS、Fire Fox)连接,以及通过多种方法与主机系统通信,所述方法包括但不限于USB、经典蓝牙、低功耗蓝牙、Wi-Fi、以及移动高清链接(MHL)通信协议。
初始的HID输入数据提供给应用层,以使任意遵循HID协议的软件模块可以接收来自输入设备的控制信号,和/或发送控制信号到输入设备。
同时,为了执行HID协议信号到遵循非HID协议的控制信号的转换,创建虚拟输入设备,所述非HID协议包括但不限于XInput、GIP、以及其他协议。
驱动层可以创建并配置与虚拟输入设备相关联的驱动器,并因此允许应用层接入由虚拟设备创建的非HID控制信号。
示例过程
现在参见图10,图10示出了在传送遵循第一控制信号协议类型的控制信号的同时创建虚拟输入设备的过程。
如图所示,操作者首先将输入设备与主机系统连接。所述连接可以通过USB、经典蓝牙、低功耗蓝牙、Wi-Fi、移动高清链接通信协议、或任何适合在输入设备与主机系统之间传输控制信号的方法实现。例如,一种可能是,通过一个或多个中间有线或无线设备将输入设备连接到主机系统。
一旦得知已经与输入设备建立了连接,主机系统向输入设备查询标识参数。这些参数可以是数值或字符的唯一组合,其标识所述输入设备的制造商、设备的型号、和/或多个其他识别信息。
接下来,主机系统确定是否已为具有所述参数的设备安装了驱动器。如果未安装相关联的驱动器,所述主机系统能够发起安装过程,所述安装过程可以完全自动,或需要操作者确认的一个步骤或多个步骤(输入或检索操作者的凭据,输入或检索许可证明,关于安装哪一驱动器的决定,和/或识别主机系统上相关联的驱动器的位置、本地网络、存储媒介、互联网、或者输入设备自己)。
在已有/新安装的驱动器已被初始之后,配置所述驱动器。配置阶段可以包括主机系统与输入设备之间的通信,同时加载存储的状态和/或配置参数。所述驱动器接下来被“启动”-例如,被激活,此时,所述驱动器对于主机系统表现为遵循第一协议类型(例如,HID)的控制信号的接口,并且提供给软件模块以从输入设备接收控制信号和/或向输入设备发送控制信号。
在一个实施例中,虚拟输入设备的创建一直被启用,而在其他实施例中,所述驱动器可以接收命令信号或参考之前存储的状态来确定虚拟输入设备的创建是否已被启用。
如果虚拟输入设备的创建被启用,所述驱动器创建虚拟动态枚举总线-例如,类似物理动态枚举总线(如,USB、PCI)的功能、但使得驱动器能够将虚拟/枚举子设备连接到虚拟总线、以及将虚拟/枚举子设备从虚拟总线上断开的软件实施。
接下来,所述驱动器创建虚拟输入设备,并配置其标识参数以与产生遵循第二控制协议的控制信号的设备相对应。
例如,虚拟输入设备可以被配置有制造商和设备参数,以使其模拟能发送和/或接收遵循XInput协议的控制信号的设备。
接下来,所述驱动器添加虚拟输入设备(“插入”)到虚拟动态枚举总线。一旦获悉到所述设备已经出现,主机系统查询设备以得到标识符,就如所述虚拟设备与物理动态枚举总线建立了物理连接一样。这些标识符可以是数值或字符的唯一组合,其标识所述输入设备的制造商、设备的型号、和/或多个其他识别信息。
接下来,主机系统确定是否已为具有所述识别信息的设备安装了驱动器。如果未安装相关联的驱动器,主机系统可以发起安装过程,所述安装过程可以完全自动,或需要操作者确认的一个步骤或多个步骤(输入或检索操作者的凭据,输入或检索许可证明,关于安装哪一驱动器的决定,和/或识别主机系统上相关联的驱动器的位置、本地网络、存储媒介、互联网、或者设备自己)。
在已有/新安装的驱动器已被初始之后,配置所述驱动器。所述驱动器接下来被“启动”-例如,被激活,此时,所述驱动器对于主机系统表现为遵循第二协议类型(例如,XInput)的控制信号的接口,并且提供给软件模块以从虚拟输入设备接收控制信号和/或向虚拟输入设备发送控制信号。
现在参见图11,图11示出了将遵循第一协议(协议1)的控制信号从输入设备传送到需要遵循第二协议(协议2)的控制信号的软件模块的过程。
如图所示,已经创建了虚拟输入设备并已将所述虚拟输入设备添加到虚拟枚举总线的驱动器现在可以接收来自输入设备的遵循协议1(例如,HID)的第一控制信号、将它们转换为遵循协议2(例如,XInput)的第二控制信号、并之后向需要遵循协议2的控制信号的软件模块传送第二控制信号。
现在参见图12,图12示出了将控制信号从软件模块传送到输入设备的过程。
如图所示,已经创建了虚拟输入设备并已经将所述虚拟输入设备添加到虚拟枚举总线的驱动器现在可以接收来自软件模块的遵循协议2(例如,XInput)的第一控制信号、将第一控制信号转换为遵循协议1(例如,HID)的第二控制信号、并之后向需要遵循协议1的控制信号的输入设备传送第二控制信号。
现在参见图13,图13示出了将信号从输入设备传送到软件模块的过程。
如图所示,在该实施例中,驱动器从输入设备(例如游戏控制器)接收遵循协议1的第一控制信号。
接下来,所述驱动器参考之前存储的或编译到驱动器中的一个或多个配置状态来确定所述驱动器是否具有将第一控制信号转换为遵循第二控制信号协议类型的第二控制信号的能力。如果所述驱动器不能/不被启用来执行转换,其可以用信号向操作者发送失败或警告状态消息。
如果所述驱动器能够将第一控制信号转换为第二控制信号,其可以接入存储在易失性或非易失性存储器、本地网络、互联网、或者多种存储装置中的数据库、配置文件、状态,以确定如何执行第一控制信号到第二控制信号的转换。
此外,所述驱动器可以查找以及利用关于控制信号的转换的不同的偏好,和/或所述驱动器可以查找以及利用与协议2有关的偏好。
所述偏好可以在易失性或非易失性存储器中、在本地网络、互联网、或多种存储装置上存储为配置文件、存储为状态。例如,游戏主题的单独的、共享的或默认偏好可以被在线存储,以及,稍后可以由一个操作者或一组操作者在玩所述游戏主题时接入。
这些偏好可以包含用于执行遵循协议1的控制信号到遵循协议2的控制信号的转换的表格、状态机、或者其他指令。
此外,所述偏好可以包含由操作者对默认的协议转换做出的修改。
例如,操作者可能更偏好功能通常被输入设备上的特定按钮触发,而不是被输入设备上的不同按钮触发。
或者,在选择要加载哪个或哪些虚拟输入设备时,所述驱动器可能使用当前加载的偏好中的存储值、基于所述操作者最近常使用的类型来创建虚拟输入设备。
在执行与给定协议转换有关的偏好一样多的查找之后,所述驱动器接下来执行第一控制信号到第二控制信号的转换,以及,将他们直接或经过一个或多个中间驱动器提供给软件模块。
现在参见图14,图14示出了将信号从软件模块传送到输入设备的过程。
如图所示,所示驱动器从软件模块(例如视频游戏)接收遵循协议2的第一控制信号。
接下来,所述驱动器参考之前存储的或编译到驱动器中的一个或多个配置状态来确定所述驱动器是否具有将第一控制信号转换为遵循第二控制信号协议(协议1)的第二控制信号的能力。如果所述驱动器不能/不被启用来执行转换,其可以用信号向操作者发送失败或警告状态消息。
如果所述驱动器能够将所述第一控制信号转换为第二控制信号,其可以接入存储在易失性或非易失性存储器、本地网络、互联网、或多种存储装置中的数据库、配置文件、状态,以确定如何执行第一控制信号到第二控制信号的转换。此外,所述驱动器可以查找以及利用关于转换的不同的偏好,和/或所述驱动器可以查找与协议1有关的偏好。
这些偏好可以包含用于执行遵循协议2的控制信号到遵循协议1的控制信号的转换的表格、状态机、或者其他指令。
此外,所述偏好可以包含由操作者对默认的协议转换做出的修改。例如,操作者可能更偏好通常触发游戏控制器产生“隆隆声(rumble)”触觉反馈效果的控制信号被禁用,以不允许触觉反馈。或者,在协议2提供的触觉反馈的类型与协议1支持的触觉反馈的类型之间可能存在兼容性差异。在这种情况下,操作者会想要选择性地控制哪种触觉反馈消息被中继到输入设备。
在执行与给定协议转换有关的偏好一样多的查找之后,所述驱动器接下来执行第一控制信号到第二控制信号的转换,以及,将第二控制信号直接或经过一个或多个中间驱动器传送至所述输入设备。
与系统和方法有关的其他方面
在此公开的功能以及操作可以具体体现为整体或部分地由机器(例如,计算组件、或本领域公知的其他合适的装置)在一个或多个位置实施的一个或多个方法,其增强这些机器和包括这些机器的计算设备的功能。具体体现为适于被运行以实施所述方法的程序指令的非暂时性机器可读介质也应当被考虑。程序指令被一个或更多计算组件运行,促使所述计算组件执行所述方法。
需要注意的是,在此描述的方法步骤可以与顺序无关,并因此可以以与描述的顺序不同的顺序执行。还需要注意的是,本领域的技术人员将能够理解的是,在此描述的不同的方法步骤可以被合并,以形成任意数量的方法。还应当注意的是,此处描述的任意两个或更多个步骤可以同时执行。此处公开的任何方法步骤或特征可以出于各种原因,被明确地限于权利要求书,所述原因例如实现降低的制造成本、较低的功耗、以及增加的处理效率。
举例来说,并不限制,方法以及计算组件或其他装置可以:从远程输入设备接收符合第一控制信号协议的第一控制信号;使用所述第一控制信号来创建符合由软件应用使用的第二控制信号协议的第二控制信号;以及向所述软件应用传送所述第二控制信号。
方法以及计算组件或其他装置还可以或替换地可以:向与第一控制信号协议兼容的另外的软件应用传送所述第一控制信号。
方法以及计算组件或其他装置还可以或替换地可以:创建能被所述软件应用识别为输入设备的虚拟输入设备,所述输入设备产生符合所述第二控制信号协议的控制信号。
方法以及计算组件或其他装置还可以或替换地可以:从所述输入设备接收符合所述第一控制信号协议的另外的控制信号;并接收禁用所述虚拟输入设备、以使所述虚拟输入设备不再被软件应用识别为用于产生符合所述第二控制信号协议的控制信号的输入设备的操作者输入。
方法以及计算组件或其他装置还可以或替换地可以:从其他控制信号协议中选择所述第二控制信号协议,其中,响应于从其他控制信号协议中选择第二控制信号协议,所述第一控制信号被用来创建所述第二控制信号。
方法以及计算组件或其他装置还可以或替换地可以:由于对于控制所述软件应用而言所述第二控制信号优于所述第一控制信号,在所述传输步骤之前,选择所述第二控制信号而不是所述第一控制信号来传输到软件应用。
方法以及计算组件或其他装置还可以或替换地可以:由于对于控制软件应用而言所述第一控制信号优于所述第二控制信号,选择所述第一控制信号而不是所述第二控制信号来传送到另外的软件应用,以及传送所述第一控制信号到所述另外的软件应用。
按照某些方面,所述第二控制信号被直接或经过一个或多个中间驱动器传送到所述软件应用。
按照某些方面,所述软件应用与从所述远程输入设备接收的所述第一控制信号的第一控制信号协议不兼容。
按照某些方面,所述远程输入设备不能传送任何符合所述第二控制信号协议的控制信号。
按照某些方面,所述另外的软件应用与所述第二控制信号协议不兼容。
按照某些方面,所述第一控制信号协议符合所述HID协议,以及,所述第二控制信号协议符合XInput协议。
按照某些方面,所述虚拟输入设备由处理器在检测到所述远程输入设备时自动创建。
按照某些方面,所述虚拟输入设备创建所述第二控制信号,以及,所述第二控制信号被从所述虚拟输入设备传送到所述软件应用。
按照某些方面,由于所述软件应用使用所述第二控制信号协议,所述第二控制信号协议相对于其他控制信号协议被选择出来。
按照某些方面,由于所述软件不使用其他控制信号协议,所述第二控制信号协议相对于所述其他控制信号协议被选择出来。
按照某些方面,所述第一控制信号使用从USB、经典蓝牙、低功耗蓝牙、Wi-Fi、以及移动高清链接通信协议中选择出的通信协议来接收。
按照某些方面,所述软件应用是计算机游戏,以及,其中,所述远程输入设备是游戏控制器。
在此描述的示例性方法可以由本领域的技术人员公知的或未来开发的合适的硬件、或者由处理器运行的固件或软件、或硬件、软件和固件的任意组合来实施、执行、或控制。软件在特定系统中是可以下载的或不可以下载的。一旦加载到机器上,所述软件改变所述机器的操作。
在其上执行在此描述方法的系统可以包括实施这些方法的一个或多个装置。例如,所述装置可以包括处理器或其他硬件,在运行指令(例如,具体体现为软件或固件)时,所述处理器或其他硬件执行在此公开的任意方法步骤。处理器可以包括计算机或计算设备、控制器、集成电路、“芯片”,片上系统、服务器、其他可编程逻辑设备、其他电路、或上述组件的任何组合,或者所述处理器可以被包括在上述组件中。
“存储器”可以被机器(例如,处理器)访问,以使所述机器能够从所述存储器读信息/向所述存储器写信息。存储器可以与所述机器集成或分离。存储器可以包括具有包含在其中的机器可读程序代码(例如,指令)的非暂时性机器可读介质,所述机器可读程序代码适于被运行以实施在此公开的任意或所有方法和方法步骤。存储器可以包括任何可用的存储介质,包括可移除、不可移除、易失性、以及非易失性介质—例如,集成电路介质、磁存储介质、光存储介质、或任何其他计算机数据存储介质。如在此使用的,机器可读介质包括各种各样的机器可读介质,除非该介质被视为是非法定的(例如,瞬时传播信号)的程度。
在此公开的所有信息可以由数据表示,以及,该数据可以使用任意协议、通过任意通信路径来传送,可以存储在数据源上,并由处理器处理。数据的传输可以使用多种电线、电缆、无线电信号和红外光束、以及甚至各种连接件、抽头以及甚至没有被显示或显式描述的协议来实施。系统之间可以使用任意通信技术来交换信息。数据、指令、命令、信息、信号、比特、码元、以及芯片等可以由电压、电流、电磁波、磁场或磁粒子、或光场或光粒子来表示。
系统图中以矩形示出的特征可以指硬件、固件或软件。需要注意的是,连接两个特征之间的线可以表示这些特征之间的数据传递。所述传递可以在这些特征之间直接进行,或通过中间特征进行。在没有线连接两个特征的情况下,除非另作说明,这些特征之间的数据传递应当被考虑。
词语“包括”、“包括”、“含有”、“包含”等应以包容的意义(即,不限于)来理解,而不是以排他的意义(即,仅包括)来理解。使用单数或复数的词语也分别包括复数或单数。在具体实施方式中使用的词语“或者”以及词语“和”涵盖了所列项中的任意项和所列项中的所有项。词语“一些”、“任意”以及“至少一者”指一个或多个。在此,术语“可以”用于表明举例,而不是要求—例如,在每个实施例中,可以执行操作或者可以具有特点的某物不需要执行该操作或具有该特点,但是该物在至少一个实施例中执行该操作或具有该特点。
Claims (20)
1.一种用于使用虚拟输入设备创建针对软件应用兼容的控制信号的方法,所述虚拟输入设备利用来自与所述软件应用不兼容的远程输入设备的控制信号来创建针对所述软件应用兼容的控制信号,所述方法包括:
从远程输入设备接收符合第一控制信号协议的第一控制信号;
使用所述第一控制信号来创建符合由软件应用使用的第二控制信号协议的第二控制信号;以及,
向所述软件应用传送所述第二控制信号。
2.根据权利要求1所述的方法,其中,所述第二控制信号被直接或经过一个或多个中间驱动器传送到所述软件应用。
3.根据权利要求1所述的方法,其中,所述软件应用与从所述远程输入设备接收的所述第一控制信号的所述第一控制信号协议不兼容。
4.根据权利要求1所述的方法,其中,所述远程输入设备不能传送任何符合所述第二控制信号协议的控制信号。
5.根据权利要求1所述的方法,所述方法还包括:
向另外的软件应用传送所述第一控制信号,所述另外的软件应用与所述第一控制信号协议兼容。
6.根据权利要求5所述的方法,其中,所述另外的软件应用与所述第二控制信号协议不兼容。
7.根据权利要求1所述的方法,其中,所述第一控制信号协议符合HID协议,并且其中,所述第二控制信号协议符合XInput协议。
8.根据权利要求1所述的方法,所述方法还包括:
创建被所述软件应用识别为输入设备的虚拟输入设备,所述输入设备产生符合所述第二控制信号协议的控制信号。
9.根据权利要求8所述的方法,其中,所述虚拟输入设备由处理器基在检测到所述远程输入设备时自动创建。
10.根据权利要求8所述的方法,其中,所述虚拟输入设备创建所述第二控制信号,并且其中,所述第二控制信号被从所述虚拟输入设备传送到所述软件应用。
11.根据权利要求8所述的方法,所述方法还包括:
从所述输入设备接收符合所述第一控制信号协议的另外的控制信号;以及,
接收禁用所述虚拟输入设备、以使所述虚拟输入设备不再被所述软件应用识别为产生符合所述第二控制信号协议的控制信号的输入设备的操作者输入。
12.根据权利要求1所述的方法,所述方法还包括:
从其他控制信号协议中选择所述第二控制信号协议,其中,响应于从其他控制信号协议中选择所述第二控制信号协议,所述第一控制信号被用来创建所述第二控制信号。
13.根据权利要求12所述的方法,其中,由于所述软件应用使用所述第二控制信号协议,所述第二控制信号协议相对于其他控制信号协议被选择出来。
14.根据权利要求12所述的方法,其中,由于所述软件不使用所述其他控制信号协议,所述第二控制信号协议相对于其他控制信号协议被选择出来。
15.根据权利要求1所述的方法,所述方法还包括:
由于对于控制所述软件应用而言所述第二控制信号优于所述第一控制信号,在所述传送步骤之前,选择所述第二控制信号而不是所述第一控制信号来传送到所述软件应用。
16.根据权利要求1所述的方法,所述方法还包括:
由于对于控制所述软件应用而言所述第一控制信号优于所述第二控制信号,选择所述第一控制信号而不是所述第二控制信号来传送到另外的软件应用;以及,
将所述第一控制信号传送到所述另外的软件应用。
17.根据权利要求1所述的方法,其中,所述第一控制信号使用从USB、经典蓝牙、低功耗蓝牙、Wi-Fi、以及移动高清链接通信协议中选择出的通信协议来接收。
18.根据权利要求1所述的方法,其中,所述软件应用是计算机游戏,并且其中,所述远程输入设备是游戏控制器。
19.一种非暂时性机器可读介质,该介质具体体现为适于被运行以实施用于使用虚拟输入设备创建针对软件应用兼容的控制信号的方法的程序指令,所述虚拟输入设备利用来自与所述软件应用不兼容的远程输入设备的控制信号来创建针对所述软件应用兼容的控制信号,所述方法包括:
从远程输入设备接收符合第一控制信号协议的第一控制信号;
使用所述第一控制信号来创建符合由软件应用使用的第二控制信号协议的第二控制信号;以及,
向所述软件应用传送所述第二控制信号。
20.一种用于使用虚拟输入设备创建针对软件应用兼容的控制信号的系统,所述虚拟输入设备利用来自与所述软件应用不兼容的远程输入设备的控制信号来创建针对所述软件应用兼容的控制信号,所述系统包括主机,所述主机用于:
从远程输入设备接收符合第一控制信号协议的第一控制信号;
使用所述第一控制信号来创建符合由软件应用使用的第二控制信号协议的第二控制信号;以及,
向所述软件应用传送所述第二控制信号。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510323587.4A CN106293682A (zh) | 2015-06-12 | 2015-06-12 | 通用输入设备驱动器 |
US14/791,037 US20160364358A1 (en) | 2015-06-12 | 2015-07-02 | Universal input device driver |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510323587.4A CN106293682A (zh) | 2015-06-12 | 2015-06-12 | 通用输入设备驱动器 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106293682A true CN106293682A (zh) | 2017-01-04 |
Family
ID=57516950
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510323587.4A Pending CN106293682A (zh) | 2015-06-12 | 2015-06-12 | 通用输入设备驱动器 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20160364358A1 (zh) |
CN (1) | CN106293682A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023126963A1 (en) * | 2021-12-29 | 2023-07-06 | Tesseract Imaging Limited | An interaction system and method for configuring an input device |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020026528A1 (en) * | 2000-08-24 | 2002-02-28 | Lo Kwoktung B. | System and method for selectively bridging and routing data packets between multiple networks |
CN1359218A (zh) * | 2000-12-09 | 2002-07-17 | 三星电子株式会社 | 实现多协议标签交换系统业务工程的数据结构及存储介质 |
US20100302155A1 (en) * | 2009-05-28 | 2010-12-02 | Microsoft Corporation | Virtual input devices created by touch input |
CN202772918U (zh) * | 2011-11-29 | 2013-03-06 | 浙江省电力公司 | 一种ptp信号协议转换设备 |
US8435121B1 (en) * | 2010-11-05 | 2013-05-07 | Amazon Technologies, Inc. | Providing remote access to games designed for a single-machine experience |
US20140078049A1 (en) * | 2011-03-12 | 2014-03-20 | Uday Parshionikar | Multipurpose controllers and methods |
-
2015
- 2015-06-12 CN CN201510323587.4A patent/CN106293682A/zh active Pending
- 2015-07-02 US US14/791,037 patent/US20160364358A1/en not_active Abandoned
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020026528A1 (en) * | 2000-08-24 | 2002-02-28 | Lo Kwoktung B. | System and method for selectively bridging and routing data packets between multiple networks |
CN1359218A (zh) * | 2000-12-09 | 2002-07-17 | 三星电子株式会社 | 实现多协议标签交换系统业务工程的数据结构及存储介质 |
US20100302155A1 (en) * | 2009-05-28 | 2010-12-02 | Microsoft Corporation | Virtual input devices created by touch input |
US8435121B1 (en) * | 2010-11-05 | 2013-05-07 | Amazon Technologies, Inc. | Providing remote access to games designed for a single-machine experience |
US20140078049A1 (en) * | 2011-03-12 | 2014-03-20 | Uday Parshionikar | Multipurpose controllers and methods |
CN202772918U (zh) * | 2011-11-29 | 2013-03-06 | 浙江省电力公司 | 一种ptp信号协议转换设备 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023126963A1 (en) * | 2021-12-29 | 2023-07-06 | Tesseract Imaging Limited | An interaction system and method for configuring an input device |
Also Published As
Publication number | Publication date |
---|---|
US20160364358A1 (en) | 2016-12-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8073997B2 (en) | Software install automation | |
CN104750063B (zh) | 用于配置工业安全继电器的系统和工业安全系统配置方法 | |
WO2020220184A1 (zh) | 可视化编程控制装置、可编程控制的设备及其控制方法、计算机可读存储介质以及编程控制系统 | |
CN104076763A (zh) | 状态机配置器 | |
CN106452847B (zh) | Wifi设备智能识别方法及装置 | |
CN104749993A (zh) | 用于配置工业安全继电器的系统和方法 | |
CN107046538B (zh) | 一种智能密室系统及其控制方法 | |
CN103460650A (zh) | 网络系统、主机及网络系统的控制方法 | |
AU2015326466A1 (en) | Universal remote control | |
CN109901848A (zh) | 一种设备参数烧录方法以及装置 | |
CN203278883U (zh) | 协议变换装置 | |
KR20110076432A (ko) | Can 통신을 이용한 다중 프로그램 업데이트 시스템 및 방법 | |
CN111934904B (zh) | 一种扩容方法、控制器及系统 | |
CN106293682A (zh) | 通用输入设备驱动器 | |
CN108132832A (zh) | 应用程序启动方法和装置 | |
KR100775210B1 (ko) | 범용 시리얼 버스 통신 장치 프로그램 업데이트 방법 | |
CN107545896A (zh) | 设备的控制方法、装置及系统、文件的发送方法和装置 | |
CN107332692B (zh) | 线卡自动适配并下载软件的ptn设备及方法 | |
CN111221554B (zh) | 一种dsp电路结构、dsp在线程序升级方法及装置 | |
JP2020149446A (ja) | 設定情報生成装置、設定情報生成方法、及び制御プログラム | |
CN110008160A (zh) | 信息处理装置 | |
CN111414176B (zh) | 程序烧录方法、装置、电子设备以及存储介质 | |
CN111008161A (zh) | 一种控制方法 | |
KR20230103781A (ko) | 업그레이드 완료 후 가전 기기의 소프트웨어의 기능을 간편하게 설정하는 방법과 이를 구현하는 장치 | |
CN113992465B (zh) | 电器设备的控制方法、装置和云平台 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20170104 |