在VMIDS系统中,通过对虚拟控件进行功能“赋予”和测试融合,同样可对虚拟控件功能属性的修改。对智能虚拟控件仪器功能的修改和编辑,是智能虚拟控件的一大特点,这一特点使在仪器拼搭场内,智能虚拟控件的功能可以动态地改变,且不会影响仪器的运行结果,也就是说具有某一外观的仪器,既可以是一台频谱分析议,又可以是音频分析仪或其他任何一种仪器,这一特点是其他任何一种模式的仪器都难以实现的。
下面以对虚拟选择开关进行功能属性修改(默认接口)为例,深入介绍如何实现智能虚拟控件的功能“赋予”、测试融合和功能属性修改。图10-30所示为对虚拟选择开关进行功能“赋予”和功能融合。在功能“赋予”页面中,“档位列表”一栏表明虚拟选择开关能够接受的仪器功能的数目,也就是虚拟选择开关的层数及每一层的触点个数,“功能列表”一栏表明仪器功能库能够提供给虚拟选择开关的具体仪器功能,“已赋功能列表”一栏则是表明已经赋予虚拟选择开关的仪器功能,包括在虚拟选择开关的哪一层哪个触点具有了哪个功能,其他就是相应的操作按钮(“赋予”是赋予所选择触点一个所选择的功能;“DE-LETE”是删除一个已经赋予的功能;“OK”是所赋功能与相应触点融合,形成智能虚拟选择开关)。
图10-30 对虚拟选择开关进行功能“赋予”和功能融合
在功能“赋予”及测试融合过程中,主要应该解决的问题是仪器功能的导入、仪器功能的识别(匹配)、仪器功能的定位及仪器功能的触发等。这些问题很大部分是要与仪器拼搭场和仪器功能组库协同解决的。(www.xing528.com)
仪器功能的导入由仪器拼搭场调用各个控件库的pImportFuncTablePointer接口函数向控件库传入功能索引表。为了简化开发系统的规模,将功能索引表作为一个全局结构,所有的控件库共用这一结构,但是这时候导入的是所有的仪器功能,而对于一些控件来说,并不能匹配所有这些功能,因此必须要求虚拟控件能够识别它所能够使用的仪器功能。例如,虚拟旋钮控件是向外传输数据,它要求对应的仪器功能函数至少有一个参数,而其他很多的功能函数都是没有参数或参数不止一个,所以虚拟旋钮控件必须能够识别这类输出数值的功能,否则运行仪器就会出错。对于仪器功能的定位,虚拟控件根据用户所选择的仪器功能描述,计算哈希索引散列值,由这个散列值及功能名称定位功能在功能索引表中的节点位置,找到相应节点,该节点的nMessageID域保存了该功能对应的消息号MessageID(由仪器拼搭场初始化时得到)。至于仪器功能的触发,则由用户通过对虚拟控件的某种操作(例如按钮的下压、旋钮的旋动等)发出由MessageID指定的消息,来触发仪器功能的执行。虚拟选择开关功能“赋予”及功能融合流程图如图10-31所示。
图10-31 虚拟选择开关功能“赋予”及功能融合流程图
从图10-31中可以看出,对其他任何虚拟控件,功能“赋予”和测试融合只是匹配的功能不同而形成不同的功能列表,以及初始化动作档位可能不相同。例如,虚拟选择开关可以匹配所有无参数功能,而且可以初始化很多的层数及每层的触点个数,而虚拟温度计、虚拟数码管等则只能匹配既有接受显示数据的参数又有指定显示哪个测量值的参数的功能。同时,这类虚拟控件也没有档位、层数。最后一步就是完成功能到虚拟控件或虚拟控件某个档位触点的融合,此时非智能虚拟控件已经成为一个具有仪器功能的智能虚拟控件。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。