CN107003952A - 设备调用方法、装置、***、电子设备和计算机程序产品 - Google Patents
设备调用方法、装置、***、电子设备和计算机程序产品 Download PDFInfo
- Publication number
- CN107003952A CN107003952A CN201680002921.9A CN201680002921A CN107003952A CN 107003952 A CN107003952 A CN 107003952A CN 201680002921 A CN201680002921 A CN 201680002921A CN 107003952 A CN107003952 A CN 107003952A
- Authority
- CN
- China
- Prior art keywords
- operational order
- exterior terminal
- terminal
- equipment
- communication connection
- 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/10—Program control for peripheral devices
- G06F13/102—Program control for peripheral devices where the programme performs an interfacing function, e.g. device driver
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Telephonic Communication Services (AREA)
Abstract
本发明提供了设备调用方法、装置、***、电子设备和计算机程序产品,所述方法包括:接收应用程序请求调用设备驱动程序接口的调用请求;基于与外部终端的通信连接,将所述调用请求对应的操作指令发送至所述外部终端;以及,接收所述外部终端反馈的操作指令执行结果;将所述操作指令执行结果反馈所述应用程序。本发明无需本地驱动程序即可实现对外部终端的设备的调用,更加灵活,同时本发明在设备调用过程中上层应用程序无感知,适用于各种应用程序;设备执行操作指令的结果由底层反馈,不易被拦截。
Description
技术领域
本发明涉及通信技术领域,特别涉及设备调用方法、装置、***、电子设备和计算机程序产品。
背景技术
现有技术中操作***运行的应用程序能够调用本地设备执行相应操作并获得相应操作结果,以摄像头为例,调用本地摄像头执行拍照操作的具体方案为:应用程序调用操作***中摄像头驱动程序接口;操作***kernel层启动摄像头对应的驱动程序代码,驱动程序启动摄像头并完成拍照操作,并将照片反馈应用程序。
现有技术中应用程序通常仅能基于本地的设备驱动调用设备,不够灵活。
发明内容
本发明实施例提出了设备调用方法、装置、***、电子设备和计算机程序产品,能够实现对外部终端的设备的调用,更加灵活。
在一个方面,本发明实施例提供了一种设备调用方法,其特征在于,所述方法包括:
接收应用程序请求调用设备驱动程序接口的调用请求;
基于与外部终端的通信连接,将所述调用请求对应的操作指令发送至所述外部终端;以及,
接收所述外部终端反馈的操作指令执行结果;
将所述操作指令执行结果反馈所述应用程序。
在另一个方面,本发明实施例提供了一种设备调用方法,其特征在于,所述方法包括:
基于与外部调用终端的通信连接,接收来自外部调用终端的设备操作指令;
调用所述操作指令对应的设备的驱动程序执行所述操作指令;
将所述操作指令的执行结果反馈至所述外部调用终端。
在另一个方面,本发明实施例提供了一种设备调用装置,其特征在于,所述装置包括:
接口模块,用于接收应用程序请求调用设备驱动程序接口的调用请求;
通信模块,用于基于与外部终端的通信连接,将所述调用请求对应的操作指令发送至所述外部终端;以及,
所述通信模块,还用于接收所述外部终端反馈的操作指令执行结果;
所述接口模块,还用于将所述操作指令执行结果反馈所述应用程序。
在另一个方面,本发明实施例提供了一种设备调用装置,其特征在于,所述装置包括:
调用通信模块,用于基于与外部调用终端的通信连接,接收来自外部调用终端的设备操作指令;
驱动模块,用于调用所述操作指令对应的设备的驱动程序执行所述操作指令;
所述调用通信模块,还用于将所述操作指令的执行结果反馈至所述外部调用终端。
在另一个方面,本发明实施例提供了一种设备调用***,其特征在于,所述***包括:上述第三方面提供的设备调用装置和上述第四方面提供的设备调用装置。
在另一个方面,本发明实施例提供了一种电子设备,其特征在于,所述电子设备包括:存储器,一个或多个处理器;以及一个或多个模块,所述一个或多个模块被存储在所述存储器中,并被配置成由所述一个或多个处理器执行,所述一个或多个模块包括用于执行上述第一个方面提供的方法中各个步骤的指令。
在另一个方面,本发明实施例提供了一种电子设备,其特征在于,所述电子设备包括:存储器,一个或多个处理器;以及一个或多个模块,所述一个或多个模块被存储在所述存储器中,并被配置成由所述一个或多个处理器执行,所述一个或多个模块包括用于执行上述第二个方面提供的方法中各个步骤的指令。
在另一个方面,本发明实施例提供了一种计算机程序产品,所述计算机程序产品包括计算机可读的存储介质和内嵌于其中的计算机程序机制,所述计算机程序机制包括用于执行上述第一个方面提供的方法中各个步骤的指令。
在另一个方面,本发明实施例提供了一种计算机程序产品,所述计算机程序产品包括计算机可读的存储介质和内嵌于其中的计算机程序机制,所述计算机程序机制包括用于执行上述第二个方面提供的方法中各个步骤的指令。
本发明的有益效果如下:
本发明中,在接收到应用程序调用设备驱动程序接口的调用请求后,将调用请求中对设备的操作指令发送至外部终端,并接收外部终端反馈的操作指令执行结果,无需本地驱动程序即可实现对外部终端的设备的调用,更加灵活,同时本发明在设备调用过程中上层应用程序无感知,适用于各种应用程序;设备执行操作指令的结果由底层反馈,不易被拦截。
附图说明
下面将参照附图描述本发明的具体实施例,其中:
图1示出了本发明实施例一中设备调用方法适用的***架构图;
图2示出了本发明实施例一中设备调用方法的流程示意图;
图3示出了本发明实施例三中设备调用方法适用的虚拟化架构示意图;
图4示出了本发明实施例五中设备调用装置的结构示意图;
图5示出了本发明实施例六中设备调用装置的结构示意图。
具体实施方式
为了使本发明的技术方案及优点更加清楚明白,以下结合附图对本发明的示例性实施例进行进一步详细的说明,显然,所描述的实施例仅是本发明的一部分实施例,而不是所有实施例的穷举。并且在不冲突的情况下,本说明中的实施例及实施例中的特征可以互相结合。
发明人在发明过程中注意到:应用程序通常仅能基于本地的设备驱动调用设备,不够灵活。
针对上述不足,本发明提供了一种设备调用方法,在接收到应用程序调用设备驱动程序接口的调用请求后,将调用请求中对设备的操作指令发送至外部终端,并接收外部终端反馈的操作指令执行结果,无需本地驱动程序即可实现对外部终端的设备的调用,更加灵活,同时本发明在设备调用过程中上层应用程序无感知,适用于各种应用程序;设备执行操作指令的结果由底层反馈,不易被拦截。
为了便于本发明的实施,下面以实例进行说明。
实施例一:
图1示出了本发明实施例一中设备调用方法适用的***架构图,包括第一终端和第二终端,所述第一终端和第二终端为基于不同处理器运行的物理设备。第一终端和第二终端上分别有可供自身调用的设备,如卫星定位装置,处理器或者摄像头等,同时两个设备分别运行各自的操作***,并且在第一终端的操作***中运行了一个应用程序,通过本发明的方法,该应用程序能够调用第二终端的设备。
图2示出了本发明实施例一中设备调用方法流程示意图,如图2所示,所述设备调用方法包括:
步骤101,第一终端操作***kernel层运行的虚拟驱动前端接收应用程序请求调用设备驱动程序接口的调用请求;
第一终端中的应用程序需要调用某一设备时,会发起调用该设备的驱动程序接口的请求,并将该请求发送至应用程序所在的操作***的kernel层,应用程序发送调用请求的过程与现有技术相同,kernel层中运行的虚拟驱动前端能够获取到用户的调用请求。
步骤102,虚拟驱动前端基于与第二终端的通信连接,将所述调用请求对应的操作指令发送至所述第二终端;
第一终端与其外部终端,即第二终端,建立可通过有线或者无线方式建立基于各种传输协议实现的通信连接,例如基于TCP/IP(Transmission Control Protocol/Internet Protocol,传输控制协议/网际协议)建立的无线连接,并且所述连接可以是直接的,也可以是通过云端服务器或者其他中继服务器转发的;可以是基于公网的,也可以是基于安全级别更高的专网的。具体的,虚拟驱动前端需要调用通信模块与运行于第二终端的虚拟驱动后端建立通信连接。
虚拟驱动前端在监测到应用程序请求调用设备驱动程序接口的调用请求后,确定所述应用程序的调用请求指向的设备,进而确定具有所述设备并能够接受调用的第二终端。同时虚拟驱动前端还能够根据设备驱动程序接口的调用请求确定对所指向的设备将要执行的操作指令,操作指令包括操作名称、操作对象和操作参数等。
虚拟驱动前端基于第一终端与第二终端的通信连接将调用请求对应的操作指令进行相应封装后发送至第二终端。
在一些实施方式中,所述与第二终端的通信连接,为对所述第二终端进行认证后的通信连接。第一终端与第二终端建立通信连接时或者发送数据前,第一终端需要对第二终端进行认证,认证方式包括但不限于对第二终端的终端或者设备信息进行认证,对与第二终端间的通信链路的安全性进行认证等。
在一些实施方式中,当判断所述应用程序为预设应用程序时,基于与第二终端的通信连接,将所述调用请求对应的操作指令发送至所述第二终端。
通常第一终端会包括一些可供调用的本地设备,但是出于安全、隐私或者设备性能的考虑,将第一终端的某些应用程序配置为优先调用外部终端的设备或者配置为不允许调用本地设备。当虚拟驱动前端判断发起调用请求的应用程序为这些被配置的应用程序时,将调用请求对应的操作指令发送至第二终端。
在一些实施方式中,当判断所述应用程序为运行于预设虚拟机的应用程序时,基于与第二终端的通信连接,将所述设备操作指令发送至所述第二终端。
第一终端中可能包含虚拟化***架构,即运行了多个虚拟机,各虚拟机运行各自的应用程序,出于安全、隐私或者设备性能的考虑,将第一终端的一些虚拟机配置为其上运行的应用程序优先调用外部终端的设备,或者将这些虚拟机配置为其上运行的应用程序不允许调用本地设备。当虚拟驱动前端判断发起调用请求的应用程序运行于这些被配置的虚拟机时,将调用请求对应的操作指令发送至第二终端。
步骤103,第二终端操作***运行的虚拟驱动后端基于与第一终端的通信连接,接收来自第一终端的设备操作指令;
第二终端操作***kernel层运行虚拟驱动后端,其能够基于步骤102中所述的第一终端与第二终端的通信连接接收第一终端虚拟驱动前端发送的封装后的对设备的操作指令。
在一些实施方式中,所述第二终端与第一终端的通信连接,为第二终端对所述第一终端进行认证后的通信连接。即在建立通信连接时或发送数据前,第二终端需要对第一终端进行认证,认证方式包括但不限于对第二终端的终端或者设备信息进行认证,对于第二终端间的通信链路的安全性进行认证等。
步骤104,虚拟驱动后端调用所述操作指令对应的设备的驱动程序执行所述操作指令;
第二终端的虚拟驱动后端解封装所述设备操作指令后,确定所述设备操作指令指向的设备,调用本地对应的设备驱动程序执行该操作指令,并获取本地设备执行所述操作指令的执行结果。设备驱动和设备位于第二终端侧,使第一终端的软硬件架构能够得到简化。
步骤105,虚拟驱动后端将所述操作指令的执行结果反馈至第一终端;
第二终端的虚拟驱动后端将操作指令的执行结果封装,并基于第一终端与第二终端的通信连接将其发送至第一终端的虚拟驱动前端。
步骤106,虚拟驱动前端接收所述第二终端反馈的操作指令执行结果;
第一终端的虚拟驱动前端接收到第二终端反馈的操作指令执行结果并对其解封装。
步骤107,虚拟驱动前端将所述操作指令执行结果反馈所述应用程序。
第一终端的虚拟驱动前端将解封装后的操作指令执行结果反馈至所述应用程序,至此应用程序完成了对第二终端的设备的调用。
在一些实施方式中,步骤102之前还包括:获取所述第二终端的设备信息,根据所述设备信息判断所述第二终端是否能够执行所述操作指令;步骤102具体为,当判断所述第二终端能够执行所述操作指令时,基于与所述第二终端的通信连接,将所述调用请求对应的操作指令发送至所述第二终端。
在实现第一终端上运行的应用程序对第二终端的设备调用之前,第一终端需要先根据获取到的第二终端的设备信息确定其能够执行某类操作指令。其中第一终端获取第二终端的设备信息的方式包括但不限于以下方式:1)服务器统计各终端支持外部调用的设备的设备信息并将其发送至第一终端,或者第一终端向服务器请求相关设备的设备信息;2)第一终端与第二终端建立通信后,第一终端读取或者接收第二终端发送的设备信息;3)第一终端广播其需要调用的设备的设备信息,接收到第二终端反馈的其支持该设备调用的确认信息,等。设备信息可以包括设备的类别,型号,性能参数,当前任务情况等。
在第一终端获取第二终端的设备信息并判断其能够适用于当前的调用请求对应的操作指令时才将封装的操作指令基于与第二终端建立的连接发送至第二终端。
在一些实施方式中,当所述操作指令可拆分为多个并行的子操作指令时,确定所述设备对应的多个外部终端,基于与所述多个外部终端的通信连接,将所述多个子操作指令分别发送至所述多个外部终端;以及,接收所述多个外部终端反馈的多个子操作指令执行结果,根据所述多个子操作指令执行结果获取操作指令执行结果。
当一个操作指令可拆分为多个并行的子操作指令时,第一终端操作***kernel层运行的虚拟驱动前端可将其拆分,并将多个子操作指令分别发送给多个外部终端,以通过多个外部终端的设备分布式并行的执行这些操作,提升操作效率。虚拟驱动前端在接收到各外部终端调用设备执行相应的子操作指令反馈的结果后,将各子操作指令的执行结果合并得到原操作指令的执行结果反馈发起请求的应用程序。
例如当某一应用程序以大量相互相对独立的图像帧为操作对象,需要调用GPU(Graphics Processing Unit,图形处理器)进行相应计算操作时,可将大量图像帧划分为多个子操作对象,每个子操作对象包含部分图像帧,并将针对这些子操作对象调用GPU进行计算操作的指令分别发送至多个具有GPU的设备,待这些设备反馈执行结果后,将多个子图像帧的处理结果合并得到原操作对象的处理结果。
在一些实施方式中,在步骤102中基于与多个外部终端的通信连接,将所述操作指令分别发送至所述多个外部终端;以及,将最先接收到的所述多个外部终端反馈的结果确定为操作指令执行结果。
第一终端操作***kernel层运行的虚拟驱动前端可将同样的操作指令同时发送至多个外部终端,即分别调用多个外部终端的设备同时执行该操作指令,在多个外部终端分别反馈设备的操作指令执行结果时,取最先收到的执行结果反馈应用程序,此种方式能够使应用程序对设备的调用尽可能更流畅。
本实施例中,第一终端无需本地驱动程序即可实现对外部终端的设备的调用,更加灵活,同时本发明在设备调用过程中上层应用程序无感知,适用于各种应用程序;设备执行操作指令的结果由底层反馈,不易被拦截。在一些实施方式中,第一终端和第二终端可以互相进行认证,确保设备调用过程更安全;公开了第一终端调用第二终端的设备前对其设备信息的识别过程,能够使调用过程更高效,提升可用性;第一终端可配置其上的某些应用程序或者某个虚拟机上运行的应用程序调用外部终端的设备,对设备的管理更灵活;第一终端可将设备驱动程序接口的调用请求对应的操作指令拆分为多个子操作指令,由多个外部终端并行处理,提高设备调用效率,或者将同样的操作指令发送至多个外部终端同时处理,并采用其中反馈最快的执行结果,最大限度提升设备调用的速度。
实施例二:
在本实施例中,本地操作***通过网络通信模块(TCP/IP)与远程操作***建立网络连接,并在本地操作***中实现虚拟设备驱动前端。本地操作***中某一应用程序可发起对远程操作***的设备信息的同步、调用或者管理。
以设备信息同步为例,本地操作***的应用程序调用***API(ApplicationProgramming Interface,应用程序编程接口)获取需要同步的设备的信息;***API调用设备对应的驱动程序代码时,将触发虚拟驱动前端调用网络通信模块与远程操作***中的虚拟驱动后端建立通信;通信建立完成后,虚拟驱动前端向虚拟驱动后端发送***API调用信息到远程操作***的虚拟驱动程序后端;虚拟驱动程序后端调用真实的设备驱动程序以获得设备信息,并将获得设备信息返回到虚拟驱动程序后端;虚拟驱动程序后端通过网络将返回设备信息传递给虚拟驱动前端;虚拟驱动前端将设备信息返回调用的应用程序。至此,本地操作***中的应用程序获得了所需的设备信息,完成了设备信息的同步,并且该设备信息为远程操作***的设备信息。
在一些实施方式中,本地终端可实时获取远程终端的位置信息,从而以远程终端的位置信息作为本地终端的位置信息,实现本地终端的位置信息隐身或者模拟。
在一些实施方式中,本地终端可控制远程终端上的摄像头,例如进行曝光、拍摄角度等的调整,以获得最适合的远程图像信息。
本实施例中,本地操作***的应用程序中对调用的设备是本地还是远程设备并无感知,应用程序涉及的代码和操作完全一致,使本地操作***如同拥有远程操作***的设备。基于本实施例,能够根据需要无限扩充远程操作***中的设备供本地操作***使用而不增加本地操作***的负担。此外本实施例可以实现基于移动互联网的设备远程调用,实时控制远程终端上的外设,例如打开、关闭远程设备,远程配置设备参数,或者远程控制等。
实施例三:
图3示出了本发明实施例三中设备调用方法适用的虚拟化架构示意图,所述虚拟化架构在虚拟化层运行虚拟机监控器(VMM或称为Hypervisor)以管理真实的物理设备平台,并为每个客户机(Guest)提供对应的虚拟设备平台。本实施例中虚拟化架构中具有两个客户机,客户机分别运行各种的操作***并承载应用程序,
其中客户机1操作***中的应用程序具备真实的物理设备控制和管理权限,并且其操作***中具有真实的设备驱动,可以直接调用本地设备。
当客户机2的操作***中的应用程序调用***驱动时,虚拟设备驱动前端响应该调用,并通过网络通信模块发起网络连接,连接至远程终端的虚拟设备驱动后端,该网络通信模块的网络通信可以是通过虚拟化隔离的网络通信通道;远程终端接收到调用请求对应的操作指令后,调用真实的设备驱动(Driver),进行真实物理设备的调用并反馈至客户机2的虚拟设备驱动前端。
本实施例中,本地终端的不同客户机能够分别调用本地或者远程操作***的设备,但应用程序的层面完全无感知。
实施例四:
在本实施例中,本地终端操作***中的虚拟设备驱动前端能够同时与多个远程终端的虚拟设备驱动后端建立连接,一方面实现对多个远程终端设备的信息同步、调用和管理,另一方面可进行分布式任务处理。
例如通过调用多个远程终端的GPU运算单元,实现移动设备GPU的分布式运算,具体包括:将并行任务分别分配到不同的远程终端;远程终端通过设备驱动调用其上的GPU进行运算,并将运算结果返回本地终端实现计算结果汇总及后续处理。
实施例五:
基于同一发明构思,本发明实施例中还提供了一种设备调用装置500,由于这些装置解决问题的原理与设备调用方法相似,因此这些装置的实施可以参见方法的实施,重复之处不再赘述。图4示出了本发明实施例五中设备调用装置500的结构示意图,如图所示,所述装置500包括:
接口模块501,用于接收应用程序请求调用设备驱动程序接口的调用请求;
通信模块502,用于基于与外部终端的通信连接,将所述调用请求对应的操作指令发送至所述外部终端;以及,
所述通信模块502,还用于接收所述外部终端反馈的操作指令执行结果;
所述接口模块501,还用于将所述操作指令执行结果反馈所述应用程序。
在一些实施方式中,所述与外部终端的通信连接,为对所述外部终端进行认证后的通信连接。
在一些实施方式中,所述通信模块502具体用于,当所述操作指令可拆分为多个并行的子操作指令时,确定所述设备对应的多个外部终端,基于与所述多个外部终端的通信连接,将所述多个子操作指令分别发送至所述多个外部终端;
所述通信模块502还具体用于,接收所述多个外部终端反馈的多个子操作指令执行结果,根据所述多个子操作指令执行结果获取操作指令执行结果。
在一些实施方式中,所述通信模块502具体用于,基于与多个外部终端的通信连接,将所述操作指令分别发送至所述多个外部终端;
所述通信模块502还具体用于,将最先接收到的所述多个外部终端反馈的结果确定为操作指令执行结果。
在一些实施方式中,所述通信模块502具体用于,当判断所述应用程序为预设应用程序时,基于与外部终端的通信连接,将所述调用请求对应的操作指令发送至所述外部终端。
在一些实施方式中,所述通信模块502具体用于,当判断所述应用程序为运行于预设虚拟机的应用程序时,基于与外部终端的通信连接,将所述设备操作指令发送至所述外部终端。
在一些实施方式中,所述装置还包括:
设备信息判断模块503,用于在所述通信模块502基于与外部终端的通信连接,将所述调用请求对应的操作指令发送至所述外部终端之前,获取所述外部终端的设备信息,根据所述设备信息判断所述外部终端是否能够执行所述操作指令;
所述通信模块502具体用于,当判断所述外部终端能够执行所述操作指令时,基于与所述外部终端的通信连接,将所述调用请求对应的操作指令发送至所述外部终端。
在一些实施方式中,所述设备为卫星定位装置,处理器或者摄像头。
实施例六:
基于同一发明构思,本发明实施例中还提供了一种设备调用装置600,由于这些装置解决问题的原理与设备调用方法相似,因此这些装置的实施可以参见方法的实施,重复之处不再赘述。图5示出了本发明实施例六中设备调用装置600的结构示意图,如图所示,所述装置600包括:
调用通信模块601,用于基于与外部调用终端的通信连接,接收来自外部调用终端的设备操作指令;
驱动模块602,用于调用所述操作指令对应的设备的驱动程序执行所述操作指令;
所述调用通信模块601,还用于将所述操作指令的执行结果反馈至所述外部调用终端。
在一些实施方式中,所述与外部调用终端的通信连接,为对所述外部调用终端进行认证后的通信连接。
实施例七:
基于同一发明构思,本发明实施例中还提供了设备调用电子设备,由于其原理与设备调用方法相似,因此其实施可以参见方法的实施,重复之处不再赘述。所述电子设备包括:显示器,存储器,一个或多个处理器;以及一个或多个模块,所述一个或多个模块被存储在所述存储器中,并被配置成由所述一个或多个处理器执行,所述一个或多个模块包括用于执行任一上述方法中各个步骤的指令。
实施例八:
基于同一发明构思,本发明实施例还提供了设备调用计算机程序产品,由于其原理与设备调用方法相似,因此其实施可以参见方法的实施,重复之处不再赘述。所述计算机程序产品包括计算机可读的存储介质和内嵌于其中的计算机程序机制,所述计算机程序机制包括用于执行任一前述方法中各个步骤的指令。
为了描述的方便,以上所述装置的各部分以功能分为各种模块分别描述。当然,在实施本发明时可以把各模块或单元的功能在同一个或多个软件或设备中实现。
本领域内的技术人员应明白,本发明的实施例可提供为方法、***、或计算机程序产品。因此,本发明可采用完全设备实施例、完全软件实施例、或结合软件和设备方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
Claims (25)
1.一种设备调用方法,其特征在于,所述方法包括:
接收应用程序请求调用设备驱动程序接口的调用请求;
基于与外部终端的通信连接,将所述调用请求对应的操作指令发送至所述外部终端;
以及,
接收所述外部终端反馈的操作指令执行结果;
将所述操作指令执行结果反馈所述应用程序。
2.如权利要求1所述的方法,其特征在于,
所述与外部终端的通信连接,为对所述外部终端进行认证后的通信连接。
3.如权利要求1所述的方法,其特征在于,所述基于与外部终端的通信连接,将所述调用请求对应的操作指令发送至所述外部终端,包括:
当所述操作指令可拆分为多个并行的子操作指令时,确定所述设备对应的多个外部终端,基于与所述多个外部终端的通信连接,将所述多个子操作指令分别发送至所述多个外部终端;
所述接收所述外部终端反馈的操作指令执行结果,包括:
接收所述多个外部终端反馈的多个子操作指令执行结果,根据所述多个子操作指令执行结果获取操作指令执行结果。
4.如权利要求1所述的方法,其特征在于,所述基于与外部终端的通信连接,将所述调用请求对应的操作指令发送至所述外部终端,包括:
基于与多个外部终端的通信连接,将所述操作指令分别发送至所述多个外部终端;
所述接收所述外部终端反馈的操作指令执行结果,包括:
将最先接收到的所述多个外部终端反馈的结果确定为操作指令执行结果。
5.如权利要求1所述的方法,其特征在于,所述基于与外部终端的通信连接,将所述调用请求对应的操作指令发送至所述外部终端,包括:
当判断所述应用程序为预设应用程序时,基于与外部终端的通信连接,将所述调用请求对应的操作指令发送至所述外部终端。
6.如权利要求1所述的方法,其特征在于,所述基于与外部终端的通信连接,将所述调用请求对应的操作指令发送至所述外部终端,包括:
当判断所述应用程序为运行于预设虚拟机的应用程序时,基于与外部终端的通信连接,将所述设备操作指令发送至所述外部终端。
7.如权利要求1所述的方法,其特征在于,在所述基于与外部终端的通信连接,将所述调用请求对应的操作指令发送至所述外部终端之前,还包括:
获取所述外部终端的设备信息,根据所述设备信息判断所述外部终端是否能够执行所述操作指令;
所述基于与外部终端的通信连接,将所述调用请求对应的操作指令发送至所述外部终端,包括:
当判断所述外部终端能够执行所述操作指令时,基于与所述外部终端的通信连接,将所述调用请求对应的操作指令发送至所述外部终端。
8.如权利要求1所述的方法,其特征在于,
所述设备为卫星定位装置,处理器或者摄像头。
9.一种设备调用方法,其特征在于,所述方法包括:
基于与外部调用终端的通信连接,接收来自外部调用终端的设备操作指令;
调用所述操作指令对应的设备的驱动程序执行所述操作指令;
将所述操作指令的执行结果反馈至所述外部调用终端。
10.如权利要求9所述的方法,其特征在于,
所述与外部调用终端的通信连接,为对所述外部调用终端进行认证后的通信连接。
11.一种设备调用装置,其特征在于,所述装置包括:
接口模块,用于接收应用程序请求调用设备驱动程序接口的调用请求;
通信模块,用于基于与外部终端的通信连接,将所述调用请求对应的操作指令发送至所述外部终端;
以及,
所述通信模块,还用于接收所述外部终端反馈的操作指令执行结果;
所述接口模块,还用于将所述操作指令执行结果反馈所述应用程序。
12.如权利要求11所述的装置,其特征在于,
所述与外部终端的通信连接,为对所述外部终端进行认证后的通信连接。
13.如权利要求11所述的装置,其特征在于:
所述通信模块具体用于,当所述操作指令可拆分为多个并行的子操作指令时,确定所述设备对应的多个外部终端,基于与所述多个外部终端的通信连接,将所述多个子操作指令分别发送至所述多个外部终端;
所述通信模块还具体用于,接收所述多个外部终端反馈的多个子操作指令执行结果,根据所述多个子操作指令执行结果获取操作指令执行结果。
14.如权利要求11所述的装置,其特征在于:
所述通信模块具体用于,基于与多个外部终端的通信连接,将所述操作指令分别发送至所述多个外部终端;
所述通信模块还具体用于,将最先接收到的所述多个外部终端反馈的结果确定为操作指令执行结果。
15.如权利要求11所述的装置,其特征在于:
所述通信模块具体用于,当判断所述应用程序为预设应用程序时,基于与外部终端的通信连接,将所述调用请求对应的操作指令发送至所述外部终端。
16.如权利要求11所述的装置,其特征在于:
所述通信模块具体用于,当判断所述应用程序为运行于预设虚拟机的应用程序时,基于与外部终端的通信连接,将所述设备操作指令发送至所述外部终端。
17.如权利要求11所述的装置,其特征在于,所述装置还包括:
设备信息判断模块,用于在所述通信模块基于与外部终端的通信连接,将所述调用请求对应的操作指令发送至所述外部终端之前,获取所述外部终端的设备信息,根据所述设备信息判断所述外部终端是否能够执行所述操作指令;
所述通信模块具体用于,当判断所述外部终端能够执行所述操作指令时,基于与所述外部终端的通信连接,将所述调用请求对应的操作指令发送至所述外部终端。
18.如权利要求11所述的装置,其特征在于,
所述设备为卫星定位装置,处理器或者摄像头。
19.一种设备调用装置,其特征在于,所述装置包括:
调用通信模块,用于基于与外部调用终端的通信连接,接收来自外部调用终端的设备操作指令;
驱动模块,用于调用所述操作指令对应的设备的驱动程序执行所述操作指令;
所述调用通信模块,还用于将所述操作指令的执行结果反馈至所述外部调用终端。
20.如权利要求19所述的装置,其特征在于,
所述与外部调用终端的通信连接,为对所述外部调用终端进行认证后的通信连接。
21.一种设备调用***,其特征在于所述设备调用***包括:如权利要求11至18中任一权利要求所述的设备调用装置,以及如权利要求19至20中任一权利要求所述的设备调用装置。
22.一种电子设备,其特征在于,所述电子设备包括:
存储器,一个或多个处理器;以及一个或多个模块,所述一个或多个模块被存储在所述存储器中,并被配置成由所述一个或多个处理器执行,所述一个或多个模块包括用于执行权利要求1至8中任一所述方法中各个步骤的指令。
23.一种电子设备,其特征在于,所述电子设备包括:
存储器,一个或多个处理器;以及一个或多个模块,所述一个或多个模块被存储在所述存储器中,并被配置成由所述一个或多个处理器执行,所述一个或多个模块包括用于执行权利要求9至10中任一所述方法中各个步骤的指令。
24.一种与电子设备结合使用的计算机程序产品,所述计算机程序产品包括计算机可读的存储介质和内嵌于其中的计算机程序机制,所述计算机程序机制包括用于执行权利要求1至8中任一所述方法中各个步骤的指令。
25.一种与电子设备结合使用的计算机程序产品,所述计算机程序产品包括计算机可读的存储介质和内嵌于其中的计算机程序机制,所述计算机程序机制包括用于执行权利要求9至10中任一所述方法中各个步骤的指令。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2016/102456 WO2018072101A1 (zh) | 2016-10-18 | 2016-10-18 | 设备调用方法、装置、***、电子设备和计算机程序产品 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107003952A true CN107003952A (zh) | 2017-08-01 |
Family
ID=59431271
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201680002921.9A Pending CN107003952A (zh) | 2016-10-18 | 2016-10-18 | 设备调用方法、装置、***、电子设备和计算机程序产品 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN107003952A (zh) |
WO (1) | WO2018072101A1 (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107077393A (zh) * | 2016-12-20 | 2017-08-18 | 深圳前海达闼云端智能科技有限公司 | 设备调用方法、装置、***和电子设备 |
CN110389827A (zh) * | 2018-04-20 | 2019-10-29 | 伊姆西Ip控股有限责任公司 | 在分布式***中进行优化的方法、设备和计算机程序产品 |
CN112131146A (zh) * | 2019-06-24 | 2020-12-25 | 维塔科技(北京)有限公司 | 获取设备信息的方法、装置、存储介质及电子设备 |
CN114116140A (zh) * | 2022-01-27 | 2022-03-01 | 荣耀终端有限公司 | 获取数据的方法和电子设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103036916A (zh) * | 2011-09-29 | 2013-04-10 | ***通信集团公司 | 远程硬件资源的调用方法及其装置、*** |
CN103077018A (zh) * | 2012-12-27 | 2013-05-01 | 广州英码信息科技有限公司 | 一种基于安卓***的设备接口的控制方法及*** |
CN103685416A (zh) * | 2012-09-20 | 2014-03-26 | 联想(北京)有限公司 | 分布式任务分配与认领方法以及电子设备 |
CN103731309A (zh) * | 2013-12-31 | 2014-04-16 | 深圳市科漫达智能管理科技有限公司 | 一种设备管理方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012164711A1 (ja) * | 2011-06-02 | 2012-12-06 | 株式会社 日立製作所 | 情報処理システム、ソフトウエア検証方法、及びプログラム |
-
2016
- 2016-10-18 WO PCT/CN2016/102456 patent/WO2018072101A1/zh active Application Filing
- 2016-10-18 CN CN201680002921.9A patent/CN107003952A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103036916A (zh) * | 2011-09-29 | 2013-04-10 | ***通信集团公司 | 远程硬件资源的调用方法及其装置、*** |
CN103685416A (zh) * | 2012-09-20 | 2014-03-26 | 联想(北京)有限公司 | 分布式任务分配与认领方法以及电子设备 |
CN103077018A (zh) * | 2012-12-27 | 2013-05-01 | 广州英码信息科技有限公司 | 一种基于安卓***的设备接口的控制方法及*** |
CN103731309A (zh) * | 2013-12-31 | 2014-04-16 | 深圳市科漫达智能管理科技有限公司 | 一种设备管理方法及装置 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107077393A (zh) * | 2016-12-20 | 2017-08-18 | 深圳前海达闼云端智能科技有限公司 | 设备调用方法、装置、***和电子设备 |
WO2018112719A1 (zh) * | 2016-12-20 | 2018-06-28 | 深圳前海达闼云端智能科技有限公司 | 设备调用方法、装置、***和电子设备 |
CN110389827A (zh) * | 2018-04-20 | 2019-10-29 | 伊姆西Ip控股有限责任公司 | 在分布式***中进行优化的方法、设备和计算机程序产品 |
CN112131146A (zh) * | 2019-06-24 | 2020-12-25 | 维塔科技(北京)有限公司 | 获取设备信息的方法、装置、存储介质及电子设备 |
CN112131146B (zh) * | 2019-06-24 | 2022-07-12 | 维塔科技(北京)有限公司 | 获取设备信息的方法、装置、存储介质及电子设备 |
CN114116140A (zh) * | 2022-01-27 | 2022-03-01 | 荣耀终端有限公司 | 获取数据的方法和电子设备 |
Also Published As
Publication number | Publication date |
---|---|
WO2018072101A1 (zh) | 2018-04-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11878237B2 (en) | Server and data processing method, apparatus, and system | |
US10915983B2 (en) | System for distributed virtualization of GPUs in desktop cloud | |
CN107003952A (zh) | 设备调用方法、装置、***、电子设备和计算机程序产品 | |
US9801146B2 (en) | Terminal and synchronization control method among terminals | |
CN108536468A (zh) | 配置文件获取方法、提供方法、装置及设备 | |
EP2911342B1 (en) | Home gateway and intelligent terminal integrated system and communication method therefor | |
EP3343364A1 (en) | Accelerator virtualization method and apparatus, and centralized resource manager | |
WO2016037479A1 (zh) | 虚拟化网络功能vnf优化方法、装置及*** | |
CN106797400A (zh) | 用于使得能够经由服务层访问第三方服务的***和方法 | |
CN107547474A (zh) | 一种异构型双***的图形显示方法和设备 | |
US10863312B2 (en) | Moving track sharing method and apparatus, and storage medium | |
US20110276625A1 (en) | Method and system for host independent keyboard, video, and mouse (kvm) redirection | |
CN107360237A (zh) | 一种多人协同工作的dcs图形化组态***及方法 | |
US11372658B2 (en) | Cross-device mulit-monitor setup for remote desktops via image scanning | |
CN108139936A (zh) | 提供对自部署的虚拟应用中的虚拟机的串行端口的访问的方法、装置和*** | |
CN105872578A (zh) | 一种调用方法及服务器 | |
CN108494871A (zh) | 云端虚拟机及其图像识别方法、***和虚拟机瘦客户端 | |
CN107770255A (zh) | 用于协同工作的终端设备数据共享总控装置及方法 | |
CN106790623B (zh) | 一种虚拟现实设备获取服务的控制方法、控制器及控制*** | |
CN110275787B (zh) | 在线平台数据传输方法、装置、介质及电子设备 | |
CN107077393A (zh) | 设备调用方法、装置、***和电子设备 | |
CN106657076B (zh) | 一种网络命名空间的tcp服务实现方法及装置 | |
CN107077378A (zh) | 一种通信方法、装置、电子设备和程序产品 | |
JP2019054455A (ja) | 通信デバイス、情報通信端末装置及び通信方法 | |
Afrah et al. | Hive: A distributed system for vision processing |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170801 |
|
RJ01 | Rejection of invention patent application after publication |