OS X用GigE Visionカメラドライバ - その17 [OS X用GigE Vision]
プリキュアの化粧って最近、中学生にしては濃くなってるよなあ....
まあいいとして、GEN<i>CAM規格の抄訳の続き。カメラの設定機能のひとつを表すアイテムはおおまかにどんな特性を持っているか、という話のあたり。ただ訳してるだけなのでどんどん進めないと、もともとやりたかったことを忘れてしまう....
インターフェイスのシグニチャの詳細はセクションにある。可能なノードタイプはセクションにある。ひとつのインターフェイスタイプに複数のノードタイプが対応しうる。たとえばIIntegerインターフェイスは以下のノードタイプに実装される。
抽象機能(Abstract Features)はインターフェイスタイプと名前と意味で表される。例えばカメラのGain(名前)IInteger(インターフェイスタイプ)として定義され、カメラ内部の増幅率(意味)を記述している。ただしほかの定義の仕方もあり得る。GainはIEnumerationやIFloatとしても定義可能である。
もしユーザがGainノードの値を読むと、GainValueノードの読み込みを発生させ、それはIPortインターフェイス対してDeviceノードから正しいレジスタを読む。
もしユーザがGainノードの値を書こうとすると、実装では最大値と最小値の間に入っているかどうかのチェックをするよう決定する。それらの値は対応するGainMinとGainMaxのノードから読み込む。も書き込もうとする値がその範囲にあるなら、GainValueノードとDeviceノードを経由してカメラに設定される。実装は最小値と最大値をキャッシュしてもいい。対応するIntRegノードのCacheableのアトリビュートに従って。
まあいいとして、GEN<i>CAM規格の抄訳の続き。カメラの設定機能のひとつを表すアイテムはおおまかにどんな特性を持っているか、という話のあたり。ただ訳してるだけなのでどんどん進めないと、もともとやりたかったことを忘れてしまう....
2.3 ノード、インターフェイス、抽象機能
カメラ記述ファイルのそれぞれのノードはただひとつのアイテムを表している。アイテムの特性によってノードはある特定のノードタイプと特定のインターフェイスを持っている。つぎのインターフェイスが現在利用可能である(それぞれは典型的なグラフィカルユーザインターフェイスに対応させるウェジェットがある)。IInteger | 値、最大値、最小値、増分を持つスライダ |
IFloat | 上に加えて物理的な単位を持つスライダ |
IString | 文字列を表すテキストボックス |
IEnumeration | ドロップダウンメニュー |
ICommand | コマンドボタン |
IBoolean | チェックボックス |
IRegister | 16進数のテキストボックス |
ICategory | カメラの機能のツリー構造へのエントリを示す |
IPort | カメラのポートを表す。これは表示されない |
- IntReg
- レジスタのバイト境界の整数
- MaskedIntReg
- ビットフィールドの整数、例えば8ビットから12ビットなど
- Integer
- 異なるノードの整数の値や最大最小増分
抽象機能(Abstract Features)はインターフェイスタイプと名前と意味で表される。例えばカメラのGain(名前)IInteger(インターフェイスタイプ)として定義され、カメラ内部の増幅率(意味)を記述している。ただしほかの定義の仕方もあり得る。GainはIEnumerationやIFloatとしても定義可能である。
2.4 値の読み書き
ノードの値をユーザが読んだり書いたりするとき、そのノードはノードグラフの中に読み書き動作の連鎖を発生させることになる。これを説明するために、図-6にGain機能に関するより入念な例を示した。 Gain機能にはユーザがその値を読んだり書いたり、あるいは最小値最大値を読んだりするするためのIIntegerインターフェイスがある。図の例はカメラがみっつのレジスタ、Gainの値そのもの、その最小値、最大値、を持っているとしている。それぞれのレジスタから対応する値をIntaRegノードを使って抽出する。Gainの名前を持つIntegerノードはそれらのデータを収集してひとつにまとめて、IIntegerインターフェイスにその結果を表示する。もしユーザがGainノードの値を読むと、GainValueノードの読み込みを発生させ、それはIPortインターフェイス対してDeviceノードから正しいレジスタを読む。
もしユーザがGainノードの値を書こうとすると、実装では最大値と最小値の間に入っているかどうかのチェックをするよう決定する。それらの値は対応するGainMinとGainMaxのノードから読み込む。も書き込もうとする値がその範囲にあるなら、GainValueノードとDeviceノードを経由してカメラに設定される。実装は最小値と最大値をキャッシュしてもいい。対応するIntRegノードのCacheableのアトリビュートに従って。
2015-01-11 18:05
nice!(0)
コメント(0)
トラックバック(0)
コメント 0