我正在开发一个小型的C#程序,该程序使用 LabVIEW 提供的接口。我知道,使用lv.SetControlValue(name, value)
可以在前面板上设置变量。但就我而言,前面板上有几个集群。所以它让我混淆了如何在这些集群中设置变量。例如,有一个名为clusterA
的集群,其中的变量名为valueA
,我尝试过这样的事情:
lv.SetControlValue("clusterA.valueA", 1);
但它完全不起作用。有人对这些东西有一些经验吗?
答案 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(您正在使用哪一个?)
但是,您可以像这样公开子集群元素引用:
如果它位于制表符控件上,则可能难以获得正确的群集控件。