一种图形化开发代码自动比对方法技术

技术编号:39833303 阅读:18 留言:0更新日期:2023-12-29 16:16
本发明专利技术涉及一种图形化开发代码自动比对方法

【技术实现步骤摘要】
一种图形化开发代码自动比对方法、设备及介质


[0001]本专利技术涉及列车信号控制系统,尤其是涉及一种图形化开发代码自动比对方法

设备及介质


技术介绍

[0002]图形化开发是列车自主运行控制系统
TACS
列控子系统的开发方法,图形化开发使用的开发语言是
EMIL
,新版本的代码开发完成后,识别出代码中修改的模块是保证功能实现正确以及保证安全的关键环节

图形化开发代码
EMIL
是由数量庞大的
CTD(Component Type Definition)
模块组成的,一个
CTD
模块由一个
xml
文件来表示

目前,图形化代码开发代码比对方法是,首先通过开发工具将代码合并成一个
xml
文件,然后运行
excel
文件的宏代码进行比对,将比对结果输出到
excel
文件中,合并代码和运行宏代码对于电脑性能要求高,而且执行时间相当本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.
一种图形化开发代码自动比对方法,其特征在于,该方法首先将所有
CTD
模块加载到内存中,并使用键值对进行存储;其次将新老版本代码中相同模块识别出来,从而进行比对;最后输出比对结果
。2.
根据权利要求1所述的一种图形化开发代码自动比对方法,其特征在于,该方法具体包括以下步骤:步骤
S1
,读取新版本代码存入到内存中名为
newctds
的集合中,读取老版本代码存入到内存中名为
oldctds
的集合中;步骤
S2
,遍历新版代码的
newctds
集合,获得新版代码中的一个名称为
newctd
的模块;步骤
S3
,解析名称为
newctd
的模块,获得该模块的名称
id
,并根据名称
id

oldctds
中查询是否存在于
oldctds
集合中,如果存在,则执行步骤
S4
,如果不存在,则该模块为新增模块,执行步骤
S8
;步骤
S4
,根据
newctd
的名称
id

oldctds
中查询获得名称同为
id
的模块
oldctd
;步骤
S5
,比对
newctd

oldctd

scd
子节点是否一致,如果一致,则继续执行步骤
S6
,如果不一致,则执行步骤
S8
;步骤
S6
,比对
newctd

oldctd

port
子节点是否一致,如果一致,则继续执行步骤
S7
,如果不一致,则执行步骤
S8
;步骤
S7
,比对
newctd

oldctd

link
子节点是否一致,如果一致,则继续执行步骤
S9
,如果不一致,则执行步骤
S8
;步骤
S8
,获得新增或者修改的模块
newctd
,获得模块名称,在
newctds
集合中搜索影响到的所有
CTD
模块,存入集合
Impacts
集合中;步骤
S9
,将新增或者修改的模块及其影响到的模块
Impacts
存入内存的
result
集合中,继续执行步骤
S10
;步骤
S10
,判断新版代码的
newctds
集合是否遍历结束,如果没有遍历结束,则返回继续执行步骤
S2
,如果遍历结束,则执行步骤
S11
;步骤
S11
,将新增或者修改的模块及其影响到的模块
result
集合打印输出,得到代码比对结果
。3.
根据权利要求2所述的一种图形化开发代码自动比对方法,其特征在于,所述步骤
S1
中新版本代码和老版本代码中的代码是后缀为
*.ectd
的文本文件,其格式为
xml
格式;其中一个
ectd
文件其内容描述了一个
CTD
,所述
CTD
中包含三个部分,分别为
scd、port

link
,所述
scd、port

link
分别包含了2到5个不等的属性值
。4.
根据权利要求2所述的一种图形化开发代码自动比对方法,其特征在于,所述步骤
S1
中,读取代码具体为:步骤
S1.1
,解析
eld
文件获得存储
CTD
代码的文件夹路径,存储路径到
ListPath
中;步骤
S1.2
,遍历
ListPath
,获得文件夹路径
Path
;步骤
S1.3
,判断
ListPath
是否遍历结束,如果遍历结束,流程执行结束;否则,继续执行步骤
S1.4
;步骤
S1.4
,获得
Path
文件夹中的所有文件及文件夹存入
Items
集合;步骤
S1.5
,遍历
Items
集合,获得一个文件或者文件夹
Item
;步骤
S1.6
,判断
Items
是否遍历结束,如果遍历结束,则返回执行步骤
S1.2
;否则,继续
执行步骤
S1.7
;步骤
S1.7
,判断
Item
是否为文件,如果
Item
为文件,则继续执行步骤
S1.8
;如果
Item
为文件夹,获得
Item
文件夹的路径为
Path
,返回执行步骤
S1.4
;步骤
S1.8
,判断
Item
的名称是否以
.ectd
结尾,如果不是以
.ectd
结尾,则返回继续执行步骤
S1.5
;如果是以
.ectd
结尾,则继续执行步骤
S1.9
;步骤
S1.9
,读取
Item
文件,获得该模块的
CTD
名称以及整个
xml
格式文件数据流,存入键值对
DicCTDXML
中,返回继续执行步骤
S1.5。5.
根据权利要求4所述的一种图形化开发代码自动比对方法,其特征在于,所述步骤
S1
中读取代码结束后,如果读取的新版代码,
DicCTDXML
集合就是
newctds
,如果读取的是老版代码,
DicCTDXML
集合就是
oldctds。6.
根据权利要求2所述的一种图形化开发代码自动比对方法,其特征在于,所述步骤
S5
中,
scd
表示一个
CTD
模块中引用的其他
CTD
,这些其他
CTD
就是当前
CTD

scd。7.
根据权利要求2所述的一种图形化开发代码自动比对方法,其特征在于,所述步骤
S5
具体过程为:步骤
S5.1
,从
newctd
中读取
scd
子节点存入
newscds
集合,从
oldctd
中读取
scd
子节点存入
oldscds
集合;步骤
S5.2
,判断
newscds
的个数是否和
oldscds
的个数相同,如果个数相同,则执行步骤
S5.3
;如果不一致,则说明
...

【专利技术属性】
技术研发人员:杨帆吕新军职文超凌小雀杨辉郭天泽
申请(专利权)人:卡斯柯信号有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1