CN108829387B - 一种基于Windows平台的RPC函数生成方法 - Google Patents

一种基于Windows平台的RPC函数生成方法 Download PDF

Info

Publication number
CN108829387B
CN108829387B CN201810577851.0A CN201810577851A CN108829387B CN 108829387 B CN108829387 B CN 108829387B CN 201810577851 A CN201810577851 A CN 201810577851A CN 108829387 B CN108829387 B CN 108829387B
Authority
CN
China
Prior art keywords
function
rpc
user
file
window
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.)
Active
Application number
CN201810577851.0A
Other languages
English (en)
Other versions
CN108829387A (zh
Inventor
周俊杰
孟庆立
王琨
孟勇萍
宫斌
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
CETC 41 Institute
Original Assignee
CETC 41 Institute
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by CETC 41 Institute filed Critical CETC 41 Institute
Priority to CN201810577851.0A priority Critical patent/CN108829387B/zh
Publication of CN108829387A publication Critical patent/CN108829387A/zh
Application granted granted Critical
Publication of CN108829387B publication Critical patent/CN108829387B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/34Graphical or visual programming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明提供了一种基于Windows平台的RPC函数生成方法,具体为一种应用在智能仪器软件中的基于Windows平台的RPC函数生成方法,本发明在Windows操作系统下,根据用户不同的需求,提供不同的函数测试以及生成方式以满足用户不同的需要,且编辑界面示意清晰,编辑方式简单。根据用户要求生成示例程序,方便用户进行RPC函数的调试以及减少用户向仪器应用软件中添加的工作量。将用户已经编辑生成过的RPC函数文件导入本程序,并提供给用户进行编辑函数、自动测试并重新生成函数文件或动态库的能力。将原本复杂而繁琐的RPC函数移植、编译、集成过程从人工操作转为软件自动配置,节省宝贵的软件人力资源,提高工作效率。

Description

一种基于Windows平台的RPC函数生成方法
技术领域
本发明涉及计算机软件应用领域,具体涉及一种应用在智能仪器软件中的基于Windows平台的RPC函数生成方法。
背景技术
RPC即远程过程调用,RPC函数是当主机运行的程序需要调用某个函数时,而函数的执行体在网络中其它主机上实现的,需要通过主机发送RPC请求,远程调用该函数,函数的执行体在实现其代码的主机上执行完毕后,再把最后的执行结果返回发送该RPC请求的主机,此种函数调用的方式即为远程过程调用。
VXI-11协议在LXI(局域网的仪器扩展)仪器中具有重要作用,LXI仪器使用VXI-11协议作为仪器发现机制,并通过其对LXI仪器进行访问。LXI仪器总线有着开放式工业标准、良好的向后兼容性、成本低廉、互操作性高等特点。使用LXI仪器总线可快捷、高效、经济地创建和重新配置测试系统。LXI仪器总线是当前网络测试系统技术发展的热点。
VXI-11协议在LXI总线仪器当中负责解决控制器和设备间的通信问题,而VXI-11协议的实现是依靠远程过程调用(RPC)机制。LXI总线标准中要求所有的LXI总线仪器实现VXI-11网络协议。VXI-11网络协议使用的是ONC/RPC程序包,该程序包只在Linux操作系统中存在,在Windows平台下使用的则是DCE RPC程序包,不支持ONC/RPC程序包。因此,在Windows操作系统平台下无法直接使用VXI-11网络协议,这就给Windows平台下智能仪器支持LXI标准带来了诸多问题。因此便捷高效地在Windows环境下使用ONC/RPC库逐渐成为设计LXI标准接口的仪器所关注的重要环节。
目前,已有的在Windows平台下使用ONC/RPC库主要有以下两种方法:一种是直接购买第三方开发的商业ONC/RPC库。
另一种方法是在Linux操作系统中寻找RPC协议桩码,手工编译到Windows平台中,并还要将其添加到仪器应用程序中网络通信模块中。如图1所示。
对于外购第三方商业RPC库的方法,主要缺点是:
1.购买商业RPC库成本较高,每销售一台带商业RPC库的仪器都需要相应的费用。
2.商业RPC库一般只开发基于X86架构的端口映射程序,利用其实现的VXI-11网络协议在程序可移植性上会存在问题。
3.商业RPC库无法进行内容的增加、删减等,对于仪器的升级改造具有一定的局限性。
对于自主在Windows平台下实现RPC桩码方法,主要缺点是:
1.需设计者首先很熟悉Linux操作系统,将所有RPC协议桩码在Linux系统中找出,这个过程比较繁琐,然后还需在Windows平台下写测试程序,将这些桩码在Windows平台下编译通过,整个过程较为繁琐。
2.此外还需对Windows平台下的仪器应用软件结构比较熟悉,需将从Linux系统中移植的代码添加到仪器的应用软件中,这个工作具有很大工作量,且效率较低。
发明内容
本发明的目的是提供了一种基于Windows平台的RPC函数生成方法,将原本复杂而繁琐的RPC函数移植、编译、集成过程从人工操作转为软件自动配置,并尽量将大量繁复、琐碎的工作由软件自动完成,以方便添加到仪器应用软件中,从而节省宝贵的软件人力资源,提高工作效率。
本发明采用以下的技术方案:
一种基于Windows平台的RPC函数生成方法,包括以下步骤:
步骤1:函数编辑窗口:提供用户添加、插入、复制、粘贴、删除、剪切、撤销、编辑、搜索RPC函数以及函数节点信息添加的功能;
步骤2:功能操作窗口:用户将编辑好的RPC函数在该窗口显示、浏览,用户使用鼠标点击功能操作窗口生成详细的RPC函数执行框架,生成RPC函数的动态库及与仪器应用软件连接的示例程序;
步骤3:自动测试窗口:用户编辑的RPC函数进行自动测试,给出函数测试执行结果,包括操作是否成功信息、函数正常执行用时信息和读取到的数据大小或内容;
步骤4:根据用户选择的类型自动默认生成RPC函数的标准动态库及相关的.h文件,自动生成RPC函数的.cpp文件及.h文件,并在用户已经编辑过的.cpp文件及.h文件添加或删除对应的部分RPC函数。
优选地,所述步骤1,包括以下子步骤:
步骤1.1:函数编辑窗口提供两种用户手动输入的方式和一种自动生成的方式;
其中一种手动输入的方式是将函数完整名称包括输入参数类型以及返回参数类型输入编辑框中,并导入文件中;
另一种手动输入的方式是与函数列表窗口配合使用的,通过鼠标拖曳或点击“添加/删除”按钮的方式将函数列表中的RPC函数添加到函数编辑窗口中,函数列表窗口显示当前函数节点信息,用户可以在此修改函数返回数据类型、参数数据类型及个数;
自动生成的方式是用户点击“自动生成”按钮,程序自动生成VXI-11协议支持的所有RPC函数;
步骤1.2:函数编辑窗口中用户可以使用菜单栏中各种功能按钮对列表中的RPC函数进行Windows的经典操作,包括添加、插入、复制、粘贴、删除、剪切、撤销、编辑和搜索。
优选地,所述步骤2中,用户点击功能操作窗口中的“生成执行框架”功能,会自动将用户编辑好的RPC函数体生成,并随即生成相关RPC函数的动态库及一个相关RPC函数与仪器连接使用的示例程序。
优选地,所述步骤3,包括以下子步骤:
步骤3.1:在自动测试窗口中,用户点击“测试”按钮,程序会自动将用户编辑保存过的RPC函数进行执行测试,给出被执行函数体内相关的信息,包括操作函数是否成功的信息、函数设置的数据内容、读取到的数据大小或内容以及所有被执行函数消耗的时间;
步骤3.2:将用户已编辑好并加入相关代码段的文件导入自动测试窗口中,按照一定的规则将用户编辑过的文件还原至自动测试窗口中,用户点击“自动测试”按钮,将自己编辑生成的文件执行自动测试操作。
优选地,所述步骤4,包括以下子步骤:
步骤4.1:提供按照用户要求生成的符合Windows要求的RPC函数标准动态库以及相关的.h头文件;
步骤4.2:提供按照函数编辑窗口所显示的命令,自动生成RPC函数的.cpp文件及.h文件,这些文件里包括RPC函数的函数体、头文件中的函数声明以及将用户已经编辑过的文件导入窗口中,进行添加、删除操作。
本发明具有的有益效果是:
1、本发明实现的基于Windows图形界面的RPC函数生成方法,可以在Windows操作系统下,根据用户不同的需求,提供不同的函数测试以及生成方式以满足用户不同的需要,且编辑界面示意清晰,编辑方式简单。
2、RPC函数的生成方法,可以根据用户要求生成示例程序,方便用户进行RPC函数的调试以及减少用户向仪器应用软件中添加的工作量。
3、本发明还可以将用户已经编辑生成过的RPC函数文件导入本程序,并提供给用户进行编辑函数、自动测试并重新生成函数文件或动态库的能力。
4、与现有RPC函数在Windows平台下生成方式比较,在可用性、直观性和效率上较之前有提高。
附图说明
图1为在Linux操作系统中寻找RPC协议桩码的流程图。
图2为RPC功能函数编辑实施示意图。
图3为基于Windows平台的RPC函数生成方法的流程图。
具体实施方式
下面结合附图和具体实施例对本发明的具体实施方式做进一步说明:
结合图2和图3,一种基于Windows平台的RPC函数生成方法,包括以下步骤:
步骤1:函数编辑窗口:提供用户添加、插入、复制、粘贴、删除、剪切、撤销、编辑、搜索RPC函数以及函数节点信息添加等功能。
具体包括以下子步骤:
步骤1.1:函数编辑窗口提供两种用户手动输入的方式和一种自动生成的方式。
其中一种手动输入的方式是将函数完整名称包括输入参数类型以及返回参数类型输入编辑框中,并导入文件中;
另一种手动输入的方式是与函数列表窗口配合使用的,通过鼠标拖曳或点击“添加/删除”按钮的方式将函数列表中的RPC函数添加到函数编辑窗口中,函数列表窗口显示当前函数节点信息,用户可以在此修改函数返回数据类型、参数数据类型及个数。
自动生成的方式是用户点击“自动生成”按钮,程序自动生成VXI-11协议支持的所有RPC函数。
步骤1.2:函数编辑窗口中用户可以使用菜单栏中各种功能按钮对列表中的RPC函数进行Windows的经典操作,包括添加、插入、复制、粘贴、删除、剪切、撤销、编辑和搜索等。
步骤2:功能操作窗口:用户将编辑好的RPC函数在该窗口显示、浏览,用户使用鼠标点击功能操作窗口生成详细的RPC函数执行框架,生成RPC函数的动态库及与仪器应用软件连接的示例程序。
用户点击功能操作窗口中的“生成执行框架”功能,会自动将用户编辑好的RPC函数体生成,并随即生成相关RPC函数的动态库及一个相关RPC函数与仪器连接使用的示例程序。
步骤3:自动测试窗口:用户编辑的RPC函数进行自动测试,给出函数测试执行结果,包括操作是否成功信息、函数正常执行用时信息和读取到的数据大小或内容。
具体包括以下子步骤:
步骤3.1:在自动测试窗口中,用户点击“测试”按钮,程序会自动将用户编辑保存过的RPC函数进行执行测试,给出被执行函数体内相关的信息,包括操作函数是否成功的信息、函数设置的数据内容、读取到的数据大小或内容以及所有被执行函数消耗的时间。
步骤3.2:将用户已编辑好并加入相关代码段的文件导入自动测试窗口中,按照一定的规则将用户编辑过的文件还原至自动测试窗口中,用户点击“自动测试”按钮,将自己编辑生成的文件执行自动测试操作。
步骤4:根据用户选择的类型自动默认生成RPC函数的标准动态库及相关的.h文件,自动生成RPC函数的.cpp文件及.h文件,并可在用户已经编辑过的.cpp文件及.h文件添加或删除对应的部分RPC函数。
具体包括以下子步骤:
步骤4.1:提供按照用户要求生成的符合Windows要求的RPC函数标准动态库以及相关的.h头文件;
步骤4.2:提供按照函数编辑窗口所显示的命令,自动生成RPC函数的.cpp文件及.h文件,这些文件里包括了RPC函数的函数体、头文件中的函数声明以及将用户已经编辑过的文件导入窗口中,进行添加、删除操作。
当然,上述说明并非是对本发明的限制,本发明也并不仅限于上述举例,本技术领域的技术人员在本发明的实质范围内所做出的变化、改型、添加或替换,也应属于本发明的保护范围。

Claims (4)

1.一种基于Windows平台的RPC函数生成方法,其特征在于,包括以下步骤:
步骤1:函数编辑窗口:提供用户添加、插入、复制、粘贴、删除、剪切、撤销、编辑、搜索RPC函数以及函数节点信息添加的功能;
所述步骤1,包括以下子步骤:
步骤1.1:函数编辑窗口提供两种用户手动输入的方式和一种自动生成的方式;
其中一种手动输入的方式是将函数完整名称包括输入参数类型以及返回参数类型输入编辑框中,并导入文件中;
另一种手动输入的方式是与函数列表窗口配合使用的,通过鼠标拖曳或点击“添加/删除”按钮的方式将函数列表中的RPC函数添加到函数编辑窗口中,函数列表窗口显示当前函数节点信息,用户可以在此修改函数返回数据类型、参数数据类型及个数;
自动生成的方式是用户点击“自动生成”按钮,程序自动生成VXI-11协议支持的所有RPC函数;
步骤1.2:函数编辑窗口中用户可以使用菜单栏中各种功能按钮对列表中的RPC函数进行Windows的经典操作,包括添加、插入、复制、粘贴、删除、剪切、撤销、编辑和搜索;
步骤2:功能操作窗口:用户将编辑好的RPC函数在该窗口显示、浏览,用户使用鼠标点击功能操作窗口生成详细的RPC函数执行框架,生成RPC函数的动态库及与仪器应用软件连接的示例程序;
步骤3:自动测试窗口:用户编辑的RPC函数进行自动测试,给出函数测试执行结果,包括操作是否成功信息、函数正常执行用时信息和读取到的数据大小或内容;
步骤4:根据用户选择的类型自动默认生成RPC函数的标准动态库及相关的.h文件,自动生成RPC函数的.cpp文件及.h文件,并在用户已经编辑过的.cpp文件及.h文件添加或删除对应的部分RPC函数。
2.根据权利要求1所述的一种基于Windows平台的RPC函数生成方法,其特征在于,所述步骤2中,用户点击功能操作窗口中的“生成执行框架”功能,会自动将用户编辑好的RPC函数体生成,并随即生成相关RPC函数的动态库及一个相关RPC函数与仪器连接使用的示例程序。
3.根据权利要求1所述的一种基于Windows平台的RPC函数生成方法,其特征在于,所述步骤3,包括以下子步骤:
步骤3.1:在自动测试窗口中,用户点击“测试”按钮,程序会自动将用户编辑保存过的RPC函数进行执行测试,给出被执行函数体内相关的信息,包括操作函数是否成功的信息、函数设置的数据内容、读取到的数据大小或内容以及所有被执行函数消耗的时间;
步骤3.2:将用户已编辑好并加入相关代码段的文件导入自动测试窗口中,按照一定的规则将用户编辑过的文件还原至自动测试窗口中,用户点击“自动测试”按钮,将自己编辑生成的文件执行自动测试操作。
4.根据权利要求1所述的一种基于Windows平台的RPC函数生成方法,其特征在于,所述步骤4,包括以下子步骤:
步骤4.1:提供按照用户要求生成的符合Windows要求的RPC函数标准动态库以及相关的.h头文件;
步骤4.2:提供按照函数编辑窗口所显示的命令,自动生成RPC函数的.cpp文件及.h文件,这些文件里包括RPC函数的函数体、头文件中的函数声明以及将用户已经编辑过的文件导入窗口中,进行添加、删除操作。
CN201810577851.0A 2018-06-07 2018-06-07 一种基于Windows平台的RPC函数生成方法 Active CN108829387B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810577851.0A CN108829387B (zh) 2018-06-07 2018-06-07 一种基于Windows平台的RPC函数生成方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810577851.0A CN108829387B (zh) 2018-06-07 2018-06-07 一种基于Windows平台的RPC函数生成方法

Publications (2)

Publication Number Publication Date
CN108829387A CN108829387A (zh) 2018-11-16
CN108829387B true CN108829387B (zh) 2021-10-08

Family

ID=64144315

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810577851.0A Active CN108829387B (zh) 2018-06-07 2018-06-07 一种基于Windows平台的RPC函数生成方法

Country Status (1)

Country Link
CN (1) CN108829387B (zh)

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5815574A (en) * 1994-12-15 1998-09-29 International Business Machines Corporation Provision of secure access to external resources from a distributed computing environment
CN1485740A (zh) * 2002-09-23 2004-03-31 上海贝尔有限公司 一种基于主机平台的嵌入式模块和子系统的通用测试装置
CN102236602A (zh) * 2011-07-21 2011-11-09 南京大学 一种可视化软件测试设计平台
CN104461569A (zh) * 2014-12-26 2015-03-25 东南大学 一种基于matlab的c/c++程序生成辅助方法
CN106648920A (zh) * 2016-09-29 2017-05-10 山东浪潮云服务信息科技有限公司 一种基于接口的数据通信方法
CN107277029A (zh) * 2017-06-30 2017-10-20 武汉斗鱼网络科技有限公司 一种远程过程调用的方法、装置及计算机设备
US9813509B1 (en) * 2015-06-09 2017-11-07 Amazon Technologies, Inc. Template generator for frequently occurring application programming interface call sequences
CN107678867A (zh) * 2017-09-26 2018-02-09 武汉斗鱼网络科技有限公司 一种进行远程过程调用的方法及装置
CN107733866A (zh) * 2017-09-12 2018-02-23 阿里巴巴集团控股有限公司 Rpc请求、rpc请求处理方法、装置以及设备

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5815574A (en) * 1994-12-15 1998-09-29 International Business Machines Corporation Provision of secure access to external resources from a distributed computing environment
CN1485740A (zh) * 2002-09-23 2004-03-31 上海贝尔有限公司 一种基于主机平台的嵌入式模块和子系统的通用测试装置
CN102236602A (zh) * 2011-07-21 2011-11-09 南京大学 一种可视化软件测试设计平台
CN104461569A (zh) * 2014-12-26 2015-03-25 东南大学 一种基于matlab的c/c++程序生成辅助方法
US9813509B1 (en) * 2015-06-09 2017-11-07 Amazon Technologies, Inc. Template generator for frequently occurring application programming interface call sequences
CN106648920A (zh) * 2016-09-29 2017-05-10 山东浪潮云服务信息科技有限公司 一种基于接口的数据通信方法
CN107277029A (zh) * 2017-06-30 2017-10-20 武汉斗鱼网络科技有限公司 一种远程过程调用的方法、装置及计算机设备
CN107733866A (zh) * 2017-09-12 2018-02-23 阿里巴巴集团控股有限公司 Rpc请求、rpc请求处理方法、装置以及设备
CN107678867A (zh) * 2017-09-26 2018-02-09 武汉斗鱼网络科技有限公司 一种进行远程过程调用的方法及装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
基于LXI总线PCI接口的软件设计;邱畅 等;《国外电子测量技术》;20160531;100-103 *
基于多线程和RPC技术的并行C语言的设计和实现;邹晓辉;《中国优秀硕士学位论文全文数据库 信息科技辑》;20051115;I138-73 *

Also Published As

Publication number Publication date
CN108829387A (zh) 2018-11-16

Similar Documents

Publication Publication Date Title
WO2020155777A1 (zh) Ui自动化功能测试方法、测试装置、测试设备及存储介质
US8156478B2 (en) Optimized program analysis
CN111126781A (zh) Rpa业务流程的创建方法及系统
GB2561682A (en) Collaborative design systems, apparatuses, and methods
CN110377523A (zh) 程序调试方法及装置、电子设备和存储介质
CN110362490B (zh) 融合iOS与Android移动应用的自动化测试方法及系统
CN110968305A (zh) 小程序可视化生成方法、装置、设备及存储介质
US20050172264A1 (en) Architecture for converting control types in a data bound user interface
CN104375934A (zh) 一种Android手机软件可靠性测试方法
CN101866315A (zh) 软件开发工具的测试方法及系统
CN115543290B (zh) 可视化编程方法及系统
CN109522010B (zh) 初始化代码添加方法及装置、存储介质、电子设备
CN102521008A (zh) 程序编译装置和程序编译方法
CN115437608A (zh) 智能研发辅助方法及装置
CN114968192A (zh) 一种项目创建方法、装置、计算机设备及存储介质
CN111078217A (zh) 脑图生成方法、装置和计算机可读存储介质
US8700374B1 (en) System and method of using an active link in a state programming environment to locate an element in a graphical programming environment
US20020147963A1 (en) Method and apparatus for generating machine control instructions
CN106815010B (zh) 一种操作数据库的方法及装置
KR101368044B1 (ko) 이클립스 플랫폼 기반 플러그인 모듈
CN108829387B (zh) 一种基于Windows平台的RPC函数生成方法
CN117215556A (zh) 模块化的页面快速构建方法、系统、设备及介质
JP2010140407A (ja) ソースコード検査装置
CN115964042A (zh) 菜单的生成方法及装置、存储介质、电子设备
CN115562634A (zh) 面向雷达业务流程的可视化开发平台

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
GR01 Patent grant
GR01 Patent grant