5.1 TestStand数据空间概述
TestStand管理着许多步骤和序列,从模块化的角度来说,应该尽可能让每个步骤相对独立,使得该步骤完成的是某个特定的操作或对应某个具体的测试项;子序列同样应该如此,它包含的是一系列功能相关的测试步骤。即使如此,在步骤与步骤之间、步骤与代码模块之间、步骤与序列之间还是要传递数据的,比如当前步骤可能需要使用前面步骤的结果,当前序列中某步骤的结果或变量的值需要传递给子序列等,这就涉及TestStand如何管理数据。在TestStand中,将和测试系统相关的数据统称为属性(Property),因此属性是一个很广泛的概念。第4章介绍不同的步骤类型时,就已经向读者提到,每种步骤类型都有其特有的重要属性,比如数值限度测试步骤中的属性Step.Limits、Step.Result.Numeric,消息对话框中的属性Step.Result.ButtonHit。有些属性是一直存在的,而有些属性是在TestStand运行时动态创建的。用户能够在变量窗格中直接创建的属性称为变量,根据变量的作用范围,又可将其分为局部变量、参量、文件全局变量和站全局变量。为了方便读者区分属性和变量的概念,本书在提到属性时,主要是指步骤的属性、TestStand运行时动态创建的属性,而不包括变量。
在序列编辑器中,变量窗格(如图5-1所示)显示了所有当前序列和步骤可以访问的属性和变量。举个例子,假设当前序列选中的是一个数值限度测试步骤,那么相应地在变量窗格中将包含属性ThisContext、RunState和Step(后文会分别介绍),当然任何一个上述属性下面还可以包括子属性(SubProperty);而变量有Locals、Parameters、FileGlobals、StationGlobals,可以在任何变量下面创建新的变量,在变量窗格中可以查看和修改所有变量。如果属性下面包含子属性,变量中包含其他变量,那么该属性或变量称为容器(Container),像Locals和Parameters都是容器。
图5-1 变量窗格