AcapSetInfo関数及びAcapSetBufferAddress関数の第四引数(nMemNum)を0以上の値にした場合、設定値がボードに即時反映されます。このとき設定項目の依存関係をチェックするため、全ての項目に対して初期化が発生し、AcapSetInfo関数の処理に時間がかかります。
また、バッファ関連の初期化も行われるため、撮像サイズが大きければ大きいほど、メモリ面数が多ければ多いほど初期化に時間がかかります。
そのため、AcapSetInfo関数では仮の設定を行い、最後に一度だけAcapReflectParam関数でボードへ設定の反映を行ってください。
以下、AcapSetInfo関数、AcapSetBufferAddress関数、AcapReflectParam関数を使用したサンプルプログラムとなります。
※エラー処理は省略します。
◆ サンプルプログラム(AcapSetInfo関数)
//CC信号の出力周期を500usecに設定する(仮設定)
AcapSetInfo(hDev, nCh, ACL_EXP_CYCLE, -1, 500);
//CC信号のパルス幅を100usecに設定する(仮設定)
AcapSetInfo(hDev, nCh, ACL_EXPOSURE, -1, 100);
//AcapReflectParam関数でボードへ設定値の反映を行います
AcapReflectParam(hDev, nCh);
|
◆ サンプルプログラム(AcapSetBufferAddress関数)
#define MEM_NUM 4
PUCHAR pBuffer[MEM_NUM];
for(int i = 0; i < MEM_NUM; i++) {
//メモリの確保
pBuffer[i] = (PUCHAR)_aligned_malloc( 640 * 480, 16 );
//確保したメモリを登録(仮設定)
AcapSetBufferAddress( hDev, nCh, ACL_IMAGE_PTR, -(i + 1), pBuffer[i] );
}
//AcapReflectParam関数でボードへ設定値の反映を行います
AcapReflectParam(hDev, nCh);
|
※AcapReflectParam関数で時間がかかる場合は、撮像サイズ(設定ID:ACL_X_SIZE、ACL_Y_SIZE)を小さくする、使用するバッファ数(設定ID:ACL_MEM_NUM)を減らすことで時間の短縮が可能です。