[C2.2]データソースクラス

KONOEのプロセスの中での位置づけがデータソースとなるものには、オンラインの データ収集の対象であるVMEやCAMACなどのハードウエアからの読み込みを おこなうもの、一度ファイルに書き出したデータを読みだすオフライン的な 性格のもの、シミュレーションプログラムの発生したデータを扱うものなどが 考えられます。シミュレーションの場合も、例えばGEANTなどの測定器 シミュレータのデータのように物理的に意味のあるものもあれば、ハードが ないところでソフトウエアのチェックのためにダミーのデータを発生する ようなものまで色々考えられます。

1.データソースを扱うモデル

1.1.DAQモジュール

まずどのようにデータ発生源を扱うかモデルを考えてみましょう。この場合 上に述べたファイルからの読み出しは、ある意味ではハードウエアからの 読み出しの再現と考えられますから考えないことにします。シミュレーションの 場合はある意味で現実のハードウエアを扱うモデルに何らかの形で吸収 できると思われるので、ハードウエアのモデルを考えてみます。

システムが読みだせるモジュールのことを知っていなければならないので、 木構造をした検索パスを考えます。最上位には何らかのエントリーポイント があって、そこに接続されたバスやクレートといったものを考えることが できます。論理的なDAQクレートと呼ぶことにします。おのおののDAQクレート にはモジュールを配置できます。モジュールはDAQモジュールであったり、 次のDAQクレートのコントローラであったりします。

モジュールはクレートに挿入することができます。この意味はクレートの 論理アドレス空間の一部を占めることです。これは物理的にそうなっている 場合もありますし、単なる仮想的な意味合いの場合もあります。また、 各々のモジュールは一定のアドレス空間にデータを発生させます。

モジュールは実際に物理的に存在する場合もあれば仮想的に配置されている 場合もあり、それらはモジュールステータスとして制御されます。また、 接続されているからといって活用されない場合もあります。休止状態が 設定される場合もあるでしょう。

モジュールからデータを読みだす場合には色々な方法が考えられます。 基本的なものはKONOEとして用意すべきです。例えばつねに固定した アドレスにデータが必ず発生するもの、一定のアドレス範囲にデータが あったりなかったりするもの、先頭アドレスから可変長のデータが あらわれるものなどです。読み出し方式やデータの有無の判断の方法が 規定されなければなりません。

1.2.ハードウエアモジュール

VMEやCAMACなどハードウエアを扱うためには専用のモジュールクラスを 用意する必要があります。ただ、この場合も読み出し方はそれぞれの ハードウエアが決まれば共通です。アドレスの表現方法やデータ転送 方法が違うだけです。

実際のハードウエアアクセスはKONOEの仕様により、システムサービス インターフェースクラスに任せます。このレベルのハードウエアの 意味は、ハードウエアとしての属性を持っているという意味です。 例えば商品としての型番を持っていたりKEKの管理番号がついて いたり、CAMACのNAFなども固有の情報です。

モジュールとしての状態を考えることが出来ます。ハードウエアが ついていないシステムでプログラムのデバッグを行なうとき、例えば それらしいデータを発生してくれるシミュレータなどを割り付けることも 必要でしょう。

1.3.ソフトウエアモジュール

実際のハードウエアとは関係のない、計算機によって発生されたデータも システムの中で扱いたいことはたくさんあります。これらはソフトウエア DAQモジュールとして扱われます。

1.4.クレート

モジュールは通常クレートに差し込まれて使われます。クレート単位での 作業がありますから、クレートをクラスとして定義する意味があります。 例えばCAMACではZやCを立てたり、I線を制御したり、LAMの許可禁止は クレートに対して行ないます。

ソフトウエアモジュールにとってのクレートの意味は何でしょうか。 シミュレーションを考えてみましょう。これは開発中に実際のハードが 接続されていない場合でもシステムテストを行なうため重要な機能です。 上述したハードウエアモジュールは例えばそれがオフラインの場合、 対応するソフトウエアモジュールを持っていて、読み出しはそれを 使って行ないます。そうすると、オフラインの状態でもシステム全体の テストを行なうことが出来ます。この場合、実際のハードウエアを シミュレートするデータを発生させる必要があり、その結果は複数の モジュールに反映させる必要があります。例えばTDCモジュールにも ADCモジュールにも新しいデータが用意される必要があるという意味です。 このとき、これらのシミュレーションモジュールがソフトウエア クレートにささっていると考えるとソフトウエアクレートの意味が わかります。(この部分はソフトウエアクレートではなく、 シミュレーションクレートとして実装されています。ソフトウエア クレートは別途必要であると考えます。)

1.5.シミュレーション

システムやプログラムの診断のためにシミュレーションを行なう機能を 導入します。オフラインの状態にあるハードウエアデータソースに 替わって、シミュレーションを行ない、その結果をモジュールに分配 する機構が必要です。多少はリアルなシミュレーションを行なうために 少し複雑なシステムが要求されます。

2.実装

現在の実装はこう なっています。

2.1. KonoeDAQModuleBase

2.2. KonoeHardwareModule

2.3. KonoeVMEModule

2.4. KonoeCAMACModule

2.5. KonoeSoftwareModule

2.6. KonoeDAQCrateBase

2.7.KonoeVMECrate

2.8.KonoeCAMACCrate

2.9. KonoeSoftwareCrate


[classes/datasrc.html] Last Modified : 29-Apr-1998.

KONOEコラボレーション konoe-req@konoe.kek.jp