set_framegrabber_callbackT_set_framegrabber_callbackSetFramegrabberCallbackSetFramegrabberCallback (Operator)

Name

set_framegrabber_callbackT_set_framegrabber_callbackSetFramegrabberCallbackSetFramegrabberCallback — Registrieren einer Callback-Funktion für ein Bildeinzugsgerät.

Signatur

set_framegrabber_callback( : : AcqHandle, CallbackType, CallbackFunction, UserContext : )

Herror T_set_framegrabber_callback(const Htuple AcqHandle, const Htuple CallbackType, const Htuple CallbackFunction, const Htuple UserContext)

void SetFramegrabberCallback(const HTuple& AcqHandle, const HTuple& CallbackType, const HTuple& CallbackFunction, const HTuple& UserContext)

void HFramegrabber::SetFramegrabberCallback(const HString& CallbackType, void* CallbackFunction, void* UserContext) const

void HFramegrabber::SetFramegrabberCallback(const char* CallbackType, void* CallbackFunction, void* UserContext) const

void HFramegrabber::SetFramegrabberCallback(const wchar_t* CallbackType, void* CallbackFunction, void* UserContext) const   (Nur Windows)

static void HOperatorSet.SetFramegrabberCallback(HTuple acqHandle, HTuple callbackType, HTuple callbackFunction, HTuple userContext)

void HFramegrabber.SetFramegrabberCallback(string callbackType, IntPtr callbackFunction, IntPtr userContext)

Beschreibung

Der Operator set_framegrabber_callbackset_framegrabber_callbackSetFramegrabberCallbackSetFramegrabberCallbackSetFramegrabberCallback registriert eine Callback-Funktion für das durch AcqHandleAcqHandleAcqHandleAcqHandleacqHandle angegebene Bildeinzugsgerät. Der Parameter CallbackFunctionCallbackFunctionCallbackFunctionCallbackFunctioncallbackFunction enthält einen Zeiger auf die zu registrierende Funktion, während CallbackTypeCallbackTypeCallbackTypeCallbackTypecallbackType angibt, mit welcher Funktion des darunterliegenden API sie verbunden werden soll.

Typische Werte für CallbackTypeCallbackTypeCallbackTypeCallbackTypecallbackType sind:

'exception':

Der Bildeinzug hat eine Fehlerbehandlung ausgelöst.

'exposure_end':

Die Belichtung des nächsten Bildes ist beendet.

'exposure_start':

Die Belichtung des nächsten Bildes ist gestartet.

'transfer_end':

Ein neues Bild ist verfügbar und kann mit grab_image_asyncgrab_image_asyncGrabImageAsyncGrabImageAsyncGrabImageAsync abgeholt werden.

Abhängig von der Funktionalität des darunterliegenden API sind auch weitere Werte für CallbackTypeCallbackTypeCallbackTypeCallbackTypecallbackType möglich. Alle tatsächlich verfügbaren Callback-Typen für ein bestimmtes Bildeinzugsgerät können durch den Aufruf von get_framegrabber_paramget_framegrabber_paramGetFramegrabberParamGetFramegrabberParamGetFramegrabberParam 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 CallbackFunctionCallbackFunctionCallbackFunctionCallbackFunctioncallbackFunction aufgerufen. Ist CallbackFunctionCallbackFunctionCallbackFunctionCallbackFunctioncallbackFunction 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 AcqHandleAcqHandleAcqHandleAcqHandleacqHandle ü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 UserContextUserContextUserContextUserContextuserContext angegeben wird.

Achtung

Aus Sicht einer Anwendung mit mehreren Threads bilden alle Bildeinzugsoperatoren (wie in open_framegrabberopen_framegrabberOpenFramegrabberOpenFramegrabberOpenFramegrabber aufgelistet) eine eigene Gruppe innerhalb der info_framegrabberinfo_framegrabberInfoFramegrabberInfoFramegrabberInfoFramegrabber, open_framegrabberopen_framegrabberOpenFramegrabberOpenFramegrabberOpenFramegrabber, close_framegrabberclose_framegrabberCloseFramegrabberCloseFramegrabberCloseFramegrabber und close_all_framegrabbersclose_all_framegrabbersCloseAllFramegrabbersCloseAllFramegrabbersCloseAllFramegrabbers exklusiv ausgeführt werden.

set_framegrabber_callbackset_framegrabber_callbackSetFramegrabberCallbackSetFramegrabberCallbackSetFramegrabberCallback läuft mit allen nicht exklusiven Operatoren innerhalb und außerhalb der Gruppe parallel.

Ausführungsinformationen

Dieser Operator modifiziert den Zustand des folgenden Eingabeparameters:

Während der Ausführung dieses Operators muss der Zugriff auf den Wert dieses Parameters synchronisiert werden, wenn er über mehrere Threads hinweg verwendet wird.

Parameter

AcqHandleAcqHandleAcqHandleAcqHandleacqHandle (input_control, Zustand wird modifiziert)  framegrabber HFramegrabber, HTupleHTupleHtuple (handle) (IntPtr) (HHandle) (handle)

Zu benutzendes Bildeinzugsgerät.

CallbackTypeCallbackTypeCallbackTypeCallbackTypecallbackType (input_control)  string HTupleHTupleHtuple (string) (string) (HString) (char*)

Callback-Typ.

Defaultwert: 'transfer_end' "transfer_end" "transfer_end" "transfer_end" "transfer_end"

Wertevorschläge: 'exception'"exception""exception""exception""exception", 'exposure_end'"exposure_end""exposure_end""exposure_end""exposure_end", 'exposure_start'"exposure_start""exposure_start""exposure_start""exposure_start", 'transfer_end'"transfer_end""transfer_end""transfer_end""transfer_end"

CallbackFunctionCallbackFunctionCallbackFunctionCallbackFunctioncallbackFunction (input_control)  pointer HTupleHTupleHtuple (integer) (IntPtr) (Hlong) (Hlong)

Zu setzender Zeiger auf die Callback-Funktion.

UserContextUserContextUserContextUserContextuserContext (input_control)  pointer HTupleHTupleHtuple (integer) (IntPtr) (Hlong) (Hlong)

Zeiger auf benutzerspezifische Kontextdaten.

Ergebnis

Ist das Bildeinzugsgerät geöffnet und konnte der angegebene Callback erfolgreich gesetzt werden, liefert set_framegrabber_callbackset_framegrabber_callbackSetFramegrabberCallbackSetFramegrabberCallbackSetFramegrabberCallback den Wert 2 (H_MSG_TRUE). Ansonsten wird eine Fehlerbehandlung durchgeführt.

Vorgänger

open_framegrabberopen_framegrabberOpenFramegrabberOpenFramegrabberOpenFramegrabber, set_framegrabber_paramset_framegrabber_paramSetFramegrabberParamSetFramegrabberParamSetFramegrabberParam

Nachfolger

grab_imagegrab_imageGrabImageGrabImageGrabImage, grab_datagrab_dataGrabDataGrabDataGrabData, grab_image_startgrab_image_startGrabImageStartGrabImageStartGrabImageStart, grab_image_asyncgrab_image_asyncGrabImageAsyncGrabImageAsyncGrabImageAsync, grab_data_asyncgrab_data_asyncGrabDataAsyncGrabDataAsyncGrabDataAsync, get_framegrabber_paramget_framegrabber_paramGetFramegrabberParamGetFramegrabberParamGetFramegrabberParam

Siehe auch

open_framegrabberopen_framegrabberOpenFramegrabberOpenFramegrabberOpenFramegrabber, get_framegrabber_callbackget_framegrabber_callbackGetFramegrabberCallbackGetFramegrabberCallbackGetFramegrabberCallback

Modul

Foundation