is_InitImageQueue

uEye Kamera-Handbuch Version 4.92


is_InitImageQueue

Windows_Logo
Linux_Logo

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.

hint_info

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

•is_ExitImageQueue()

•is_WaitForNextImage()

•is_AddToSequence()

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.


© 2019 IDS Imaging Development Systems GmbH
https://de.ids-imaging.com