Skip to content

データ転送 & 外部同期 API

This content is not available in your language yet.

INFINICAM からの高速画像データ受信(1コマ転送・連続ストリーミング転送)および GPIO 信号を使用した外部同期(SYNC IN / OUT)を制御する API 仕様です。


PUCRESULT WINAPI PUC_GetSingleData(PUC_HANDLE hDevice, UCHAR* pBuffer, UINT32 nBufSize, UINT32* pRetSize);

カメラから 1 フレーム分の圧縮画像データを同期取得します。

引数 / 戻り値 型 説明
hDevice PUC_HANDLE [in] デバイスハンドル
pBuffer UCHAR* [out] 受信データを格納するバッファポインタ
nBufSize UINT32 [in] 格納用バッファのサイズ (バイト単位)
pRetSize UINT32* [out] 実際に取得されたデータサイズ (バイト単位)
戻り値 PUCRESULT 成功時は PUC_SUCCEEDED / 転送中は PUC_ERROR_XFERRING

2. 連続データ転送 (ストリーミング)

Section titled “2. 連続データ転送 (ストリーミング)”
PUCRESULT WINAPI PUC_BeginXferData(PUC_HANDLE hDevice);
PUCRESULT WINAPI PUC_EndXferData(PUC_HANDLE hDevice);

連続画像転送 (ストリーミング) の開始および停止を行います。

引数 / 戻り値 型 説明
hDevice PUC_HANDLE [in] デバイスハンドル
戻り値 PUCRESULT 成功時は PUC_SUCCEEDED / 失敗時は エラーコード一覧

PUCRESULT WINAPI PUC_SetRingBufCount(PUC_HANDLE hDevice, UINT32 nCount);
PUCRESULT WINAPI PUC_GetRingBufCount(PUC_HANDLE hDevice, UINT32* pCount);

連続転送時に SDK 内部で確保するリングバッファの要素数を設定・取得します。

引数 / 戻り値 型 説明
hDevice PUC_HANDLE [in] デバイスハンドル
nCount / pCount UINT32 / UINT32* リングバッファ数 (PUC_MIN_RING_BUF_COUNT ~ PUC_MAX_RING_BUF_COUNT)
戻り値 PUCRESULT 成功時は PUC_SUCCEEDED / 範囲外指定は PUC_ERROR_RING_BUF_COUNT

PUCRESULT WINAPI PUC_SetXferTimeout(PUC_HANDLE hDevice, UINT32 nTimeoutMs);
PUCRESULT WINAPI PUC_GetXferTimeout(PUC_HANDLE hDevice, UINT32* pTimeoutMs);

データ転送待ち時のタイムアウト時間 (ミリ秒) を設定・取得します。

引数 / 戻り値 型 説明
hDevice PUC_HANDLE [in] デバイスハンドル
nTimeoutMs / pTimeoutMs UINT32 / UINT32* タイムアウト時間 (ms単位)。自動調整は PUC_XFER_TIMEOUT_AUTO (0)、無制限は PUC_XFER_TIMEOUT_INFINITE (0xFFFFFFFF)
戻り値 PUCRESULT 成功時は PUC_SUCCEEDED / 失敗時は エラーコード一覧

typedef void (WINAPI *PUC_XFER_CALLBACK)(PUC_HANDLE hDevice, UCHAR* pBuffer, UINT32 nSize, void* pParam);
PUCRESULT WINAPI PUC_SetTransferCallback(PUC_HANDLE hDevice, PUC_XFER_CALLBACK pCallback, void* pParam);

1 フレーム分のデータ転送が完了した際に呼び出されるコールバック関数を登録します。

引数 / 戻り値 型 説明
hDevice PUC_HANDLE [in] デバイスハンドル
pCallback PUC_XFER_CALLBACK [in] コールバック関数のポインタ (解除する場合は NULL)
pParam void* [in] コールバック関数へ引き渡す任意のユーザーパラメータ
戻り値 PUCRESULT 成功時は PUC_SUCCEEDED / 失敗時は エラーコード一覧

3. 外部同期信号制御 (SYNC IN / OUT)

Section titled “3. 外部同期信号制御 (SYNC IN / OUT)”
PUCRESULT WINAPI PUC_SetSyncMode(PUC_HANDLE hDevice, PUC_SYNC_MODE nMode);
PUCRESULT WINAPI PUC_GetSyncMode(PUC_HANDLE hDevice, PUC_SYNC_MODE* pMode);

カメラの同期モード(内部クロック動作 / 外部 SYNC IN 信号同期)を設定・取得します。

引数 / 戻り値 型 説明
hDevice PUC_HANDLE [in] デバイスハンドル
nMode / pMode PUC_SYNC_MODE / PUC_SYNC_MODE* PUC_SYNC_INTERNAL (内部同期) または PUC_SYNC_EXTERNAL (外部同期)
戻り値 PUCRESULT 成功時は PUC_SUCCEEDED / 転送中は PUC_ERROR_XFERRING

PUC_SetSyncOutSignal / PUC_GetSyncOutSignal

Section titled “PUC_SetSyncOutSignal / PUC_GetSyncOutSignal”
PUCRESULT WINAPI PUC_SetSyncOutSignal(PUC_HANDLE hDevice, PUC_MODE nEnable, PUC_SIGNAL nPolarity);
PUCRESULT WINAPI PUC_GetSyncOutSignal(PUC_HANDLE hDevice, PUC_MODE* pEnable, PUC_SIGNAL* pPolarity);

外部同期出力信号 (SYNC OUT) の有効/無効および極性を設定・取得します。

引数 / 戻り値 型 説明
hDevice PUC_HANDLE [in] デバイスハンドル
nEnable / pEnable PUC_MODE / PUC_MODE* PUC_ON (出力有効) または PUC_OFF (出力無効)
nPolarity / pPolarity PUC_SIGNAL / PUC_SIGNAL* PUC_SIGNAL_POSI (正極性) または PUC_SIGNAL_NEGA (負極性)
戻り値 PUCRESULT 成功時は PUC_SUCCEEDED / 失敗時は エラーコード一覧

PUC_SetSyncOutMagnification / PUC_GetSyncOutMagnification

Section titled “PUC_SetSyncOutMagnification / PUC_GetSyncOutMagnification”
PUCRESULT WINAPI PUC_SetSyncOutMagnification(PUC_HANDLE hDevice, UINT32 nMag);
PUCRESULT WINAPI PUC_GetSyncOutMagnification(PUC_HANDLE hDevice, UINT32* pMag);

SYNC OUT 信号の出力クロック倍率を設定・取得します。

引数 / 戻り値 型 説明
hDevice PUC_HANDLE [in] デバイスハンドル
nMag / pMag UINT32 / UINT32* 出力倍率 (1 = 1倍、PUC_SYNC_OUT_MAGNIFICATION_0_5 = 0.5倍)
戻り値 PUCRESULT 成功時は PUC_SUCCEEDED / 失敗時は エラーコード一覧