Tcl/Tk から CAMAC 制御

Tcl/Tk に CAMAC アクセスコマンドを追加する為の ローダブルモジュールが libtclcam.so として提供されています。 Tcl スクリプトの中で

    load libtclcam.so
という命令を実行すれば、"camac" というコマンドが 使えるようになります (Tcl ライブラリのディレクトリにインストールすれば auto_load させる事もできます。 詳しくは Tcl/Tk の解説書を参照してください)。

"camac" は 以下のサブコマンドと組み合わせて使います。

camac crate <crate>
クレートの指定をします。最初に一度は呼ばなければなり ません。該当クレートが off line であった場合はエラー を返します (CC/7000 の場合、電源が入っていなかったり 存在しないクレートであってもエラーにならないので注意 してください)。クレートの最大数は、一般的には 7 です が、CC/7000 の場合は 3 ですので、アプリケーションでの 便宜の為に MAX_CRATE という大域変数に上限値を設定して います。

camac naf <n> <a> <f>
<n> <a> <f> で指定されるファンクションを実行します。 返り値は Q X に応じて "", "X", "Q", "Q X" のいずれか となります。

camac read <n> <a> <f> <varName>
<n> <a> <f> で指定されるファンクションを実行し、読み こまれたデータを変数 varName に格納します。返り値は Q X に応じて "", "X", "Q", "Q X" のいずれかとなります。

camac write <n> <a> <f> <data>
<data> をデータバスに書き込み、 <n> <a> <f> で指定され るファンクションを実行します。返り値は Q X に応じて "", "X", "Q", "Q X" のいずれかとなります。<data> は 10 進定数のみ受け付けますので、16 進数や式を与えたい 場合は [expr ...] で評価してください。

camac lam
LAM パターンを 24 個の "0" または "1" の文字列として 返します。例えば N=3 と 8 のモジュールが LAM を発生 している時は 001000010000000000000000 となります。

camac Z
camac initialize
CAMAC バスに初期化信号を出します。

camac C
camac clear
CAMAC バスにクリア信号を出します。

camac I <i>
camac inhibit <i>
CAMAC バスのインヒビット信号を ON (i≠0) または OFF (i=0) します。

戻る