以编程方式检索TestStand变量名称的列表

更新 Apr 3, 2023

环境

软件

  • TestStand

我想以编程方式从我的代码模块中获取包含我的TestStand变量名称的列表(即Locals,Parameters,FileGlobals,StationGlobals)。我怎样才能做到这一点?

您可以使用 PropertyObject 类中 定义的两个TestStand API方法
  1. PropertyObject.GetNumSubProperties(lookupString) -此方法返回属于特定对象的子属性的数量(例如,局部变量,序列文件全局变量,TestStand容器的子属性等)。然后,您可以使用下面描述的PropertyObject方法进行一个循环,该循环具有与子属性数量一样多的迭代,以获取每个变量的名称。
  2. PropertyObject.GetNthSubPropertyName(lookupString,索引,选项) -此方法返回索引指定的子属性的名称。
如何正确使用这些方法并传递正确的引用取决于您的代码模块的调用方式:
  • 如果从序列中的某个步骤调用代码模块,则需要将SequenceContext传递给您的代码模块,并将其用作上述PropertyObject方法的ActiveX引用。请根据您的开发环境,参考以下说明:
    • LabVIEW中,必须首先调用SequenceContext.AsPropertyObject 方法,并将返回值用作PropertyObject方法的ActiveX引用。将以下值之一传递给lookupString参数: LocalsParametersFileGlobalsStationGlobals ,具体取决于要获取的变量的范围。请勿在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;
一旦有了所需的对象(即Locals,Parameters,FileGlobals或StationGlobals对象),就可以将其用作上述PropertyObject方法的ActiveX引用,并将空字符串用作lookupString参数。