uEye Kamera-Handbuch Version 4.92
![]() |
![]() |
USB 2.0 USB 3.0 GigE |
USB 2.0 USB 3.0 GigE |
Syntax
INT is_InitImageQueue (HIDS hCam, INT nMode)
Beschreibung
is_InitImageQueue() aktiviert eine Warteschlangen-Funktion für eine bestehende Bildspeichersequenz. Neu eintreffende Bilder werden dann jeweils ans Ende der Sequenz angefügt (FIFO-Prinzip). Die Speichersequenz muss zuvor mit is_AddToSequence() angelegt werden. is_WaitForNextImage() gibt den Zeiger und die Sequenz-ID des ersten (d. h. das ältesten) Bildes der Speichersequenz zurück.
![]() |
Bildspeichersequenzen können auch ohne die Warteschlangen-Funktion verwendet werden. In diesem Fall muss beim Eintreffen eines Bildaufnahme-Events der aktuelle Bildspeicher abgefragt werden (is_GetActSeqBuf()). Nachteil bei dieser Vorgehensweise ist, dass bei sehr hohen Bildraten zwischen dem Eintreffen des Events und dem Auslesen/Locken des aktiven Speichers bereits weitere Bilder eingetroffen sein können. Diese würden beim Abfragen des zuletzt eingetroffenen Bildes übersprungen. Bei der Verwendung von is_InitImageQueue() hingegen wird immer das älteste noch nicht abgefragte Bild zurückgegeben. Außerdem werden Bildspeicher sofort nach dem Befüllen automatisch gelockt. Damit wird verhindert, dass bei hohen Bildraten und kurzen Sequenzen Bildspeicher vor dem Locken bereits wieder überschrieben werden. |
Übergabeparameter
hCam |
Handle auf Kamera |
nMode |
Warteschlangen-Modus. Es wird momentan nur nMode = 0 unterstützt. |
Rückgabewert
IS_INVALID_CAMERA_HANDLE |
Ungültiges Kamera-Handle |
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_SUCCESS |
Funktion erfolgreich |
Verwandte Funktionen
Beispiel
// Eine zuvor initialisierte Kamera nimmt fortlaufend Bilder auf,
// bis ein Timeout oder ein Übertragungsfehler auftritt.
// Bildspeicher müssen bereits alloziert sein.
is_InitImageQueue(m_hCam, 0);
INT nMemID = 0;
char *pBuffer = NULL;
for(int i = 0; i < 10; i++)
{
is_WaitForNextImage(m_hCam, 1000, &pBuffer, &nMemID);
IMAGE_FILE_PARAMS imgFileParams;
imgFileParams.pwchFileName = L"image.bmp";
imgFileParams.nFileType = IS_IMG_BMP;
imgFileParams.ppcImageMem = &pBuffer;
imgFileParams.pnImageID = (UINT*)&nMemID;
is_ImageFile(m_hCam, IS_IMAGE_FILE_CMD_SAVE, (void*)&imgFileParams, sizeof(imgFileParams));
is_UnlockSeqBuf(m_hCam, nMemID, pBuffer);
}
is_ExitImageQueue(m_hCam);
Haben Sie Verbesserungshinweise? Senden Sie ein kurzes
Feedback zu diesem Kapitel.
Vielen Dank!
Bei technischen Fragen wenden Sie sich bitte an Ihren lokalen Händler oder nutzen Sie das Support-Formular auf unserer Internetseite.