一种基于三态选择树的仪器自测试显示组件构造方法
技术领域
本发明属于计算机应用技术领域,尤其涉及的是一种基于三态选择树的仪器自测试显示组件构造方法。
背景技术
随着科学技术的不断发展,人类社会已经步入了信息化时代,对仪器的要求更高,依赖性也更强。自测试功能是现代仪器的一个显著特点,是否是智能仪器且衡量智能仪器水平高低的标志之一是它的自测试自诊断功能,因此,在仪器的设计过程中,使其具有良好的自测试自诊断能力是非常重要的。仪器复杂性的增加给其自测试显示组件的设计带来了诸多问题,如自测试条目繁多,逻辑关系复杂、自测试时间长、无法快速准确定位到自测试项及灵活手动配置自测试项等,因此仪器的自测试显示组件设计逐渐引起了人们的高度重视。
目前,已有的仪器自测试显示组件的构造方法主要有以下两种:一种是采用自动测试与选择测试单元项相结合的方法:这种方法对显示组件设计要求不高,只需提供一个自动测试按键和一个单元测试选择框。用户可以选择一键自动全部测试或者选择其中某一项进行实时测试。另一种是采用列表显示的方法:将仪器所有自测试项目按单元分类,用户可以根据需要通过浏览列表手动配置选择自测试项目,进而进行仪器的自测试功能。
采用自动测试与选择测试单元项相结合的方法,主要缺点是:1.对于自测试项数目少的仪器,可以满足要求,随着仪器复杂度的提高,自测试项数目的增加,选择自测试项比较繁琐。2.自测试项没有按单元分类,层次不够清晰。3.无法进行整件、部件有关的功能自测试。
采用列表显示的方法,主要缺点是:1.自测试项选择比较麻烦,需要浏览整个列表。2.选择某一部件进行自测试时需要依次选择该部件下所有自测试项。3.对于复杂仪器,自测试项数目较多时,列表太长,层次不够清晰。4.自测试结果显示样式单一,不能够实时显示某一项测试结果。
因此,现有技术存在缺陷,需要改进。
发明内容
本发明所要解决的技术问题是针对现有技术的不足,提供一种基于三态选择树的仪器自测试显示组件构造方法。
本发明的技术方案如下:
一种基于三态选择树的仪器自测试显示组件构造方法,其中,包括以下步骤:
步骤一:汇总仪器整机自测试项目,定义整机名称、整件名称、部件名称、自测试项目名称,明确整机、整件、部件与自测试项目之间的逻辑关系;
步骤二:创建空的三态选择树;
步骤三:根据所述自测试项目及所述逻辑关系,将整机名称、整件名称、部件名称、自测试项目名称作为树的一个结点插入到三态选择树中,其中,所述自测试项目作为叶结点插入;定义所述自测试项目的测试函数,在树的叶结点中定义函数指针,指向对应的自测试函数;
步骤四:在三态选择树中选择需要测试的整件或者部件、自测试项目结点,采用树的中序遍历算法依次访问其它结点,构建三态选择树中各结点的三态选择关系,确定其它结点的状态;
步骤五:根据所述确定的其它结点的状态,对选中的自测试项目调用自测试函数进行测试。
所述的自测试显示组件构造方法,其中,所述步骤一中,所述整机名称为需要进行自测试的仪器名称,一个整机包括若干整件,一个整件包括若干部件,一个部件包括若干自测试项。
所述的自测试显示组件构造方法,其中所述步骤二中,所述三态选择树以二叉链表作为存储结构,并将所述二叉链表中结点状态初始化设定为非选中状态。
所述的自测试显示组件构造方法,其中,所述步骤三中,所述将整机名称、整件名称、部件名称、自测试项名称插入到三态选择树中,具体步骤为:
步骤3A:只将叶结点作为自测试项目,为其定义函数指针;
步骤3B:整件名称和部件名称是自测试项目在逻辑上的归属,是其父结点;
步骤3C:父结点选中,则父结点下所有子结点自动为选中状态;父结点下某个子结点选中,父结点自动为部分选中状态。
所述的自测试显示组件构造方法,其中,所述步骤四中,所述构建三态选择树中各结点的三态选择关系具体为:
步骤4A:改变非叶结点状态,首先设置其子结点的状态与非叶结点的状态一致,其次搜索非叶结点的子结点,递归处理子结点的子结点和兄弟结点,最后搜索非叶结点的兄弟结点,递归处理兄弟结点的父结点和父结点的父结点,如果非叶结点的状态和兄弟结点状态一致,则父结点状态和非叶结点状态一致,否则,父结点状态为部分选中状态;
步骤4B:改变叶结点状态,首先搜索叶结点的兄弟结点,如果和兄弟结点状态一致,则父结点状态和叶结点状态一致,否则,父结点状态为部分选中状态,最后递归处理父结点的兄弟结点和其父结点。
本发明基于三态选择树,结构清晰,能够方便展开、收起、选择、取消自测试项,能够按整件、部件为单位选择测试项,每一个自测试项测试完毕,可以实时显示结果,并根据选择状态和测试结果自动逻辑运算部件、整件及整机的自测试结果仪器的自测试项目逻辑层次清晰、结构合理、操作简捷方便,可以及时、快速、准确地定位与检测故障,实时查看仪器状态,提高执行任务的可靠性与安全性,缩短故障检测与隔离时间,进而减少维修时间,提高系统可用性,降低仪器的使用维护费用。
附图说明
图1为本发明中树的结构示意图。
图2为本发明中三态选择树的存储结构示意图。
图3为本发明一实施例实现方法示意图。
图4为图3中创建的三态选择树示意图。
图5为图3中构建结点三态选择关系流程图。
具体实施方式
以下结合附图和具体实施例,对本发明进行详细说明。
实施例1
如图1所示,本申请中的树是数据结构中用于解决选择和显示项目内容问题的经典方法,而三态选择树是为解决自测试这样多态选择问题而改进的数据结构。图1为树的一个示例。一棵树只有一个根结点A,根结点A之外的结点称为子结点B、C、D、E,每个子结点只有一个父结点,B、C、E的父结点为A,D的父结点为C,没有子结点的结点称为叶结点B、D、E。改进的三态选择树每个结点有三种状态,选中、非选中、部分选中。三态选择树采用二叉链表法进行存储,链表中结点的两个链域分别指向第一个孩子结点和下一个兄弟结点,并保留空间存储结点当前状态。其存储结构如图2所示,结点的S1区域为链域,指向第一个孩子结点,S2区域存储结点名称,S3区域为链域,指向下一个兄弟结点,S4区域存储结点当前状态。结点N2为结点N1的孩子结点,结点N3为结点N2的兄弟结点,结点N4为结点N3的孩子结点,结点N5为结点N3的兄弟结点。
如图3所示,包括以下步骤:
步骤1为汇总仪器整机自测试项目,明确整机、整件(电路板、微波件)、部件(电路模块)、自测试项之间的逻辑关系。
步骤2为创建空的三态选择树。该三态选择树以二叉链表作为存储结构,结点状态初始化为非选中状态。
步骤3为根据步骤1整理的自测试项目及逻辑关系,将整机名称、整件名称、部件名称、自测试项名称作为树的一个结点插入到三态选择树中。其中,整机名称作为三态选择树的根结点插入,自测试项名称作为叶结点插入,整件名称和部件名称作为叶结点的父结点插入。定义自测试项的测试函数,在树的叶结点中定义函数指针,指向对应的自测试函数。
步骤4为在三态选择树中选择需要测试的整件或者部件、自测试项等结点,采用树的中序遍历算法依次访问其它结点,构建三态选择树中各结点的三态选择关系,确定其它结点的状态。
步骤5为根据步骤4确定的结点状态,对选中的自测试项调用自测试函数进行测试。
具体地,所述步骤1中:所述整机名称是指所要进行自测试的仪器名称,一个整机可以包括若干整件,一个整件可以包括若干部件,一个部件可以包括若干自测试项。
具体地,所述步骤3中:所述自测试项名称作为叶结点,只有叶结点才能作为自测试项,为其分配自测试函数指针。整件名称和部件名称是自测试项在逻辑上的归属,是其父结点。逻辑关系为:父结点选中,则父结点下所有子结点自动为选中状态;父结点下某个子结点选中,父结点自动为部分选中状态。
具体地,所述步骤4具体包括:
步骤41:如果改变的是非叶结点状态,首先设置其子结点的状态与非叶结点的状态一致,其次搜索非叶结点的子结点,递归处理子结点的子结点和兄弟结点,最后搜索非叶结点的兄弟结点,递归处理兄弟结点的父结点和父结点的父结点,如果非叶结点的状态和兄弟结点状态一致,则父结点状态和非叶结点状态一致,否则,父结点状态为部分选中状态。
步骤42:如果改变的是叶结点状态,首先搜索叶结点的兄弟结点。如果和兄弟结点状态一致,则父结点状态和叶结点状态一致,否则,父结点状态为部分选中状态。最后递归处理父结点的兄弟结点和其父结点。
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施例对本发明作进一步详细的说明。
如图4所示,为具体实施例中,创建的三态选择树示意图:
第一步,用户设置303结点为选中状态。
第二步,判断303结点是否是叶结点。
第三步,设置304、305、306结点为选中状态。
第四步,判断303结点和其兄弟结点307、311的状态是否一致。
第五步,状态不一致,置303结点的父结点302为部分选中状态。
第六步,判断302结点的兄弟结点何其状态是否一致。
第七步,置302结点的父结点301为部分选中状态。
采用这种表示方法是为了表述的方便。以用户进行I通道增益DAC部件自测试为例,对本发明创建的三态选择树6中各结点构建三态选择关系过程进行更详细的说明,处理步骤如图5所示:
S41:用户进行I通道增益DAC部件的自测试,设置303结点为选中状态;
S42:判断303结点是否是叶结点;
S43:设置304、305、306结点为选中状态;
S44:判断303结点和其兄弟结点307、311的状态是否一致;
S45:状态不一致,置303结点的父结点302为部分选中状态;
S46:判断302结点的兄弟结点和其状态是否一致;
S47:置302结点的父结点301为部分选中状态。
实施例2
在上述实施例的基础上,如图3-图5所示,一种基于三态选择树的仪器自测试显示组件构造方法,其中,包括以下步骤:
步骤一:汇总仪器整机自测试项目,定义整机名称、整件名称、部件名称、自测试项目名称,明确整机、整件、部件与自测试项目之间的逻辑关系;
步骤二:创建空的三态选择树;
步骤三:根据所述自测试项目及所述逻辑关系,将整机名称、整件名称、部件名称、自测试项目名称作为树的一个结点插入到三态选择树中,其中,所述自测试项目作为叶结点插入;定义所述自测试项目的测试函数,在树的叶结点中定义函数指针,指向对应的自测试函数;
步骤四:在三态选择树中选择需要测试的整件或者部件、自测试项目结点,采用树的中序遍历算法依次访问其它结点,构建三态选择树中各结点的三态选择关系,确定其它结点的状态;
步骤五:根据所述确定的其它结点的状态,对选中的自测试项目调用自测试函数进行测试。
所述的自测试显示组件构造方法,其中,所述步骤一中,所述整机名称为需要进行自测试的仪器名称,一个整机包括若干整件,一个整件包括若干部件,一个部件包括若干自测试项。
所述的自测试显示组件构造方法,其中所述步骤二中,所述三态选择树以二叉链表作为存储结构,并将所述二叉链表中结点状态初始化设定为非选中状态。
所述的自测试显示组件构造方法,其中,所述步骤三中,所述将整机名称、整件名称、部件名称、自测试项名称插入到三态选择树中,具体步骤为:
步骤3A:只将叶结点作为自测试项目,为其定义函数指针;
步骤3B:整件名称和部件名称是自测试项目在逻辑上的归属,是其父结点;
步骤3C:父结点选中,则父结点下所有子结点自动为选中状态;父结点下某个子结点选中,父结点自动为部分选中状态。
所述的自测试显示组件构造方法,其中,所述步骤四中,所述构建三态选择树中各结点的三态选择关系具体为:
步骤4A:改变非叶结点状态,首先设置其子结点的状态与非叶结点的状态一致,其次搜索非叶结点的子结点,递归处理子结点的子结点和兄弟结点,最后搜索非叶结点的兄弟结点,递归处理兄弟结点的父结点和父结点的父结点,如果非叶结点的状态和兄弟结点状态一致,则父结点状态和非叶结点状态一致,否则,父结点状态为部分选中状态;
步骤4B:改变叶结点状态,首先搜索叶结点的兄弟结点,如果和兄弟结点状态一致,则父结点状态和叶结点状态一致,否则,父结点状态为部分选中状态,最后递归处理父结点的兄弟结点和其父结点。
本发明基于三态选择树,结构清晰,能够方便展开、收起、选择、取消自测试项,能够按整件、部件为单位选择测试项,每一个自测试项测试完毕,可以实时显示结果,并根据选择状态和测试结果自动逻辑运算部件、整件及整机的自测试结果仪器的自测试项目逻辑层次清晰、结构合理、操作简捷方便,可以及时、快速、准确地定位与检测故障,实时查看仪器状态,提高执行任务的可靠性与安全性,缩短故障检测与隔离时间,进而减少维修时间,提高系统可用性,降低仪器的使用维护费用。
应当理解的是,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,而所有这些改进和变换都应属于本发明所附权利要求的保护范围。