通过​编​程方式​创建​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 编程的任何编程语言。

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

Was this information helpful?

Yes

No