From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.



从LabWindows™/CVI™向TestStand传递一个结构体



主要软件: LabWindows/CVI Development Systems>>LabWindows/CVI Full Development System
主要软件版本: 8.1
主要软件修正版本: N/A
次要软件: TestStand

问题: 如何从LabWindows™/CVI™向TestStand返回一个结构体(比如错误簇)?

解答:

为了从LabWindows™/CVI™向TestStand返回一个结构体,您需要遵照如下步骤:

1.在LabWindows/CVI中创建一个结构体,该结构体包含您想要传递至TestStand的数据。

struct ErrorStruct {
unsigned char errorFlag; // 0 = FALSE, 1 = TRUE
int errorCode;
char errorMessage[256];
};

2.在TestStand中创建自定义数据类型(TestStand Container),它与您在LabWindows/CVI中创建的结构体极为相似。

3.将新的数据类型重命名为ErrorStruct(必须与CVI中结构体的名字一致)。

4.在新的数据类型中右击,选择Insert Field-> Boolean,在数据类型中插入一个新的field。

5.将新的field重命名为errorFlag

6.在新的数据类型中右击,选择Insert Field-> Number,在数据类型中插入一个新的field。

7.将新的field重命名为errorCode

8.在新的数据类型中右击,选择Insert Field-> String,在数据类型中插入一个新的field。

9.将新的field重命名为errorMessage

10.在树形结构中右击您刚才创建的数据类型,选择属性,打开数据类型属性对话框。

11.选择C Struct Passing选项卡。

12.使能Allow Objects of This Type to be Passed as Structs选项。

13.选择errorMessage属性,确保String Type控件设定为C String buffer

14.确保为属性选择恰当的数据类型:

errorFlag - 有符号16位整型

errorCode - 64位实数(双精度型)

15. 点击OK(保存修改)。

16.设置完成后,您就可以使用DLL Adapter来调用LabWindows/CVI 模块,该模块的原型类似于:

void __declspec(dllexport) Test(struct ErrorStruct *errorCluster);

现在您就可以从CVI将数据传递至TestStand:

//Change the TestStand structure contents
errorCluster->errorCode = 999;
errorCluster->errorFlag = 1;
strcpy (*ErrorCluster->errorMessage, "Error Occurred");

17.下一步是在TestStand中创建ErrorStruct类型的局部变量。

 

18.局部变量可以随机命名。

19.最后一步是将CVI Action添加到序列中并配置dll

20.请在附件中查找本教程的代码(TestStand Sequence和LabWindows/CVI代码)。

 

 

 



相关链接: KnowledgeBase [50R9I1QX]: How to Debug a LabWindows™/CVI™ DLL from within TestStand

附件:


Example.zip - Example.zipimage3.png - image3.png
image2.png - image2.png
image1.png - image1.png



报告日期: 12/06/2013
最近更新: 04/15/2015
文档编号: 6G57D5K5