3

LabVIEWが提供するインターフェースを使用する小さなC#プログラムに取り組んでいます。lv.SetControlValue(name, value)そして、フロントパネルだけで変数を設定できることを知っています。しかし、私の場合、フロント パネルにいくつかのクラスターがあります。そのため、これらのクラスターで変数を設定する方法がわかりませんでした。たとえば、 という名前のクラスターがありclusterA、その中に という名前の変数がある場合、valueA次のようなことを試しました。

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

しかし、それはまったく機能しません。誰でもこのことについて経験がありますか?

4

2 に答える 2

2

すべての返信に感謝します。この問題を解決する簡単な方法を見つけただけです。たとえば、 という名前のクラスターがあり、その中には "IntA" という名前の int 値 (既定値 IntA = 10) と名前付きの文字列値(既定値)ClusterAの 2 つの制御値しかありません。C# でメソッドを呼び出す場合:StringAStringA = "abc"

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

次のような配列が得られます:clusterA = {10, "abc"};次に、123 に変更IntAする場合は、次のようにするだけです。

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 に答える