キーワードから探す

※スペースで区切って複数検索が可能です。

カテゴリで絞り込む

よく検索されるキーワード

ID:453
作成日: 2024/05/10

AcapSetInfo関数やAcapSetBufferAddress関数でボードの設定変更を行うと設定に時間がかかるのですが、設定時間を短縮する方法はありますか?

カテゴリ SDK-AcapLib2 
対象製品 全てのカメラリンク対応ボード CoaXPressボード

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)を減らすことで時間の短縮が可能です。
この内容は参考になりましたか?
ご回答いただきまして、ありがとうございます。
今後の参考にさせていただきます。
ご意見・ご感想、ありがとうございます。

関連するご質問

Now Loading...

Now Loading...