【技术实现步骤摘要】
一种智能控制系统代码自动生成方法及装置
[0001]本专利技术涉及软件研发
,尤其涉及一种智能控制系统代码自动生成方法及装置。
技术介绍
[0002]智能控制安全关键实时系统(Safety
‑
Critical Real
‑
Time System)广泛应用于无人机、航空电子、航天器、武器装备、核能、汽车控制等关键信息领域,智能控制安全关键实时系统是一种智能控制系统。由于功能和非功能要求不断提高,智能控制系统的复杂度急剧增加,如何设计与实现高质量的智能控制系统,并有效控制开发时间和成本,是学术界和工业界共同面临的难题。近年来,模型驱动开发方法(Model
‑
Driven Development, MDD)逐渐成为智能控制系统设计与开发的重要手段,而作为复杂嵌入式实时系统的体系结构设计与分析语言标准,AADL(Architecture Analysis and Design Language, AADL)日益受到关注,并逐渐发展成为一个新的研究热点。
[0003] ...
【技术保护点】
【技术特征摘要】
1.一种智能控制系统代码自动生成方法,其特征在于,所述方法包括以下步骤:步骤S1:解析AADL模型文件,从所述AADL模型文件中提取所述AADL模型文件包括的各个组件及属性约束,所述组件包括系统组件、进程组件、线程组件、数据组件、以及子程序组件;解析提取的所述组件及属性约束;步骤S2:构建AADL模型文件到C++代码的转换规则,所述AADL模型文件到C++代码的转换规则包括系统组件转换规则、进程组件转换规则、线程组件转换规则、数据组件转换规则、以及子程序组件转换规则;基于所述转换规则,解析所述AADL模型文件包括的各个组件的属性;步骤S3:基于预设的C++代码模板及所述AADL模型文件包括的各个组件的解析结果,生成与所述AADL模型文件对应的C++代码;所述智能控制系统是指包含了智能算法的控制类系统。2.如权利要求1所述的方法,其特征在于,所述步骤S1,所述系统组件为所述AADL模型文件对应的AADL模型的最顶层组件;所述系统组件包含一个或者多个进程组件,每个进程组件表示受保护的地址空间;所述进程组件必须至少包含一个线程组件,每个线程组件包括类型声明和类型实现两部分;所述线程组件的实现包括子程序组件和数组组件,所述数组组件表示静态数据和数据类型;所述子程序组件表示能够被调用的代码单元,具有参数、操作数据或者能够为调用者提供服务功能。3.如权利要求2所述的方法,其特征在于,所述系统组件转换规则为:步骤S211:对系统组件,将所述系统组件转换为一个文件夹,该文件夹的名称与系统组件类型声明的系统组件名称一致;步骤S212:在所述系统组件转换的文件夹下,生成一个命名为modules的文件夹,用于存放系统组件包括的各个进程组件生成的代码。4.如权利要求3所述的方法,其特征在于,所述进程组件的转换规则为:步骤S221:在modules文件夹下,建立与当前系统组件所包含的进程组件一一对应的子文件夹,所述子文件夹的名称与所述进程组件的名称一致;modules文件夹下的子文件夹个数与所述系统组件包含的进程组件个数一致;步骤S222:解析所述进程组件,在所述进程组件对应的子文件夹中,生成两个文件,分别是“*.hpp”和“*.cpp”文件;所述*.hpp文件包括所述进程组件对应的进程内的线程所共享的数据和函数的声明、所述进程组件所包含的线程组件实现的主类、以及与所述进程组件相关的头文件引用;步骤S223:若所述进程组件中具有特征项,则在所述*.hpp文件中增加所述进程组件对外发布的消息函数的代码;步骤S224:若所述进程组件中具有属性项,则在所述*.hpp文件中增加所述进程组件的与属性处理相关的函数的代码;步骤S225:在文件*.cpp中生成*.hpp中定义的所有函数,每个函数的具体实现代码设置为空;“*”为通配符,替换为其对应的进程组件的名称。5.如权利要求4所述的方法,其特征在于,所述线程组件的转换规则为:步骤S231:解析线程组件类型声明,为每个线程组件对应生成两个文件“*.hpp”和“*.cpp”,文件名与所述线程组件的名称相同,“*”为通配符,替换为其对应的线程组件的名
...
【专利技术属性】
技术研发人员:张龙,唐盖盖,杨峰,冯涛,石鎏澂,
申请(专利权)人:军事科学院系统工程研究院网络信息研究所,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。