PUCLIB 1.6.0.0
PHOTRON USB Control Library
PUCLIB.h
[詳解]
1#ifndef __PUCLIB_H
2#define __PUCLIB_H
3
4#include "PUCCONST.h"
5#include "PUCUTIL.h"
6
20#ifdef __cplusplus
21extern "C" {
22#endif
23
29typedef struct
30{
36 UINT32 nDeviceNoList[PUC_MAX_DEVICE];
38
44typedef struct
45{
48 UINT32 nMaxWidth;
51 UINT32 nMaxHeight;
54 UINT32 nMinWidth;
57 UINT32 nMinHeight;
60 UINT32 nUnitWidth;
65
71typedef struct
72{
76
81
87typedef struct
88{
91 PUINT8 pData;
94 UINT32 nDataSize;
99
100
104
105
119
137
156PUCRESULT WINAPI PUC_OpenDevice(UINT32 nDeviceNo, PPUC_HANDLE pDeviceHandle);
157
175
191
206PUCRESULT WINAPI PUC_GetDeviceName(PUC_HANDLE hDevice, UINT32* pName);
207
222PUCRESULT WINAPI PUC_GetDeviceType(PUC_HANDLE hDevice, UINT32* pType);
223
238PUCRESULT WINAPI PUC_GetDeviceVersion(PUC_HANDLE hDevice, UINT32* pVersion);
239
256PUCRESULT WINAPI PUC_GetSerialNo(PUC_HANDLE hDevice, UINT64* pSerialNo);
257
280PUCRESULT WINAPI PUC_GetResolution(PUC_HANDLE hDevice, UINT32* pWidth, UINT32* pHeight);
281
304PUCRESULT WINAPI PUC_GetMaxResolution(PUC_HANDLE hDevice, UINT32* pCurMaxWidth, UINT32* pCurMaxHeight);
305
327
352PUCRESULT WINAPI PUC_SetResolution(PUC_HANDLE hDevice, UINT32 nWidth, UINT32 nHeight);
353
374PUCRESULT WINAPI PUC_GetQuantization(PUC_HANDLE hDevice, UINT32 nPoint, USHORT* pVal);
375
396PUCRESULT WINAPI PUC_SetQuantization(PUC_HANDLE hDevice, UINT32 nPoint, USHORT nVal);
397
415
435
456
481
499
519
538PUCRESULT WINAPI PUC_GetSyncOutDelay(PUC_HANDLE hDevice, UINT32* pDelay);
539
560PUCRESULT WINAPI PUC_SetSyncOutDelay(PUC_HANDLE hDevice, UINT32 nDelay);
561
580PUCRESULT WINAPI PUC_GetSyncOutWidth(PUC_HANDLE hDevice, UINT32* pWidth);
581
604PUCRESULT WINAPI PUC_SetSyncOutWidth(PUC_HANDLE hDevice, UINT32 nWidth);
605
626PUCRESULT WINAPI PUC_GetSyncOutMagnification(PUC_HANDLE hDevice, UINT32* pMagnification);
627
650PUCRESULT WINAPI PUC_SetSyncOutMagnification(PUC_HANDLE hDevice, UINT32 nMagnification);
651
669
689
704PUCRESULT WINAPI PUC_GetSensorTemperature(PUC_HANDLE hDevice, UINT32* pTemp);
705
724PUCRESULT WINAPI PUC_GetXferDataSize(PUC_HANDLE hDevice, UINT32* pDataSize);
725
744PUCRESULT WINAPI PUC_GetMaxXferDataSize(PUC_HANDLE hDevice, UINT32* pDataSize);
745
773
802PUCRESULT WINAPI PUC_BeginXferData(PUC_HANDLE hDevice, RECIEVE_CALLBACK callback, void* arg);
803
821
840PUCRESULT WINAPI PUC_IsXferring(PUC_HANDLE hDevice, BOOL* pIsXferring);
841
860PUCRESULT WINAPI PUC_ExtractSequenceNo(const PUCHAR pData, UINT32 nWidth, UINT32 nHeight, PUSHORT pSeqNo);
861
892PUCRESULT WINAPI PUC_DecodeData(PUINT8 pDst, UINT32 nX, UINT32 nY, UINT32 nWidth, UINT32 nHeight, UINT32 nLineBytes, const PUINT8 pSrc, const PUSHORT pQVals);
893
928PUCRESULT WINAPI PUC_DecodeDataMultiThread(PUINT8 pDst, UINT32 nX, UINT32 nY, UINT32 nWidth, UINT32 nHeight, UINT32 nLineBytes, const PUINT8 pSrc, const PUSHORT pQVals, UINT32 nThreadCount);
929
960PUCRESULT WINAPI PUC_DecodeDCTData(PINT16 pDst, UINT32 nX, UINT32 nY, UINT32 nWidth, UINT32 nHeight, UINT32 nLineBytes, const PUINT8 pSrc, const PUSHORT pQVals);
961
988PUCRESULT WINAPI PUC_DecodeDCData(PUINT8 pDst, UINT32 nBlockX, UINT32 nBlockY, UINT32 nBlockCountX, UINT32 nBlockCountY, const PUINT8 pSrc);
989
990
1007PUCRESULT WINAPI PUC_GetRingBufferCount(PUC_HANDLE hDevice, UINT32* pCount);
1008
1027PUCRESULT WINAPI PUC_SetRingBufferCount(PUC_HANDLE hDevice, UINT32 nCount);
1028
1047PUCRESULT WINAPI PUC_GetXferTimeOut(PUC_HANDLE hDevice, UINT32* pSingleXferTimeOut, UINT32* pContinuousXferTimeOut);
1048
1073PUCRESULT WINAPI PUC_SetXferTimeOut(PUC_HANDLE hDevice, UINT32 nSingleXferTimeOut, UINT32 nContinuousXferTimeOut);
1074
1091PUCRESULT WINAPI PUC_GetMaxFramerate(PUC_HANDLE hDevice, UINT32* pFramerate);
1092
1110
1133PUCRESULT WINAPI PUC_GetFramerateShutter(PUC_HANDLE hDevice, UINT32* pFramerate, UINT32* pShutterSpeedFps);
1134
1157PUCRESULT WINAPI PUC_SetFramerateShutter(PUC_HANDLE hDevice, UINT32 nFramerate, UINT32 nShutterSpeedFps);
1158
1185PUCRESULT WINAPI PUC_GetExposeTime(PUC_HANDLE hDevice, UINT32* pExpOnTime, UINT32* pExpOffTime);
1186
1207PUCRESULT WINAPI PUC_GetMinExposeTime(PUC_HANDLE hDevice, UINT32* pMinExpOnTime, UINT32* pMinExpOffTime);
1208
1235PUCRESULT WINAPI PUC_SetExposeTime(PUC_HANDLE hDevice, UINT32 nExpOnTime, UINT32 nExpOffTime);
1236
1253PUCRESULT WINAPI PUC_ResetDevice(UINT32 nDeviceNo);
1254
1268
1278
1290
1302
1326PUCRESULT WINAPI PUC_DecodeGPU(bool download, unsigned char* pSrc, unsigned char** pDst, UINT32 lineBytes);
1327
1338PUCRESULT WINAPI PUC_GetGPULastError(int& errorCode);
1339
1350PUCRESULT WINAPI PUC_IsSetupGPUDecode(bool& status);
1351
1352#ifdef __cplusplus
1353}
1354#endif
1355
1356#endif /* __PUCLIB_H */
void * PUC_HANDLE
デバイスを表すハンドル
Definition: PUCCONST.h:94
#define PUC_MAX_DEVICE
接続可能な最大デバイス数
Definition: PUCCONST.h:17
PUCRESULT
エラーコード
Definition: PUCCONST.h:102
PUC_MODE
ON/OFFを表す列挙体
Definition: PUCCONST.h:47
PUC_COLOR_TYPE
デバイスのカラー/モノクロを表す列挙体
Definition: PUCCONST.h:83
PUC_SYNC_MODE
同期を表す列挙体
Definition: PUCCONST.h:71
PUC_HANDLE * PPUC_HANDLE
デバイスを表すハンドルのポインタ
Definition: PUCCONST.h:97
PUC_SIGNAL
信号の極性を表す列挙体
Definition: PUCCONST.h:59
PUCRESULT WINAPI PUC_ResetSequenceNo(PUC_HANDLE hDevice)
シーケンス番号をリセットします
PUCRESULT WINAPI PUC_GetSyncOutMagnification(PUC_HANDLE hDevice, UINT32 *pMagnification)
同期信号の出力倍率を取得します。
PUCRESULT WINAPI PUC_GetResolutionLimit(PUC_HANDLE hDevice, PPUC_RESO_LIMIT_INFO pLimitInfo)
デバイスの限界解像度、変更可能な最小単位を取得します。
PUCRESULT WINAPI PUC_SetSyncInMode(PUC_HANDLE hDevice, PUC_SYNC_MODE nMode, PUC_SIGNAL nSignal)
デバイスの同期信号入力モードを設定します。
PUCRESULT WINAPI PUC_IsXferring(PUC_HANDLE hDevice, BOOL *pIsXferring)
連続転送中かどうかを確認します。
PUCRESULT WINAPI PUC_DetectDevice(PPUC_DETECT_INFO pDetectInfo)
デバイスを検索します。
PUCRESULT WINAPI PUC_DecodeData(PUINT8 pDst, UINT32 nX, UINT32 nY, UINT32 nWidth, UINT32 nHeight, UINT32 nLineBytes, const PUINT8 pSrc, const PUSHORT pQVals)
圧縮画像データを輝度値データに展開します。
PUCRESULT WINAPI PUC_GetRingBufferCount(PUC_HANDLE hDevice, UINT32 *pCount)
連続転送時のリングバッファ数を取得します。
PUCRESULT WINAPI PUC_GetMaxResolution(PUC_HANDLE hDevice, UINT32 *pCurMaxWidth, UINT32 *pCurMaxHeight)
デバイスの現在の撮影速度で設定可能な最大解像度を取得します。
PUCRESULT WINAPI PUC_GetColorType(PUC_HANDLE hDevice, PUC_COLOR_TYPE *pType)
デバイスのカラー/モノクロ情報を取得します。
PUCRESULT WINAPI PUC_GetQuantization(PUC_HANDLE hDevice, UINT32 nPoint, USHORT *pVal)
デバイスに格納されている量子化テーブルデータを1つ取得します。
PUCRESULT WINAPI PUC_GetSyncOutDelay(PUC_HANDLE hDevice, UINT32 *pDelay)
デバイスの同期信号出力の遅延量をnsec単位で取得します。 100nsec未満は切り上げるため誤差が発生します。
struct PUC_XFER_DATA_INFO * PPUC_XFER_DATA_INFO
PUCRESULT WINAPI PUC_SetupGPUDecode(PUC_GPU_SETUP_PARAM param)
GPU処理で使用するメモリを確保します。
PUCRESULT WINAPI PUC_ExtractSequenceNo(const PUCHAR pData, UINT32 nWidth, UINT32 nHeight, PUSHORT pSeqNo)
圧縮画像データからシーケンス番号を抽出します。
PUCRESULT WINAPI PUC_GetFanState(PUC_HANDLE hDevice, PUC_MODE *pState)
デバイスのファンの状態を取得します。
struct PUC_DETECT_INFO * PPUC_DETECT_INFO
PUCRESULT WINAPI PUC_SetFramerateShutter(PUC_HANDLE hDevice, UINT32 nFramerate, UINT32 nShutterSpeedFps)
デバイスの撮影速度およびシャッター速度(1/fps)を設定します。
PUCRESULT WINAPI PUC_GetSyncOutWidth(PUC_HANDLE hDevice, UINT32 *pWidth)
デバイスの同期信号出力の出力幅を取得します。 100nsec未満は切り上げるため誤差が発生します。
PUCRESULT WINAPI PUC_CloseDevice(PUC_HANDLE hDevice)
デバイスをクローズします。
PUCRESULT WINAPI PUC_SetRingBufferCount(PUC_HANDLE hDevice, UINT32 nCount)
連続転送時のリングバッファ数を設定します。
PUCRESULT WINAPI PUC_GetSensorTemperature(PUC_HANDLE hDevice, UINT32 *pTemp)
デバイスのセンサー温度を取得します。
PUCRESULT WINAPI PUC_IsSetupGPUDecode(bool &status)
GPUデコードのメモリが確保がされているかを取得します。
PUCRESULT WINAPI PUC_GetXferTimeOut(PUC_HANDLE hDevice, UINT32 *pSingleXferTimeOut, UINT32 *pContinuousXferTimeOut)
デバイスの転送時のタイムアウト時間(ms)を取得します。
PUCRESULT WINAPI PUC_GetXferDataSize(PUC_HANDLE hDevice, UINT32 *pDataSize)
デバイスから転送されるデータサイズを取得します。
PUCRESULT WINAPI PUC_SetQuantization(PUC_HANDLE hDevice, UINT32 nPoint, USHORT nVal)
デバイスに格納されている量子化テーブルデータを1つ書き換えます。
PUCRESULT WINAPI PUC_GetResolution(PUC_HANDLE hDevice, UINT32 *pWidth, UINT32 *pHeight)
デバイスの解像度を取得します。
PUCRESULT WINAPI PUC_DecodeGPU(bool download, unsigned char *pSrc, unsigned char **pDst, UINT32 lineBytes)
圧縮画像データを輝度値データに展開します。(GPU使用)
PUCRESULT WINAPI PUC_SetLEDMode(PUC_HANDLE hDevice, PUC_MODE nMode)
デバイスのLED状態を設定します。
PUCRESULT WINAPI PUC_GetAvailableGPUProcess()
PCがGPU処理可能かを取得します。
PUCRESULT WINAPI PUC_SetExposeTime(PUC_HANDLE hDevice, UINT32 nExpOnTime, UINT32 nExpOffTime)
デバイスの露光・非露光期間を設定します。
PUCRESULT WINAPI PUC_SetResolution(PUC_HANDLE hDevice, UINT32 nWidth, UINT32 nHeight)
デバイスの解像度を設定します。
PUCRESULT WINAPI PUC_DecodeDataMultiThread(PUINT8 pDst, UINT32 nX, UINT32 nY, UINT32 nWidth, UINT32 nHeight, UINT32 nLineBytes, const PUINT8 pSrc, const PUSHORT pQVals, UINT32 nThreadCount)
圧縮画像データを輝度値データに展開します。このデコード処理はマルチスレッドで行われます。
PUCRESULT WINAPI PUC_SetSyncOutWidth(PUC_HANDLE hDevice, UINT32 nWidth)
デバイスの同期信号出力の出力幅を設定します。
PUCRESULT WINAPI PUC_GetSyncInMode(PUC_HANDLE hDevice, PUC_SYNC_MODE *pMode, PUC_SIGNAL *pSignal)
デバイスの同期信号入力モードを取得します。
PUCRESULT WINAPI PUC_GetSyncOutSignal(PUC_HANDLE hDevice, PUC_SIGNAL *pSignal)
デバイスの同期信号出力の極性を取得します。
PUCRESULT WINAPI PUC_TeardownGPUDecode()
GPU処理で使用したメモリを解放します。
PUCRESULT WINAPI PUC_GetGPULastError(int &errorCode)
最後に発生したGPU処理でのエラーコードを取得します。
PUCRESULT WINAPI PUC_SetSyncOutMagnification(PUC_HANDLE hDevice, UINT32 nMagnification)
同期信号の出力倍率を設定します。
PUCRESULT WINAPI PUC_GetLEDMode(PUC_HANDLE hDevice, PUC_MODE *pMode)
デバイスのLED状態を取得します。
PUCRESULT WINAPI PUC_GetDeviceVersion(PUC_HANDLE hDevice, UINT32 *pVersion)
デバイスのバージョンを取得します。
PUCRESULT WINAPI PUC_GetDeviceName(PUC_HANDLE hDevice, UINT32 *pName)
デバイスの名前を取得します。
PUCRESULT WINAPI PUC_SetFanState(PUC_HANDLE hDevice, PUC_MODE nState)
デバイスのファンの状態を設定します。
PUCRESULT WINAPI PUC_GetDeviceType(PUC_HANDLE hDevice, UINT32 *pType)
デバイスのタイプを取得します。
PUCRESULT WINAPI PUC_DecodeDCData(PUINT8 pDst, UINT32 nBlockX, UINT32 nBlockY, UINT32 nBlockCountX, UINT32 nBlockCountY, const PUINT8 pSrc)
圧縮画像データのDC成分を展開します。
PUCRESULT WINAPI PUC_GetMaxFramerate(PUC_HANDLE hDevice, UINT32 *pFramerate)
現在の解像度に対する最大撮影速度を取得します。
PUCRESULT WINAPI PUC_GetExposeTime(PUC_HANDLE hDevice, UINT32 *pExpOnTime, UINT32 *pExpOffTime)
デバイスの露光・非露光期間を取得します。
PUCRESULT WINAPI PUC_GetFramerateLimit(PUC_HANDLE hDevice, PPUC_FRAMERATE_LIMIT_INFO pLimitInfo)
限界撮影速度情報を取得します。
struct PUC_FRAMERATE_LIMIT_INFO * PPUC_FRAMERATE_LIMIT_INFO
PUCRESULT WINAPI PUC_GetMaxXferDataSize(PUC_HANDLE hDevice, UINT32 *pDataSize)
デバイスから転送されるデータの最大サイズを取得します。
PUCRESULT WINAPI PUC_OpenDevice(UINT32 nDeviceNo, PPUC_HANDLE pDeviceHandle)
デバイスをオープンします。
PUCRESULT WINAPI PUC_SetSyncOutDelay(PUC_HANDLE hDevice, UINT32 nDelay)
デバイスの同期信号出力の遅延量を設定します。
PUCRESULT WINAPI PUC_SetSyncOutSignal(PUC_HANDLE hDevice, PUC_SIGNAL nSignal)
デバイスの同期信号出力の極性を設定します。
void(* RECIEVE_CALLBACK)(PPUC_XFER_DATA_INFO, void *)
連続転送中に呼ばれるコールバック関数の型
Definition: PUCLIB.h:103
PUCRESULT WINAPI PUC_SetXferTimeOut(PUC_HANDLE hDevice, UINT32 nSingleXferTimeOut, UINT32 nContinuousXferTimeOut)
デバイスの転送時のタイムアウト時間(ms)を設定します。
PUCRESULT WINAPI PUC_GetSingleXferData(PUC_HANDLE hDevice, PPUC_XFER_DATA_INFO pXferData)
デバイスから最新のライブ画像を1枚取得します。
PUCRESULT WINAPI PUC_BeginXferData(PUC_HANDLE hDevice, RECIEVE_CALLBACK callback, void *arg)
連続転送を始めます。
PUCRESULT WINAPI PUC_GetFramerateShutter(PUC_HANDLE hDevice, UINT32 *pFramerate, UINT32 *pShutterSpeedFps)
デバイスの撮影速度およびシャッター速度(1/fps)を取得します。
PUCRESULT WINAPI PUC_DecodeDCTData(PINT16 pDst, UINT32 nX, UINT32 nY, UINT32 nWidth, UINT32 nHeight, UINT32 nLineBytes, const PUINT8 pSrc, const PUSHORT pQVals)
圧縮画像データをDCT係数に展開します。
PUCRESULT WINAPI PUC_Initialize()
本ライブラリを初期化します。
PUCRESULT WINAPI PUC_GetSerialNo(PUC_HANDLE hDevice, UINT64 *pSerialNo)
デバイスのシリアル番号を取得します。
PUCRESULT WINAPI PUC_ResetDevice(UINT32 nDeviceNo)
デバイスをリセットします。
struct PUC_RESO_LIMIT_INFO * PPUC_RESO_LIMIT_INFO
PUCRESULT WINAPI PUC_EndXferData(PUC_HANDLE hDevice)
連続転送を終了します。
PUCRESULT WINAPI PUC_GetMinExposeTime(PUC_HANDLE hDevice, UINT32 *pMinExpOnTime, UINT32 *pMinExpOffTime)
デバイスの最小露光・非露光期間を取得します。 100nsec未満は切り上げるため誤差が発生します。
デバイス検索結果を格納する構造体
Definition: PUCLIB.h:30
UINT32 nDeviceCount
見つかったデバイス個数
Definition: PUCLIB.h:33
撮影速度の限界値を格納する構造体
Definition: PUCLIB.h:72
UINT32 nMaxFrameRate
最大撮影速度
Definition: PUCLIB.h:79
UINT32 nMinFrameRate
最小撮影速度
Definition: PUCLIB.h:75
GPUデコードで使用するパラメータを格納する構造体
Definition: PUCUTIL.h:37
解像度の限界値を格納する構造体
Definition: PUCLIB.h:45
UINT32 nUnitWidth
解像度幅の変更可能な最小単位
Definition: PUCLIB.h:60
UINT32 nMaxHeight
最大解像度高さ
Definition: PUCLIB.h:51
UINT32 nMaxWidth
最大解像度幅
Definition: PUCLIB.h:48
UINT32 nUnitHeight
解像度高さの変更可能な最小単位
Definition: PUCLIB.h:63
UINT32 nMinHeight
最小解像度高さ
Definition: PUCLIB.h:57
UINT32 nMinWidth
最小解像度幅
Definition: PUCLIB.h:54
転送データ情報を格納する構造体
Definition: PUCLIB.h:88
UINT32 nDataSize
転送データのサイズ。転送されたデータのサイズが格納される
Definition: PUCLIB.h:94
USHORT nSequenceNo
転送データのシーケンス番号
Definition: PUCLIB.h:97
PUINT8 pData
転送データの展開先。あらかじめ必要量確保しておく必要あり。転送されるデータは転送データモード(COMPRESSED/DECOMPRESSED)に依存する
Definition: PUCLIB.h:91