测量仪器的远程控制方法和系统与流程

文档序号:12863061阅读:523来源:国知局
测量仪器的远程控制方法和系统与流程

本发明涉及计算机技术领域,特别是涉及一种测量仪器的远程控制方法和系统。



背景技术:

示波器和频谱仪等测量仪器在测量技术中具有至关重要的作用,在对上述示波器和频谱仪等测量仪器进行远程控制的过程中,通常是通过服务端连接被控的测量仪器,上述服务端还与受用户操控的客户端进行远程连接,用户向上述客户端输入控制指令,客户端将其读取到的控制指令发送至服务端,使服务端依据上述控制指令控制其连接的测量设备。

目前,示波器和频谱仪等测量仪器的远程控制系统主要是通过专门的测控软件,如labview,或基于某一特定编程语言,如c++,和对应该语言的仪器设备驱动二次开发的软件模块来实现,然而,上述传统的远程控制方案需要进行二次开发或者开发过程需要遵循标准各异的仪器驱动架构,且难以实现跨语言的测量仪器控制,容易使上述远程控制方案的通用性,以及可扩展性较差。



技术实现要素:

基于此,有必要针对传统的测量仪器远程控制方案的通用性,以及可扩展性较差的技术问题,提供一种测量仪器的远程控制方法和系统。

一种测量仪器的远程控制方法,包括如下步骤:

将预定义的接口定义语言文件传递给远程过程调用服务框架生成工具,生成服务端对应的第一控制程序的框架和客户端对应的第二控制程序的框架;其中,所述接口定义语言文件为根据测量仪器驱动接口函数标准设定的接口函数描述性文件;

通过测量仪器的接口驱动程序编程接口,完善所述第一控制程序,并且在所述服务端安装接口驱动程序和驱动库,在所述服务端上安装运行所述第一控制程序;

根据测量仪器控制的逻辑完善第二控制程序,在所述客户端运行第二控制程序,通过所述第二控制程序调用控制所述测量仪器的远程接口,将所述测量仪器的控制请求发送给所述第一控制程序,所述第一控制程序调用所述服务端上的接口驱动程序和驱动库对所述测量仪器进行控制。

一种测量仪器的远程控制系统,包括:

生成模块,用于将预定义的接口定义语言文件传递给远程过程调用服务框架生成工具,生成服务端对应的第一控制程序的框架和客户端对应的第二控制程序的框架;其中,所述接口定义语言文件为根据测量仪器驱动接口函数标准设定的接口函数描述性文件;

安装模块,用于通过测量仪器的接口驱动程序编程接口,完善所述第一控制程序,并且在所述服务端安装接口驱动程序和驱动库,在所述服务端上安装运行所述第一控制程序;

控制模块,用于根据测量仪器控制的逻辑完善第二控制程序,在所述客户端运行第二控制程序,通过所述第二控制程序调用控制所述测量仪器的远程接口,将所述测量仪器的控制请求发送给所述第一控制程序,所述第一控制程序调用所述服务端上的接口驱动程序和驱动库对所述测量仪器进行控制。

上述测量仪器的远程控制方法和系统,可以将根据测量仪器驱动接口函数标准设定的接口定义语言文件传递至远程过程调用服务框架生成工具,生成服务端对应的第一控制程序的框架和客户端对应的第二控制的框架,进而在服务端安装运行所述第一控制程序,在所述客户端安装运行第二控制程序,通过所述第二控制程序调用控制所述测量仪器的远程接口,将所述测量仪器的控制请求发送给所述第一控制程序,所述第一控制程序调用所述服务端上的接口驱动程序和驱动库对所述测量仪器进行控制,从而实现对测量仪器的控制,上述测量仪器的远程控制方案,可以通过远程过程调用服务框架生成工具实现测量仪器驱动接口级的远程跨语言控制,为测量仪器远程控制方案的扩展提供支撑,有利于测量仪器控制方案与云计算、大数据平台等外部系统之间的无缝集成。

一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上所述的测量仪器的远程控制方法。

上述计算机可读存储介质上存储的计算机程序,被处理器执行时可以实现如上所述的测量仪器的远程控制方法,其可以实现测量仪器驱动接口级的远程跨语言控制,可扩展性高。

一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上所述的测量仪器的远程控制方法。

上述计算机设备中,处理器执行所述程序时可以实现如上所述的测量仪器的远程控制方法,具有较好的通用性和可扩展性。

附图说明

图1为一个实施例的测量仪器的远程控制方法流程图;

图2为一个实施例的程序语言交互示意图;

图3为一个实施例的测量仪器的远程控制系统结构示意图;

图4为一个实施例的计算机设备结构示意图。

具体实施方式

下面结合附图对本发明的测量仪器的远程控制方法和系统的具体实施方式作详细描述。

参考图1,图1所示为一个实施例的测量仪器的远程控制方法流程图,包括如下步骤:

s10,将预定义的接口定义语言文件传递给远程过程调用服务框架生成工具,生成服务端对应的第一控制程序的框架和客户端对应的第二控制程序的框架;其中,所述接口定义语言文件为根据测量仪器驱动接口函数标准设定的接口函数描述性文件;

上述测量仪器可以包括示波器、频谱仪和电压测量装置等符合visa(virtualinstrumentsoftwarearchitecture,虚拟仪器软件架构)驱动标准的仪器设备。测量仪器驱动接口函数指程序控制测量仪器所要调用的函数。上述测量仪器通过服务端与用户操控的客户端进行通信连接。上述测量仪器的驱动接口函数符合visa驱动标准,可以根据visa驱动标准定义生成第一控制程序框架和第二控制程序框架的接口定义语言文件,以便通过所述远程过程调用服务框架生成工具依据所述接口定义语言文件生成第一控制程序的框架和第二控制程序框架。

上述远程过程调用服务框架生成工具可以为thrift框架。thrift框架是可伸缩的跨语言服务开发框架,基于thrift开发的系统,可实现服务的远程跨语言无缝调用。上述thrift框架采用二进制格式传输数据,与其他基于xml(可扩展标记语言)、json(javascriptobjectnotation,javascript对象标记语言)等方式的远程测量仪器控制方式相比,数据传输效率更高。上述接口定义语言文件为idl文件,主要包括数据类型和服务接口函数的定义等内容。定义thrift的idl文件,具体是确定哪些函数需要进行远程调用,以及对相关数据类型进行定义。thrift的idl语言采用类似面向对象的方式,一般由若干服务和服务对应的方法(函数)组成。如可定义如下idl文件(文件名inst.thrift):

serviceinstrument{

stringquery(1:stringcmd)

}

上述远程过程调用服务框架生成工具可以运行在任意一可以运行标准linux或标准windows的计算机上。上述第一控制程序为基于远程过程调用服务框架生成工具生成的第一控制程序的框架开发完善后的程序,也可以称为服务端代码或者服务端程序,将其安装在相应服务端,运行后可实现远程仪器控制服务。上述第二控制程序为基于远程过程调用服务框架生成工具生成的第二控制程序的框架,根据用户控制相应测量仪器的逻辑,开发完善后的程序,也可以称为客户端代码或者客户端程序,其在客户端运行后,可以通过远程调用第一控制程序的相关服务实现测量仪器的控制。

若上述远程过程调用服务框架生成工具为thrift框架,具体地,可以运行命令thrift--genjavainst.thrift生成java语言的客户端程序(第二控制程序)和服务端程序(第一控制程序);其中java指生成的语言,可以改为其他语言,如python等,inst.thrift为定义的idl文件。上述由thrift生成的客户端和服务端中的测量仪器控制代码通过一个类表征,对应inst.thrift的举例即为instrument类,其包含query函数(方法)。通过远程过程调用服务框架生成工具生成的所述第一控制程序仅为类的接口,即只有相应的类和函数名称,函数体(也即函数内部实现测量仪器控制的代码)需要根据测量仪器驱动程序的编程接口进行开发。

s20,通过测量仪器的接口驱动程序编程接口,完善所述第一控制程序,并且在所述服务端安装接口驱动程序和驱动库,在所述服务端上安装运行所述第一控制程序;其中,所述第一控制程序接收来自所述第二控制程序的测量仪器控制请求,并将所述测量仪器控制请求通过接口驱动程序和驱动库传递给测量仪器,实现测量仪器的控制;

上述驱动库可以为visa驱动库,相应的上述接口驱动程序可以为基于visa驱动库的pyvisa驱动接口程序。

visa是vxiplug&play联盟制定的i/o接口软件标准及其规范的总称,visa提供用于仪器编程的标准i/o函数库,当前很多仪器设备的驱动均基于visa接口标准和规范,基于visa接口标准开发仪器设备远程控制系统可使系统适用的仪器设备类型更广、系统通用性更强。且大部分测量仪器都支持visa驱动,标准化的接口便于开发。visa驱动库为动态链接库,其负责与测量仪器直接交互。要实现自定义逻辑的仪器设备控制流程,需要调用接口驱动程序,具体可以采用开源的pyvisa接口驱动。pyvisa提供python编程接口供测量仪器控制程序的开发。

s30,根据测量仪器控制的逻辑完善第二控制程序,在所述客户端运行第二控制程序,通过所述第二控制程序调用控制所述测量仪器的远程接口,将所述测量仪器的控制请求发送给所述第一控制程序,所述第一控制程序调用所述服务端上的接口驱动程序和驱动库对所述测量仪器进行控制。

通过所述远程过程调用服务框架生成工具生成的仅为所述第一控制程序的框架和所述第二控制程序的框架。其中,需要根据idl文件中定义的测量仪器控制服务结合接口驱动程序的api对第一控制程序的框架进行完善。完善后即完成了所述第一控制程序的开发,可安装、运行于与仪器相连的计算机(即服务端)之上。基于所述第二控制程序的框架,用户可开发自定义仪器控制逻辑的程序,即所述第二控制程序,开发后部署于用户侧的客户端。客户端与服务端通过远程网络相连,客户端只要设置服务端的ip和端口,即可连接服务端进行仪器的远程控制。

本实施例提供的测量仪器的远程控制方法,可以将根据测量仪器驱动接口函数标准设定的接口定义语言文件传递至远程过程调用服务框架生成工具,生成服务端对应的第一控制程序的框架和客户端对应的第二控制的框架,进而在服务端安装运行所述第一控制程序,在所述客户端安装运行第二控制程序,通过所述第二控制程序调用控制所述测量仪器的远程接口,将所述测量仪器的控制请求发送给所述第一控制程序,所述第一控制程序调用所述服务端上的接口驱动程序和驱动库对所述测量仪器进行控制,从而实现对测量仪器的控制,上述测量仪器的远程控制方案,可以通过远程过程调用服务框架生成工具实现测量仪器驱动接口级的远程跨语言控制,为测量仪器远程控制方案的扩展提供支撑,有利于测量仪器控制方案与云计算、大数据平台等外部系统之间的无缝集成。

在一个实施例中,上述将预定义的接口定义语言文件传递给远程过程调用服务框架生成工具,客户端对应的第二控制程序的框架的过程包括:

运行所述远程过程调用服务框架生成工具,将所述接口定义语言文件传递给远程过程调用服务框架生成工具,生成多个设定语言的第二控制程序;其中,所述设定语言为客户端远程控制测量仪器的程序语言。

所述远程过程调用服务框架生成工具可以生成多种语言的第一控制程序框架和第二控制程序框架。服务端的第一控制程序选取一种程序语言实现即可,客户端的第二控制程序可以是多种不同语言,以实现后续对相应测量仪器跨语言控制的便利性。上述服务端对应的第一控制程序和客户端对应的第二控制程序之间的程序语言交互示例图可以参考图2所示,服务端对应的第一控制程序为python服务端程序,客户端对应的第二控制程序可以包括java客户端程序、python客户端程序以及c++客户端程序等所述远程过程调用服务框架生成工具支持的编程语言。

作为一个实施例,上述第一控制程序为基于python接口驱动程序。

作为一个实施例,上述第一控制程序也可以为pyvisa接口驱动程序开发的服务程序。

在一个实施例中,上述在所述服务端上安装运行所述第一控制程序之前,还包括:

在所述服务器安装驱动库和接口驱动程序;

根据接口驱动程序的编程接口,完善所述远程过程调用服务框架生成工具生成的所述第一控制程序框架,形成完整的所述第一控制程序。

上述visa驱动库等驱动库可以与测量仪器直接交互,具体地,visa接口驱动程序则调用visa驱动库实现自定义逻辑的设备控制流程,可以采用开源的pyvisa接口驱动。visa接口驱动程序可以提供编程的api接口,通过相应的语言(如python语言)调用对应的api即可开发仪器本地控制程序。

在一个实施例中,上述通过所述第二控制程序调用控制所述测量仪器的远程接口,将所述测量仪器的控制请求发送给所述第一控制程序,所述第一控制程序调用所述服务端上的接口驱动程序和驱动库对所述测量仪器进行控制之前,还包括:

在所述第二控制程序中设置所述服务端的侦听端口;

在所述第一控制程序中配置所述服务端的ip地址和所述服务端的侦听端口;

在服务端运行所述第一控制程序,在客户端运行所述第二控制程序,建立所述客户端与服务端的远程通信连接。

本实施例在测量仪器远程控制应用程序的客户端中,配置服务端的ip地址和可调用封装的驱动接口等相关端口,通过客户端远程控制仪器设备。

在一个实施例中,上述通过所述第二控制程序调用控制所述测量仪器的远程接口,将所述测量仪器的控制请求发送给所述第一控制程序,所述第一控制程序调用所述服务端上的接口驱动程序和驱动库对所述测量仪器进行控制的过程包括:

运行于所述客户端的第二控制程序调用所述仪器控制接口函数向运行于服务端的所述第一控制程序发送所述仪器控制请求;所述第一控制程序根据所述第二控制程序调用的所述仪器控制接口函数,调用所述服务端上对应的所述接口驱动程序的函数,由该接口驱动程序的函数调用驱动库中对应的函数对所述测量仪器进行控制,所述测量仪器的返回值依次经由所述驱动库、所述接口驱动程序、所述第一控制程序最后返回给运行于所述客户端上的第二控制程序。

上述测量仪器的远程控制方案可以对测量仪器的所有原生驱动接口进行远程的映射,从而实现仪器设备所有功能的远程访问,提高仪器设备远程控制的灵活性;基于visa接口标准开发仪器设备远程控制系统,可使开发的系统适用于所有符合visa接口标准的仪器设备,通用性更强;可生成多种不同编程语言的客户端api(applicationprogramminginterface,应用程序编程接口),基于这些客户端api开发远程控制的客户端应用程序,可实现跨语言的仪器设备远程控制,极大方便了系统的跨语言扩展。

参考图3,图3所示为一个实施例的测量仪器的远程控制系统结构示意图,包括:

生成模块10,用于将预定义的接口定义语言文件传递给远程过程调用服务框架生成工具,生成服务端对应的第一控制程序的框架和客户端对应的第二控制程序的框架;其中,所述接口定义语言文件为根据测量仪器驱动接口函数标准设定的接口函数描述性文件;

安装模块20,用于通过测量仪器的接口驱动程序编程接口,完善所述第一控制程序,并且在所述服务端安装接口驱动程序和驱动库,在所述服务端上安装运行所述第一控制程序;

控制模块30,用于根据测量仪器控制的逻辑完善第二控制程序,在所述客户端运行第二控制程序,通过所述第二控制程序调用控制所述测量仪器的远程接口,将所述测量仪器的控制请求发送给所述第一控制程序,所述第一控制程序调用所述服务端上的接口驱动程序和驱动库对所述测量仪器进行控制。

本发明提供的测量仪器的远程控制系统与本发明提供的测量仪器的远程控制方法一一对应,在所述测量仪器的远程控制方法的实施例阐述的技术特征及其有益效果均适用于测量仪器的远程控制系统的实施例中,特此声明。

基于如上所述的示例,一个实施例中还提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上所述的测量仪器的远程控制方法。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性的计算机可读取存储介质中,如本发明实施例中,该程序可存储于计算机系统的存储介质中,并被该计算机系统中的至少一个处理器执行,以实现包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(read-onlymemory,rom)或随机存储记忆体(randomaccessmemory,ram)等。

基于如上所述的示例,参考图4所示,本发明还提供一种计算机设备60,该计算机设备包括存储器61、处理器62及存储在存储器62上并可在处理器61上运行的计算机程序,所述处理器61执行所述程序时实现如上述各实施例中的任意一种测量仪器的远程控制方法。

上述计算机设备60可以包括电脑等智能处理设备。本领域普通技术人员可以理解存储器61存储的计算机程序,与上述测量仪器的远程控制方法实施例中的描述相对应,处理器62还可用于执行存储器61所存储的其他可执行指令。

以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

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