一种航天器控制系统图形化工程与代码双向关联方法与流程

专利2023-07-31  97



1.本发明涉及航天器控制系统设计领域,具体涉及一种航天器控制系统图形化工程与代码双向关联方法。


背景技术:

2.在航天器控制系统设计过程中,设计师会编写航天器控制系统应用软件用户需求,并通过仿真验证软件进行测试验证,然后提供给应用软件开发部门进行软件开发。现有技术中,《一种基于c代码的应用软件用户需求自动生成方法》提出了一种在图形化界面完成航天器控制系统应用软件用户需求设计并生成仿真验证软件的方法。该方法中在图形化界面完成的设计即为图形化设计工程,一般由变量表、指令表、模式、条件函数表、内部算法、规范化算法和公用函数等组成。其中,变量表是管理控制系统中变量的模块,指令表是管理变量修改功能的模块,模式是管理控制系统工作模式的模块,条件函数表是管理工作模式转换的模块,内部算法是管理控制系统中定义的算法的模块,规范化算法和公用函数是管理基础算法的模块。仿真验证软件经过调试修改后,需要反馈到图形化设计工程中对其进行更新。如果该更新过程需要手工完成,则制约了设计验证过程无法快速完成迭代。


技术实现要素:

3.本发明解决的技术问题是:提出一种航天器控制系统图形化工程与代码双向关联方法,能够基于已有的航天器控制系统图形化设计工程,导入修改后的仿真验证代码,对其进行扫描解析,并且进行新旧代码的比对,最大程度的实现自动化更新图形化设计工程,避免了对仿真验证程序和图形化设计工程的重复修改,能够显著提升设计验证过程的迭代效率。
4.本发明的技术方案是:一种航天器控制系统图形化工程与代码双向关联方法,包括:
5.1)对仿真验证程序源码进行筛选和封装,将提取到的信息进行存储;
6.2)利用提取到的信息与图形化设计工程进行关联,识别出变更项,包括增、删、改,并对图形化设计工程进行自动更新。
7.基于doxygen工具对仿真验证程序源码进行筛选和封装,实现对vc工程的全盘代码扫描。
8.所述提取到的信息的包括全局函数、结构体、类。
9.所述提取的全局函数用于与图形化设计工程中的公用函数进行关联,包括函数声明和函数实现。
10.所述提取的结构体用于与图形化设计工程中的变量表进行关联,包括:结构体名和结构体的成员变量信息;所述结构体的成员变量信息包括成员变量的注释;所述成员变量的注释包括成员变量的赋值、成员变量的初始化属性和成员变量的遥测属性。
11.所述提取的类用于与图形化设计工程中的指令表、模式、条件函数表、内部算法、
规范化算法进行关联,包括:类名、类的注释、类的成员变量、类的成员函数;
12.所述类的注释包括指令表信息;
13.所述类的成员函数包括模式进入函数、模式退出函数、模式控制函数、模式管理函数、条件函数、内部函数、规范化函数。
14.对图形化设计工程进行自动更新的内容包括:变量表、指令表、模式、条件函数表、内部算法、规范化算法和公用函数。
15.对变量表进行更新,包括新增变量、删除变量、修改变量初值、更改初始化和遥测属性的更新;
16.对于新增变量或删除变量,指将提取的结构体的成员变量信息,在图形化设计工程的变量表中进行匹配,如果变量表中不存在该变量,则新增该变量;如果变量表中存在而提取的成员变量信息中不存在,则将该变量删除;
17.对于修改变量初值,指把提取的结构体的成员变量的注释中的赋值单独进行解析,得到相应的变量名和变量初值,并在变量表中进行赋值;
18.对于更改初始化和遥测属性,指如果在提取的结构体的某些成员变量的注释中存在初始化属性或者遥测属性,则在变量表中生成对应的初始化属性和遥测属性。
19.对指令表进行更新,指将提取的类的注释中的指令表信息,在图形化设计工程的指令表中进行匹配,如果不一致则将提取的指令表信息更新到图形化设计工程的指令表中。
20.对模式进行更新,包括对模式进行增、删、改;其中模式的增、删涉及到提取的类的成员函数中的模式进入、模式退出、模式控制、模式管理这四个函数;如果检测到这四个函数的同时增加或者删除,则在图形化设计工程中进行模式的增删,否则仅对模式的相应部分进行修改。
21.对条件函数表进行更新,包括增删改模式切换条件函数;指将提取的类的成员函数中的条件函数,在图形化设计工程的条件函数表中进行匹配,在条件函数表中找到对应的项进行增删改。
22.对内部算法进行更新,包括增删改内部算法函数的代码;指将提取的类的成员函数中的内部算法,在图形化设计工程的内部算法中进行匹配,在内部算法列表中找到对应项进行增删改。
23.对规范化算法和公用函数进行更新,指将提取的类的成员函数中的规范化函数和提取的全局函数,分别在图形化设计工程的规范化算法和公用函数中进行匹配,无论匹配与否,都不对规范化算法和公用函数进行更新。
24.本发明与现有技术相比的优点在于:
25.(1)本发明通过扫描航天器控制系统图形化工程生成的vc代码的方法,生成信息文件,从而建立图形化工程和代码的双向关联,解决了传统方法只能进行单向代码生成的难题;
26.(2)本发明基于航天器控制系统设计中的关键设计要素进行信息提取,提取的全局函数、结构体、类等三类信息能够实现对变量表、指令表、模式、条件函数表、内部算法、规范化算法和公用函数等设计要素的完整覆盖,保证了建立双向关联的完整性和可信性;
27.(3)本发明在图形化工程中导入修改后的代码,通过信息比对进行增、删、改等变
更项的识别,最大程度的实现自动化更新图形化设计工程,避免了对仿真验证程序和图形化设计工程的重复修改,大大提高了设计验证过程的迭代效率。
附图说明
28.图1为本发明的一种航天器控制系统图形化工程与代码双向关联的流程框图。
具体实施方式
29.如图1所示,本发明提出了一种航天器控制系统图形化工程与代码双向关联方法,包括:
30.1)对仿真验证程序源码进行筛选和封装,将提取到信息以xml文件格式进行存储;
31.2)根据步骤1)得到的xml文件中的信息,与图形化设计工程进行关联,并对图形化设计工程进行自动更新。
32.基于doxygen工具对仿真验证程序源码进行筛选和封装,实现对vc工程的全盘代码扫描。
33.扫描vc工程后提取到的信息包括全局函数、结构体、类等,存储在xml格式的文件中,用于步骤2)中与图形化设计工程进行关联。
34.提取的全局函数部分,用于与图形化设计工程中的公用函数进行关联,包含信息:
35.●
函数声明
36.函数名
37.函数返回值
38.函数声明的文件名
39.函数注释
40.函数声明注释的起始行号
41.函数声明所在行号
42.函数形参列表
43.●
函数实现
44.函数实现的文件名
45.函数实现的开始行号
46.函数实现的结束行号
47.函数体的开始行号
48.函数体的源码。
49.提取的结构体部分,用于与图形化设计工程中的变量表进行关联,包括:
50.●
结构体名
51.●
结构体声明的文件
52.●
结构体的注释
53.●
结构体注释的起始行号
54.●
结构体声明的开始行号
55.●
结构体声明的结束行号
56.●
结构体的成员变量
57.成员变量的注释(包括赋值、初始化属性和遥测属性等)
58.成员变量的注释行号
59.成员变量名
60.成员变量类型
61.成员变量数组大小
62.成员变量的行号
63.提取的类部分,用于与图形化设计工程中的指令表、模式、条件函数表、内部算法、规范化算法等进行关联,包括:
64.●
类名
65.●
类对应的文件名
66.●
类声明的开始行号
67.●
类声明的结束行号
68.●
类的注释
69.指令表
70.模型注释
71.●
类的注释起始行号
72.●
类的成员变量
73.成员变量名
74.成员变量的注释
75.成员变量的注释行号
76.成员变量类型
77.成员变量数组大小
78.成员变量的行号
79.●
类的成员函数,通过函数注释区分函数的不同类型,包括模式进入函数、模式退出函数、模式控制函数、模式管理函数、条件函数、内部函数、规范化函数等
80.成员函数声明:
81.◆
函数名
82.◆
函数返回值
83.◆
函数声明的文件名
84.◆
函数注释
85.◆
函数声明注释的起始行号
86.◆
函数声明所在行号
87.◆
函数形参列表
88.成员函数实现:
89.◆
函数实现的文件名
90.◆
函数实现的开始行号
91.◆
函数实现的结束行号
92.◆
函数体的开始行号
93.◆
函数体的源码
94.通过存储在xml格式的文件中信息,与图形化设计工程进行关联,通过信息比对,对图形化设计工程进行更新。比对的内容包括:变量表、指令表、模式、条件函数表、内部算法、规范化算法和公用函数等。
95.对变量表进行更新,包括新增变量、删除变量、修改变量初值、更改初始化和遥测属性;
96.对于新增变量或删除变量,指将提取的结构体的成员变量信息,在图形化设计工程的变量表中进行匹配,如果变量表中不存在该变量,则需要新增该变量;如果是变量表中存在而提取的变量信息中不存在,则会将该变量删除。
97.对于修改变量初值,指把提取的结构体的成员变量的注释中的赋值单独进行解析,得到相应的变量名和变量初值,并在变量表中进行赋值。
98.对于更改初始化和遥测属性,指如果在提取的结构体的某些成员变量的注释中存在初始化属性或者遥测属性,则在变量表中生成对应的初始化属性和遥测属性。
99.对指令表进行更新,指将提取的类的注释中的指令表信息,在图形化设计工程的指令表中进行匹配,如果不一致则将提取的指令表信息更新到图形化设计工程的指令表中。
100.对模式进行更新,包括,对模式进行增删改。其中模式的增删涉及到提取的类的成员函数中的模式进入、模式退出、模式控制、模式管理这四个函数。
101.如果检测到这四个函数的同时增加或者删除,则在图形化设计工程中进行模式的增删,否则仅对模式的相应部分进行修改。
102.对条件函数表进行更新,包括增删改模式切换条件函数。指将提取的类的成员函数中的条件函数信息,在图形化设计工程的条件函数表中进行匹配,在条件函数表中找到对应的项进行增删改。
103.对内部算法进行更新,包括增删改内部算法函数的代码。指将提取的类的成员函数中的内部算法信息,在图形化设计工程的内部算法中进行匹配,在内部算法列表中找到对应项进行增删改。
104.对规范化算法和公用函数进行识别。指将提取的类的成员函数中的规范化算法信息和提取的全局函数信息,分别在图形化设计工程的规范化算法和公用函数中进行匹配,无论匹配与否,都不对规范化算法和公用函数进行更新。

技术特征:
1.一种航天器控制系统图形化工程与代码双向关联方法,其特征在于,包括:对仿真验证程序源码进行筛选和封装,将提取到的信息进行存储;所述提取到的信息的包括全局函数、结构体、类;利用提取到的信息与图形化设计工程进行关联,并对图形化设计工程进行自动更新。2.根据权利要求1所述的航天器控制系统图形化工程与代码双向关联方法,其特征在于,基于doxygen工具对仿真验证程序源码进行筛选和封装,实现对vc工程的全盘代码扫描。3.根据权利要求1所述的一种航天器控制系统图形化工程与代码双向关联方法,其特征在于,所述提取的全局函数用于与图形化设计工程中的公用函数进行关联,包括函数声明和函数实现。4.根据权利要求1所述的一种航天器控制系统图形化工程与代码双向关联方法,其特征在于,所述提取的结构体用于与图形化设计工程中的变量表进行关联,包括:结构体名和结构体的成员变量信息;所述结构体的成员变量信息包括成员变量的注释;所述成员变量的注释包括成员变量的赋值、成员变量的初始化属性和成员变量的遥测属性。5.根据权利要求1所述的一种航天器控制系统图形化工程与代码双向关联方法,其特征在于,所述提取的类用于与图形化设计工程中的指令表、模式、条件函数表、内部算法、规范化算法进行关联,包括:类名、类的注释、类的成员变量、类的成员函数;所述类的注释包括指令表信息;所述类的成员函数包括模式进入函数、模式退出函数、模式控制函数、模式管理函数、条件函数、内部函数、规范化函数。6.根据权利要求5所述的一种航天器控制系统图形化工程与代码双向关联方法,其特征在于,对图形化设计工程进行自动更新的内容包括:变量表、指令表、模式、条件函数表、内部算法、规范化算法和公用函数。7.根据权利要求6所述的一种航天器控制系统图形化工程与代码双向关联方法,其特征在于,对变量表进行更新,包括新增变量、删除变量、修改变量初值、更改初始化和遥测属性的更新;对于新增变量或删除变量,指将提取的结构体的成员变量信息,在图形化设计工程的变量表中进行匹配,如果变量表中不存在该变量,则新增该变量;如果变量表中存在而提取的成员变量信息中不存在,则将该变量删除;对于修改变量初值,指把提取的结构体的成员变量的注释中的赋值单独进行解析,得到相应的变量名和变量初值,并在变量表中进行赋值;对于更改初始化和遥测属性,指如果在提取的结构体的某些成员变量的注释中存在初始化属性或者遥测属性,则在变量表中生成对应的初始化属性和遥测属性。8.根据权利要求6所述的一种航天器控制系统图形化工程与代码双向关联方法,其特征在于,对指令表进行更新,指将提取的类的注释中的指令表信息,在图形化设计工程的指令表中进行匹配,如果不一致则将提取的指令表信息更新到图形化设计工程的指令表中。9.根据权利要求6所述的一种航天器控制系统图形化工程与代码双向关联方法,其特征在于,对模式进行更新,包括对模式进行增、删、改;其中模式的增、删涉及到提取的类的成员函数中的模式进入、模式退出、模式控制、模式管理这四个函数;如果检测到这四个函
数的同时增加或者删除,则在图形化设计工程中进行模式的增删,否则仅对模式的相应部分进行修改。10.根据权利要求6所述的一种航天器控制系统图形化工程与代码双向关联方法,其特征在于,对条件函数表进行更新,包括增删改模式切换条件函数;指将提取的类的成员函数中的条件函数,在图形化设计工程的条件函数表中进行匹配,在条件函数表中找到对应的项进行增删改。11.根据权利要求6所述的一种航天器控制系统图形化工程与代码双向关联方法,其特征在于,对内部算法进行更新,包括增删改内部算法函数的代码;指将提取的类的成员函数中的内部算法,在图形化设计工程的内部算法中进行匹配,在内部算法列表中找到对应项进行增删改。12.根据权利要求6所述的一种航天器控制系统图形化工程与代码双向关联方法,其特征在于,对规范化算法和公用函数进行更新,指将提取的类的成员函数中的规范化函数和提取的全局函数,分别在图形化设计工程的规范化算法和公用函数中进行匹配,无论匹配与否,都不对规范化算法和公用函数进行更新。

技术总结
本发明公开了一种航天器控制系统图形化工程与代码双向关联方法,包括对仿真验证程序源码进行筛选和封装,将提取到的信息进行存储;利用提取到的信息与图形化设计工程进行关联,识别出变更项,包括增、删、改,并对图形化设计工程进行自动更新。本发明能够基于已有的航天器控制系统图形化设计工程,导入修改后的仿真验证代码,对其进行扫描解析,并且可以进行新旧代码的比对,最大程度的实现自动化更新图形化设计工程,避免了对仿真验证程序和图形化设计工程的重复修改,大大提高了设计验证过程的迭代效率。的迭代效率。的迭代效率。


技术研发人员:胡海霞 林瀚峥 董文强 涂俊峰 陈守磊 龚宇莲 刘洁 张和华
受保护的技术使用者:北京控制工程研究所
技术研发日:2022.06.23
技术公布日:2022/11/1
转载请注明原文地址: https://tieba.8miu.com/read-4261.html

最新回复(0)