主页
技术支持
以编程方式检索TestStand变量名称的列表
以编程方式检索TestStand变量名称的列表
更新 Apr 3, 2023
环境
环境显示经过验证可用于本文描述的解决方案的产品。此解决方案也可能适用于其他类似产品或应用程序。
软件
TestStand
我想以编程方式从我的代码模块中获取包含我的TestStand变量名称的列表(即Locals,Parameters,FileGlobals,StationGlobals)。我怎样才能做到这一点?
您可以使用
PropertyObject
类中
定义的两个TestStand API方法
:
PropertyObject.GetNumSubProperties(lookupString)
-
此方法返回属于特定对象的子属性的数量(例如,局部变量,序列文件全局变量,TestStand容器的子属性等)。然后,您可以使用下面描述的PropertyObject方法进行一个循环,该循环具有与子属性数量一样多的迭代,以获取每个变量的名称。
PropertyObject.GetNthSubPropertyName(lookupString,索引,选项)
-此方法返回索引指定的子属性的名称。
如何正确使用这些方法并传递正确的引用取决于您的代码模块的调用方式:
如果
从序列中的某个步骤调用
了
代码模块,则
需要将SequenceContext传递给您的代码模块,并将其用作上述PropertyObject方法的ActiveX引用。请根据您的开发环境,参考以下说明:
在
LabVIEW中
,必须首先调用
SequenceContext.AsPropertyObject
方法,并将返回值用作PropertyObject方法的ActiveX引用。将以下值之一传递给lookupString参数:
Locals
,
Parameters
,
FileGlobals
或
StationGlobals
,具体取决于要获取的变量的范围。请勿在LabVIEW中使用引号。
在
LabWindows / CVI中,
您的代码可能如下所示:
//获取局部变量的数量
tsErrChk(TS_PropertyGetNumSubProperties(testData-> seqContextCVI,&errorInfo,“ Locals”,&NumOfSubproperties));
for(索引== 0;索引<NumOfSubproperties;索引++)
{
//获取第N个变量名称并将其存储在名为“ VariableName”的变量中
tsErrChk(TS_PropertyGetNthSubPropertyName(testData-> seqContextCVI,&errorInfo,“ Locals”,Index,0,&VariableName));
}
在
.NET中,
您的代码可能如下所示:
//获取局部变量列表
PropertyObject locals = mySequence.Locals;
如果
未从任何序列中
调用您的代码模块,或者您需要引用序列文件中定义的变量(而不是调用您的代码模块的变量),那么您将没有SequenceContext可用。在这种情况下,您可以使用以下方法和属性来获取一个对象,以用作上面列出的两个PropertyObject方法的参考:
要获取
Station Globals对象
-使用
Engine.Globals
属性。
要获取
序列文件全局对象
-
首先,您需要获取包含要获取的文件全局变量的序列文件对象。然后,检索FileGlobals对象。可以使用以下方法/属性来完成此操作:
Engine.GetSequenceFile
或
Engine.GetSequenceFileEx
方法。
SequenceFile.FileGlobalsDefaultValues
属性。
Engine.ReleaseSequenceFile
或
Engine.ReleaseSequenceFileEx
方法。
获取
Locals and Parameters对象
-
由于局部变量和参数属于序列,因此首先需要获取序列所在的序列文件对象。然后,您可以获得序列对象,最后是参数和/或局部对象。使用以下方法/属性来完成此任务:
Engine.GetSequenceFile
或
Engine.GetSequenceFileEx
方法。
SequenceFile.GetSequenceByName
或
SequenceFile.GetSequence
方法。
Sequence.Locals
和/或
Sequence.Parameters
属性。
Engine.ReleaseSequenceFile
或
Engine.ReleaseSequenceFileEx
方法。
一旦有了所需的对象(即Locals,Parameters,FileGlobals或StationGlobals对象),就可以将其用作上述PropertyObject方法的ActiveX引用,并将空字符串用作lookupString参数。
相关链接
Programmatically Creating Variables in TestStand
TestStand API Reference Help
其他支持选项
询问NI社区
在我们的论坛中与其他用户协作
搜索NI社区以寻求解决方案
请求工程师的支持
可能需要有效的服务协议或有效的软件订阅,同时支持选项因国家/地区而异
打开服务请求
了解软件订阅和服务
了解硬件服务计划
Was this information helpful?
Helpful
Not Helpful