
AVS/Express Support Module in Accessories library
switchとは、用意されているデータの集まりの中から指定された一つを選びだし、出力する機能です。
この機能は、AVS/Epxressの Bulit-in functions またはモジュールという二つの形で提供されています。
switch functionとは、関数として提供されているswitch機能で、他のVコマンドと組み合わせて使います。目的とするオブジェクト(result)にswitch functionからの戻り値(x)を設定します。
以下サンプルVファイルです。
module module{
int i;
switch x {
int index => i;
int val1 = 10;
int val2 = 20;
float val3 = 30.3;
string val4 = "test 40";
};
prim result => x;
};
上記Vファイルをエディタで入力してください。
AVS/Express Vizを起動して「オブジェクト」プルダウンメニューから「 オブジェクトの読み込み」を選択し、保存したVファイルを読み込んでください。
i に1~4の値を入れるとresultに値が入ります。
このサンプルではindex指定用のプリミティブオブジェクト"i"と出力用プリミティブオブジェクト"result"を用意してモジュールらしく作成してあります。実際にはこれらは必須ではなく、switch functionの内部で直接indexを指定し、switch関数自体の値を外部から参照して利用することもできます。

図1 switch function動作確認モジュール
switch functionは異なるデータタイプが混在したデータの集まりでも扱うことが可能です。
DVswitchはモジュールとして提供されているswitch機能です。
モジュールには in, index, outと名前がつけられたプリミティブオブジェクトが用意されています。inにはあるゆる型のオブジェクトを接続することができます。

図2 DVswitch接続例1
indexに値を入れると対応するオブジェクトの値がoutに出力されます。
実は、これといって決まった利用方法はありません。
swicthは可視化モジュールに直接結び付けて使用する機能ではなく、可視化ネットワークを構築していく過程で、値や条件によって処理を変える必要がある場合に利用することができます。
例えば、条件によってパネル上に表示されてるボタンやスライダー、ダイヤルなどの項目を変更する場合、以下のようなネットワークを作成します。

図3 DVswitch接続例2
parse_v モジュールで各パネルのvisibleパラメーターなどを変更するためのVコマンドを発行しています。
ある条件によってVコマンドの内容を変更したい場合は、条件分のparse_v モジュールを用意して切り替えるより、swich機能を用いてVコマンド部分を入れ替えた方がすっきりとしたネットワークプログラミングになります。
ここでは一例をあげましたが、可視化をおこなっているうちに他の応用例が見つかってくるかもしれません。条件による切り替え処理を行いたい場合には、swich機能が適用できないか、検討してみて下さい。
適用できそうか判断がつかない場合には、気軽に当社AVSサポートセンターまでご相談下さい。
AVS Support Center, fns-avssup@cs.jp.fujitsu.com