通过​编​程方式​创建​TestStand​数组

更新 Jun 20, 2024

环境

软件

  • TestStand

在 TestStand 中,有几种方法可以以编程方式创建数组。在本文中,我们将详细介绍这些方法。

有三种主要方法可以通过编程创建 TestStand 数组。
  1. 克隆现有数组
  2. 创建一个新的数组对象
  3. 使用 PropertyObject.NewSubProperty
以上方法都需要使用 TestStand API 将数组作为 TestStand 变量(即LocalParameterFileGlobalStationGlobal )或属性(例如Step Property)插入。
 
  1. 克隆现有数组
    如果您有现有数组,则可以克隆它,然后将克隆的数组作为 Property Object 插入。新数组将与原始数组相同(即相同的类型、大小和值)。然后,您可以根据需求修改新数组的内容。您可以使用以下 TestStand API 方法来实现此目的:

    a) PropertyObject.Clone
    此方法创建您在lookupString参数中指定的属性副本,返回值是PropertyObject 对象。然后,使用PropertyObject.SetPropertyObject()方法插入新数组。

    b) PropertyObject.SetPropertyObject
    使用此方法并将其 Options 参数设置为1 ( InsertIfMissing ),再通过上述PropertyObject.Clone()方法获得的PropertyObject引用作为newValue参数传递。新数组的名称可以在lookupString参数中设置。

    例子:
    Locals.SetPropertyObject("myNewArray", 1, Locals.myCurrentArray.Clone("", 0))
  1. 创建一个新的数组对象
    此方法创建一个全新的数组对象,然后您可以将其作为常规数组插入。新数组将为空(零元素),但您可以像处理任何数组一样调整其大小并修改其内容。使用以下 TestStand API 方法来实现此目的:

    a) Engine.NewPropertyObject
    此方法创建并返回一个新的PropertyObject对象,您将在下文描述的PropertyObject.SetPropertyObject方法中使用Engine.NewPropertyObject 插入新数组。Engine.NewPropertyObject 具有以下原型:

    Engine.NewPropertyObject(valueType, asArray, typeName, options)

    注意第二个参数是一个布尔标志,它允许你指定刚刚创建的Property Object是一个数组。您可以通过valueType参数指定新数组的类型。

    b) PropertyObject.SetPropertyObject
    使用此方法并将其 options 参数设置为1 (InsertIfMissing) ,并将使用上述Engine.NewPropertyObject方法获得的PropertyObject引用作为newValue参数传递。新数组的名称可以在lookupString参数中设置。

    例子:
    Locals.SetPropertyObject("myNewArray", 1, RunState.Engine.NewPropertyObject(PropValType_Number, True, "", 0))
  1. 使用 PropertyObject.NewSubProperty
    此 TestStand API 方法创建一个新的子属性,其名称由lookupString参数指定。该方法具有以下原型:PropertyObject.NewSubProperty(lookupString, valueType, asArray, typeName, options)

    请注意,第三个参数是一个布尔标志。它允许您指定要创建的子属性是否是一个数组。您可以通过valueType参数指定新数组的类型,并在lookupString参数中指定其名称。新数组将为空(零元素),但您可以调整其大小并修改其内容,就像对任何数组所做的那样。

    定数组大小的一种方法是使用SetNumElements()方法。此方法具有以下原型:
    PropertyObject.SetNumElements(numElements, options)

    例子:
    Locals.NewSubProperty("myNewArray", PropValType_Number, True, "", 0), #NoValidation(Locals.myNewArray.SetNumElements(10, 0))

    可以通过添加SetArrayBounds()方法来动态创建零初始化的二维数组:
    Locals.SetPropertyObject("newArray", 1, RunState.Engine.NewPropertyObject(3, True, "", 0)), SetArrayBounds(#NoValidation(Locals.newArray), "[0][0]", "[2][2]")

附加信息

有关这些 TestStand API 方法的详细信息,请参阅 Teststand 帮助。您可以通过 TestStand Sequence Editor 选择 Help»TestStand Help 打开相关的帮助文档。所有 TestStand API 方法都可用于支持 ActiveX 编程的任何编程语言。

您也可以通过下面链接的示例程序来了解这些方法的实现。