ローカルバッファ割り当て設定

Namespace: FVIL.Video
Assembly: FVILdevice (in FVILdevice.dll) Version: 3.1.0.0 (3.1.0.5)

Syntax

C#
public virtual CFviFBufConfigNum FBufConfigNum { get; set; }
Visual Basic
Public Overridable Property FBufConfigNum As CFviFBufConfigNum
	Get
	Set

Return Value

Type: CFviFBufConfigNum

FVC05のローカルバッファ割り当てを設定します。 設定可能な値については、CFviFBufConfigNum初期値指定コンストラクタ をご参照ください。

処理に失敗した場合は例外を発行します。 例外の原因と発生位置を特定するには、発行された例外クラスの ErrorCode メンバと Function メンバを参照してください。

エラーコード:

ErrorCode メンバ内容
25FVIL.ErrorCode.NOT_OPENEDデバイスがオープンされていません。
11FVIL.ErrorCode.INVALID_PARAMETER引数に指定された値が不正です。
31150FVIL.Video.ErrorCode.FBUF_TOO_LARGE設定メモリ量が16MBを越えています。

Remarks

FVC05上に搭載されている、16MBのローカルバッファの割り当てを設定します。 本設定は、 MemoryLock(UInt32) 枚数と CFviContinuousGrabFVC05GrabASync(UInt32) または GrabSync(UInt32) 実行時の取り込み可能保証範囲に関係してきます。

Channel は、下位4bitで入力チャネルを指定します。 指定されたビットが立っていた場合、そのチャネルのフレームバッファを Num に指定された枚数分確保します。

設定した入力チャネルと枚数を計算し、トータルのサイズが16MBを超えてしまった場合、エラーが返されます。 グレイ画像1枚のサイズは、1画素8bitであるため、画像取り込み横方向サイズ(x)と縦方向サイズ(y)をかけた値(x*y)となります。 2値画像1枚のサイズは、1画素1bitであるため、x*y/8 となります。 この画像サイズに対し、本プロパティに指定した枚数分ローカルバッファを確保します。 但し、ハードウェア制限上、各チャネルで確保するサイズは256kバイト境界で配置しなければなりません。 IsFBufConfigNum(CFviFBufConfigNum) 関数を用いて、 設定可能かどうかを判定することが可能です。

MemoryLock(UInt32) 関数でロックできる画像枚数は、 ロックしたいチャネルのローカルバッファが確保されており、以下の条件のどちらかを満たしていなければなりません。

  • ロックする画像枚数が、ローカルバッファ確保枚数以下 -
  • ロックすぐ画像枚数が、ローカルバッファ確保枚数の倍数 -

よって、ロックを行いたい画像メモリ枚数が、決まっている場合、 ローカルバッファで設定する枚数は画像メモリ枚数の最大公約数にしてください。


CFviContinuousGrabFVC05 で連続取り込みを行う場合、ローカルバッファ確保枚数分の取り込みは保証されます。

(カメラからのデータ量<PCIバスの帯域)の関係が常に保証される場合 ローカルバッファの確保枚数が少なくても正常に動作します。
(カメラからのデータ量>PCIバスの帯域)となる場合 FVC05からPCのメインメモリへのDMA転送が間に合わず、ローカルバッファが溢れた時点でエラーとなりますが、 ローカルバッファのメモリ枚数分は取り込みを行うことはできます。 PCIバスは、他のボードやネットワーク、HDDアクセスなどで使用率は変わってくるため、 一時的にFVC05から転送できなくなる可能性があります。 そのような場合にもローカルバッファに溜め込み、PCIバスが空いた時点で画像転送を行うことが可能であるため、 ローカルバッファの設定量が多い方が安全性も高まります。

Exceptions

ExceptionCondition
FVIL..::..CFviExceptionこの例外の原因については、上記のエラーコード表をご参照ください。

See Also