CN104331281B - 一种为lxi模块提供远程控制功能的代理服务系统及方法 - Google Patents
一种为lxi模块提供远程控制功能的代理服务系统及方法 Download PDFInfo
- Publication number
- CN104331281B CN104331281B CN201410583042.2A CN201410583042A CN104331281B CN 104331281 B CN104331281 B CN 104331281B CN 201410583042 A CN201410583042 A CN 201410583042A CN 104331281 B CN104331281 B CN 104331281B
- Authority
- CN
- China
- Prior art keywords
- data
- order
- modules
- lxi
- function
- 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.)
- Expired - Fee Related
Links
Landscapes
- Computer And Data Communications (AREA)
Abstract
本发明将LXI模块的功能实现从模块内部控制系统分离开,形成可供外部控制计算机或外部控制系统调用的以模块功能为接口的二次开发接口层,并且在模块内部设计了以控制命令为接口的代理服务子系统,该系统与模块具体功能无关,因此能够形成一个稳固的系统可以通用于LXI总线模块的远程控制开发。基于本发明设计的代理服务系统,其模块内外部控制系统以控制命令为接口,与具体模块功能无关,其代理服务系统中运行在模块内部的代理服务子系统可作为一个稳固的系统供LXI模块远程控制功能开发,解决了现有技术在设计维护过程中需要不断重复开发带来的开发周期长、开发效率低等问题。
Description
技术领域
本发明属于测试技术领域,尤其涉及的是一种为LXI模块提供远程控制功能的代理服务系统及方法。
背景技术
LXI模块是基于LAN的模块化仪器,具有通用且简便的控制接口,因此在构建远程控制测试系统中具有广泛的应用。
传统方式下LXI模块的远程控制功能开发需要分别开发模块内部和外部控制系统,这种开发模式虽然能够实现LXI模块的远程控制,但是在远程控制功能的实现过程中需要分别验证和修改内、外部控制系统,并且要保证两个控制系统间接口的一致性,这种实现方式下模块如需要升级维护就要打破原有的控制系统,重新建立一个新的控制系统,首先这种重复性的开发会造成时间浪费,其次这种生命周期过短的控制框架导致了模块远控功能的不稳定。
LXI模块化仪器自带处理器、网络连接、电源和触发端口,通过网络传输计算机与仪器之间的通信信息。目前LXI模块远程控制系统的实现大多采用分别设计模块内部控制系统12和外部控制系统11的方案。模块内部控制系统12采用分层设计,从下至上包括硬件单元读写层、功能接口层,横向按照不同功能分别设计相应的硬件读写函数和功能接口函数;硬件单元读写层负责与LXI模块进行数据读写;功能接口层针对不同功能进行硬件读写函数设计,并向上提供设置接口;外部控制系统11可以通过LAN 对LXI模块进行功能设置,需要具备与模块内部控制系统12中的功能接口层的函数接口保持一致,具体示意图如图1所示。LXI模块因其小型化设计要求,在电路设计上常常不具备显示器、键盘等人机交互接口,因此不具备自主开发能力,即无法在本模块上设计和调试程序,需要外部开发系统的支持,因此LXI模块远程控制系统中模块内控制系统的开发每次都需要经由外部主机编译后下载到LXI模块内再由外部主机验证程序的正确性,从图1可知,模块内部系统需要分别开发硬件单元读写层和功能接口层的驱动程序或函数,每一个层次每种模块功能的实现都需要经过反复的下载、验证,而且如果模块功能需要改进升级就需要功能接口层和硬件单元读写层重新设计、开发。一方面这种远控系统开发方式首先时间消耗较大、其次模块功能的稍许改动就需要重新组建设计架构,导致开发效率低下,增加开发过程中的人力时间成本。
因此,现有技术存在缺陷,需要改进。
发明内容
本发明的目的是为了解决现有LXI模块远程控制功能开发以模块具体功能为开发接口导致的远程控制系统在设计实现以及维护升级过程中的重复性开发问题。
本发明的技术方案如下:
一种为LXI模块提供远程控制功能的代理服务系统,其中,包括代理服务子系统与二次开发接口层;所述代理服务子系统,用于实现接收二次开发接口层发送的控制命令,并将命令包含的数据传送给LXI模块;所述二次开发接口层,用于实现LXI模块的功能函数设计,并对代理服务子系统提供控制命令接口。
一种为LXI模块提供远程控制功能的代理服务系统,其中,所述代理服务子系统包含命令分析层和数据处理层,所述命令分析层用于针对二次 开发接口层发送的控制命令进行解析,并将解析后的数据发送给数据处理层;所述数据处理层用于实现读写函数,将从命令分析层获取的数据按照不同数据类型进行数据读写。
一种为LXI模块提供远程控制功能的代理服务系统,其中,所述命令分析层,用于对二次开发接口层发送的控制命令进行命令分析,所述命令分析步骤为:
步骤101、读取命令数据;
步骤102、判断命令类型,如果命令中包含“#D”标志则视为该命令包含多于一个的数据,将该命令包含的数据放入大数据缓冲区;其他命令则顺序进入命令堆栈等待处理;
步骤103、判断读取命令是否结束,如果命令中包含“\n”或“;”标志则视为一条命令读取完毕,如果不包含“\n”或“;”标志则继续读取命令。
一种为LXI模块提供远程控制功能的代理服务方法,其中,包括以下步骤:
步骤1:读取命令缓冲区数据;
步骤2:根据命令格式进行判断;
步骤3:若读取数据为单个数据,则判断命令是否结束,如果结束则进行与LXI模块底层模块驱动的数据交互,如果命令没有结束则继续读取命令;
步骤4:若读取数据为多于1个数据,判断数据是否读取完毕,如果读取完毕,则将数据复制到数据缓冲区中进行与LXI模块底层模块驱动的数据交互,如果没有读取完毕,则继续读取数据;
上述步骤3或步骤4的顺序不分先后。
一种为LXI模块提供远程控制功能的代理服务方法,其中,所述步骤2中所述命令格式为远程客户端发送控制命令中发送的命令格式。
本发明改变了现有技术下LXI模块远程控制系统开发中的开发接口与模块功能一一对应的关系,本发明提取了不同模块功能设置包含的数据内容,并根据不同类型的数据读写设计了相应的控制命令,实现了以控制命令为接口的代理服务系统。该代理服务系统包括代理服务子系统和二次开发接口层。将该代理服务子系统运行在LXI模块内部,当需要控制LXI模块具体功能时,外部控制端调用二次开发接口层提供的具体功能函数,然后二次开发接口层将不同功能函数对应的控制命令传递给模块内部的代理服务子系统,代理服务子系统中的命令分析层首先对命令进行解析,并将解析后的命令中包含的数据传递给数据处理层,数据处理层根据不同数据类型进行与LXI模块底层硬件的数据读写。
基于本发明设计的代理服务系统,其模块内外部控制系统以控制命令为接口,与具体模块功能无关,其代理服务系统中运行在模块内部的代理服务子系统可作为一个稳固的系统供LXI模块远程控制功能开发,并且这种通用的接口设计使得该代理服务系统可以通用于同类LXI模块远程控制功能开发,大幅减小了同类模块远程控制系统的开发周期,并且简化了以现有技术构建LXI模块远程控制系统带来的复杂调试过程和不断重复开发导致的开发周期长,开发效率低等问题。
附图说明
图1为现有技术中LXI模块远程控制系统结构图。
图2为本发明代理服务系统的结构示意图。
图3为本发明代理服务系统中代理服务子系统命令分析层工作流程图。
图4为本发明代理服务子系统的工作流程意图。
具体实施方式
以下结合附图和具体实施例,对本发明进行详细说明。
实施例1
本发明提供一种为LXI模块提供远程控制功能的代理服务系统,其中,包括代理服务子系统与二次开发接口层;所述代理服务子系统,用于实现接收二次开发接口层发送的控制命令,并将命令包含的数据传送给LXI模块;所述二次开发接口层,用于实现LXI模块的功能函数设计,并对代理服务子系统提供控制命令接口。
上述中,所述代理服务子系统包含命令分析层和数据处理层,所述命令分析层用于针对二次开发接口层发送的控制命令进行解析,并将解析后的数据发送给数据处理层;所述数据处理层用于实现读写函数,将从命令分析层获取的数据按照不同数据类型进行数据读写。
上述中,所述命令分析层,用于对二次开发接口层发送的控制命令进行命令分析,所述命令分析步骤为:
步骤101、读取命令数据;
步骤102、判断命令类型,如果命令中包含“#D”标志则视为该命令包含多于一个的数据,将该命令包含的数据放入大数据缓冲区;其他命令则顺序进入命令堆栈等待处理;
步骤103、判断读取命令是否结束,如果命令中包含“\n”或“;”标志则视为一条命令读取完毕,如果不包含“\n”或“;”标志则继续读取命令。
本发明同时还提供一种为LXI模块提供远程控制功能的代理服务方法,其中,包括以下步骤:
步骤1:读取命令缓冲区数据;
步骤2:根据命令格式进行判断;
步骤3:若读取数据为单个数据,则判断命令是否结束,如果结束则进行与LXI模块底层模块驱动的数据交互,如果命令没有结束则继续读取命令;
步骤4:若读取数据为多于1个数据,判断数据是否读取完毕,如果读 取完毕,则将数据复制到数据缓冲区中进行与LXI模块底层模块驱动的数据交互,如果没有读取完毕,则继续读取数据;
上述步骤3或步骤4的顺序不分先后。
上述中,所述步骤2中所述命令格式为远程客户端发送控制命令中发送的命令格式。
在上述内容的基础上,进一步结合图2至图4说明本实施方式,本发明将LXI模块的功能实现从模块内部控制系统分离开,形成可供外部控制计算机或外部控制系统调用的以模块功能为接口的二次开发接口层21,并且在模块内部设计了以控制命令为接口的代理服务子系统22,该系统与模块具体功能无关,因此能够形成一个稳固的系统可以通用于LXI总线模块的远程控制开发。代理服务子系统22包括命令分析层221和数据处理层222。命令分析层221解析二次开发接口层21发送的控制命令,并将解析后的数据发送给数据处理层222进行与LXI模块底层硬件的数据交互。
命令分析层221采用Windows应用程序设计命令分析处理程序,该命令分析处理程序包括两部分,一部分是不断监听外部控制端通过网络发送的数据,另一部分是针对命令的分析处理。其监听程序中本发明调用的系统函数包括:
1)WSAStartup():用于初始化套接字资源
2)socket():用于创建监听套接字
3)bind():绑定监听套接字
4)listen():监听套接字
5)ioctlsocket():设置套接字通讯模式
6)accept():建立通讯连接
7)recv():接收通讯信息
8)send():发送数据
9)closesocket():关闭当前套接字
监听通讯过程包括如下步骤:
步骤201:首先调用WSAStartup()函数初始化套接字资源;
步骤202:LXI模块进程调用socket()函数创建套接字并给套接字地址变量赋初值;
步骤203:调用bind()函数将LXI模块地址绑定到创建的套接字上;
步骤204:LXI模块进程调用listen()函数监听来自外部控制端的连接请求。无连接请求时,服务进程被阻塞。当连接请求到来后,调用accept()函数生成一个新的字节流套接字,并返回外部控制端套接字地址,从而在命令分析程序中用新的被赋予外部控制端地址的套接字同外部控制端进程进行连接。
步骤205:调用recv()函数接收信息以及调用send()函数返回信息;
步骤206:调用closesocket()函数关闭通信连接。
本实施方式中涉及的控制命令采用具有一定兼容性的SCPI可编程仪器标准格式定义,针对包含单个数据的命令和多于1个数据的命令,本发明定义了如下区分方式:命令中包含“#D”表示该命令所包含数据为多于1个的数据;若不包含则表示该命令所包含数据为单个数据,具体命令格式如表1所示,其中仪器标识查询命令和操作完成查询命令为SCPI规范中提供的公共命令:
表1
命令含义 | 命令格式 |
仪器标识查询 | *IDN? |
操作完成询问 | *OPC? |
向地址单元写入单个数据 | WRITe:DATA<IX>,<IX> |
向地址单元写入多于1个数据 | WRITe:DATA#D<IX>,<IX> |
从地址单元读取数据 | ?READ:DATA<IX> |
命令分析层的命令分析处理流程如图3所示。具体的命令分析处理步骤如下:
步骤101、读取命令数据;
步骤102、判断命令类型,如果命令中包含“#D”标志则视为该命令包含多于一个的数据,将该命令包含的数据放入大数据缓冲区;其他命令则顺序进入命令堆栈等待处理
步骤103、判断读取命令是否结束,如果命令中包含“\n”或“;”标志则视为一条命令读取完毕,如果不包含“\n”或“;”标志则继续读取命令。
数据处理层222采用Windows应用程序针对单个数据类型和多于一个数据类型的数据读写设计了通用函数,如表2所示:
表2
数据处理层主要进行与LXI模块底层硬件的I/O读写,调用系统函数DeviceIOControl(),因此要针对不同类型的数据读写定义IO_CTL控制码如表3所示:
表3
数据类型操作 | IO_CTL控制码 |
单个数据读 | IO_CTL_SINGLE_READ |
单个数据写 | IO_CTL_SINGLE_WRITE |
大数据(多于1个数据)读 | IO_CTL_BLOCK_READ |
大数据(多于1个数据)写 | IO_CTL_BLOCK_WRITE |
结合图4说明本实施方式中代理服务子系统的工作流程,本实施方式所述代理服务子系统的工作原理就是不断监听和接收外部客户端发送的数据,并按照命令格式区分不同命令包含的数据内容,具体的工作流程包含以下步骤:
步骤1:读取命令缓冲区数据;
步骤2:根据命令格式进行判断;
步骤3:针对单个数据,判断命令是否结束,如果结束则进行与模块底层驱动的数据交互,如果命令没有结束则继续读取命令。
步骤4:针对多于1个数据,判断数据是否读取完毕,如果读取完毕则将数据复制到数据缓冲区中进行与模块底层驱动的数据交互,如果没有读取完毕则继续读取数据。
步骤3及步骤4属于同级步骤,可根据步骤2的判断结果选择执行。
二次开发接口层21实施在模块外部,采用Windows应用程序设计实现,通过调用代理服务子系统提供的命令接口实现对设备相关的寄存器的读写,并把设备可以实现的功能封装成一些函数接口,供外部控制端或上层应用程序使用。
本发明改变了现有技术下LXI模块远程控制系统开发中的开发接口与模块功能一一对应的关系,本发明提取了不同模块功能设置包含的数据内容,并根据不同类型的数据读写设计了相应的控制命令,实现了以控制命令为 接口的代理服务系统。该代理服务系统包括代理服务子系统和二次开发接口层。将该代理服务子系统运行在LXI模块内部,当需要控制LXI模块具体功能时,外部控制端调用二次开发接口层提供的具体功能函数,然后二次开发接口层将不同功能函数对应的控制命令传递给模块内部的代理服务子系统,代理服务子系统中的命令分析层首先对命令进行解析,并将解析后的命令中包含的数据传递给数据处理层,数据处理层根据不同数据类型进行与LXI模块底层硬件的数据读写。
基于本发明设计的代理服务系统,其模块内外部控制系统以控制命令为接口,与具体模块功能无关,其代理服务系统中运行在模块内部的代理服务子系统可作为一个稳固的系统供LXI模块远程控制功能开发,并且这种通用的接口设计使得该代理服务系统可以通用于同类LXI模块远程控制功能开发,大幅减小了同类模块远程控制系统的开发周期,并且简化了以现有技术构建LXI模块远程控制系统带来的复杂调试过程和不断重复开发导致的开发周期长,开发效率低等问题。
应当理解的是,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,而所有这些改进和变换都应属于本发明所附权利要求的保护范围。
Claims (4)
1.一种为LXI模块提供远程控制功能的代理服务系统,其特征在于,包括代理服务子系统与二次开发接口层;所述代理服务子系统,在模块内部设计并以控制命令为接口,用于实现接收二次开发接口层发送的控制命令,并将命令包含的数据传送给LXI模块,代理服务子系统与模块具体功能无关;所述二次开发接口层,用于实现LXI模块的功能函数设计,将LXI模块的功能实现从模块内部控制系统分离开,形成可供外部控制计算机或外部控制系统调用的以模块功能为接口的二次开发接口层,并对代理服务子系统提供控制命令接口;
所述代理服务子系统包含命令分析层和数据处理层,所述命令分析层用于针对二次开发接口层发送的控制命令进行解析,并将解析后的数据发送给数据处理层;所述数据处理层用于实现读写函数,将从命令分析层获取的数据按照不同数据类型进行数据读写。
2.如权利要求1所述的为LXI模块提供远程控制功能的代理服务系统,其特征在于,所述命令分析层,用于对二次开发接口层发送的控制命令进行解析,所述解析步骤为:
步骤101、读取命令数据;
步骤102、判断命令类型,如果命令中包含“#D”标志则视为该命令包含多于一个的数据,将该命令包含的数据放入大数据缓冲区;其他命令则顺序进入命令堆栈等待处理;
步骤103、判断读取命令是否结束,如果命令中包含“\n”或“;”标志则视为一条命令读取完毕,如果不包含“\n”或“;”标志则继续读取命令。
3.如权利要求1所述的为LXI模块提供远程控制功能的代理服务系统,所述数据处理层用于实现读写函数,将从命令分析层获取的数据按照不同数据类型进行数据读写,其特征在于,包括以下步骤:
步骤1:读取命令缓冲区数据;
步骤2:根据命令格式进行判断;
步骤3:若读取数据为单个数据,则判断命令是否结束,如果结束则进行与LXI模块底层模块驱动的数据交互,如果命令没有结束则继续读取命令;
步骤4:若读取数据为多于1个数据,判断数据是否读取完毕,如果读取完毕,则将数据复制到数据缓冲区中进行与LXI模块底层模块驱动的数据交互,如果没有读取完毕,则继续读取数据;
上述步骤3或步骤4的顺序不分先后。
4.如权利要求3所述的为LXI模块提供远程控制功能的代理服务系统,其特征在于,所述步骤2中所述命令格式为远程客户端发送控制命令中发送的命令格式。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410583042.2A CN104331281B (zh) | 2014-10-27 | 2014-10-27 | 一种为lxi模块提供远程控制功能的代理服务系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410583042.2A CN104331281B (zh) | 2014-10-27 | 2014-10-27 | 一种为lxi模块提供远程控制功能的代理服务系统及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104331281A CN104331281A (zh) | 2015-02-04 |
CN104331281B true CN104331281B (zh) | 2017-12-01 |
Family
ID=52406015
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410583042.2A Expired - Fee Related CN104331281B (zh) | 2014-10-27 | 2014-10-27 | 一种为lxi模块提供远程控制功能的代理服务系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104331281B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109522046A (zh) * | 2018-11-13 | 2019-03-26 | 中国直升机设计研究所 | 一种适配多硬件平台的嵌入式软件开发模型 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102136970A (zh) * | 2011-02-22 | 2011-07-27 | 北京航空航天大学 | 基于lxi的并行多通道可重构仪器 |
CN103257910A (zh) * | 2013-04-26 | 2013-08-21 | 北京航空航天大学 | 可用于现场测试的lxi嵌入式可重配置通用测试平台 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090248348A1 (en) * | 2008-03-31 | 2009-10-01 | Agilent Technologies, Inc. | Reducing Test Time By Downloading Switching Sequences To An Enhanced Switch Unit |
-
2014
- 2014-10-27 CN CN201410583042.2A patent/CN104331281B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102136970A (zh) * | 2011-02-22 | 2011-07-27 | 北京航空航天大学 | 基于lxi的并行多通道可重构仪器 |
CN103257910A (zh) * | 2013-04-26 | 2013-08-21 | 北京航空航天大学 | 可用于现场测试的lxi嵌入式可重配置通用测试平台 |
Non-Patent Citations (2)
Title |
---|
ARM平台上LXI C类仪器底层驱动和应用程序开发;王守华 等;《计算机测量与控制》;20100831;第18卷(第8期);第1937-1939页 * |
LXI模块的远程信息交互;盛楠 等;《LXI模块的远程信息交互》;20111231;第32卷(第12期);第142-145页 * |
Also Published As
Publication number | Publication date |
---|---|
CN104331281A (zh) | 2015-02-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105260337B (zh) | 一种单片机的自动编址方法及系统 | |
CN102118283B (zh) | 一种对通信设备进行测试的方法及装置 | |
CN104965700B (zh) | VxWorks操作系统下实现驱动SPI设备的方法和系统 | |
CN106371847B (zh) | Windows xp系统下CPCI总线RS422通信驱动方法及系统 | |
CN105162646A (zh) | 一种多协议接口测试系统及方法 | |
CN101951298B (zh) | 空地通信系统的一致性测试方法及系统 | |
CN107071083B (zh) | 一种基于嵌入式的多板卡ip地址生成方法及装置 | |
CN115657553A (zh) | Pcie拓扑和pcie设备模拟方法、装置、设备及介质 | |
CN104169897A (zh) | 对用于快速pci高速多功能设备地址解码的数据解码 | |
US10621124B2 (en) | Method, device and computer program product for enabling SR-IOV functions in endpoint device | |
CN106708748B (zh) | 提高OpenStack块存储卷挂载性能的方法及系统 | |
CN105786736A (zh) | 一种多芯片级联的方法、芯片和装置 | |
CN103378994A (zh) | 一种通信设备的测试方法及终端 | |
CN109582524A (zh) | 一种测试方法、系统及电子设备和存储介质 | |
CN203706058U (zh) | 一种基于can总线的多i/o板卡扩展结构 | |
CN103514074A (zh) | Mvb网卡开发方法及平台 | |
CN104331281B (zh) | 一种为lxi模块提供远程控制功能的代理服务系统及方法 | |
CN109416667A (zh) | 具有动态且可配置的响应的、使用两个存储器级的串行设备仿真器 | |
CN103684924A (zh) | 一种测试系统和一种测试方法 | |
CN106789449A (zh) | 一种can总线开发与测试方法及系统 | |
CN103428305A (zh) | 一种网络设备批量升级的方法 | |
CN105490857A (zh) | 一种fc网络设备逻辑远程升级系统 | |
CN103188117B (zh) | 信息交互服务器仿真测试装置及方法 | |
CN111371799B (zh) | Mctp控制器收发数据的控制方法、装置及设备 | |
CN111708568B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20190306 Address after: 266000 No. 98 Xiangjiang Road, Huangdao District, Qingdao City, Shandong Province Patentee after: CHINA ELECTRONICS TECHNOLOGY INSTRUMENTS Co.,Ltd. Address before: 266555 No. 98 Xiangjiang Road, Qingdao economic and Technological Development Zone, Shandong Patentee before: THE 41ST INSTITUTE OF CHINA ELECTRONICS TECHNOLOGY Group Corp. |
|
TR01 | Transfer of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20171201 Termination date: 20211027 |
|
CF01 | Termination of patent right due to non-payment of annual fee |