![]() |
![]() |
|---|---|
GigE |
GigE |
Syntax
INT is_ImageBuffer(HIDS hCam, UINT nCommand, void* pParam, UINT cbSizeOfParam)
Beschreibung
Die Funktion ermöglicht den Zugriff auf aufgenommene Bilder im Kameraspeicher (siehe Kameraspeicher verwenden (GigE uEye Kameras)).
Über den Übergabeparameter nCommand wird dabei der Funktionsmodus gewählt. Der Übergabeparameter pParam ist abhängig vom Funktionsmodus unterschiedlich belegt; bei Funktionen zum Setzen oder Rücklesen eines Wertes enthält pParam einen Zeiger auf eine Variable vom Typ UINT. Die Größe des Speicherbereichs, auf den pParam verweist, wird im Übergabeparameter cbSizeOfParam angegeben.
Übergabeparameter
hCam |
Handle auf Kamera |
pParam |
Zeiger auf Funktionsparameter, der abhängig von nCommand unterschiedlich belegt ist. |
cbSizeOfParam |
Größe des Speicherbereichs in Byte, auf den pParam verweist. |
Inhalte der Struktur IMGBUF_ITERATION_INFO
UINT |
u32IterationID |
Iteration-ID |
ID_RANGE |
rangeImageID |
Bildbereich, d.h. die ID des ersten und letzten Bilds |
BYTE |
bReserved[52] |
reserviert |
Inhalte der Struktur ID_RANGE
INT |
s32First |
Erste Bild-ID |
INT |
s32Last |
Letzte Bild-ID |
Inhalte der Struktur IMGBUF_ITEM
UINT |
u32IterationID |
Iteration-ID |
INT |
s32ImageID |
Bild-ID |
Rückgabewert
IS_DEVICE_BUSY |
Die Kamera ist gerade beschäftigt und kann das angeforderte Bild nicht übertragen. |
IS_INVALID_PARAMETER |
Einer der übergebenen Parameter ist außerhalb des gültigen Bereichs, oder für diesen Sensor nicht unterstützt, bzw. in diesem Modus nicht zugänglich. |
IS_NO_SUCCESS |
Allgemeine Fehlermeldung |
IS_NOT_SUPPORTED |
Das verwendete Kameramodell unterstützt diese Funktion oder Einstellung nicht. |
IS_SUCCESS |
Funktion erfolgreich |
Beispiel
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));
}