OS X用GigE Visionカメラドライバ - その18 [OS X用GigE Vision]
抄訳の続き。今日の部分はアクセスモード。ごく一般的な話で難しいところはない。サクッとすましたい。
ただし
1 = yes, 0 = no, * = don't careである。
カメラに機能は実装されているが、一時的に利用できないという場合もある。もし利用可能なら当然ながら、読み込み可能あるいは書き込み可能、あるいはその両方である。
あるノードはアスセス可能性制御のためのエレメントを持っている。例えばレジスタノードである。それに加えてGenICamはランタイムにアクセス可能性を変更する三つのみカニズムを提供している。
オンオフできるハードウェアトリガ(hardware Trigger)は典型的な「一時的に利用不可」の例である。もしオンにしたら追加の機能であるトリガ極性(TyiggerPolality)は利用可能になって、ハードウェア信号がActiveHighかActiveLowのどちらがトリガと解釈されるかを示すようになる。
図-7にこういったことがカメラ記述ファイルにどのように扱われているかを示す。TriggerとTriggerPolarityはEnumerationタイプのノードとして実装されていて、整数値の列挙に対応している。例えば、Trigger機能はOn=1でOff=0などである。整数値はIntRegタイプのノードを使ってレジスタにマップされる。 TriggerPolarityノードはpIsAvailableリンクを持っていてそれはIIntegerインターフェイスにつながっていて、表示されるようになっている。このノードの値が0ならもとのノードは一時的にアクセス不能となる。
この例ではpIsAvailableTriggerRegを直接さしているが、それはTrigger=Onは1に、Trigger=Offは0にマップされているからである。このような場合でなければ数式を使うことがきるIntSwissKnifeタイプが役に立つ。XMLファイルの中では次のようになる。
従ってもしユーザインターフェイスが更新されたとき、TriggerPolarityが利用可能になったかどうかを尋ねる。TriggerPolarityノードはIntSwissKnifeをチェックしにいき、TriggerRegノードの値の結果を計算する。
2.5 アクセスモード
ノードはそれぞれ次に定義するアクセスモードを持っている。Readable | Writable | Implemented | Access Mode |
* | * | 0 | NI - not implemented未実装 |
0 | 0 | 1 | NA - not Available利用可能でない |
0 | 1 | 1 | WO - write only書き込みのみ |
1 | 0 | 1 | RO - read only読み込みのみ |
1 | 1 | 1 | RW - readable and writable読み書き可能 |
カメラに機能は実装されているが、一時的に利用できないという場合もある。もし利用可能なら当然ながら、読み込み可能あるいは書き込み可能、あるいはその両方である。
あるノードはアスセス可能性制御のためのエレメントを持っている。例えばレジスタノードである。それに加えてGenICamはランタイムにアクセス可能性を変更する三つのみカニズムを提供している。
- 他のノードの値にに従って、一時的にロックできる。ロックされている間はその機能は書き込みできない。上の表の観点から書き込み可能フラグは一時的に0に強制される。
- 他のノードの値にに従って、利用可能でなくすことができる。読み込み可能と書き込み可能フラグは一時定期に0に強制される。
- 依存するノードすべての値によって、実装されていないとすることができる。両方のフラグは0に強制される。
オンオフできるハードウェアトリガ(hardware Trigger)は典型的な「一時的に利用不可」の例である。もしオンにしたら追加の機能であるトリガ極性(TyiggerPolality)は利用可能になって、ハードウェア信号がActiveHighかActiveLowのどちらがトリガと解釈されるかを示すようになる。
図-7にこういったことがカメラ記述ファイルにどのように扱われているかを示す。TriggerとTriggerPolarityはEnumerationタイプのノードとして実装されていて、整数値の列挙に対応している。例えば、Trigger機能はOn=1でOff=0などである。整数値はIntRegタイプのノードを使ってレジスタにマップされる。 TriggerPolarityノードはpIsAvailableリンクを持っていてそれはIIntegerインターフェイスにつながっていて、表示されるようになっている。このノードの値が0ならもとのノードは一時的にアクセス不能となる。
この例ではpIsAvailableTriggerRegを直接さしているが、それはTrigger=Onは1に、Trigger=Offは0にマップされているからである。このような場合でなければ数式を使うことがきるIntSwissKnifeタイプが役に立つ。XMLファイルの中では次のようになる。
<IntSwissKnife Name="TriggerEnabled"> <ToolTip>Determines if the Trigger feature is switched on</ToolTip> <pVariable Name="TRIGGER">TriggerReg</pVariable> <Formula>TRIGGER==1</Formula> </IntSwissKnife><Formula>エントリにある数式が評価されてノードの結果として出力される。変数のシンボル名は対応するノードの値に置き換えられる。この例ではただひとつのTRIGGERという名前の<pVariable>エントリがTriggerRegノードを参照している。これは数式TRIGGER==1から読みとることができる。
従ってもしユーザインターフェイスが更新されたとき、TriggerPolarityが利用可能になったかどうかを尋ねる。TriggerPolarityノードはIntSwissKnifeをチェックしにいき、TriggerRegノードの値の結果を計算する。
2015-01-12 22:22
nice!(0)
コメント(0)
トラックバック(0)
コメント 0