SSブログ

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

プリキュアの化粧って最近、中学生にしては濃くなってるよなあ....

まあいいとして、GEN<i>CAM規格の抄訳の続き。カメラの設定機能のひとつを表すアイテムはおおまかにどんな特性を持っているか、という話のあたり。ただ訳してるだけなのでどんどん進めないと、もともとやりたかったことを忘れてしまう....

2.3  ノード、インターフェイス、抽象機能

カメラ記述ファイルのそれぞれのノードはただひとつのアイテムを表している。アイテムの特性によってノードはある特定のノードタイプと特定のインターフェイスを持っている。つぎのインターフェイスが現在利用可能である(それぞれは典型的なグラフィカルユーザインターフェイスに対応させるウェジェットがある)。
IInteger 値、最大値、最小値、増分を持つスライダ
IFloat 上に加えて物理的な単位を持つスライダ
IString 文字列を表すテキストボックス
IEnumeration ドロップダウンメニュー
ICommand コマンドボタン
IBoolean チェックボックス
IRegister 16進数のテキストボックス
ICategory カメラの機能のツリー構造へのエントリを示す
IPort カメラのポートを表す。これは表示されない
インターフェイスのシグニチャの詳細はセクションにある。可能なノードタイプはセクションにある。ひとつのインターフェイスタイプに複数のノードタイプが対応しうる。たとえばIIntegerインターフェイスは以下のノードタイプに実装される。
IntReg
レジスタのバイト境界の整数
MaskedIntReg
ビットフィールドの整数、例えば8ビットから12ビットなど
Integer
異なるノードの整数の値や最大最小増分
それれのノードタイプは異なるソースから異なるやり方で整数を抽出する。しかし、これらのノードすべての出力は整数を要求するすべてのリンクで型安全な入力として使うことができる。

抽象機能(Abstract Features)はインターフェイスタイプ名前意味で表される。例えばカメラのGain(名前)IInteger(インターフェイスタイプ)として定義され、カメラ内部の増幅率(意味)を記述している。ただしほかの定義の仕方もあり得る。GainはIEnumerationやIFloatとしても定義可能である。

2.4  値の読み書き

ノードの値をユーザが読んだり書いたりするとき、そのノードはノードグラフの中に読み書き動作の連鎖を発生させることになる。これを説明するために、図-6にGain機能に関するより入念な例を示した。
1010fig06.png
Gain機能にはユーザがその値を読んだり書いたり、あるいは最小値最大値を読んだりするするためのIIntegerインターフェイスがある。図の例はカメラがみっつのレジスタ、Gainの値そのもの、その最小値、最大値、を持っているとしている。それぞれのレジスタから対応する値をIntaRegノードを使って抽出する。Gainの名前を持つIntegerノードはそれらのデータを収集してひとつにまとめて、IIntegerインターフェイスにその結果を表示する。

もしユーザがGainノードの値を読むと、GainValueノードの読み込みを発生させ、それはIPortインターフェイス対してDeviceノードから正しいレジスタを読む。

もしユーザがGainノードの値を書こうとすると、実装では最大値と最小値の間に入っているかどうかのチェックをするよう決定する。それらの値は対応するGainMinとGainMaxのノードから読み込む。も書き込もうとする値がその範囲にあるなら、GainValueノードとDeviceノードを経由してカメラに設定される。実装は最小値と最大値をキャッシュしてもいい。対応するIntRegノードのCacheableのアトリビュートに従って。
nice!(0)  コメント(0)  トラックバック(0) 

nice! 0

コメント 0

コメントを書く

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

トラックバック 0

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