跨多语言的与EDA软件SystemVue集成调度的方法与流程

文档序号:36315641发布日期:2023-12-08 01:53阅读:60来源:国知局
跨多语言的与的制作方法

本发明涉及一种跨多语言的与eda软件systemvue集成调度的方法,属于软件集成。


背景技术:

1、systemvue是一款电子设计自动化(eda)软件,专门运用在电子系统层级设计,让使用者快速模拟并验证自己设计的通讯系统。在实际设计使用过程中,存在与其它建模、设计、仿真工具的集成调度应用场景,由于systemvue的二次开发接口主要基于vbscript脚本语言,而其它建模仿真工具一般由c++、java、python等编程语言实现,对应的二次开发接口一般也以c++、java、python语言为主,这就带来了异构语言之间数据交互及集成调度所带来的开发复杂度和学习成本。


技术实现思路

1、为了解决上述技术问题,本发明公开了一种跨多语言的与eda软件systemvue集成调度的方法,其具体技术方案如下:

2、跨多语言的与eda软件systemvue集成调度的方法,包括:

3、步骤s1:编写systemvuecaller.exe驱动程序:

4、步骤s11:通过c#语言编写systemvuecaller.exe驱动程序:通过visual studio编程工具,新建systemvuecaller项目工程,引入systemvue二次开发dll依赖库,编写c#程序,在c#程序中调用systemvue软件的二次开发编程api接口,在相应接口中编写具体的vbscript脚本,实现驱动程序的具体逻辑的实现。

5、步骤s12:定义待调用的systemvue软件的核心功能调用函数接口及入参,systemvue软件是一款eda软件,systemvuecaller.exe是本专利开发出来用于调用systemvue软件的驱动程序;

6、systemvuecaller.exe驱动程序与systemvue软件具体调用方式如下:

7、systemvue软件提供了c#的二次开发dll依赖库,systemvuecaller.exe驱动程序通过编写c#代码,在代码中调用systemvue软件dll依赖库中的相关编程api接口,来实现与systemvue软件的集成;

8、步骤s13:通过vbscript脚本语言调用systemvue软件的核心功能调用函数接口,systemvue软件提供了dll依赖库,其中依赖库里面提供了runscript方法,该方法入参就是vbscript脚本字符串,systemvuecall.exe程序调用该方法,传入带有业务逻辑的vbscript脚本字符串,实现与systemvue软件的集成;

9、步骤s14:若调用成功,则输出调用结果信息;若调用不成功,则返回步骤s11;

10、步骤s2:编译systemvuecaller.exe驱动程序源码,生成systemvuecaller.exe驱动程序:

11、安装.net framework4.0运行环境,

12、安装visual studio ide开发工具,

13、使用visual studio ide开发工具导入systemvuecaller.exe驱动程序的源码,

14、通过visual studio ide开发工具进行编译源码,

15、若编译源码成功,则生成systemvuecaller.exe驱动程序,

16、若编译源码不成功,则先修复编译错误,直到编译源码成功;

17、修复编译错误的过程为:程序员修复,编译失败,visual studio ide开发工具会提示具体的出错信息和出错位置,由程序员根据提示信息进行代码修改,修改完再次编译直到成功为止。

18、步骤s3:调用systemvuecaller.exe驱动程序,实现与systemvue软件的集成调度:

19、其中调用systemvuecaller.exe驱动程序,包括:

20、步骤s31:调用命令行程序的程序接口,

21、步骤s32:在程序接口中调用systemvuecaller.exe驱动程序,

22、步骤s33:通过调用systemvuecaller.exe驱动程序的核心功能调用函数及入参,实现与systemvue软件的集成调度。

23、进一步的,所述步骤s11:通过c#语言编写systemvuecaller.exe驱动程序,第三方应用程序(此处第三方应用程序是泛称,任何需要调用systemvue软件并与之进行集成的软件,都可称为第三方应用程序,具体包括一些建模工具软件、仿真工具软件、设计工具软件等等)通过命令行代码调用systemvuecaller.exe驱动程序,间接与systemvue进行集成调度,包括:

24、获取systemvuecaller.exe驱动程序的功能函数api列表及入参,第三方应用程序是通过命令行代码的方式来调用systemvuecaller.exe驱动程序,此时第三方应用程序可以通过代码查看systemvuecaller.exe驱动程序提供的所有功能函数api,调用具体的功能函数systemvuecaller.exe驱动程序判断所调用函数及入参是否合法;

25、若函数及入参合法,则调用systemvuecaller.exe驱动程序提供的核心功能函数所对应的具体功能实现;

26、若函数及入参不合法,则systemvuecaller.exe驱动程序抛异常提示函数不存在或参数不合法。

27、进一步的,所述步骤s12中所述systemvuecaller.exe驱动程序提供了核心功能函数包括runscript、start、stop、getpartlist、getportlist、gettype、placepart、placematlabport、placewire、deletepartsymbol、importsymbolfromlibrary、clearsche和save。

28、所述函数start表示启动systemvue服务;所述函数stop表示停止systemvue服务;所述函数getpartlist的入参名称包括string name、string libraryname和stringpartname,所述入参名称string name表示获取指定部件名称列表,所述入参名称stringlibraryname和string partname表示获取端口列表;所述函数gettype的入参名称包括string libraryname和string partname,表示获取端口类型列表;所述函数placepart的入参名称包括string libraryname、string partname、string dimname、string centerx和string centery,表示组件排布;所述函数placematlabport的入参名称包括stringpartdimname和string[]portname,表示设置matlab组件输入输出端口;所述函数placewire的入参名称包括string dimname、string partx、string party、stringtargetx和string targety,表示连线排布;所述函数deletepartsymbol的入参名称包括string partname,表示删除已插入的symbol;所述函数importsymbolfromlibrary的入参名称包括string libraryname和string partname,表示插入symbol;所述函数clearsche表示清空画布;所述函数save表示保存临时工作空间。

29、进一步的,所述步骤s13:通过vbscript脚本语言调用systemvue软件的核心功能调用函数接口,包括:

30、所述函数包括openworkspace、save、getpartlist、getpropertylist、getpropertytype、placematlabport、placewire、importsymbolfromlibrary、deletesymbol、placewire和clearsche:

31、所述函数openworkspace的vbscript脚本为filenewfromtemplate("blank.wsv"),表示打开工作空间;

32、所述函数save的入参名称包括string filepath,vbscript脚本为

33、w=application.manager.getworkspacebyindex(0)

34、w.saveas(filepath),表示保存工作空间;

35、所述函数getpartlist的入参名称包括string name,vbscript脚本为

36、w=application.manager.getworkspacebyindex(0)

37、dim symbols

38、dim temp

39、library=w.getlibrary("design",name.trim())

40、library.getpartlist symbols

41、for each part in symbols

42、temp=temp+part+","

43、next

44、savetexttofile"d:/partlist.txt",temp,表示获取指定部件名称的列表;

45、所述函数getpropertylist的入参名称包括string libraryname和stringpartname,vbscript脚本为

46、w=application.manager.getworkspacebyindex(0)

47、dim temp

48、w.importfromlibrary"design",libraryname.trim(),partname.trim()

49、item=w.getitembyname(partname.trim())

50、item.partlist.getpropertylist part

51、for each port in part

52、temp=temp+port+","

53、next

54、savetexttofile"d:/protlist.txt",temp,表示根据library名字和part名字获取输入输出列表;

55、所述函数getpropertytype的入参名称包括string partname和list<string>prolist,vbscript脚本为

56、w=application.manager.getworkspacebyindex(0)

57、dim temp

58、item=w.getitembyname(partname.trim())

59、savetexttofile"d:/prottype.txt",temp

60、w.deleteobject(partname.trim()),表示获取端口类型;

61、所述函数placematlabport的入参名称包括string mname和string[]portname,vbscript脚本为

62、w=application.manager.getworkspacebyindex(0)

63、a=w.designs.design1.partlist.mname

64、a.paramset.ioinfo.set(paramlist),表示设置matlab组件输入输出端口;

65、所述placewire的入参名称包括string partlibraryname、string dimname、string centerx和string centery,vbscript脚本为

66、w=application.manager.getworkspacebyindex(0)

67、w.designs.design1.schematic.placepart partlibraryname,dimname,centerx,centery,0,0,表示连线排布;

68、所述函数importsymbolfromlibrary的入参名称包括string libraryname和string partname,vbscript脚本为

69、w=application.manager.getworkspacebyindex(0)

70、w.importfromlibrary"design",libraryname,partname,表示插入symbol;

71、所述函数deletesymbol的入参名称包括string partname,vbscript脚本为

72、w=application.manager.getworkspacebyindex(0)

73、w.deleteproperty("partname"),表示删除symbol;

74、所述函数placewire的入参名称包括string wirename、string partx、stringparty、string targetpartx和string targetparty,vbscript脚本为

75、w=application.manager.getworkspacebyindex(0)

76、w.designs.design1.schematic.placewire"wirename",partx,party,targetpartx,targetparty,表示连线排布;

77、所述函数clearsche的vbscript脚本为

78、w=application.manager.getworkspacebyindex(0)

79、w.designs.design1.schematic.selectall

80、w.designs.design1.schematic.deleteselection(),表示清空画布。

81、进一步的,通过visual studio ide开发工具进行编译源码,systemvuecaller.exe程序是采用c#语言开发,开发和编译的工具均为visual studioide,具体执行过程如下:

82、(1)在visual studio ide里面新建一个项目,项目类型选择控制台程序,项目语言选择c#;

83、(2)配置项目依赖,因为此项目需要调用到systemvue软件的api,所以需要将systemvue软件提供的dll依赖库添加到项目依赖中;

84、(3)编写源代码,编写相关业务逻辑代码,然后调用systemvue软件api,实现具体功能;

85、(4)编译源码,此处通过visual studio ide自带的编译功能,编译代码;

86、(5)编译成功,则生成systemvuecaller.exe驱动程序;

87、(6)编译失败,则会提示具体错误信息,修改源码,再次编译,直到编译成功。

88、进一步的,systemvuecaller.exe驱动程序判断所调用函数及入参是否合法的具体过程为:第三方应用程序通过命令行代码方式将所调用的函数名称和入参传入到systemvuecaller.exe程序中,systemvuecaller.exe程序判断如果没有对应的函数和入参存在,则会抛异常,则调用不合法。

89、进一步的,第三方应用程序间接与systemvue进行集成调度的具体过程为:第三方应用程序需要通过调用systemvuecaller.exe应用程序,来与systemvue软件进行集成,第三方应用程序调用systemvuecaller.exe的方式,通过命令行代码的方式实现,具体步骤如下:

90、第三方应用程序通过命令行代码的方式调用sytemvuecaller.exe驱动程序,systemvuecaller.exe驱动程序内部依赖了systemvue软件的二次开发库,在驱动程序内部,通过二次开发api再来调用systemvue软件,从而实现了第三方应用程序间接调用systemvue软件的能力。

91、有益效果:

92、本发明通过c#语言,调用systemvue提供的功能函数,如默认功能函数api(application.manager.getworkspacebyindex),执行vbscript脚本,实现了与systemvue软件集成的通用命令行驱动程序,使二次开发人员无需面向复杂晦涩的systemvue二次开发vbscript语法,而是直接面向命令行驱动程序提供的通用接口进行开发,屏蔽了systemvue二次开发的技术细节,降低了学习成本。

93、由于是通过命令行驱动程序的方式提供能力,因此不同开发语言可直接调用命令行驱动程序与systemvue进行集成调度,这极大降低了由于不同开发语言开发的工具端软件与systemvue进行集成调度带来的开发难度和开发成本。

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