我如何可以通过编程来创建一个TestStand的数组?
主要软件:
主要软件版本: N/A
主要软件修正版本: N/A
次要软件: N/A
问题: 我需要通过编程来在我的代码模块或者TestStand序列中创建一个TestStand数组。我一般使用TestStand的API方法SetVal并设定InsertIfMissing为True来创建TestStand变量(比如SetValBoolean,SetValNumber,SetValString等)。但是TestStand并没有针对数组的SetVal方法,并且我也无法使用目前的一些与数组类型有关的方法来实现。那么我该如何来做?
解答: 存在3种方法来通过编程创建一个TestStand的数组,它们都需要作为一个TestStand变量(比如局部变量,参数,文件全局变量或者工作站全局变量)或属性(比如步骤属性)来使用TestStand API来插入数组。
- 复制一个原有的数组
如果你已经有了个现成的数组,你可以将它复制并基于这个复制插入新的数组。新的数组与原先数组相同(比如相同的类型,相同的大小以及数值)。这样你就可以根据需要修改新的数组的内容,使用下面的TestStand API可以实现:
a) PropertyObject.Clone
这个方法创建你在Loopup String参数中指定的属性的一份复制。返回值是一个PropertyObject对象,你将会在PropertyObject.SetPropertyObject的方法中使用它来插入新的数组,如下文所述。
b) PropertyObject.SetPropertyObject
使用这个方法,并将其中的Options参数设置为1(即InsertIfMissing),并将你从PropertyObject复制方法(见上文)中得到的PropertyObject的引用作为新值的参数进行传递。新的数组的名字可以在LoopUp String参数上进行设置。
- 创建一个新的数组对象
这个方法可以创建一个全新的数组对象,你还可以将它插入一个常规的数组中。新数组是空的(没有元素),但是你可以重新设定它的大小并且随你的意愿修改它的内容。使用下面的TestStand API方法可以实现:
a) Engine.NewPropertyObject
这个方法可以创建并返回一个新的PropertyObject对象,从而可以让你在PropertyObject.SetPropertyObject方法中使用(见下文)。该方法有下面所示的函数原型:
Engine.NewPropertyObject (valueType, asArray, typeName, options)
注意第二个参数是一个布尔标签,可以允许你指定你创建的PropertyObject对象是一个数组。你可以在valueType参数中指定新数组的类型。
b) Engine.SetPropertyObject
使用这个方法,并将其中的Option参数设置为1(即InsertIfMissing),并将你从Engine.NewPropertyObject方法中得到的PropertyObject引用作为新值参数进行传递。新的数组名字可以在LoopUp String参数上进行设置。
- 使用PropertyObject.NewSubProperty方法
这个TestStand API方法可以创建一个新的子属性,其名字可以在LoopUp String参数中设定。改方法有如下的原型:
PropertyObject.NewSubProperty (lookupString, valueType, asArray, typeName, options)
注意其中第三个参数是一个布尔标签,可以允许你指定你创建的子属性是一个数组。你可以在LoopUp String参数上指定新数组的名字,在valueType参数中指定新数组的类型。新数组将会是一个空数组(0个元素),但是你可以设置它的大小并按照你的意愿修改它的内容。
如果想更详细地了解这些TestStand API方法,你可以参考TestStand帮助,它可以通过打开TestStand 序列编辑器并选择Help->TestStand Help。所有TestStand API方法都可以通过支持ActiveX编程的编程语言来调用,你也可以参考下面的链接,作为一个如何实现文档中描述的方法的实例。
相关链接: Developer Zone Example: Programmatically Creating Arrays in TestStandDeveloper Zone Tutorial: ActiveX and TestStand
附件:
报告日期: 02/27/2003
最近更新: 11/13/2007
文档编号: 2UQACA6E
Other Support Options
Ask the NI Community
Collaborate with other users in our discussion forums
Request Support from an Engineer
A valid service agreement may be required, and support options vary by country.