25#define PUC_MAX_DEVICE 16
28#define PUC_MAX_LEN 256
34#define PUC_MIN_RING_BUF_COUNT 4
37#define PUC_MAX_RING_BUF_COUNT 65535
40#define PUC_XFER_TIMEOUT_AUTO 0
43#define PUC_XFER_TIMEOUT_INFINITE 0xFFFFFFFF
46#define PUC_SYNC_OUT_MAGNIFICATION_0_5 0
49#define PUC_MAX_DECODE_THREAD_COUNT 32
209#define PUC_CHK_SUCCEEDED(res) (res == PUC_SUCCEEDED)
212#define PUC_CHK_FAILED(res) (res != PUC_SUCCEEDED)
1128PUCRESULT WINAPI
PUC_DecodeData(PUINT8 pDst, UINT32 nX, UINT32 nY, UINT32 nWidth, UINT32 nHeight, UINT32 nLineBytes,
const PUINT8 pSrc,
const PUSHORT pQVals);
1164PUCRESULT WINAPI
PUC_DecodeDataMultiThread(PUINT8 pDst, UINT32 nX, UINT32 nY, UINT32 nWidth, UINT32 nHeight, UINT32 nLineBytes,
const PUINT8 pSrc,
const PUSHORT pQVals, UINT32 nThreadCount);
1196PUCRESULT 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)
This resets the sequence number.
PUCRESULT WINAPI PUC_GetSyncOutMagnification(PUC_HANDLE hDevice, UINT32 *pMagnification)
This retrieves the output magnification rate for the synchronization signal.
PUCRESULT WINAPI PUC_GetResolutionLimit(PUC_HANDLE hDevice, PPUC_RESO_LIMIT_INFO pLimitInfo)
This retrieves the resolution limit for the device, and minimum unit for altering the resolution.
PUCRESULT WINAPI PUC_SetSyncInMode(PUC_HANDLE hDevice, PUC_SYNC_MODE nMode, PUC_SIGNAL nSignal)
This sets the synchronous signal input mode for the device.
PUCRESULT WINAPI PUC_IsXferring(PUC_HANDLE hDevice, BOOL *pIsXferring)
This checks whether a continuous transfer is in progress.
PUCRESULT WINAPI PUC_DetectDevice(PPUC_DETECT_INFO pDetectInfo)
This searches for the device.
PUCRESULT WINAPI PUC_DecodeData(PUINT8 pDst, UINT32 nX, UINT32 nY, UINT32 nWidth, UINT32 nHeight, UINT32 nLineBytes, const PUINT8 pSrc, const PUSHORT pQVals)
This unpacks the compressed image data to luminance data.
PUCRESULT WINAPI PUC_GetRingBufferCount(PUC_HANDLE hDevice, UINT32 *pCount)
This retrieves the ring buffer count for continuous transfer.
PUCRESULT WINAPI PUC_GetMaxResolution(PUC_HANDLE hDevice, UINT32 *pCurMaxWidth, UINT32 *pCurMaxHeight)
This retrieves the maximum resolution setting allowed for the current frame rate of the device.
PUCRESULT WINAPI PUC_GetColorType(PUC_HANDLE hDevice, PUC_COLOR_TYPE *pType)
This retrieves color/monochrome information of the device.
PUCRESULT WINAPI PUC_SetXferDataMode(PUC_HANDLE hDevice, PUC_DATA_MODE nDataMode)
This sets the data transfer mode of the device.
PUCRESULT WINAPI PUC_GetQuantization(PUC_HANDLE hDevice, UINT32 nPoint, USHORT *pVal)
This retrieves one set of quantization table data stored to the device.
PUCRESULT WINAPI PUC_GetSyncOutDelay(PUC_HANDLE hDevice, UINT32 *pDelay)
This retrieves the delay value of device's synchronization signal output in nsec. The value less th...
struct PUC_XFER_DATA_INFO * PPUC_XFER_DATA_INFO
PUCRESULT WINAPI PUC_ExtractSequenceNo(const PUCHAR pData, UINT32 nWidth, UINT32 nHeight, PUSHORT pSeqNo)
This extracts the sequence number from the compressed image data.
PUCRESULT WINAPI PUC_GetXferDataMode(PUC_HANDLE hDevice, PUC_DATA_MODE *pDataMode)
This retrieves the data transfer mode of the device.
PUCRESULT WINAPI PUC_GetFanState(PUC_HANDLE hDevice, PUC_MODE *pState)
This retrieves the state of the device fan.
struct PUC_DETECT_INFO * PPUC_DETECT_INFO
PUCRESULT WINAPI PUC_SetFramerateShutter(PUC_HANDLE hDevice, UINT32 nFramerate, UINT32 nShutterSpeedFps)
This sets the framerate and the shutter speed (1/fps) for the device.
PUCRESULT WINAPI PUC_GetSyncOutWidth(PUC_HANDLE hDevice, UINT32 *pWidth)
This retrieves the output width of synchronization signal for the device. If it is less than 100nse...
PUCRESULT WINAPI PUC_CloseDevice(PUC_HANDLE hDevice)
This closes the device.
PUCRESULT WINAPI PUC_SetRingBufferCount(PUC_HANDLE hDevice, UINT32 nCount)
This sets the ring buffer count for continuous transfer.
PUCRESULT WINAPI PUC_GetSensorTemperature(PUC_HANDLE hDevice, UINT32 *pTemp)
This retrieves the device sensor temperature.
PUCRESULT WINAPI PUC_GetXferDataSize(PUC_HANDLE hDevice, PUC_DATA_MODE nDataMode, UINT32 *pDataSize)
This retrieves the size of transfer data from the device.
PUCRESULT WINAPI PUC_GetXferTimeOut(PUC_HANDLE hDevice, UINT32 *pSingleXferTimeOut, UINT32 *pContinuousXferTimeOut)
This retrieves the timeout duration (ms) for data transfer from the device.
void * PUC_HANDLE
Device handle.
PUCRESULT WINAPI PUC_SetQuantization(PUC_HANDLE hDevice, UINT32 nPoint, USHORT nVal)
This overwrites one set of quantization table data stored to the device.
PUCRESULT WINAPI PUC_GetResolution(PUC_HANDLE hDevice, UINT32 *pWidth, UINT32 *pHeight)
This retrieves the device resolution.
PUCRESULT WINAPI PUC_SetLEDMode(PUC_HANDLE hDevice, PUC_MODE nMode)
This sets the LED state of the device.
PUCRESULT WINAPI PUC_SetExposeTime(PUC_HANDLE hDevice, UINT32 nExpOnTime, UINT32 nExpOffTime)
This sets the exposure/non-exposure time of the device.
PUCRESULT WINAPI PUC_SetResolution(PUC_HANDLE hDevice, UINT32 nWidth, UINT32 nHeight)
This sets the device resolution.
PUCRESULT WINAPI PUC_DecodeDataMultiThread(PUINT8 pDst, UINT32 nX, UINT32 nY, UINT32 nWidth, UINT32 nHeight, UINT32 nLineBytes, const PUINT8 pSrc, const PUSHORT pQVals, UINT32 nThreadCount)
This unpacks the compressed image data to luminance data. This process is multithreaded.
PUCRESULT WINAPI PUC_SetSyncOutWidth(PUC_HANDLE hDevice, UINT32 nWidth)
This sets the output width of synchronization signal for the device.
PUCRESULT WINAPI PUC_GetSyncInMode(PUC_HANDLE hDevice, PUC_SYNC_MODE *pMode, PUC_SIGNAL *pSignal)
This retrieves the synchronous signal input mode for the device.
PUCRESULT WINAPI PUC_GetSyncOutSignal(PUC_HANDLE hDevice, PUC_SIGNAL *pSignal)
This retrieves the synchronization signal output polarity for the device.
#define PUC_MAX_DEVICE
Maximum number of connectable devices.
PUCRESULT WINAPI PUC_SetSyncOutMagnification(PUC_HANDLE hDevice, UINT32 nMagnification)
This sets the output magnification rate for the synchronization signal.
PUCRESULT WINAPI PUC_GetLEDMode(PUC_HANDLE hDevice, PUC_MODE *pMode)
This retrieves the LED state of the device.
PUCRESULT WINAPI PUC_GetDeviceVersion(PUC_HANDLE hDevice, UINT32 *pVersion)
This retrieves device version information.
PUCRESULT WINAPI PUC_GetDeviceName(PUC_HANDLE hDevice, UINT32 *pName)
This retrieves the device name.
PUCRESULT WINAPI PUC_SetFanState(PUC_HANDLE hDevice, PUC_MODE nState)
This sets the state of the device fan.
PUCRESULT WINAPI PUC_GetDeviceType(PUC_HANDLE hDevice, UINT32 *pType)
This retrieves the device type.
PUCRESULT WINAPI PUC_DecodeDCData(PUINT8 pDst, UINT32 nBlockX, UINT32 nBlockY, UINT32 nBlockCountX, UINT32 nBlockCountY, const PUINT8 pSrc)
Decodes the DC component of compressed image data.
PUCRESULT WINAPI PUC_GetMaxFramerate(PUC_HANDLE hDevice, UINT32 *pFramerate)
This retrieves the maximum framerate for the current resolution.
PUCRESULT WINAPI PUC_GetExposeTime(PUC_HANDLE hDevice, UINT32 *pExpOnTime, UINT32 *pExpOffTime)
This retrieves the exposure/non-exposure time of the device.
PUCRESULT WINAPI PUC_GetFramerateLimit(PUC_HANDLE hDevice, PPUC_FRAMERATE_LIMIT_INFO pLimitInfo)
This retrieves the framerate limit information.
@ PUC_ERROR_NOTEQUAL_READ_SIZE
The data of specified size could not be read from the device.
@ PUC_ERROR_RING_BUF_COUNT
The specified ring buffer count is invalid.
@ PUC_ERROR_DEVICE_WRITE
Failed to write data to the device.
@ PUC_ERROR_ILLEGAL_FRAME_RATE
The specified framerate cannot be set.
@ PUC_ERROR_INITIALIZED
Initialization is already complete.
@ PUC_ERROR_XFER_DATA_FINISH
The data transfer ended abnormally.
@ PUC_ERROR_NOTEQUAL_WRITE_SIZE
The data of specified size could not be written to the device.
@ PUC_ERROR_ILLEGAL_RESOLUTION
The specified resolution cannot be set.
@ PUC_ERROR_XFER_DATA_WAIT
An unexpected error occurred during waiting for a data transfer from the device.
@ PUC_ERROR_MODULE_LOAD
There are modules in the SDK that could not load.
@ PUC_ERROR_XFERRING
Unable to process as a data transfer is in progress.
@ PUC_ERROR_DEVICE_NOTOPEN
The device is not open.
@ PUC_ERROR_DEVICE_OPEN
Failed to open the device.
@ PUC_ERROR_XFER_DATA_INVALID_HEADER
The header information in the data received from the device is invalid.
@ PUC_ERROR_NOTSUPPORT
This function is not supprted.
@ PUC_ERROR_SET_CMD
Failed to send a SET command to the device.
@ PUC_ERROR_GET_CMD
Failed to send a GET command to the device.
@ PUC_ERROR_ILLEGAL_EXPOSE_CLOCK
The specified exposure time or non-exposure time (clock units) cannot be set.
@ PUC_ERROR_DEVICE_READ
Failed to read data from the device.
@ PUC_ERROR_ILLEGAL_ARG
The specified argument is NULL.
@ PUC_ERROR_ILLEGAL_DEVICE_HANDLE
The specified device handle is NULL.
@ PUC_ERROR_UNINITIALIZE
Initialization has not been performed. Please execute the PUC_Initialize function.
@ PUC_SUCCEEDED
Succeeded.
@ PUC_ERROR_SYNC_EXTERNAL
Unable to process as a synchronize to external signal is in progress.
@ PUC_ERROR_LOCK_TIMEOUT
The exclusive process of the function has timed out.
@ PUC_ERROR_XFER_DATA_BEGIN
Unable to start data transfer.
@ PUC_ERROR_NOT_EXIST_DEVICE_NO
The specified device number does not exist.
struct PUC_FRAMERATE_LIMIT_INFO * PPUC_FRAMERATE_LIMIT_INFO
PUC_MODE
Enumeration for ON/OFF setting.
PUCRESULT WINAPI PUC_OpenDevice(UINT32 nDeviceNo, PPUC_HANDLE pDeviceHandle)
This opens the device.
PUCRESULT WINAPI PUC_SetSyncOutDelay(PUC_HANDLE hDevice, UINT32 nDelay)
This sets the delay value of device's synchronization signal output in nsec.
PUC_COLOR_TYPE
Enumeration for device color/monochrome setting.
@ PUC_COLOR_MONO
Monochrome.
PUC_SYNC_MODE
Enumeration for synchronization.
@ PUC_SYNC_EXTERNAL
Synchronize to external signal.
@ PUC_SYNC_INTERNAL
Internal operation.
PUC_HANDLE * PPUC_HANDLE
Pointer for the device handle.
PUCRESULT WINAPI PUC_SetSyncOutSignal(PUC_HANDLE hDevice, PUC_SIGNAL nSignal)
This sets the synchronous signal output polarity for the device.
void(* RECIEVE_CALLBACK)(PPUC_XFER_DATA_INFO, void *)
The callback function type called during continuous transfer.
PUC_SIGNAL
Enumeration for signal polarity.
@ PUC_SIGNAL_NEGA
Negative polarity signal.
@ PUC_SIGNAL_POSI
Positive polarity signal.
PUCRESULT WINAPI PUC_SetXferTimeOut(PUC_HANDLE hDevice, UINT32 nSingleXferTimeOut, UINT32 nContinuousXferTimeOut)
This sets the timeout duration (ms) for data transfer from the device.
PUCRESULT WINAPI PUC_GetMaxXferDataSize(PUC_HANDLE hDevice, PUC_DATA_MODE nDataMode, UINT32 *pDataSize)
This retrieves the maximum size of transfer data from the device.
PUCRESULT WINAPI PUC_GetSingleXferData(PUC_HANDLE hDevice, PPUC_XFER_DATA_INFO pXferData)
This retrieves the current live image from the device.
PUCRESULT WINAPI PUC_BeginXferData(PUC_HANDLE hDevice, RECIEVE_CALLBACK callback, void *arg)
This starts continuous transfer.
PUCRESULT WINAPI PUC_GetFramerateShutter(PUC_HANDLE hDevice, UINT32 *pFramerate, UINT32 *pShutterSpeedFps)
This retrieves the framerate and the shutter speed (1/fps) for the device.
PUCRESULT WINAPI PUC_DecodeDCTData(PINT16 pDst, UINT32 nX, UINT32 nY, UINT32 nWidth, UINT32 nHeight, UINT32 nLineBytes, const PUINT8 pSrc, const PUSHORT pQVals)
This unpacks the compressed image data to DCT coefficients.
PUCRESULT WINAPI PUC_Initialize()
This initializes the library.
PUCRESULT WINAPI PUC_GetSerialNo(PUC_HANDLE hDevice, UINT64 *pSerialNo)
This retrieves the device serial number.
PUCRESULT WINAPI PUC_ResetDevice(UINT32 nDeviceNo)
This resets the device.
struct PUC_RESO_LIMIT_INFO * PPUC_RESO_LIMIT_INFO
PUCRESULT WINAPI PUC_EndXferData(PUC_HANDLE hDevice)
This finishes continuous transfer.
PUCRESULT WINAPI PUC_GetMinExposeTime(PUC_HANDLE hDevice, UINT32 *pMinExpOnTime, UINT32 *pMinExpOffTime)
This retrieves the minimum exposure/non-exposure time of the device. If it is less than 100nsec,...
PUC_DATA_MODE
Enumeration for transfer data mode setting.
@ PUC_DATA_COMPRESSED
Transfer compressed data.
@ PUC_DATA_DECOMPRESSED_GRAY
Transfer decompressed data(gray)
Structure for storing device search results.
UINT32 nDeviceCount
Number of detected devices.
Structure for storing framerate limit values.
UINT32 nMaxFrameRate
Maximum Framerate.
UINT32 nMinFrameRate
Minimum Framerate.
Structure for storing resolution limit values.
UINT32 nUnitWidth
Minimum unit for altering the horizontal resolution.
UINT32 nMaxHeight
Maximum vertical resolution.
UINT32 nMaxWidth
Maximum horizontal resolution.
UINT32 nUnitHeight
Minimum unit for altering the vertical resolution.
UINT32 nMinHeight
Minimum vertical resolution.
UINT32 nMinWidth
Minimum horizontal resolution.
Structure for storing the information of transfer data.
UINT32 nDataSize
The size of transfer data. Stores the size of transfer data.
USHORT nSequenceNo
The sequence number of transfer data.
PUINT8 pData
Location for unpacked transfer data. It is necessary to allocate the required amount in advance....