KlassenKlassenKlassenKlassen | | | | Operatoren

grab_image_asyncgrab_image_asyncGrabImageAsyncgrab_image_asyncGrabImageAsyncGrabImageAsync (Operator)

Name

grab_image_asyncgrab_image_asyncGrabImageAsyncgrab_image_asyncGrabImageAsyncGrabImageAsync — Asynchroner Einzug eines Bildes vom angegebenen Bildeinzugsgerät.

Signatur

grab_image_async( : Image : AcqHandle, MaxDelay : )

Herror grab_image_async(Hobject* Image, const Hlong AcqHandle, double MaxDelay)

Herror T_grab_image_async(Hobject* Image, const Htuple AcqHandle, const Htuple MaxDelay)

Herror grab_image_async(Hobject* Image, const HTuple& AcqHandle, const HTuple& MaxDelay)

HImage HImage::GrabImageAsync(const HFramegrabber& AcqHandle, const HTuple& MaxDelay)

HImage HFramegrabber::GrabImageAsync(const HTuple& MaxDelay) const

void GrabImageAsync(HObject* Image, const HTuple& AcqHandle, const HTuple& MaxDelay)

void HImage::GrabImageAsync(const HFramegrabber& AcqHandle, double MaxDelay)

HImage HFramegrabber::GrabImageAsync(double MaxDelay) const

void HOperatorSetX.GrabImageAsync(
[out] IHUntypedObjectX*Image, [in] VARIANT AcqHandle, [in] VARIANT MaxDelay)

void HImageX.GrabImageAsync(
[in] IHFramegrabberX* AcqHandle, [in] double MaxDelay)

IHImageX* HFramegrabberX.GrabImageAsync([in] double MaxDelay)

static void HOperatorSet.GrabImageAsync(out HObject image, HTuple acqHandle, HTuple maxDelay)

void HImage.GrabImageAsync(HFramegrabber acqHandle, double maxDelay)

HImage HFramegrabber.GrabImageAsync(double maxDelay)

Beschreibung

grab_image_asyncgrab_image_asyncGrabImageAsyncgrab_image_asyncGrabImageAsyncGrabImageAsync fordert ein asynchron eingezogenes Bild über das durch AcqHandleAcqHandleAcqHandleAcqHandleAcqHandleacqHandle spezifizierte Bildeinzugsgerät an. Standardmäßig startet grab_image_asyncgrab_image_asyncGrabImageAsyncgrab_image_asyncGrabImageAsyncGrabImageAsync den nächsten asynchronen Einzug, bevor der Operator sich zurückmeldet. Nähere Informationen zu dem Verhalten eines bestimmten Bildeinzugsgeräts befinden sich in der Dokumentation für die verwendete Bildeinzugsschnittstelle im Verzeichnis 'doc/html/reference/acquisition'"doc/html/reference/acquisition""doc/html/reference/acquisition""doc/html/reference/acquisition""doc/html/reference/acquisition""doc/html/reference/acquisition". Der gewünschte Betriebsmodus des Bildeinzugsgeräts, ein passender Bildausschnitt sowie weitere Schnittstellen-spezifische Einstellungen können mittels der Operatoren open_framegrabberopen_framegrabberOpenFramegrabberopen_framegrabberOpenFramegrabberOpenFramegrabber und set_framegrabber_paramset_framegrabber_paramSetFramegrabberParamset_framegrabber_paramSetFramegrabberParamSetFramegrabberParam vorgenommen werden.

Der Abschluss des neu gestarteten Bildeinzuges erfolgt mittels grab_image_asyncgrab_image_asyncGrabImageAsyncgrab_image_asyncGrabImageAsyncGrabImageAsync oder grab_data_asyncgrab_data_asyncGrabDataAsyncgrab_data_asyncGrabDataAsyncGrabDataAsync. Sind mehr als MaxDelayMaxDelayMaxDelayMaxDelayMaxDelaymaxDelay ms seit dem Start des Einzuges vergangen, wird falls nötig ein neues Bild eingezogen. Ein negativer Wert für MaxDelayMaxDelayMaxDelayMaxDelayMaxDelaymaxDelay deaktiviert diesen Mechanismus.

Der Abbruch des Bildeinzugs kann mit dem Operator set_framegrabber_paramset_framegrabber_paramSetFramegrabberParamset_framegrabber_paramSetFramegrabberParamSetFramegrabberParam erfolgen, sofern die jeweilige Bildeinzugsschnittstelle den dazu notwendigen Parameter 'do_abort_grab' unterstützt. Es ist zu beachten, dass, als Ausnahme von der Beschreibung der gleichzeitigen Verwendung mehrerer Threads (siehe unten), 'do_abort_grab' auch aus einem anderen Thread aufgerufen werden kann.

Falls nach grab_image_asyncgrab_image_asyncGrabImageAsyncgrab_image_asyncGrabImageAsyncGrabImageAsync der Operator grab_imagegrab_imageGrabImagegrab_imageGrabImageGrabImage oder grab_datagrab_dataGrabDatagrab_dataGrabDataGrabData aufgerufen wird, wird der mit grab_image_asyncgrab_image_asyncGrabImageAsyncgrab_image_asyncGrabImageAsyncGrabImageAsync begonnene asynchrone Bildeinzug abgebrochen und ein neuer, synchroner Bildeinzug gestartet.

Achtung

Aus Sicht einer Anwendung mit mehreren Threads bilden alle Bildeinzugsoperatoren (wie in open_framegrabberopen_framegrabberOpenFramegrabberopen_framegrabberOpenFramegrabberOpenFramegrabber aufgelistet) eine eigene Gruppe innerhalb der info_framegrabberinfo_framegrabberInfoFramegrabberinfo_framegrabberInfoFramegrabberInfoFramegrabber, open_framegrabberopen_framegrabberOpenFramegrabberopen_framegrabberOpenFramegrabberOpenFramegrabber, close_framegrabberclose_framegrabberCloseFramegrabberclose_framegrabberCloseFramegrabberCloseFramegrabber und close_all_framegrabbersclose_all_framegrabbersCloseAllFramegrabbersclose_all_framegrabbersCloseAllFramegrabbersCloseAllFramegrabbers exklusiv ausgeführt werden.

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

Parallelisierung

Parameter

ImageImageImageImageImageimage (output_object)  image objectHImageHImageHImageHImageXHobject * (byte / int2)

Eingezogenes Bild.

AcqHandleAcqHandleAcqHandleAcqHandleAcqHandleacqHandle (input_control)  framegrabber HFramegrabber, HTupleHTupleHFramegrabber, HTupleHFramegrabberX, VARIANTHtuple (integer) (IntPtr) (Hlong) (Hlong) (Hlong) (Hlong)

Zu benutzendes Bildeinzugsgerät.

MaxDelayMaxDelayMaxDelayMaxDelayMaxDelaymaxDelay (input_control)  number HTupleHTupleHTupleVARIANTHtuple (real) (double) (double) (double) (double) (double)

Maximal erlaubte Verzögerung zwischen Start des Einzugs und Auslesen des Bildes [ms].

Defaultwert: -1.0

Wertevorschläge: -1.0, 20.0, 33.3, 40.0, 66.6, 80.0, 99.9

Beispiel (HDevelop)

* Select a suitable image acquisition interface named AcqName
open_framegrabber('AcqName', 1, 1, 0, 0, 0, 0, 'default' ,-1 ,'default' ,-1.0, \
                  'default', 'default', 'default', -1, -1, AcqHandle)
* Grab image + start next grab
grab_image_async(Image1, AcqHandle, -1.0)
* Process Image1 ...
* Finish asynchronous grab + start next grab
grab_image_async(Image2, AcqHandle, -1.0)
* Process Image2 ...
close_framegrabber(AcqHandle)

Beispiel (C)

/* Select a suitable image acquisition interface named AcqName */
open_framegrabber("AcqName", 1, 1, 0, 0, 0, 0, "default", -1, "default", -1.0,
                  "default", "default", "default", -1, -1, &AcqHandle) ;
/* Grab image + start next grab */
grab_image_async(&Image1, AcqHandle, -1.0) ;
/* Process Image1... */
/* Finish asynchronous grab + start next grab */
grab_image_async(&Image2, AcqHandle, -1.0) ;
/* Process Image2... */
close_framegrabber(AcqHandle) ;

Beispiel (HDevelop)

* Select a suitable image acquisition interface named AcqName
open_framegrabber('AcqName', 1, 1, 0, 0, 0, 0, 'default' ,-1 ,'default' ,-1.0, \
                  'default', 'default', 'default', -1, -1, AcqHandle)
* Grab image + start next grab
grab_image_async(Image1, AcqHandle, -1.0)
* Process Image1 ...
* Finish asynchronous grab + start next grab
grab_image_async(Image2, AcqHandle, -1.0)
* Process Image2 ...
close_framegrabber(AcqHandle)

Beispiel (HDevelop)

* Select a suitable image acquisition interface named AcqName
open_framegrabber('AcqName', 1, 1, 0, 0, 0, 0, 'default' ,-1 ,'default' ,-1.0, \
                  'default', 'default', 'default', -1, -1, AcqHandle)
* Grab image + start next grab
grab_image_async(Image1, AcqHandle, -1.0)
* Process Image1 ...
* Finish asynchronous grab + start next grab
grab_image_async(Image2, AcqHandle, -1.0)
* Process Image2 ...
close_framegrabber(AcqHandle)

Beispiel (HDevelop)

* Select a suitable image acquisition interface named AcqName
open_framegrabber('AcqName', 1, 1, 0, 0, 0, 0, 'default' ,-1 ,'default' ,-1.0, \
                  'default', 'default', 'default', -1, -1, AcqHandle)
* Grab image + start next grab
grab_image_async(Image1, AcqHandle, -1.0)
* Process Image1 ...
* Finish asynchronous grab + start next grab
grab_image_async(Image2, AcqHandle, -1.0)
* Process Image2 ...
close_framegrabber(AcqHandle)

Beispiel (HDevelop)

* Select a suitable image acquisition interface named AcqName
open_framegrabber('AcqName', 1, 1, 0, 0, 0, 0, 'default' ,-1 ,'default' ,-1.0, \
                  'default', 'default', 'default', -1, -1, AcqHandle)
* Grab image + start next grab
grab_image_async(Image1, AcqHandle, -1.0)
* Process Image1 ...
* Finish asynchronous grab + start next grab
grab_image_async(Image2, AcqHandle, -1.0)
* Process Image2 ...
close_framegrabber(AcqHandle)

Ergebnis

Ist das Bildeinzugsgerät geöffnet und unterstützt es den asynchronen Bildeinzug, liefert grab_image_asyncgrab_image_asyncGrabImageAsyncgrab_image_asyncGrabImageAsyncGrabImageAsync den Wert 2 (H_MSG_TRUE). Ansonsten wird eine Fehlerbehandlung durchgeführt.

Vorgänger

grab_image_startgrab_image_startGrabImageStartgrab_image_startGrabImageStartGrabImageStart, open_framegrabberopen_framegrabberOpenFramegrabberopen_framegrabberOpenFramegrabberOpenFramegrabber, set_framegrabber_paramset_framegrabber_paramSetFramegrabberParamset_framegrabber_paramSetFramegrabberParamSetFramegrabberParam

Nachfolger

grab_data_asyncgrab_data_asyncGrabDataAsyncgrab_data_asyncGrabDataAsyncGrabDataAsync, set_framegrabber_paramset_framegrabber_paramSetFramegrabberParamset_framegrabber_paramSetFramegrabberParamSetFramegrabberParam, close_framegrabberclose_framegrabberCloseFramegrabberclose_framegrabberCloseFramegrabberCloseFramegrabber

Siehe auch

grab_image_startgrab_image_startGrabImageStartgrab_image_startGrabImageStartGrabImageStart, open_framegrabberopen_framegrabberOpenFramegrabberopen_framegrabberOpenFramegrabberOpenFramegrabber, info_framegrabberinfo_framegrabberInfoFramegrabberinfo_framegrabberInfoFramegrabberInfoFramegrabber, set_framegrabber_paramset_framegrabber_paramSetFramegrabberParamset_framegrabber_paramSetFramegrabberParamSetFramegrabberParam

Modul

Foundation


KlassenKlassenKlassenKlassen | | | | Operatoren