ClassesClassesClassesClasses | | | | Operators

grab_image_startgrab_image_startGrabImageStartgrab_image_startGrabImageStartGrabImageStart (Operator)

Name

grab_image_startgrab_image_startGrabImageStartgrab_image_startGrabImageStartGrabImageStart — Start an asynchronous grab from the specified image acquisition device.

Signature

grab_image_start( : : AcqHandle, MaxDelay : )

Herror grab_image_start(const Hlong AcqHandle, double MaxDelay)

Herror T_grab_image_start(const Htuple AcqHandle, const Htuple MaxDelay)

Herror grab_image_start(const HTuple& AcqHandle, const HTuple& MaxDelay)

void HFramegrabber::GrabImageStart(const HTuple& MaxDelay) const

void GrabImageStart(const HTuple& AcqHandle, const HTuple& MaxDelay)

void HFramegrabber::GrabImageStart(double MaxDelay) const

void HOperatorSetX.GrabImageStart(
[in] VARIANT AcqHandle, [in] VARIANT MaxDelay)

void HFramegrabberX.GrabImageStart([in] double MaxDelay)

static void HOperatorSet.GrabImageStart(HTuple acqHandle, HTuple maxDelay)

void HFramegrabber.GrabImageStart(double maxDelay)

Description

The operator grab_image_startgrab_image_startGrabImageStartgrab_image_startGrabImageStartGrabImageStart starts the asynchronous grab of an image via the image acquisition device specified by AcqHandleAcqHandleAcqHandleAcqHandleAcqHandleacqHandle. 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.

The grab is finished via grab_image_asyncgrab_image_asyncGrabImageAsyncgrab_image_asyncGrabImageAsyncGrabImageAsync or grab_data_asyncgrab_data_asyncGrabDataAsyncgrab_data_asyncGrabDataAsyncGrabDataAsync. The MaxDelayMaxDelayMaxDelayMaxDelayMaxDelaymaxDelay parameter is obsolete and does not effect the new asynchronous grab. Note that you can check for a too old image by using the MaxDelayMaxDelayMaxDelayMaxDelayMaxDelaymaxDelay parameter of the operator grab_image_asyncgrab_image_asyncGrabImageAsyncgrab_image_asyncGrabImageAsyncGrabImageAsync or grab_data_asyncgrab_data_asyncGrabDataAsyncgrab_data_asyncGrabDataAsyncGrabDataAsync, respectively.

Please note that the operator grab_image_startgrab_image_startGrabImageStartgrab_image_startGrabImageStartGrabImageStart makes sense only when used together with grab_image_asyncgrab_image_asyncGrabImageAsyncgrab_image_asyncGrabImageAsyncGrabImageAsync or grab_data_asyncgrab_data_asyncGrabDataAsyncgrab_data_asyncGrabDataAsyncGrabDataAsync. If you call the operators grab_imagegrab_imageGrabImagegrab_imageGrabImageGrabImage or grab_datagrab_dataGrabDatagrab_dataGrabDataGrabData instead, the asynchronous grab started by grab_image_startgrab_image_startGrabImageStartgrab_image_startGrabImageStartGrabImageStart is aborted and a new synchronous grab is started.

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.

Attention

Basically an image acquisition handle AcqHandleAcqHandleAcqHandleAcqHandleAcqHandleacqHandle cannot be used in multiple threads. However, possible exceptions are described in the specific reference documentation of the respective image acquisition interface. Different image acquisition handles can be used safely with different threads for each handle.

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_image_startgrab_image_startGrabImageStartgrab_image_startGrabImageStartGrabImageStart runs in parallel with all non-exclusive operators inside and outside of this group.

Parallelization

Parameters

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)

This parameter is obsolete and has no effect.

Default value: -1.0

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

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(Image1,AcqHandle)
* Start next grab
grab_image_start(AcqHandle,-1.0)
* Process Image1 ...
* Finish asynchronous grab + start next grab
grab_image_async(Image2,AcqHandle,-1.0)
* Process Image2 ...
close_framegrabber(AcqHandle)

Example (C)

/* 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(&Image1,AcqHandle) ;
/* Start next grab */
grab_image_start(AcqHandle,-1.0) ;
/* Process Image1... */
/* Finish asynchronous grab + start next grab */
grab_image_async(&Image2,AcqHandle,-1.0) ;
/* Process Image2... */
close_framegrabber(AcqHandle) ;

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(Image1,AcqHandle)
* Start next grab
grab_image_start(AcqHandle,-1.0)
* Process Image1 ...
* Finish asynchronous grab + start next grab
grab_image_async(Image2,AcqHandle,-1.0)
* Process Image2 ...
close_framegrabber(AcqHandle)

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(Image1,AcqHandle)
* Start next grab
grab_image_start(AcqHandle,-1.0)
* Process Image1 ...
* Finish asynchronous grab + start next grab
grab_image_async(Image2,AcqHandle,-1.0)
* Process Image2 ...
close_framegrabber(AcqHandle)

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(Image1,AcqHandle)
* Start next grab
grab_image_start(AcqHandle,-1.0)
* Process Image1 ...
* Finish asynchronous grab + start next grab
grab_image_async(Image2,AcqHandle,-1.0)
* Process Image2 ...
close_framegrabber(AcqHandle)

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(Image1,AcqHandle)
* Start next grab
grab_image_start(AcqHandle,-1.0)
* Process Image1 ...
* Finish asynchronous grab + start next grab
grab_image_async(Image2,AcqHandle,-1.0)
* Process Image2 ...
close_framegrabber(AcqHandle)

Result

If the image acquisition device is open and supports asynchronous grabbing the operator grab_image_startgrab_image_startGrabImageStartgrab_image_startGrabImageStartGrabImageStart returns the value 2 (H_MSG_TRUE). Otherwise an exception is raised.

Possible Predecessors

open_framegrabberopen_framegrabberOpenFramegrabberopen_framegrabberOpenFramegrabberOpenFramegrabber, set_framegrabber_paramset_framegrabber_paramSetFramegrabberParamset_framegrabber_paramSetFramegrabberParamSetFramegrabberParam

Possible Successors

grab_image_asyncgrab_image_asyncGrabImageAsyncgrab_image_asyncGrabImageAsyncGrabImageAsync, grab_data_asyncgrab_data_asyncGrabDataAsyncgrab_data_asyncGrabDataAsyncGrabDataAsync, 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