3

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

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

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

4

2 回答 2

2

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

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

你会得到一个 Array 看起来像: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已更改。

于 2013-07-31T12:35:16.430 回答
0

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

SetClusterElementValue

如果它位于选项卡控件上,则获取正确的集群控件可能很困难。

于 2013-07-29T07:46:14.870 回答