[发明专利]一种代码封装方法及装置在审
| 申请号: | 202210416051.7 | 申请日: | 2022-04-20 |
| 公开(公告)号: | CN114721666A | 公开(公告)日: | 2022-07-08 |
| 发明(设计)人: | 贝晓狮;张桥 | 申请(专利权)人: | 北京世冠金洋科技发展有限公司 |
| 主分类号: | G06F8/41 | 分类号: | G06F8/41;G06F8/71 |
| 代理公司: | 北京集佳知识产权代理有限公司 11227 | 代理人: | 陈志海 |
| 地址: | 100193 北京市海淀区东北*** | 国省代码: | 北京;11 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 代码 封装 方法 装置 | ||
本发明提供了一种代码封装方法及装置,该方法为:确定待封装的仿真模型,其中,仿真模型包含模型层、中间层和功能模拟接口FMI层;利用符合FMI标准的描述文件模板和中间层对应的中间层文件,生成描述文件;将中间层文件、FMI层对应的FMI层文件和用户代码添加到指定文件夹;调用编译器对指定文件夹中的内容进行编译以生成动态链接库文件;响应于用户的操作指令,对描述文件和动态链接库文件进行打包以得到FMU。利用模板自动化地生成描述文件,减轻了封装工作量,同时模板还可以重复使用,减少了开发和学习成本;实现了能将用户代码封装成FMU,FMU可以被多个仿真软件导入,使得多个模块能实现联合仿真以验证整体运行情况。
技术领域
本发明涉及数据处理技术领域,具体涉及一种代码封装方法及装置。
背景技术
多个部门承接系统的不同模块时,各个部门所使用的建模工具可能不统一,例如某些部门的算法是通过C代码或C++代码实现的。用户在希望将各个模块联合仿真以验证整体运行情况时,由于各个部门所使用的建模工具不统一,会导致无法进行联合仿真。
发明内容
有鉴于此,本发明实施例提供一种代码封装方法及装置,以解决由于各个部门所使用的建模工具不统一,而导致无法进行联合仿真的问题。
为实现上述目的,本发明实施例提供如下技术方案:
本发明实施例第一方面公开一种代码封装方法,所述方法包括:
确定待封装的仿真模型,其中,所述仿真模型包含模型层、中间层和功能模拟接口FMI层,所述模型层包含基于用户代码封装得到的第一接口,所述中间层包含用于调用所述第一接口的第二接口,所述FMI层包含用于调用所述第二接口的第三接口,所述中间层和所述FMI层基于指定版本的FMI标准构建;
利用符合所述FMI标准的描述文件模板和所述中间层对应的中间层文件,生成描述文件;
将所述中间层文件、所述FMI层对应的FMI层文件和所述用户代码添加到指定文件夹;
调用编译器对所述指定文件夹中的内容进行编译以生成动态链接库文件;
响应于用户的操作指令,对所述描述文件和所述动态链接库文件进行打包以得到FMU。
优选的,利用符合所述FMI标准的描述文件模板和所述中间层对应的中间层文件,生成描述文件,包括:
获取所述中间层对应的中间层文件的文件名,以及获取所述中间层文件中的变量信息;
分别将所述文件名和所述变量信息添加至符合所述FMI标准的描述文件模板中,以生成描述文件。
优选的,调用编译器对所述指定文件夹中的内容进行编译以生成动态链接库文件,包括:
以所述指定文件夹中的所述中间层文件作为编译入口,调用微软CL编译器对所述指定文件夹中的内容进行编译,以生成DLL文件,其中,所述FMI层文件和所述用户代码被所述中间层文件引用;
或者,
以所述中间层文件作为编译入口,调用gcc编译器对所述指定文件夹中的内容进行编译,以生成so文件。
优选的,响应于用户的操作指令,对所述描述文件和所述动态链接库文件进行打包以得到FMU,包括:
在用户的操作指令未选中其它待打包文件的情况下,响应所述操作指令,对所述描述文件和所述动态链接库文件进行打包以得到FMU;
在用户的操作指令选中其它待打包文件的情况下,响应所述操作指令,对所述其它待打包文件、所述描述文件和所述动态链接库文件进行打包以得到FMU。
优选的,指定版本的FMI标准为第二版本的FMI标准。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京世冠金洋科技发展有限公司,未经北京世冠金洋科技发展有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202210416051.7/2.html,转载请声明来源钻瓜专利网。





