www-server:/usr/www/docs/Divisions/np1/tamidaq/info/daq_command.txt.v1.0 新DAQ用コマンド ver 1.0 14-SEP-1995 VME上のコマンド (vme02) login 方法 センター内のホストから % telnet vme02 username: gr password: xxxxxx でログインできる。 ログイン後、DAQ用の環境設定をおこなう % rdefs を実行すること。 modules DAQ に必要な module (driver等) がロードされているかどうかを調べる。 % modules 現在チェックの対象としている module は k2917, k2917drv, rmb5576, rmb5576load, nullman である。 k2917load k2917 driver をロードする。 まず、modules コマンドを実行し、k2917 driver が表示されない時は、 % k2917load によって k2917 driver がロードされる。 rmb5576load rmb5576 driver をロードする。 まず、modules コマンドを実行し、rmb5576 driver が表示されない時は、 % rmb5576load によって rmb5576 driver がロードされる。 nfa k2917 を通してカマックファンクションを発行する。 % nfa n f a [c] (read: f=0-7) % nfa n f a data [c] (write: f=16-23) % nfa n f a [c] (control: f=0-7,24-31) n: station number f: function a: subaddress c: crate number data: data to write k2917 driver が必要である。 rnafd remote naf の daemon プロセス。 % rnafd リモート naf を行なう時にはこのプロセスの走っている必要がある。 バッググラウンドで走らせたい時は、 % rnafd >log_file & とする。 k2917reset k2917 にリセット信号を送る。 % k2917reset k3922reset k3922 にリセット信号を送る。 % k3922reset c c: crate number k2917unlock k2917 が他のプロセスによりロックされている時、これを強制的に解除する。 % k2917unlock rinit DAQ立ち上げ時にドライバのイニシャライズをおこなう。 % rinit 実行してよいか、確認してくるので、y もしくは n で答える。 ※不用意に使用しないこと。 rend DAQ 関係のプロセスを終了させる。 実行してよいか、確認してくるので、y もしくは n で答える。 ※不用意に使用しないこと。 rstart data acquisition をスタートする。 % rstart [run_number] [,] [comment ...] run_number: run number comment: comment パラメータが正しいか確認してくるので、y もしくは n で答える。 run_number を省略する時は、コンマ "," を入れること。 rstop data acquistion をストップする。 % rstop muse 上のコマンド login 方法 ... 実験用アカウントを作成予定です。 rfm_init reflective memory のイニシャライズをする。 % rfm_init 実行してよいか、確認してくるので、y もしくは n で答える。 ※不用意に使用しないこと。 errlog error log プロセスの起動 % errlog [log_file] log_file: log file name router router プロセスの起動 % router buf_num buf_num: reflective memory 上の buffer 番号。 指定されたバッファのデータのルーティングを行なう。 router_builder event builder プロセスの起動。 % router_builder buf_num1 buf_num2 buf_num: reflective memory 上の buffer 番号。 指定されたバッファ(1)のルータからデータを取得し、イベントビルド をおこなってバッファ(2)に出力する。 ※ バッファ(1) のルータが起動している必要がある。 router_cat router から取得したデータを出力する。 % router_cat buf_num buf_num: reflective memory 上の buffer 番号。 指定されたバッファ(1)のルータからデータを取得し、標準出力に書き込む。 ※ ブロックサイズがブロックによって変化するため、データの保存には 使用しないこと。router_save を使用して下さい。 router_save router から取得したデータをファイルに出力する。 % router_save buf_num file_name buf_num: reflective memory 上の buffer 番号 file_name: 保存するファイルの名前 指定されたバッファ(1)のルータからデータを取得し、ファイルに書き込む。 ブロックサイズは固定長である。 router_tcp DAQ TCP daemon プロセスの起動 % router_tcp 他のホストから TCP/IP を介しての接続要求に答えるプロセス。muse 上で 1つ走っていれば良い。 rnaf リモート naf を実行する % rnaf c n a f [data] n: station number f: function a: subaddress c: crate number data: data to write (f=0-7の時必要) vme 上で rnafd の走っている必要がある。 補足 muse 上から カマックファンクションを発行するプログラムの作成について。 ヘッダファイル ~tamii/daq/dev/rnaf/rnaflib.h を include して下さい。 ライブラリ ~tamii/daq/lib/rnaflib.o をリンクするときに加えて下さい。 プログラムの作成については ~tamii/daq/dev/rnaf/rnaf.c を、コンパイル/ リンクについては、~tamii/daq/dev/rnaf/makefile を参考にして下さい。 rnaf_init() ... イニシャライズをします。プログラム起動時に呼んで下 さい。/* naf command structure */ rnaf_exit() ... 後始末をします。プログラム終了時に呼んで下さい。 rnaf(naf_t*) ... naf を実行します。 rnaf_show_error ... naf.error に対応するエラーメッセージを出します。 typedef struct naf{ unsigned short cmd; /* command to nafd */ unsigned short node; /* reflective memory node ID */ unsigned short mod; /* k2917 module number */ unsigned short c; /* crate number */ unsigned short n; /* station number */ unsigned short f; /* camac function */ unsigned short a; /* subaddress */ unsigned short size; /* data transfer size (= NAF16 or NAF24) */ unsigned long data; /* data */ unsigned short x; /* x response */ unsigned short q; /* q response */ short error; /* result code */ unsigned short res[3]; /* reserved */ } naf_t; ※この Structure 構造は将来変わる可能性があるので、rnaflib.h を include することによって定義して下さい。