如何在C#中在LabVIEW中设置集群中变量的值?

时间:2013-07-28 10:34:17

标签: c# labview

我正在开发一个小型的C#程序,该程序使用 LabVIEW 提供的接口。我知道,使用lv.SetControlValue(name, value)可以在前面板上设置变量。但就我而言,前面板上有几个集群。所以它让我混淆了如何在这些集群中设置变量。例如,有一个名为clusterA的集群,其中的变量名为valueA,我尝试过这样的事情:

lv.SetControlValue("clusterA.valueA", 1); 

但它完全不起作用。有人对这些东西有一些经验吗?

2 个答案:

答案 0 :(得分:2)

非常感谢您的回复。我只想找到解决这个问题的简单方法。例如,有一个名为ClusterA的集群,其中只有两个控制值,它们是:名为“IntA”的int值(默认值IntA = 10)和名为StringA的字符串值(默认值StringA = "abc")。在C#中,如果您调用方法:

var clusterA = (Array) vi.GetControlValue("ClusterA");

您将获得一个类似于:clusterA = {10, "abc"};的数组然后如果您想将IntA更改为123,则只需执行以下操作:

clusterA.SetValue(123, 0); 
// 123 is the value, 0 is the index of IntA in the array clusterA
// after this clusterA = {123, "abc"}

在此之后,您只需使用以下命令将数组返回LabVIEW:

vi.SetControlValue("ClusterA", clusterA);

现在在LabVIEW中看到面板,IntA已更改。

答案 1 :(得分:0)

LabVIEW不会通过ActiveX / .Net界面直接公开集群中元素的SetControlValue(您正在使用哪一个?)
但是,您可以像这样公开子集群元素引用:

SetClusterElementValue

如果它位于制表符控件上,则可能难以获得正确的群集控件。