ClassesClassesClassesClasses | | | | Operators

grab_data_asyncgrab_data_asyncGrabDataAsyncgrab_data_asyncGrabDataAsyncGrabDataAsync (Operator)

Name

grab_data_asyncgrab_data_asyncGrabDataAsyncgrab_data_asyncGrabDataAsyncGrabDataAsync — Asynchronous grab of images and preprocessed image data from the specified image acquisition device.

Signature

grab_data_async( : Image, Region, Contours : AcqHandle, MaxDelay : Data)

Herror grab_data_async(Hobject* Image, Hobject* Region, Hobject* Contours, const Hlong AcqHandle, double MaxDelay, char* Data)

Herror T_grab_data_async(Hobject* Image, Hobject* Region, Hobject* Contours, const Htuple AcqHandle, const Htuple MaxDelay, Htuple* Data)

Herror grab_data_async(Hobject* Image, Hobject* Region, Hobject* Contours, const HTuple& AcqHandle, const HTuple& MaxDelay, char* Data)

Herror grab_data_async(Hobject* Image, Hobject* Region, Hobject* Contours, const HTuple& AcqHandle, const HTuple& MaxDelay, HTuple* Data)

HImage HImage::GrabDataAsync(HRegion* Region, HXLDCont* Contours, const HFramegrabber& AcqHandle, const HTuple& MaxDelay, char* Data)

HImageArray HImageArray::GrabDataAsync(HRegionArray* Region, HXLDContArray* Contours, const HFramegrabber& AcqHandle, const HTuple& MaxDelay, HTuple* Data)

HImageArray HFramegrabber::GrabDataAsync(HRegion* Region, HXLDCont* Contours, const HTuple& MaxDelay, HTuple* Data) const

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

void HOperatorSetX.GrabDataAsync(
[out] IHUntypedObjectX*Image, [out] IHUntypedObjectX*Region, [out] IHUntypedObjectX*Contours, [in] VARIANT AcqHandle, [in] VARIANT MaxDelay, [out] VARIANT* Data)

IHRegionX* HImageX.GrabDataAsync(
[out] IHXLDContX*Contours, [in] IHFramegrabberX* AcqHandle, [in] double MaxDelay, [out] VARIANT* Data)

IHImageX* HRegionX.GrabDataAsync(
[out] IHXLDContX*Contours, [in] IHFramegrabberX* AcqHandle, [in] double MaxDelay, [out] VARIANT* Data)

IHImageX* HFramegrabberX.GrabDataAsync(
[out] IHRegionX*Region, [out] IHXLDContX*Contours, [in] double MaxDelay, [out] VARIANT* Data)

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)

Description

The operator grab_data_asyncgrab_data_asyncGrabDataAsyncgrab_data_asyncGrabDataAsyncGrabDataAsync requests asynchronously grabbed images and preprocessed image data from the image acquisition device specified by AcqHandleAcqHandleAcqHandleAcqHandleAcqHandleacqHandle. By default, grab_data_asyncgrab_data_asyncGrabDataAsyncgrab_data_asyncGrabDataAsyncGrabDataAsync also starts the next asynchronous grab before the operator returns. More information about the behavior of a specific image acquistion device can be found in the corresponding interface documentation in the directory 'doc/html/reference/acquisition'"doc/html/reference/acquisition""doc/html/reference/acquisition""doc/html/reference/acquisition""doc/html/reference/acquisition""doc/html/reference/acquisition". The desired operational mode of the image acquisition device as well as a suitable image part and additional interface-specific settings can be specified using the operators open_framegrabberopen_framegrabberOpenFramegrabberopen_framegrabberOpenFramegrabberOpenFramegrabber and set_framegrabber_paramset_framegrabber_paramSetFramegrabberParamset_framegrabber_paramSetFramegrabberParamSetFramegrabberParam. Depending on the current configuration of the image acquisition device, the preprocessed image data can be returned in terms of images (ImageImageImageImageImageimage), regions (RegionRegionRegionRegionRegionregion), XLD contours (ContoursContoursContoursContoursContourscontours), and control data (DataDataDataDataDatadata).

The grab of the next image is finished by calling grab_data_asyncgrab_data_asyncGrabDataAsyncgrab_data_asyncGrabDataAsyncGrabDataAsync or grab_image_asyncgrab_image_asyncGrabImageAsyncgrab_image_asyncGrabImageAsyncGrabImageAsync. If more than MaxDelayMaxDelayMaxDelayMaxDelayMaxDelaymaxDelay ms have passed since the asynchronous grab was started, the asynchronously grabbed image is considered as too old and a new image is grabbed, if necessary. If a negative value is assigned to MaxDelayMaxDelayMaxDelayMaxDelayMaxDelaymaxDelay, this control mechanism is deactivated.

To abort the grab, the operator set_framegrabber_paramset_framegrabber_paramSetFramegrabberParamset_framegrabber_paramSetFramegrabberParamSetFramegrabberParam with the parameter 'do_abort_grab' can be used if the specific image acquisition interface supports it. Note that as an exception from the description of the concurrent usage in multiple threads (see below) 'do_abort_grab' can also be used from another thread.

Please note that if you call the operators grab_imagegrab_imageGrabImagegrab_imageGrabImageGrabImage or grab_datagrab_dataGrabDatagrab_dataGrabDataGrabData after grab_data_asyncgrab_data_asyncGrabDataAsyncgrab_data_asyncGrabDataAsyncGrabDataAsync, the asynchronous grab started by grab_data_asyncgrab_data_asyncGrabDataAsyncgrab_data_asyncGrabDataAsyncGrabDataAsync is aborted and a new synchronous grab is started.

Attention

For a multithreaded application all image acquisition operators (as listed in open_framegrabberopen_framegrabberOpenFramegrabberopen_framegrabberOpenFramegrabberOpenFramegrabber) are an own group in which info_framegrabberinfo_framegrabberInfoFramegrabberinfo_framegrabberInfoFramegrabberInfoFramegrabber, open_framegrabberopen_framegrabberOpenFramegrabberopen_framegrabberOpenFramegrabberOpenFramegrabber, close_framegrabberclose_framegrabberCloseFramegrabberclose_framegrabberCloseFramegrabberCloseFramegrabber and close_all_framegrabbersclose_all_framegrabbersCloseAllFramegrabbersclose_all_framegrabbersCloseAllFramegrabbersCloseAllFramegrabbers are executed exclusively.

grab_data_asyncgrab_data_asyncGrabDataAsyncgrab_data_asyncGrabDataAsyncGrabDataAsync runs in parallel with all non-exclusive operators inside and outside of this group.

Parallelization

Parameters

ImageImageImageImageImageimage (output_object)  image(-array) objectHImageHImageHImageHImageXHobject * (byte / real / uint2)

Grabbed image data.

RegionRegionRegionRegionRegionregion (output_object)  region(-array) objectHRegionHRegionHRegionHRegionXHobject *

Pre-processed image regions.

ContoursContoursContoursContoursContourscontours (output_object)  xld_cont(-array) objectHXLDContHXLDContHXLDContHXLDContXHobject *

Pre-processed XLD contours.

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

Handle of the acquisition device to be used.

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

Maximum tolerated delay between the start of the asynchronous grab and the delivery of the image [ms].

Default value: -1.0

Suggested values: -1.0, 20.0, 33.3, 40.0, 66.6, 80.0, 99.9

DataDataDataDataDatadata (output_control)  string(-array) HTupleHTupleHTupleVARIANTHtuple (string / real / integer) (string / double / int / long) (HString / double / Hlong) (char* / double / Hlong) (BSTR / double / Hlong) (char* / double / Hlong)

Pre-processed control data.

Example (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)

Result

If the image acquisition device is open and supports the image acquisition via grab_data_asyncgrab_data_asyncGrabDataAsyncgrab_data_asyncGrabDataAsyncGrabDataAsync, the operator grab_data_asyncgrab_data_asyncGrabDataAsyncgrab_data_asyncGrabDataAsyncGrabDataAsync returns the value 2 (H_MSG_TRUE). Otherwise an exception is raised.

Possible Predecessors

open_framegrabberopen_framegrabberOpenFramegrabberopen_framegrabberOpenFramegrabberOpenFramegrabber, grab_image_startgrab_image_startGrabImageStartgrab_image_startGrabImageStartGrabImageStart, set_framegrabber_paramset_framegrabber_paramSetFramegrabberParamset_framegrabber_paramSetFramegrabberParamSetFramegrabberParam

Possible Successors

grab_image_asyncgrab_image_asyncGrabImageAsyncgrab_image_asyncGrabImageAsyncGrabImageAsync, set_framegrabber_paramset_framegrabber_paramSetFramegrabberParamset_framegrabber_paramSetFramegrabberParamSetFramegrabberParam, close_framegrabberclose_framegrabberCloseFramegrabberclose_framegrabberCloseFramegrabberCloseFramegrabber

See also

open_framegrabberopen_framegrabberOpenFramegrabberopen_framegrabberOpenFramegrabberOpenFramegrabber, info_framegrabberinfo_framegrabberInfoFramegrabberinfo_framegrabberInfoFramegrabberInfoFramegrabber, set_framegrabber_paramset_framegrabber_paramSetFramegrabberParamset_framegrabber_paramSetFramegrabberParamSetFramegrabberParam

Module

Foundation


ClassesClassesClassesClasses | | | | Operators