データ転送 & 外部同期 API
INFINICAM からの高速画像データ受信(1コマ転送・連続ストリーミング転送)および GPIO 信号を使用した外部同期(SYNC IN / OUT)を制御する API 仕様です。
1. シングルデータ取得
Section titled “1. シングルデータ取得”PUC_GetSingleData
Section titled “PUC_GetSingleData”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. 連続データ転送 (ストリーミング)”PUC_BeginXferData / PUC_EndXferData
Section titled “PUC_BeginXferData / PUC_EndXferData”PUCRESULT WINAPI PUC_BeginXferData(PUC_HANDLE hDevice);PUCRESULT WINAPI PUC_EndXferData(PUC_HANDLE hDevice);連続画像転送 (ストリーミング) の開始および停止を行います。
| 引数 / 戻り値 | 型 | 説明 |
|---|---|---|
hDevice |
PUC_HANDLE |
[in] デバイスハンドル |
| 戻り値 | PUCRESULT |
成功時は PUC_SUCCEEDED / 失敗時は エラーコード一覧 |
PUC_SetRingBufCount / PUC_GetRingBufCount
Section titled “PUC_SetRingBufCount / PUC_GetRingBufCount”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 |
PUC_SetXferTimeout / PUC_GetXferTimeout
Section titled “PUC_SetXferTimeout / PUC_GetXferTimeout”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 / 失敗時は エラーコード一覧 |
PUC_SetTransferCallback
Section titled “PUC_SetTransferCallback”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)”PUC_SetSyncMode / PUC_GetSyncMode
Section titled “PUC_SetSyncMode / PUC_GetSyncMode”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 / 失敗時は エラーコード一覧 |
画像復号 (デコード) 処理 API受信用バッファから画像データを復号する CPU / GPU デコード API の解説
