一种可视化程序页面数据节点匹配方法与流程

文档序号:16134605发布日期:2018-12-01 00:46阅读:274来源:国知局

本发明属于可视化编程领域,具体涉及一种可视化程序页面数据节点匹配方法。

背景技术

可视化编程由于直观可视的特点,在电力系统、工业控制等嵌入式装置开发中已经广泛应用。可视化程序存在修改维护的需求,需要进行可视化页面数据的对比和差异分析,而差异分析的关键是对编程符号和连接线进行节点匹配,找到用于比较的2侧符号节点,本案由此产生。



技术实现要素:

本发明的目的是以较优、相对精确的方法形成用于待比较分析的匹配节点。为了达成上述目的,提供一种可视化程序页面数据节点匹配方法,其特征是,包括以下步骤:

s1:读取页面文件信息,按照数据流依赖关系形成网络拓扑排序,确定编程符号链表和连接线链表;

s2:读取待比较的两个可视化程序页面,设置逐步弱化的匹配条件,根据从最优到次优的匹配条件对可视化程序页面的编程符号和连接线进行数据节点的匹配对比。

进一步地,读取页面文件信息包括编程符号、连接线、中继点的数据,并设置连接线起点和终点信息。

进一步地,所述编程符号有若干个输入-输出点可供连接连;所述连接线用于连接符号之间的输出-输入点,表示编程符号之间的数据流关系;所述中继点是在连接线上的圆点,用于从连接线上引出新的连接线并将原连接线分段。

再进一步地,对待比较可视化程序页面的编程符号和连接线进行匹配时包括匹配编程符号和连接线的uuid、特征信息、描述信息、连接信息和位置信息。

进一步地,所述uuid是编程符号和连接线新建时自动形成的一串随机字符串,调用操作系统的api接口形成,具有唯一性。

进一步地,所述特征信息是在读取可视化程序页面时,根据编程符号信息形成的一个字符串;特征信息描述了编程符号自身属性和外部连接关系,具体包括编程符号的类型和名称、所有变量的类型和名称以及与输入输出连接点相连的对侧连接点和对侧编程符号的类型和名称。

进一步地,所述描述信息是在读取可视化程序页面时,根据编程符号信息生成的一个字符串,描述信息描述了编程符号自身属性,但不包括连接信息,具体包括编程符号的类型和名称和所有变量的类型和名称。

再进一步地,对待比较可视化程序页面的编程符号进行数据节点的匹配对比,具体包括以下步骤:

a)依次遍历2个可视化程序页面的编程符号列表,将可视化程序页面1中的每一个编程符号与可视化程序页面2中的每一个编程符号进行uuid的比较,若两个编程符号uuid相同,则形成为匹配节点,并从编程符号列表里删除匹配的编程符号;

b)依次遍历2个可视化程序页面的编程符号列表,将可视化程序页面1中的每一个编程符号与可视化程序页面2中的每一个编程符号进行特征信息的比较;若两个编程符号特征信息相同,则形成为匹配节点,并从编程符号列表里删除匹配的编程符号;

c)依次遍历2个可视化程序页面的编程符号列表,将可视化程序页面1中的每一个编程符号与可视化程序页面2中的每一个编程符号进行描述信息比较、与已匹配节点的关联信息比较。若两个编程符号的描述信息、与已匹配节点的关联信息相同,则形成为匹配节点,并从编程符号列表里删除匹配的编程符号;

d)判断经过步骤c)是否产生新的匹配节点,若有新的匹配节点,重复步骤c),否则往下进行步骤e);

e)依次遍历2个可视化程序页面的编程符号列表,将可视化程序页面1中的每一个编程符号与可视化程序页面2中的每一个编程符号进行类型、名称比较和相对位置匹配;所述相对位置匹配指的是两个编程符号的坐标偏差小于一个阈值;如果两个编程符号类型、名称形同、相对位置匹配,则形成为匹配节点,并从编程符号列表里删除匹配的编程符号;

f)判断经过步骤e)是否产生新的匹配节点,若有新的匹配节点,就重复步骤f),否则退出单个编程符号匹配过程。

g)对于可视化程序页面1中未匹配的编程符号设置为被删除标记,对于可视化程序页面2中未匹配符号设置为新建标记。

再进一步的,所述与已匹配节点的关联信息是指两个编程符号是否存在同名的连接点连接到其它已经匹配的同类型编程符号。

更进一步的,对待比较可视化程序页面的连接线进行数据节点的匹配对比,具体包括以下步骤:

a)处理可视化程序页面1和可视化程序页面2中的连接线,如果连接线终点是中继点,则不参与匹配,如果连接线起点是中继点,则重置连接线的起点到与中继点连接的起点,重复这个过程,直到连接线的起点不再是中继点;

b)依次遍历2个可视化程序页面的连接线列表,将可视化程序页面1中的每一条连接线与可视化程序页面2中的每一连接线进行uuid的比较,若uuid相同,则形成为匹配节点,并从连接线列表里删除匹配的连接线;

c)依次遍历2个可视化程序页面的连接线列表,将可视化程序页面1中的每一条连接线与可视化程序页面2中的每一连接线进行起点和终点信息的比较;起点和终点信息比较包括比较起点和终点的连接点名称、连接编程符号是否匹配对应,若相等则形成为匹配节点,并从连接线列表里删除匹配的连接线;

d)依次遍历2个可视化程序页面的连接线列表,将可视化程序页面1中的每一条连接线与可视化程序页面2中的每一条连接线进行终点信息的比较,终点信息比较包括比较终点的连接点名称、终点连接编程符号是否匹配对应,若相等则形成为匹配节点,并从连接线列表里删除匹配的连接线;

e)依次遍历2个可视化程序页面的连接线列表,将可视化程序页面1中的每一条连接线与可视化程序页面2中的每一条连接线进行起点信息的比较,起点信息比较包括比较起点的连接点名称、连接编程符号是否匹配对应,若相等则形成为匹配节点,并从连接线列表里删除匹配的连接线;

f)对于可视化程序页面1中未匹配的连接线设置为被删除标记,对于可视化程序页面2中未匹配连接线设置为新建标记。

本发明所达到的有益效果:本发明方法在可视化程序页面进行比较时,能够以最优-次优的方法形成用于比较分析的编程符号、连接线的匹配节点,能充分考虑到页面修改前后的各种新建、删除、位置连接关系的变化后,形成较为精确的匹配对,为单个符号的差异分析奠定基础,该方法已经在多个直流控制保护可视化工程维护开发中使用,提供了可视化程序分析比较效率。

附图说明

图1是本发明方法具体实施例的节点匹配流程示意图。

具体实施方式

下面结合附图对本发明作进一步描述。以下实施例仅用于更加清楚地说明本发明的技术方案,而不能以此来限制本发明的保护范围。

实施例1:

读取页面文件,包括编程符号、连接线、中继点等数据,设置连接线起点、终点信息,形成网络结构;生成每个符号的描述信息和特征信息供符号匹配;遍历待比对的两个可视化程序页面可视化程序页面1和2中的符号,通过特征信息、描述信息、连接关系、位置关系来匹配对齐两个页面中的编程符号;通过起点和终点的连接符号、连接点信息来匹配对齐两个页面中的连接线。

所述编程符号在可视化编程中是一个符号块,代表了一种特定的功能,例如加减运算、延时、滤波等,它具有输入、输出、参数等属性。

连接线是一种特殊的编程符号的,它连接了编程符号的输入输出结点,它的某些属性记录了起始点的编程符号的输出和终点的编程符号的输入,也就是连接信息的含义。

编程符号的位置信息就是在可视化编程界面中的x、y轴像素坐标,它是编程符号的一个属性。所有的编程符号都通过一种描述语言存储在页面文件中。当读取页面文件时就可以获取所有编程符号及其属性,通过这些属性能够构建完整的编程页面。

编程符号、连接线有uuid(通用唯一识别码,universallyuniqueidentifier的缩写)属性,uuid是编程符号和连接线新建时自动形成的一串随机字符串,调用操作系统的api接口形成,具有唯一性,优选地,使用qt::createuuid接口形成。编程符号有符号类型、符号名称、输入-输出变量名称、变量类型等属性。连接线有连接线起点连接的变量名、起点符号uuid、终点连接的变量名、终点符号uuid。通过分析上述页面数据,可形成拓扑网络。

优选地,具体实施例中编程符号匹配方法如下:

a)依次遍历2个可视化程序页面的编程符号列表,将可视化程序页面1中的每一个编程符号与可视化程序页面2中的每一个编程符号进行uuid的比较,若两个编程符号uuid相同,则形成为匹配节点,并从编程符号列表里删除匹配的编程符号;

b)依次遍历2个可视化程序页面的编程符号列表,将可视化程序页面1中的每一个编程符号与可视化程序页面2中的每一个编程符号进行特征信息的比较。所述的特征信息是在读取可视化程序页面时,根据编程符号信息形成的一个字符串,它描述了编程符号自身属性和外部连接关系,具体包括编程符号的类型/名称、所有变量的类型/名称以及与输入输出连接点相连的对侧连接点和对侧编程符号的类型/名称;若两个编程符号特征信息相同,则形成为匹配节点,并从编程符号列表里删除匹配的编程符号;

c)依次遍历2个可视化程序页面的编程符号列表,将可视化程序页面1中的每一个编程符号与可视化程序页面2中的每一个编程符号进行描述信息比较、与已匹配节点的关联信息比较;所述的描述信息是在读取可视化程序页面时,根据编程符号信息生成的一个字符串,它描述了编程符号自身属性,但不包括连接信息,具体包括编程符号的类型/名称和所有变量的类型/名称。所述的与已匹配节点的关联信息是指两个编程符号是否存在同名的连接点连接到其它已经匹配的同类型编程符号。若两个编程符号的描述信息、与已匹配节点的关联信息相同,则形成为匹配节点,并从编程符号列表里删除匹配的编程符号;

d)判断经过步骤c)是否产生新的匹配节点,若有新的匹配节点,重复步骤c),否则往下进行步骤e);

e)依次遍历2个可视化程序页面的编程符号列表,将可视化程序页面1中的每一个编程符号与可视化程序页面2中的每一个编程符号进行类型、名称比较和相对位置匹配,所述的相对位置匹配指的是两个编程符号的坐标偏差小于一个阈值,例如(x2-x1)2+(y2-y1)2<=100。如果两个编程符号类型、名称形同、相对位置匹配,则形成为匹配节点,并从编程符号列表里删除匹配的编程符号;

f)判断经过步骤e)是否产生新的匹配节点,若有新的匹配节点,就重复步骤f),否则退出单个编程符号匹配过程。

g)对于可视化程序页面1中未匹配的编程符号设置为被删除标记,对于可视化程序页面2中未匹配符号设置为新建标记。

上述的编程符号匹配实施例采用了4个依次减弱的匹配条件对可视化程序页面1和2的编程符号进行层层匹配筛选,一方面保证未更改的编程符号能首先精确匹配,另一方面保证属性和连接关系发生变化的编程符号也能匹配。

具体实施例中连接线匹配方法如下:

a)处理可视化程序页面1和可视化程序页面2中的连接线,如果连接线终点是中继点,则不参与匹配,如果连接线起点是中继点,则重置连接线的起点到与中继点连接的起点,重复这个过程,直到连接线的起点不再是中继点;

b)依次遍历2个可视化程序页面的连接线列表,将可视化程序页面1中的每一条连接线与可视化程序页面2中的每一连接线进行uuid的比较,若uuid相同,则形成为匹配节点,并从连接线列表里删除匹配的连接线;

c)依次遍历2个可视化程序页面的连接线列表,将可视化程序页面1中的每一条连接线与可视化程序页面2中的每一连接线进行起点和终点信息的比较,起点和终点信息比较包括比较起点和终点的连接点名称、连接符号是否匹配对应,若相等则形成为匹配节点,并从连接线列表里删除匹配的连接线;

d)依次遍历2个可视化程序页面的连接线列表,将可视化程序页面1中的每一条连接线与可视化程序页面2中的每一条连接线进行终点信息的比较,终点信息比较包括比较终点的连接点名称、终点连接编程符号是否匹配对应,若相等则形成为匹配节点,并从连接线列表里删除匹配的连接线;

e)依次遍历2个可视化程序页面的连接线列表,将可视化程序页面1中的每一条连接线与可视化程序页面2中的每一条连接线进行起点信息的比较,起点信息比较包括比较起点的连接点名称、连接编程符号是否匹配对应,若相等则形成为匹配节点,并从连接线列表里删除匹配的连接线;

f)对于可视化程序页面1中未匹配的连接线设置为被删除标记,对于可视化程序页面2中未匹配连接线设置为新建标记。

上述的连接线匹配实施例利用uuid和已经配对的编程符号,构建了4个依次减弱的匹配条件对可视化程序页面1和2中的连接线进行层层匹配筛选,一方面保证未更改的连接线能首先精确匹配,另一方面保证起点或者终点发生改变的连接线也能匹配。

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。

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