GigE |
GigE |
Syntax
INT is_ImageBuffer(HIDS hCam, UINT nCommand, void* pParam, UINT cbSizeOfParam)
Description
This function allows accessing the captured images in the camera memory (see Using the camera memory (GigE uEye cameras)).
The nCommand input parameter is used to select the function mode. The pParam input parameter depends on the selected function mode. If you select functions for setting or returning a value, pParam contains a pointer to a variable of the UINT type. The size of the memory area to which pParam refers is specified in the cbSizeOfParam input parameter.
Input parameters
hCam |
Camera handle |
pParam |
Pointer to a function parameter, whose function depends on nCommand. |
cbSizeOfParam |
Size (in bytes) of the memory area to which pParam refers. |
Content of the IMGBUF_ITERATION_INFO structure
UINT |
u32IterationID |
Iteration ID |
ID_RANGE |
rangeImageID |
Image range i.e. the ID of the first and last image |
BYTE |
bReserved[52] |
reserved |
Content of the ID_RANGE structure
INT |
s32First |
First image ID |
INT |
s32Last |
Last image ID |
Content of the IMGBUF_ITEM structure
UINT |
u32IterationID |
Iteration ID |
INT |
s32ImageID |
Image ID |
Return values
IS_DEVICE_BUSY |
All cameras are in use |
IS_INVALID_PARAMETER |
One of the submitted parameters is outside the valid range or is not supported for this sensor or is not available in this mode. |
IS_NO_SUCCESS |
General error message |
IS_NOT_SUPPORTED |
The camera model used here does not support this function or setting. |
IS_SUCCESS |
Function executed successfully |
Example
INT nRet = IS_SUCCESS;
ID_RANGE iterationRange;
/* Get range of all available iterations */
nRet = is_ImageBuffer(hCam, IS_IMGBUF_DEVMEM_CMD_GET_AVAILABLE_ITERATIONS, &iterationRange,
sizeof(iterationRange));
if (nRet == IS_SUCCESS)
{
INT s32FirstIterationID = iterationRange.s32First;
INT s32LastIterationID = iterationRange.s32Last;
/* Get infos about the first iteration */
IMGBUF_ITERATION_INFO iterationInfo;
iterationInfo.u32IterationID = s32FirstIterationID;
INT nRet = is_ImageBuffer(hCam, IS_IMGBUF_DEVMEM_CMD_GET_ITERATION_INFO, &iterationInfo,
sizeof(iterationInfo));
if (nRet == IS_SUCCESS)
{
INT s32FirstImageID = iterationInfo.rangeImageID.s32First;
INT s32LastImageID = iterationInfo.rangeImageID.s32Last;
/* Transfer last image to active user buffer */
IMGBUF_ITEM bufferItem;
bufferItem.s32ImageID = s32LastImageID;
bufferItem.u32IterationID = s32FirstIterationID;
nRet = is_ImageBuffer(hCam, IS_IMGBUF_DEVMEM_CMD_TRANSFER_IMAGE, (void*)&bufferItem,
sizeof(bufferItem));
}
/* Release all iterations up to the last available iteration */
nRet = is_ImageBuffer(hCam, IS_IMGBUF_DEVMEM_CMD_RELEASE_ITERATIONS, (void*)
&iterationRange.s32Last, sizeof(iterationRange.s32Last));
}