一种为lxi模块提供远程控制功能的代理服务系统及方法

文档序号:6631790阅读:310来源:国知局
一种为lxi模块提供远程控制功能的代理服务系统及方法
【专利摘要】本发明将LXI模块的功能实现从模块内部控制系统分离开,形成可供外部控制计算机或外部控制系统调用的以模块功能为接口的二次开发接口层,并且在模块内部设计了以控制命令为接口的代理服务子系统,该系统与模块具体功能无关,因此能够形成一个稳固的系统可以通用于LXI总线模块的远程控制开发。基于本发明设计的代理服务系统,其模块内外部控制系统以控制命令为接口,与具体模块功能无关,其代理服务系统中运行在模块内部的代理服务子系统可作为一个稳固的系统供LXI模块远程控制功能开发,解决了现有技术在设计维护过程中需要不断重复开发带来的开发周期长、开发效率低等问题。
【专利说明】一种为LXI模块提供远程控制功能的代理服务系统及方法

【技术领域】
[0001] 本发明属于测试【技术领域】,尤其涉及的是一种为LXI模块提供远程控制功能的代 理服务系统及方法。

【背景技术】
[0002] LXI模块是基于LAN的模块化仪器,具有通用且简便的控制接口,因此在构建远程 控制测试系统中具有广泛的应用。
[0003] 传统方式下LXI模块的远程控制功能开发需要分别开发模块内部和外部控制系 统,这种开发模式虽然能够实现LXI模块的远程控制,但是在远程控制功能的实现过程中 需要分别验证和修改内、外部控制系统,并且要保证两个控制系统间接口的一致性,这种实 现方式下模块如需要升级维护就要打破原有的控制系统,重新建立一个新的控制系统,首 先这种重复性的开发会造成时间浪费,其次这种生命周期过短的控制框架导致了模块远控 功能的不稳定。
[0004] LXI模块化仪器自带处理器、网络连接、电源和触发端口,通过网络传输计算机与 仪器之间的通信信息。目前LXI模块远程控制系统的实现大多采用分别设计模块内部控制 系统12和外部控制系统11的方案。模块内部控制系统12采用分层设计,从下至上包括硬 件单元读写层、功能接口层,横向按照不同功能分别设计相应的硬件读写函数和功能接口 函数;硬件单元读写层负责与LXI模块进行数据读写;功能接口层针对不同功能进行硬件 读写函数设计,并向上提供设置接口;外部控制系统11可以通过LAN对LXI模块进行功能 设置,需要具备与模块内部控制系统12中的功能接口层的函数接口保持一致,具体示意图 如图1所示。LXI模块因其小型化设计要求,在电路设计上常常不具备显示器、键盘等人机 交互接口,因此不具备自主开发能力,即无法在本模块上设计和调试程序,需要外部开发系 统的支持,因此LXI模块远程控制系统中模块内控制系统的开发每次都需要经由外部主机 编译后下载到LXI模块内再由外部主机验证程序的正确性,从图1可知,模块内部系统需要 分别开发硬件单元读写层和功能接口层的驱动程序或函数,每一个层次每种模块功能的实 现都需要经过反复的下载、验证,而且如果模块功能需要改进升级就需要功能接口层和硬 件单元读写层重新设计、开发。一方面这种远控系统开发方式首先时间消耗较大、其次模块 功能的稍许改动就需要重新组建设计架构,导致开发效率低下,增加开发过程中的人力时 间成本。
[0005] 因此,现有技术存在缺陷,需要改进。


【发明内容】

[0006] 本发明的目的是为了解决现有LXI模块远程控制功能开发以模块具体功能为开 发接口导致的远程控制系统在设计实现以及维护升级过程中的重复性开发问题。
[0007] 本发明的技术方案如下:
[0008] -种为LXI模块提供远程控制功能的代理服务系统,其中,包括代理服务子系统 与二次开发接口层;所述代理服务子系统,用于实现接收二次开发接口层发送的控制命令, 并将命令包含的数据传送给LXI模块;所述二次开发接口层,用于实现LXI模块的功能函数 设计,并对代理服务子系统提供控制命令接口。
[0009] -种为LXI模块提供远程控制功能的代理服务系统,其中,所述代理服务子系统 包含命令分析层和数据处理层,所述命令分析层用于针对二次开发接口层发送的控制命令 进行解析,并将解析后的数据发送给数据处理层;所述数据处理层用于实现读写函数,将从 命令分析层获取的数据按照不同数据类型进行数据读写。
[0010] 一种为LXI模块提供远程控制功能的代理服务系统,其中,所述命令分析层,用于 对二次开发接口层发送的控制命令进行命令分析,所述命令分析步骤为:
[0011] 步骤101、读取命令数据;
[0012] 步骤102、判断命令类型,如果命令中包含"#D"标志则视为该命令包含多于一 个的数据,将该命令包含的数据放入大数据缓冲区;其他命令则顺序进入命令堆栈等待处 理;
[0013] 步骤103、判断读取命令是否结束,如果命令中包含"\n"或";"标志则视为一条 命令读取完毕,如果不包含"\n"或";"标志则继续读取命令。
[0014] 一种为LXI模块提供远程控制功能的代理服务方法,其中,包括以下步骤:
[0015] 步骤1 :读取命令缓冲区数据;
[0016] 步骤2 :根据命令格式进行判断;
[0017] 步骤3 :若读取数据为单个数据,则判断命令是否结束,如果结束则进行与LXI模 块底层模块驱动的数据交互,如果命令没有结束则继续读取命令;
[0018] 步骤4 :若读取数据为多于1个数据,判断数据是否读取完毕,如果读取完毕,则将 数据复制到数据缓冲区中进行与LXI模块底层模块驱动的数据交互,如果没有读取完毕, 则继续读取数据;
[0019] 上述步骤3或步骤4的顺序不分先后。
[0020] -种为LXI模块提供远程控制功能的代理服务方法,其中,所述步骤2中所述命令 格式为远程客户端发送控制命令中发送的命令格式。
[0021] 本发明改变了现有技术下LXI模块远程控制系统开发中的开发接口与模块功能 一一对应的关系,本发明提取了不同模块功能设置包含的数据内容,并根据不同类型的数 据读写设计了相应的控制命令,实现了以控制命令为接口的代理服务系统。该代理服务系 统包括代理服务子系统和二次开发接口层。将该代理服务子系统运行在LXI模块内部,当 需要控制LXI模块具体功能时,外部控制端调用二次开发接口层提供的具体功能函数,然 后二次开发接口层将不同功能函数对应的控制命令传递给模块内部的代理服务子系统,代 理服务子系统中的命令分析层首先对命令进行解析,并将解析后的命令中包含的数据传递 给数据处理层,数据处理层根据不同数据类型进行与LXI模块底层硬件的数据读写。
[0022] 基于本发明设计的代理服务系统,其模块内外部控制系统以控制命令为接口,与 具体模块功能无关,其代理服务系统中运行在模块内部的代理服务子系统可作为一个稳固 的系统供LXI模块远程控制功能开发,并且这种通用的接口设计使得该代理服务系统可以 通用于同类LXI模块远程控制功能开发,大幅减小了同类模块远程控制系统的开发周期, 并且简化了以现有技术构建LXI模块远程控制系统带来的复杂调试过程和不断重复开发 导致的开发周期长,开发效率低等问题。

【专利附图】

【附图说明】
[0023] 图1为现有技术中LXI模块远程控制系统结构图。
[0024] 图2为本发明代理服务系统的结构示意图。
[0025] 图3为本发明代理服务系统中代理服务子系统命令分析层工作流程图。
[0026] 图4为本发明代理服务子系统的工作流程意图。

【具体实施方式】
[0027] 以下结合附图和具体实施例,对本发明进行详细说明。
[0028] 实施例1
[0029] 本发明提供一种为LXI模块提供远程控制功能的代理服务系统,其中,包括代理 服务子系统与二次开发接口层;所述代理服务子系统,用于实现接收二次开发接口层发送 的控制命令,并将命令包含的数据传送给LXI模块;所述二次开发接口层,用于实现LXI模 块的功能函数设计,并对代理服务子系统提供控制命令接口。
[0030] 上述中,所述代理服务子系统包含命令分析层和数据处理层,所述命令分析层用 于针对二次开发接口层发送的控制命令进行解析,并将解析后的数据发送给数据处理层; 所述数据处理层用于实现读写函数,将从命令分析层获取的数据按照不同数据类型进行数 据读写。
[0031] 上述中,所述命令分析层,用于对二次开发接口层发送的控制命令进行命令分析, 所述命令分析步骤为 :
[0032] 步骤101、读取命令数据;
[0033] 步骤102、判断命令类型,如果命令中包含"#D"标志则视为该命令包含多于一 个的数据,将该命令包含的数据放入大数据缓冲区;其他命令则顺序进入命令堆栈等待处 理;
[0034] 步骤103、判断读取命令是否结束,如果命令中包含"\n"或";"标志则视为一条 命令读取完毕,如果不包含"\n"或";"标志则继续读取命令。
[0035] 本发明同时还提供一种为LXI模块提供远程控制功能的代理服务方法,其中,包 括以下步骤:
[0036] 步骤1 :读取命令缓冲区数据;
[0037] 步骤2 :根据命令格式进行判断;
[0038] 步骤3 :若读取数据为单个数据,则判断命令是否结束,如果结束则进行与LXI模 块底层模块驱动的数据交互,如果命令没有结束则继续读取命令;
[0039] 步骤4 :若读取数据为多于1个数据,判断数据是否读取完毕,如果读取完毕,则将 数据复制到数据缓冲区中进行与LXI模块底层模块驱动的数据交互,如果没有读取完毕, 则继续读取数据;
[0040] 上述步骤3或步骤4的顺序不分先后。
[0041] 上述中,所述步骤2中所述命令格式为远程客户端发送控制命令中发送的命令格 式。
[0042] 在上述内容的基础上,进一步结合图2至图4说明本实施方式,本发明将LXI模 块的功能实现从模块内部控制系统分离开,形成可供外部控制计算机或外部控制系统调用 的以模块功能为接口的二次开发接口层21,并且在模块内部设计了以控制命令为接口的代 理服务子系统22,该系统与模块具体功能无关,因此能够形成一个稳固的系统可以通用于 LXI总线模块的远程控制开发。代理服务子系统22包括命令分析层221和数据处理层222。 命令分析层221解析二次接口层21发送的控制命令,并将解析后的数据发送给数据处理层 222进行与LXI模块底层硬件的数据交互。
[0043] 命令分析层221采用Windows应用程序设计命令分析处理程序,该命令分析处理 程序包括两部分,一部分是不断监听外部控制端通过网络发送的数据,另一部分是针对命 令的分析处理。其监听程序中本发明调用的系统函数包括:
[0044] DWSAStartupO :用于初始化套接字资源
[0045] 2) socket ():用于创建监听套接字
[0046] 3) bind ():绑定监听套接字
[0047] 4) listen ():监听套接字
[0048] 5) ioctlsocket ():设置套接字通讯模式
[0049] 6) accept ():建立通讯连接
[0050] 7)recv():接收通讯信息
[0051] 8) send ():发送数据
[0052] 9)closesocket():关闭当前套接字
[0053] 监听通讯过程包括如下步骤:
[0054] 步骤201 :首先调用WSAStartup ()函数初始化套接字资源;
[0055] 步骤202 :LXI模块进程调用socket ()函数创建套接字并给套接字地址变量赋初 值;
[0056] 步骤203 :调用bind ()函数将LXI模块地址绑定到创建的套接字上;
[0057] 步骤204 :LXI模块进程调用IistenO函数监听来自外部控制端的连接请求。无 连接请求时,服务进程被阻塞。当连接请求到来后,调用acceptO函数生成一个新的字节 流套接字,并返回外部控制端套接字地址,从而在命令分析程序中用新的被赋予外部控制 端地址的套接字同外部控制端进程进行连接。
[0058] 步骤205 :调用recvO函数接收信息以及调用sendO函数返回信息;
[0059] 步骤206 :调用closesocket ()函数关闭通信连接。
[0060] 本实施方式中涉及的控制命令采用具有一定兼容性的SCPI可编程仪器标准格式 定义,针对包含单个数据的命令和多于1个数据的命令,本发明定义了如下区分方式:命令 中包含"ffl)"表示该命令所包含数据为多于1个的数据;若不包含则表示该命令所包含数 据为单个数据,具体命令格式如表1所示,其中仪器标识查询命令和操作完成查询命令为 SCPI规范中提供的公共命令:
[0061] 表 1
[0062] 命令含义 命令格式

【权利要求】
1. 一种为LXI模块提供远程控制功能的代理服务系统,其特征在于,包括代理服务子 系统与二次开发接口层;所述代理服务子系统,用于实现接收二次开发接口层发送的控制 命令,并将命令包含的数据传送给LXI模块;所述二次开发接口层,用于实现LXI模块的功 能函数设计,并对代理服务子系统提供控制命令接口。
2. 如权利要求1所述的一种为LXI模块提供远程控制功能的代理服务系统,其特征在 于,所述代理服务子系统包含命令分析层和数据处理层,所述命令分析层用于针对二次开 发接口层发送的控制命令进行解析,并将解析后的数据发送给数据处理层;所述数据处理 层用于实现读写函数,将从命令分析层获取的数据按照不同数据类型进行数据读写。
3. 如权利要求2所述的一种为LXI模块提供远程控制功能的代理服务系统,其特征在 于,所述命令分析层,用于对二次开发接口层发送的控制命令进行命令分析,所述命令分 析步骤为: 步骤101、读取命令数据; 步骤102、判断命令类型,如果命令中包含"#D"标志则视为该命令包含多于一个的数 据,将该命令包含的数据放入大数据缓冲区;其他命令则顺序进入命令堆栈等待处理; 步骤103、判断读取命令是否结束,如果命令中包含"\n"或";"标志则视为一条命令 读取完毕,如果不包含"\n"或";"标志则继续读取命令。
4. 一种为LXI模块提供远程控制功能的代理服务方法,其特征在于,包括以下步骤: 步骤1 :读取命令缓冲区数据; 步骤2 :根据命令格式进行判断; 步骤3 :若读取数据为单个数据,则判断命令是否结束,如果结束则进行与LXI模块底 层模块驱动的数据交互,如果命令没有结束则继续读取命令; 步骤4 :若读取数据为多于1个数据,判断数据是否读取完毕,如果读取完毕,则将数据 复制到数据缓冲区中进行与LXI模块底层模块驱动的数据交互,如果没有读取完毕,则继 续读取数据; 上述步骤3或步骤4的顺序不分先后。
5. 如权利要求4所述的为LXI模块提供远程控制功能的代理服务方法,其特征在于,所 述步骤2中所述命令格式为远程客户端发送控制命令中发送的命令格式。
【文档编号】G06F9/44GK104331281SQ201410583042
【公开日】2015年2月4日 申请日期:2014年10月27日 优先权日:2014年10月27日
【发明者】盛楠, 李龙, 邱畅 申请人:中国电子科技集团公司第四十一研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1