发布消息到并行处理模型的UUT对话框中的状态文本控件中



主要软件:
主要软件版本: 3.5
主要软件修正版本: N/A
次要软件: LabWindows/CVI Development Systems>>LabWindows/CVI Base Package

问题: Test UUTs 并行模型的执行进入点显示了一个包含每个当前测试座上的状态信息的UUT对话框. 我想要在其状态文本控件中包含自己的状态信息. 这可能么?

解答: 是的, 是可以在状态文本控件中包含自定义的信息. 

并行UUT的对话框功能是在modelsupport2 中实现的,该工程可以在<TestStand>\Components\NI\Models\TestStandModels\ 目录下找到. 在默认情况下 状态文本控件将包含标准的状态信息. 然而, 是可以修改modelsupport2 工程的源代码来使能客户自定义的信息的.参考下面的源代码来实现.

(注意: 在你修改任何源代码之前, 拷贝TestStandModels 目录到 <TestStand>\Components\User\Models\ 目录.)

  1. 启动LabWindows/CVI 并且打开modelsupport2 工程.
  2. 在工程树中, 打开在源代码文件夹中的paralleluutdlg.c 源文件.
  3. 翻到源文件最底部并插入如下代码:

    int DLLEXPORT _stdcall PostParallelUUTDialogStatusMessage(int dlgHandle, int testSocketIndex, char *statusMsg)
    {     int error = 0;
          ERRORINFO errorInfo;

          int panelId = dlgHandle;
          int childPanel = -1;

          PUUT_PanelData *panelData = NULL;
          TestSocketData *testSocketData = NULL;

          errChk( GetPanelAttribute (panelId, ATTR_FIRST_CHILD, &childPanel));
          errChk( GetPanelAttribute (panelId, ATTR_CALLBACK_DATA, &panelData));
          testSocketData = &(panelData->testSocketDataArray[testSocketIndex]);

          errChk( ResetTextBox (childPanel, testSocketData->ctrls[kTSCtrl_Status], statusMsg));

          Error:

          return error;
    }


    这个函数接受三个参数,分别是:
    • dlgHandle - 指向UUT对话框的句柄,利用一个整型数表示.
    • testSocketIndex - 指向当前执行中的当前UUT的索引.
    • statusMsg - 指向将被插入状态文本控件中的字符串.


    该函数利用测试座索引来获取状态文本控件的句柄. 然后通过ResetTextBox 函数调用来发布 statusMsg 到状态文本控件.

  4. 重新编译modelsupport2.dll 通过选择Build » Create Dynamic Link Library. (注意: 更新过的modelsupport2.dll文件在附件中.)

为了给这个函数发送消息, 在TestStand序列编辑器中使用C/C++ DLL 适配器创建一个新的序列,使用如下的参数:


相关链接: KnowledgeBase 3K3FC7RY: What is a Process Model?

KnowledgeBase 363E93RY: How Can I Access my Client Sequence FileGlobals from my TestStand Process Model?

附件:


modelsupport2.dll - modelsupport2.dll


报告日期: 03/31/2006
最近更新: 04/30/2008
文档编号: 3VUG2BA8