SSブログ

OS X用GigE Visionカメラドライバ - その23 [OS X用GigE Vision]

もう惰性で続けるしかない抄訳の続き。今日はカメラの機能を表すノードのアトリビュートについて。

2.8  利用可能なノードタイプ

このセクションでは可能なノードタイプとその振る舞い、使い方、主なパラメータを簡単に説明する。さらに、GenICam規格に含まれたXMLスキーマファイルのなかでのそれぞれのノードのXMLレイアウトの公式な記述も行う。このスキーマファイルはほとんどのXMLエディタで読むことができて、シンタクスチェックと概略ヘルプのおかげで非常に簡単にカメラ記述ファイルを作成することができる。

このドキュメントはGenApiSchema_Version_1_1.xsdファイルのGenApiスキーマバージョン1.1に基づいている。これに続くバージョンにはノードタイプ、エレメント、アトリビュートが追加される。しかし可能な限り後方互換性は維持される。

2.8.1  ノード

Node型はほかのノードタイプに共通のエレメントとアトリビュートを持っている。独立のノードはまったく役に立たないが、テスト目的には利用できる。ここに例を示す。
<Node Name="Gain" NameSpace="Standard">
  <Extension>
    <MyElement>Something vendor specific</MyElement>
  </Extension>
  <ToolTip>The amplitication of the camera</ToolTip>
  <Description>A more elborated description</Description>
  <DisplayName>Gain</DisplayName>
  <Visibility>Expert</Visibility>
  <EventID>12fc</EventID>
  <pIsImplemented>SomeNode1</pIsImplemented>
  <pIsAvailable>SomeNode2</pIsAvailable>
  <pIsLocked>SomeNode3</pIsLocked>
  <pError>NodeIndicatingAnError</pError>
  <ImposedAccessMode>RO</ImposedAccessMode>
  <pAlias>SomeNode4</pAlias>
それぞれのノードはNameアトリビュートを持っている。Nameはカメラ記述ファイルの中で固有(ひとつだけ)でなければならない。Nameは英数字[A-Za-z0-9]でできていなければならない。スキーマはアンダースコア"_"も許しているが、先頭にあってはならない。これは標準実装が先頭のアンダスコアは実装に依存した名前に使っているからである。

それぞれのNameは名前空間の中で定義されている。名前空間はノードのNameSpceアトリビュートと<RegisterDesription>エレメント(セクション2.7を見よ)のStandardNameSpaceアトリビュートとの組み合わせで表される。NameSpaceアトリビュートは二つの可能な値、CustomStandardがあり得る。Customであればカメラ記述ファイルの中でだけ唯一であればどんな名前でも使える。もしStandardであれば次のカメラタイプで利用可能なstandard feature name listsのなかのひとつでなければならない。カメラタイプは(詳細はセクション)次のものである。
IIDC
1393IIDC規格準拠(DCAMとも言われる)
GEV
GigE Vision規格準拠
CL
カメラリンク規格準拠
USB
USB規格準拠
None
規格なし
ノードは、値が+1、0、-1のMergePriorityアトリビュートを持つことができる。ふたつのXMLファイルAとBをCにマージするときの方法を制御する。Aはターゲットファイル、Bは差し込みファイルと呼ばれる。ノードはそのNameアトリビュートだけに基づいて比較される。
  • ノードがAかBだけにあればCにコピーされる
  • AとBにnon-Categoryノードがあればつぎのルールが適用される(ファイルAにあるMaergePriolityは無視されることに注意)
    ノードがファイルBから差し込まれて
    • MergePriorityが+1のとき、Cにコピーされる
    • MergePriorityが-1のとき、ファイルAの対応するノードがCにコピーされる
    • MergePriorityが0(デフォルト)またはMergeAttrbiuteがないとき、エラーとなる
  • AとBとにカテゴリノードが含まれているとき、ファイルAからそのカテゴリノードがCにコピーされて、Bにある<pFeature>エントリが重複を避けてコピーされる
ノードはYesNoの値か、あるいは値なしがあるExposeStaticアトリビュートを持つことができる。これはカスタマに対してstatic use caseで知らせるかどうかを制御する。これには次のルールが適用される。
  • 機能を表すノードでそのExposeStaticNoでないとき、その機能はユーザに知らされる
  • 機能のノードでないときはExposeStaticYesのときだけ、ユーザにさらされる
<Extension>エレメントはカメラ記述ファイルに特定のデータを追加するときに使うことができる。<Extension>内部のエレメントはすべて無視される。

<ToolTip>エレメントはそのノードに対する短い説明を加える。カメラ記述ファイルから自動生成されたドキュメントにたいする簡単な説明としても使える。

<Description>エレメントはさらに詳しい説明を与える。カメラ記述ファイルから自動生成されたドキュメントにたいする詳細な説明としても使える。

<DisplayName>エレメントは機能そのものの名前の代わりの見出しとして使える。

<Visibility>エレメントはその機能にアクセスしていいユーザのレベルを指定する。可能な値として
  • Beginner
  • Expert
  • Guru
  • Invisible
が使える。この意味は機能をAPIのなかで表すために使われるのであって、GUIに使うものではない。

<IventID>エレメントは非同期イベントを発行するために使われる。カメラはいくつかのデータの値が変わったことを示すためにイベントパッケージを送ることがある。GenICamはそのデータに対応するノードを無効化するイベントを扱う。そのノードはカメラからのイベントパッケージで来る16進数がEventIDにあるかどうかでわかる。それぞれのノードはひとつのオプショナルなEventIDエレメントを持つことができる。

<pIsImpelemted><pIsVariable><pIsLocked>エレメントはIIntegerインターフェイスを実装するノードの名前を含んでる。そのエレメントがあると、このノードのアクセスモード(セクション)に影響する。

<pBlockPolling>エレメントは、その値が0でないときにPollingTimeエントリをもつノードのポーリングをブロックする。

<ImposedAccessMode>エレメントは他のノードから指定されたアクセスモードを限定するために使われる。

<pAlias>は同じ機能を異なるやり方で記述する他のノードを指定する。これは主にGUIで使われる。カテゴリはすべてのメンバが表示されていないときそのエイリアスで置き換えられる。整数ノードとフラットノードは機能のナマの値か絶対値の値を示しているときにお互いがエイリアスとなることがある。

<pCastAlias>は同じ機能をオリジナルとエイリアスがお互いがキャストし合うことをあらわすことで記述するもう一方のノードを指定する(なんのこっちゃ?)。

<IsDeprecated>は対応する機能が使用不可で、新しい設計では使ってはいけないことを表す。

<Streamable>は対応する機能がGenApiノードツリーを通してファイルからロードされて保存されるようなものであることを示す。

<pError>はノードの値を設定したあとにチェック退れる列挙を指定する。列挙はIntValueエントリを持って、それが0であればエラーなしである。他の値が設定されていると列挙のDisplayNameToolTipを例外として投げる。

<DocuURL>はそのノードの説明があるhttp URLを提供する。その表記は変数を含む。その変数は$(NAME)の形で、NAMEはノードの名前か以下の特別な名前である。
Sys::NodeName
現在のノードの名前
Sys::ModelName
XMLファイルのModelNameアトリビュート
Sys::VenderName
XMlファイルのVendorNameアトリビュート
Sys::StandardNamespace
XMLファイルのStandardNamespaceアトリビュート
Sys::DeviceVersion
GenApiのバージョン
Sys::SchemaVersion
スキーマのバージョン
Sys::Application
実行ファイルの名前
Sys::OperationSystem
OSの名前、フォーマットは"Window5.1_SP3.0"
Sys::Language
ロケール、フォーマットは"German"

nice!(0)  コメント(0)  トラックバック(0) 

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

トラックバック 0

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。