21#define PUC_MAX_DEVICE 16
24#define PUC_MAX_LEN 256
30#define PUC_MIN_RING_BUF_COUNT 4
33#define PUC_MAX_RING_BUF_COUNT 65535
36#define PUC_XFER_TIMEOUT_AUTO 0
39#define PUC_XFER_TIMEOUT_INFINITE 0xFFFFFFFF
42#define PUC_SYNC_OUT_MAGNIFICATION_0_5 0
45#define PUC_MAX_DECODE_THREAD_COUNT 32
205#define PUC_CHK_SUCCEEDED(res) (res == PUC_SUCCEEDED)
208#define PUC_CHK_FAILED(res) (res != PUC_SUCCEEDED)
1124PUCRESULT WINAPI
PUC_DecodeData(PUINT8 pDst, UINT32 nX, UINT32 nY, UINT32 nWidth, UINT32 nHeight, UINT32 nLineBytes,
const PUINT8 pSrc,
const PUSHORT pQVals);
1160PUCRESULT WINAPI
PUC_DecodeDataMultiThread(PUINT8 pDst, UINT32 nX, UINT32 nY, UINT32 nWidth, UINT32 nHeight, UINT32 nLineBytes,
const PUINT8 pSrc,
const PUSHORT pQVals, UINT32 nThreadCount);
1192PUCRESULT WINAPI
PUC_DecodeDCTData(PINT16 pDst, UINT32 nX, UINT32 nY, UINT32 nWidth, UINT32 nHeight, UINT32 nLineBytes,
const PUINT8 pSrc,
const PUSHORT pQVals);
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_SetXferDataMode(PUC_HANDLE hDevice, PUC_DATA_MODE nDataMode)
デバイスの転送データモードを設定します。
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_ExtractSequenceNo(const PUCHAR pData, UINT32 nWidth, UINT32 nHeight, PUSHORT pSeqNo)
圧縮画像データからシーケンス番号を抽出します。
PUCRESULT WINAPI PUC_GetXferDataMode(PUC_HANDLE hDevice, PUC_DATA_MODE *pDataMode)
デバイスの転送データモードを取得します。
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_GetXferDataSize(PUC_HANDLE hDevice, PUC_DATA_MODE nDataMode, UINT32 *pDataSize)
デバイスから転送されるデータサイズを取得します。
PUCRESULT WINAPI PUC_GetXferTimeOut(PUC_HANDLE hDevice, UINT32 *pSingleXferTimeOut, UINT32 *pContinuousXferTimeOut)
デバイスの転送時のタイムアウト時間(ms)を取得します。
void * PUC_HANDLE
デバイスを表すハンドル
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_SetLEDMode(PUC_HANDLE hDevice, PUC_MODE nMode)
デバイスのLED状態を設定します。
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)
デバイスの同期信号出力の極性を取得します。
#define PUC_MAX_DEVICE
接続可能な最大デバイス数
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)
限界撮影速度情報を取得します。
@ PUC_ERROR_NOTEQUAL_READ_SIZE
デバイスから意図したサイズのデータを読み込めませんでした。
@ PUC_ERROR_RING_BUF_COUNT
指定されたリングバッファ数が不正です。
@ PUC_ERROR_DEVICE_WRITE
デバイスへのデータ書き込みに失敗しました。
@ PUC_ERROR_ILLEGAL_FRAME_RATE
指定された撮影速度は設定できません。
@ PUC_ERROR_INITIALIZED
既に初期化されています。
@ PUC_ERROR_XFER_DATA_FINISH
データ転送終了が正常に行われませんでした。
@ PUC_ERROR_NOTEQUAL_WRITE_SIZE
デバイスに意図したサイズのデータを書き込めませんでした。
@ PUC_ERROR_ILLEGAL_RESOLUTION
指定された解像度は設定できません。
@ PUC_ERROR_XFER_DATA_WAIT
デバイスからのデータ転送待ちで意図せぬ問題が発生しました。
@ PUC_ERROR_MODULE_LOAD
SDK内の一部モジュールがロードできませんでした。
@ PUC_ERROR_XFERRING
転送中のため処理できませんでした。
@ PUC_ERROR_DEVICE_NOTOPEN
デバイスがオープンされていません。
@ PUC_ERROR_DEVICE_OPEN
デバイスのオープンに失敗しました。
@ PUC_ERROR_XFER_DATA_INVALID_HEADER
デバイスから受信したデータのヘッダー情報が不正です。
@ PUC_ERROR_NOTSUPPORT
この関数はサポートされていません。
@ PUC_ERROR_SET_CMD
デバイスへの設定コマンド送信に失敗しました。
@ PUC_ERROR_GET_CMD
デバイスへの取得コマンド送信に失敗しました。
@ PUC_ERROR_ILLEGAL_EXPOSE_CLOCK
指定された露光期間または非露光期間(クロック単位)は設定できません。
@ PUC_ERROR_DEVICE_READ
デバイスからのデータ読み取りに失敗しました。
@ PUC_ERROR_ILLEGAL_ARG
指定された引数がNULLです。
@ PUC_ERROR_ILLEGAL_DEVICE_HANDLE
指定されたデバイスハンドルがNULLです。
@ PUC_ERROR_UNINITIALIZE
初期化されていません。PUC_Initialize関数を実行してください。
@ PUC_ERROR_SYNC_EXTERNAL
外部同期中のため処理できませんでした。
@ PUC_ERROR_LOCK_TIMEOUT
関数の排他処理がタイムアウトしました。
@ PUC_ERROR_XFER_DATA_BEGIN
データ転送が開始できませんでした。
@ PUC_ERROR_NOT_EXIST_DEVICE_NO
指定されたデバイス番号は存在しません。
struct PUC_FRAMERATE_LIMIT_INFO * PPUC_FRAMERATE_LIMIT_INFO
PUCRESULT WINAPI PUC_OpenDevice(UINT32 nDeviceNo, PPUC_HANDLE pDeviceHandle)
デバイスをオープンします。
PUCRESULT WINAPI PUC_SetSyncOutDelay(PUC_HANDLE hDevice, UINT32 nDelay)
デバイスの同期信号出力の遅延量を設定します。
PUC_COLOR_TYPE
デバイスのカラー/モノクロを表す列挙体
@ PUC_SYNC_EXTERNAL
外部からの信号に同期する
PUC_HANDLE * PPUC_HANDLE
デバイスを表すハンドルのポインタ
PUCRESULT WINAPI PUC_SetSyncOutSignal(PUC_HANDLE hDevice, PUC_SIGNAL nSignal)
デバイスの同期信号出力の極性を設定します。
void(* RECIEVE_CALLBACK)(PPUC_XFER_DATA_INFO, void *)
連続転送中に呼ばれるコールバック関数の型
PUCRESULT WINAPI PUC_SetXferTimeOut(PUC_HANDLE hDevice, UINT32 nSingleXferTimeOut, UINT32 nContinuousXferTimeOut)
デバイスの転送時のタイムアウト時間(ms)を設定します。
PUCRESULT WINAPI PUC_GetMaxXferDataSize(PUC_HANDLE hDevice, PUC_DATA_MODE nDataMode, UINT32 *pDataSize)
デバイスから転送されるデータの最大サイズを取得します。
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未満は切り上げるため誤差が発生します。
PUC_DATA_MODE
転送データモードを表す列挙体
@ PUC_DATA_COMPRESSED
圧縮データ転送
@ PUC_DATA_DECOMPRESSED_GRAY
展開済みのデータ転送(グレー)
UINT32 nDeviceCount
見つかったデバイス個数
UINT32 nMaxFrameRate
最大撮影速度
UINT32 nMinFrameRate
最小撮影速度
UINT32 nUnitWidth
解像度幅の変更可能な最小単位
UINT32 nUnitHeight
解像度高さの変更可能な最小単位
UINT32 nDataSize
転送データのサイズ。転送されたデータのサイズが格納される
USHORT nSequenceNo
転送データのシーケンス番号
PUINT8 pData
転送データの展開先。あらかじめ必要量確保しておく必要あり。転送されるデータは転送データモード(COMPRESSED/DECOMPRESSED)に依存する