ATLAS Configuration Database Howto
仲吉一男
Jan. 14, 2003
ATLAS Online SW の Configuration Database の作り方について
メモ形式でまとめてみました.
- これまで使用してきたデータベースについて
- 最新のデータベース(CERNビームテスト用)は,
elecref:/atlas/online-soft/work2002/prep_bt/databases
にあるので参照してください.(現在作成中)
- データベースは,スクラッチからではなく既存の(例えば
be_test.data.xml)を編集して作成した.
- したがって,既存のスキーマのみを使用しているため confdb_gui
エディタを使用して編集できる.
- またデータベースは,データファイルとして他のデータベースをインクルードできるので,モジュール毎にデータベースを作ったが例えばクレート毎またはすべて一つのデータベースファイルに入れることも可能.
しかし,ハードウエアとソフトウエアについては分けた方が良い.
- データベースの編集は, 当初は汎用エディタ(私は emacs)で
最近は confdb_gui という専用のグラフィカル・エディタも使用して
いる. confdb_gui は編集機能のみではなく作った database の
チェックにも使用できる. confdb_gui は編集対象の database の
関連するすべてのファイルの整合性のチェックを行う. しかし
そのチェックでエラーがあると database は編集できないため
注意が必要である. confdb_gui の使用方法は,
Configuration Databases User's Guide を参照してください.
- Configuration Database の書き方(confdb_gui を使用)
ここでは elecref にインストールされている ATLAS Online SW 環境を想定して
説明を行います. ATLAS Online SW のバージョンは 00-18-00(CMT) です.
既存の be_test.data.xml を編集する方法で新しいmy_test.data.xml という
database をつくります.
- 環境設定
setup.sh を実行して ATLAS Online SW のパスや環境変数を設定する.
- cd /atlas/online-soft/online-00-18-00/installed
- . ./setup.sh
- cd
/atlas/online-soft/online-00-18-00/installed/databases/online/partitions
- cp be_test.data.xml my_test.data.xml
- パーティション名の変更
"be_test" とから "my_test" へパーティションを変更します.
- confdb_gui -p my_test.data.xml
- 2つのウインドウが現われる(Editor と Message Log ウインドウ).
- Editor ウインドウ にあるメニューバーの "Edit" を選択し表示され
たメニューの中から"Partition"を選ぶ.
- 図のようなウインドウが現われる. 現在パーティションの名前は
"be_test" なのでそれを "my_test" に変更する.
ウインドウ下部にある "-- choose database file --" から
"my_test.data.xml" を選ぶ.
ウインドウの最上位にある "my_test" アイコン
の上でマウスの右ボタンを押し, 表示されるメニューから
"Rename" を選ぶ. ウインドウが出るので "be_test" を"my_test" に
変更する. また, ウインドウの最上位にある箱の上でマウスの左ボタ
ンをクリックすると attribute ウインドウが現われるので "Name" を
"my_test" に変更する.
- Editor ウインドウ にあるメニューバーの "File" を選択し表示され
たメニューの中から "Save Partition" を選ぶ. その後,同様に "Reload Partition"
を選ぶ. この一連の操作で my_test.data.xml ファイル上で
"Partition" Class id が "my_test" に, その "Name" attribute が
"my_test" に変更された.
- ハードウエア(ROD Crate,ROD, ROD Controller)の追加
このパーティションにはクレート・オブジェクトがないので追加する.また
そのクレートにモジュールを追加する.
- Editor ウインドウ にあるメニューバーの "Edit" を選択し表示され
たメニューの中から"Hardware"を選ぶ.
- 図のようなウインドウが現われる. ウインドウ下部にある
"-- choose database file --" から "crate new database file ..."
を選ぶ.
別のウインドウが現われるので上の "Input database file object
identity:" の Text Field に例えば "ROD Crate", "Name of file"に
は "ROD.xml" とする.
次にウインドウ下部にある "-- choose database file --" から
"ROD.xml" を選ぶ.これで ROD に関する情報を ROD.xml という
ファイルに保存することができる.
- Hardware ウインドウ上でマウスの右ボタンをクリックしてポップアッ
プメニューを表示させ "Crate New" -> "Crate" を選ぶ.
ウインドウが表示されるので例えば ID を "RODCrate", Type を
"RODC"とする. これで "ROD Crate" オブジェクトがつくられた.
- 次に "RODCrate" に RODモジュールを挿入する. "RODCrate"のアイコ
ン上でマウスの右ボタンを押しポップアップメニューを表示させ
"Create Child" -> "Add new 'Module' via 'Contains'"を選ぶ.
ウインドウが現われるので, 例えば ID を "ROD01" に type を
"Module" にして "OK" ボタンを押す. 画面に ROD01 のアイコンが
表示される.
同様に例えば ID を "RODCtrl" に type "Module" をつくる.
- 次にEditor ウインドウ にあるメニューバーの "File" を選択し表示され
たメニューの中から "Save Partition" を選ぶ. その後,同様に "Reload Partition"
を選ぶ. この一連の操作で ROD.xml ファイル上に "RODCrate","ROD01"
"RODCtrl" オブジェクトが追加された.
- "ROD01", "RODCtrl" については,アイコン上でマウスの左ボタンを押
して出てくるウインドウ上に表示される attribute を編集(変更)する
ことができる. 例えば "PhysAddress" 等.
- ラン・コントロールの変更
"be_test" パーティションのラン・コントロールは,図のような
"RootCtrl" - "ROC1Ctrl" という構成である. これを "RootCtrl" -
"RODCtrl" という構成に変更する.
- Editor ウインドウ にあるメニューバーの "Edit" を選択し表示され
たメニューの中から"Partition"を選ぶ. "Partition" 編集用の
ウインドウが現われる. ウインドウ下部にある
"-- choose database file --" から "my_test.data.xml"
を選ぶ.
- ウインドウの最上位にある "my_test" アイコン
の上でマウスの右ボタンを押し, 表示されるメニューから
"Create Child" -> "Add new 'Application' via 'Contains'" を選ぶ.
- ウインドウが現われるので ID を "RODCtrl" type を "RunControlApplication"
にする.
- 次に "RODCtrl" と実際に起動するソフトウエアの対応関係を設定する.
- Editor ウインドウ にあるメニューバーの "Edit" を選択し表示され
たメニューの中から"Software Repository"を選ぶ. 編集用の
ウインドウが現われる.
"Online" と書かれたアイコン上でマウスの左ボタンを押し,出てきたウ
インドウの右上にある "+" ボタンを押すと repository.data.xml に
含まれるソフトウエア一覧が表示される. その中から "rc-empty-controller"
をマウスの真中ボタンでドラッグして, "Partition" 編集用ウインド
ウの先程作った "RODCtrl" アイコンの上にドロップする.
出てきたポップアップメニューから "Set via relationship"を選ぶ.
- Editor ウインドウ にあるメニューバーの "Edit" を選択し表示され
たメニューの中から"Run Control"を選ぶ. "Run Control" 編集用の
ウインドウが現われる. ウインドウ下部にある
"-- choose database file --" から "my_test.data.xml"
を選ぶ.
- "Run Control" 編集用のウインドウ上に二つのアイコンが表示される.
"RODCtrl" アイコンをマウスの真中ボタンでドラッグし, "RootCtrl"
アイコンの上にドロップする. ポップアップメニューから
"Append to relationship 'children'" を選ぶ.
- "Run Control" 編集用のウインドウ上の "RootCtrl" アイコンをマウ
スの左ボタンでクリックして attribute 編集ウインドウを出す.
ウインドウの右上にある "+" ボタンを押してその "children"を
表示させる. "RODCtrl"上で左ボタンを押しattribute 編集ウインドウを出す.
"rc-empty-controller" を起動するためには引数が必要なので
ウインドウ中の "Parameters" Text Field に "-p my_test -c RODCtrl"
を入力する.
- "ROC1Ctrl" を消去する(消去しなくてもよい)."Run Control" 編集用のウインドウ上の
"ROC1Ctrl"アイコ ン上でマウスの右ボタンを押し示されるポップアップメニュー
から "Delete" を選ぶ.
- Editor ウインドウ にあるメニューバーの "File" を選択し表示され
たメニューの中から "Save Partition" を選ぶ. その後,同様に "Reload Partition"
を選ぶ. この一連の操作で my_test.data.xml ファイル上にラン・コ
ントロール構成の変更が保存される.
- play_daq スクリプトによる確認
- $ play_daq my_test no_obk
とタイプする.
- 図のようなパネルが現われるので、"Boot", "Load", "Config",
"Start"
とボタンを押して正常にランが行われるか確認する.
- 汎用エディタによる Configuration
Database の書き方 Tips
これは, confdb_gui エディタを使わず xml ファイルを直接 emacs 等のエディ
タで編集するための Tips である.
- 元のデータベースからわずかな変更(例えば, モジュールの名前を変えると
か)の場合は直接ファイルを編集した方が早い場合がある.
- 汎用エディタを使って編集する上でもっとも注意する点について挙げる. 例えば
be_test.data.xml の冒頭部分に "< oks-data num-of-objects="13"
format-type="extended+" >"
という記述があるが, オブジェクトを書き加えたのに上記の oks-data
num-of-objects" をそれに合わせて変更しないと不整合になって正しく
database の中身が反映されないことになるので注意してください.
- 汎用エディタを使って編集した後は, confdb_gui エディタでその
database を開いてエラーがないか確認した方が良い.
- References
K. Nakayoshi(kazuo.nakayoshi@kek.jp)