Operatoren |
set_framegrabber_callback — Registrieren einer Callback-Funktion für ein Bildeinzugsgerät.
set_framegrabber_callback( : : AcqHandle, CallbackType, CallbackFunction, UserContext : )
Der Operator set_framegrabber_callback registriert eine Callback-Funktion für das durch AcqHandle angegebene Bildeinzugsgerät. Der Parameter CallbackFunction enthält einen Zeiger auf die zu registrierende Funktion, während CallbackType angibt, mit welcher Funktion des darunterliegenden API sie verbunden werden soll.
Typische Werte für CallbackType sind:
Der Bildeinzug hat eine Fehlerbehandlung ausgelöst.
Die Belichtung des nächsten Bildes ist beendet.
Die Belichtung des nächsten Bildes ist gestartet.
Ein neues Bild ist verfügbar und kann mit grab_image_async abgeholt werden.
Abhängig von der Funktionalität des darunterliegenden API sind auch weitere Werte für CallbackType möglich. Alle tatsächlich verfügbaren Callback-Typen für ein bestimmtes Bildeinzugsgerät können durch den Aufruf von get_framegrabber_param mit dem Parameter 'available_callback_types' abgefragt werden. Nähere Informationen finden sich in der Dokumentation der verwendeten Bildeinzugsschnittstelle.
Sobald der Callback registriert worden ist, wird bei jedem Eintreten des entsprechenden Ereignisses (z.B. die Benachrichtigung, dass die Belichtung abgeschlossen ist) die angegebene Callback-Funktion CallbackFunction aufgerufen. Ist CallbackFunction gleich NULL, wird der entsprechende Callback gelöscht.
Die Signatur der Callback-Funktion lautet folgendermaßen:
Herror HAcqCallback(void *AcqHandle, void *Context, void *UserContext)Auf Windows 32-Bit-Systemen wird die __stdcall Namenskonvention verwendet:
Herror (__stdcall HAcqCallback)(void *AcqHandle, void *Context, void *UserContext)
Der erste Parameter der Callback-Funktion enthält das in AcqHandle übergebene Handle für das Bildeinzugsgerät, der zweite einen Zeiger auf schnittstellenabhängige Kontextdaten und der dritte Parameter ist der Zeiger auf die benutzerspezifischen Kontextdaten, der in UserContext angegeben wird.
Aus Sicht einer Anwendung mit mehreren Threads bilden alle Bildeinzugsoperatoren (wie in open_framegrabber aufgelistet) eine eigene Gruppe innerhalb der info_framegrabber, open_framegrabber, close_framegrabber und close_all_framegrabbers exklusiv ausgeführt werden.
set_framegrabber_callback läuft mit allen nicht exklusiven Operatoren innerhalb und außerhalb der Gruppe parallel.
Dieser Operator modifiziert den Zustand des folgenden Eingabeparameters:
Der Wert dieses Parameters darf nicht über mehrere Threads verwendet werden.Zu benutzendes Bildeinzugsgerät.
Callback-Typ.
Defaultwert: 'transfer_end'
Wertevorschläge: 'exception' , 'exposure_end' , 'exposure_start' , 'transfer_end'
Zu setzender Zeiger auf die Callback-Funktion.
Zeiger auf benutzerspezifische Kontextdaten.
Ist das Bildeinzugsgerät geöffnet und konnte der angegebene Callback erfolgreich gesetzt werden, liefert set_framegrabber_callback den Wert 2 (H_MSG_TRUE). Ansonsten wird eine Fehlerbehandlung durchgeführt.
open_framegrabber, set_framegrabber_param
grab_image, grab_data, grab_image_start, grab_image_async, grab_data_async, get_framegrabber_param
open_framegrabber, get_framegrabber_callback
Foundation
Operatoren |