grab_data_asyncT_grab_data_asyncGrabDataAsyncGrabDataAsync (Operator)
Name
grab_data_asyncT_grab_data_asyncGrabDataAsyncGrabDataAsync
— Asynchroner Einzug von Bildern und vorverarbeiteten Bilddaten vom
angegebenen Bildeinzugsgerät.
Signatur
void GrabDataAsync(HObject* Image, HObject* Region, HObject* Contours, const HTuple& AcqHandle, const HTuple& MaxDelay, HTuple* Data)
HRegion HImage::GrabDataAsync(HXLDCont* Contours, const HFramegrabber& AcqHandle, double MaxDelay, HTuple* Data)
HRegion HImage::GrabDataAsync(HXLDCont* Contours, const HFramegrabber& AcqHandle, double MaxDelay, HString* Data)
HImage HRegion::GrabDataAsync(HXLDCont* Contours, const HFramegrabber& AcqHandle, double MaxDelay, HTuple* Data)
HImage HRegion::GrabDataAsync(HXLDCont* Contours, const HFramegrabber& AcqHandle, double MaxDelay, HString* Data)
HImage HFramegrabber::GrabDataAsync(HRegion* Region, HXLDCont* Contours, double MaxDelay, HTuple* Data) const
HImage HFramegrabber::GrabDataAsync(HRegion* Region, HXLDCont* Contours, double MaxDelay, HString* Data) const
static void HOperatorSet.GrabDataAsync(out HObject image, out HObject region, out HObject contours, HTuple acqHandle, HTuple maxDelay, out HTuple data)
HRegion HImage.GrabDataAsync(out HXLDCont contours, HFramegrabber acqHandle, double maxDelay, out HTuple data)
HRegion HImage.GrabDataAsync(out HXLDCont contours, HFramegrabber acqHandle, double maxDelay, out string data)
HImage HRegion.GrabDataAsync(out HXLDCont contours, HFramegrabber acqHandle, double maxDelay, out HTuple data)
HImage HRegion.GrabDataAsync(out HXLDCont contours, HFramegrabber acqHandle, double maxDelay, out string data)
HImage HFramegrabber.GrabDataAsync(out HRegion region, out HXLDCont contours, double maxDelay, out HTuple data)
HImage HFramegrabber.GrabDataAsync(out HRegion region, out HXLDCont contours, double maxDelay, out string data)
Beschreibung
grab_data_asyncgrab_data_asyncGrabDataAsyncGrabDataAsyncGrabDataAsync
fordert ein asynchron eingezogenes Bild und
vorverarbeitete Bilddaten über das durch AcqHandleAcqHandleAcqHandleAcqHandleacqHandle
spezifizierte
Bildeinzugsgerät an.
Standardmäßig startet grab_data_asyncgrab_data_asyncGrabDataAsyncGrabDataAsyncGrabDataAsync
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".
Der gewünschte Betriebsmodus des Bildeinzugsgeräts, ein passender
Bildausschnitt sowie weitere Schnittstellen-spezifische Einstellungen
können mittels der Operatoren open_framegrabberopen_framegrabberOpenFramegrabberOpenFramegrabberOpenFramegrabber
und
set_framegrabber_paramset_framegrabber_paramSetFramegrabberParamSetFramegrabberParamSetFramegrabberParam
vorgenommen werden.
Abhängig von der aktuellen Konfiguration des
Bildeinzugsgeräts können die vorverarbeiteten Bilddaten in Form von
Bildern (ImageImageImageImageimage
), Bildregionen (RegionRegionRegionRegionregion
),
XLD-Konturen (ContoursContoursContoursContourscontours
) und Steuerdaten (DataDataDataDatadata
)
zurückgeliefert werden.
Der Abschluss des neu gestarteten Bildeinzuges erfolgt mittels
grab_data_asyncgrab_data_asyncGrabDataAsyncGrabDataAsyncGrabDataAsync
oder grab_image_asyncgrab_image_asyncGrabImageAsyncGrabImageAsyncGrabImageAsync
. Sind mehr als
MaxDelayMaxDelayMaxDelayMaxDelaymaxDelay
ms seit dem Start des Einzuges vergangen, wird falls nötig
ein neues Bild eingezogen. Ein negativer Wert für MaxDelayMaxDelayMaxDelayMaxDelaymaxDelay
deaktiviert diesen Mechanismus.
Der Abbruch des Bildeinzugs kann mit dem Operator
set_framegrabber_paramset_framegrabber_paramSetFramegrabberParamSetFramegrabberParamSetFramegrabberParam
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_data_asyncgrab_data_asyncGrabDataAsyncGrabDataAsyncGrabDataAsync
der Operator grab_imagegrab_imageGrabImageGrabImageGrabImage
oder
grab_datagrab_dataGrabDataGrabDataGrabData
aufgerufen wird, wird der mit grab_data_asyncgrab_data_asyncGrabDataAsyncGrabDataAsyncGrabDataAsync
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_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.
grab_data_asyncgrab_data_asyncGrabDataAsyncGrabDataAsyncGrabDataAsync
läuft mit allen nicht exklusiven
Operatoren innerhalb und außerhalb der Gruppe parallel.
Ausführungsinformationen
- Multithreading-Typ: reentrant (läuft parallel zu nicht-exklusiven Operatoren).
- Multithreading-Bereich: global (kann von jedem Thread aufgerufen werden).
- Wird ohne Parallelisierung verarbeitet.
Parameter
ImageImageImageImageimage
(output_object) image(-array) →
objectHImageHImageHobject * (byte / real / uint2)
Eingezogene Bilddaten.
RegionRegionRegionRegionregion
(output_object) region(-array) →
objectHRegionHRegionHobject *
Vorverarbeitete Bildregionen.
ContoursContoursContoursContourscontours
(output_object) xld_cont(-array) →
objectHXLDContHXLDContHobject *
Vorverarbeitete XLD-Konturen.
AcqHandleAcqHandleAcqHandleAcqHandleacqHandle
(input_control) framegrabber →
HFramegrabber, HTupleHTupleHtuple (handle) (IntPtr) (HHandle) (handle)
Zu benutzendes Bildeinzugsgerät.
MaxDelayMaxDelayMaxDelayMaxDelaymaxDelay
(input_control) number →
HTupleHTupleHtuple (real) (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
DataDataDataDatadata
(output_control) string(-array) →
HTupleHTupleHtuple (string / real / integer / handle) (string / double / int / long / HHandle) (HString / double / Hlong / HHandle) (char* / double / Hlong / handle)
Vorverarbeitete Steuerdaten.
Beispiel (HDevelop)
* Select a suitable image acquisition interface name AcqName
open_framegrabber(AcqName,1,1,0,0,0,0,'default',-1,'default',-1.0, \
'default','default','default',-1,-1,AcqHandle)
* Grab image, segment it, and start next grab
grab_data_async (Image1, Region1, Contours1, AcqHandle, -1.0, Data1)
* Process data 1...
* Finish asynchronous grab, segment this image, and start next grab
grab_data_async (Image2, Region2, Contours2, AcqHandle, -1.0, Data2)
* Process data 2...
close_framegrabber(AcqHandle)
Ergebnis
Ist das Bildeinzugsgerät geöffnet und unterstützt es den Bildeinzug
via grab_data_asyncgrab_data_asyncGrabDataAsyncGrabDataAsyncGrabDataAsync
, liefert grab_data_asyncgrab_data_asyncGrabDataAsyncGrabDataAsyncGrabDataAsync
den
Wert 2 (H_MSG_TRUE). Ansonsten wird eine Fehlerbehandlung durchgeführt.
Vorgänger
open_framegrabberopen_framegrabberOpenFramegrabberOpenFramegrabberOpenFramegrabber
,
grab_image_startgrab_image_startGrabImageStartGrabImageStartGrabImageStart
,
set_framegrabber_paramset_framegrabber_paramSetFramegrabberParamSetFramegrabberParamSetFramegrabberParam
Nachfolger
grab_image_asyncgrab_image_asyncGrabImageAsyncGrabImageAsyncGrabImageAsync
,
set_framegrabber_paramset_framegrabber_paramSetFramegrabberParamSetFramegrabberParamSetFramegrabberParam
,
close_framegrabberclose_framegrabberCloseFramegrabberCloseFramegrabberCloseFramegrabber
Siehe auch
open_framegrabberopen_framegrabberOpenFramegrabberOpenFramegrabberOpenFramegrabber
,
info_framegrabberinfo_framegrabberInfoFramegrabberInfoFramegrabberInfoFramegrabber
,
set_framegrabber_paramset_framegrabber_paramSetFramegrabberParamSetFramegrabberParamSetFramegrabberParam
Modul
Foundation