ClassesClasses | | Operators

grab_image_startT_grab_image_startGrabImageStartGrabImageStart (Operator)

Name

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

Signature

grab_image_start( : : AcqHandle, MaxDelay : )

Herror T_grab_image_start(const Htuple AcqHandle, const Htuple MaxDelay)

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

void HFramegrabber::GrabImageStart(double MaxDelay) const

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

void HFramegrabber.GrabImageStart(double maxDelay)

Description

The operator grab_image_startgrab_image_startGrabImageStartGrabImageStartGrabImageStart starts the asynchronous grab of an image via the image acquisition device specified by AcqHandleAcqHandleAcqHandleAcqHandleacqHandle. 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_framegrabberOpenFramegrabberOpenFramegrabberOpenFramegrabber and set_framegrabber_paramset_framegrabber_paramSetFramegrabberParamSetFramegrabberParamSetFramegrabberParam.

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

Please note that the operator grab_image_startgrab_image_startGrabImageStartGrabImageStartGrabImageStart makes sense only when used together with grab_image_asyncgrab_image_asyncGrabImageAsyncGrabImageAsyncGrabImageAsync or grab_data_asyncgrab_data_asyncGrabDataAsyncGrabDataAsyncGrabDataAsync. If you call the operators grab_imagegrab_imageGrabImageGrabImageGrabImage or grab_datagrab_dataGrabDataGrabDataGrabData instead, the asynchronous grab started by grab_image_startgrab_image_startGrabImageStartGrabImageStartGrabImageStart is aborted and a new synchronous grab is started.

To abort the grab, the operator set_framegrabber_paramset_framegrabber_paramSetFramegrabberParamSetFramegrabberParamSetFramegrabberParam 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

For a multithreaded application all image acquisition operators (as listed in open_framegrabberopen_framegrabberOpenFramegrabberOpenFramegrabberOpenFramegrabber) are an own group in which info_framegrabberinfo_framegrabberInfoFramegrabberInfoFramegrabberInfoFramegrabber, open_framegrabberopen_framegrabberOpenFramegrabberOpenFramegrabberOpenFramegrabber, close_framegrabberclose_framegrabberCloseFramegrabberCloseFramegrabberCloseFramegrabber and close_all_framegrabbersclose_all_framegrabbersCloseAllFramegrabbersCloseAllFramegrabbersCloseAllFramegrabbers are executed exclusively.

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

Execution Information

Parameters

AcqHandleAcqHandleAcqHandleAcqHandleacqHandle (input_control)  framegrabber HFramegrabber, HTupleHTupleHtuple (handle) (IntPtr) (HHandle) (handle)

Handle of the acquisition device to be used.

MaxDelayMaxDelayMaxDelayMaxDelaymaxDelay (input_control)  number HTupleHTupleHtuple (real) (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 named AcqName.
open_framegrabber('AcqName', 1, 1, 0, 0, 0, 0, 'default', -1, 'default', \
                  -1.0, 'default', 'default', 'default', -1, -1, AcqHandle)
* Start asynchronous grabbing.
grab_image_start(AcqHandle, -1)
* Run acquisition loop.
while (true)
    * Get image, start next grab.
    grab_image_async(Image, AcqHandle, -1.0)
    * Next: Do something with the grabbed image.
endwhile
close_framegrabber(AcqHandle)

Example (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) ;
/* Start asynchronous grabbing. */
grab_image_start(AcqHandle, -1) ;
/* Run acquisition loop. */
while (1) {
    /* Get image, start next grab. */
    grab_image_async(&Image, AcqHandle, -1.0) ;
    /* Next: Do something with the grabbed image. */
}
close_framegrabber(AcqHandle) ;

Example (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)
* Start asynchronous grabbing.
grab_image_start(AcqHandle, -1)
* Run acquisition loop.
while (true)
    * Get image, start next grab.
    grab_image_async(Image, AcqHandle, -1.0)
    * Next: Do something with the grabbed image.
endwhile
close_framegrabber(AcqHandle)

Example (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)
* Start asynchronous grabbing.
grab_image_start(AcqHandle, -1)
* Run acquisition loop.
while (true)
    * Get image, start next grab.
    grab_image_async(Image, AcqHandle, -1.0)
    * Next: Do something with the grabbed image.
endwhile
close_framegrabber(AcqHandle)

Example (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)
* Start asynchronous grabbing.
grab_image_start(AcqHandle, -1)
* Run acquisition loop.
while (true)
    * Get image, start next grab.
    grab_image_async(Image, AcqHandle, -1.0)
    * Next: Do something with the grabbed image.
endwhile
close_framegrabber(AcqHandle)

Result

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

Possible Predecessors

open_framegrabberopen_framegrabberOpenFramegrabberOpenFramegrabberOpenFramegrabber, set_framegrabber_paramset_framegrabber_paramSetFramegrabberParamSetFramegrabberParamSetFramegrabberParam

Possible Successors

grab_image_asyncgrab_image_asyncGrabImageAsyncGrabImageAsyncGrabImageAsync, grab_data_asyncgrab_data_asyncGrabDataAsyncGrabDataAsyncGrabDataAsync, set_framegrabber_paramset_framegrabber_paramSetFramegrabberParamSetFramegrabberParamSetFramegrabberParam, close_framegrabberclose_framegrabberCloseFramegrabberCloseFramegrabberCloseFramegrabber

See also

open_framegrabberopen_framegrabberOpenFramegrabberOpenFramegrabberOpenFramegrabber, info_framegrabberinfo_framegrabberInfoFramegrabberInfoFramegrabberInfoFramegrabber, set_framegrabber_paramset_framegrabber_paramSetFramegrabberParamSetFramegrabberParamSetFramegrabberParam

Module

Foundation


ClassesClasses | | Operators