Skip to content

grab_image_startGrabImageStartGrabImageStartgrab_image_startT_grab_image_start🔗

Short description🔗

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

Signature🔗

grab_image_start( framegrabber AcqHandle, number MaxDelay )void GrabImageStart( const HTuple& AcqHandle, const HTuple& MaxDelay )static void HOperatorSet.GrabImageStart( HTuple acqHandle, HTuple maxDelay )def grab_image_start( acq_handle: HHandle, max_delay: float ) -> None

Herror T_grab_image_start( const Htuple AcqHandle, const Htuple MaxDelay )

void HFramegrabber::GrabImageStart( double MaxDelay ) const

void HFramegrabber.GrabImageStart( double maxDelay )

Description🔗

The operator grab_image_startGrabImageStart starts the asynchronous grab of an image via the image acquisition device specified by AcqHandleacqHandleacq_handle. 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_framegrabberOpenFramegrabber and set_framegrabber_paramSetFramegrabberParam.

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

Please note that the operator grab_image_startGrabImageStart makes sense only when used together with grab_image_asyncGrabImageAsync or grab_data_asyncGrabDataAsync. If you call the operators grab_imageGrabImage or grab_dataGrabData instead, the asynchronous grab started by grab_image_startGrabImageStart is aborted and a new synchronous grab is started.

To abort the grab, the operator set_framegrabber_paramSetFramegrabberParam 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, info_framegrabberInfoFramegrabber, open_framegrabberOpenFramegrabber, and close_framegrabberCloseFramegrabber are executed exclusively.

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

Execution information🔗

Execution information
  • Multithreading type: reentrant (runs in parallel with non-exclusive operators).

  • Multithreading scope: global (may be called from any thread).

  • Processed without parallelization.

Parameters🔗

AcqHandleacqHandleacq_handle (input_control) framegrabber → (handle)HTuple (HHandle)HFramegrabber, HTuple (IntPtr)HHandleHtuple (handle)

Handle of the acquisition device to be used.

MaxDelaymaxDelaymax_delay (input_control) number → (real)HTuple (double)HTuple (double)floatHtuple (double)

This parameter is obsolete and has no effect.

Default: -1.0-1.0
Suggested values: -1.0, 20.0, 33.3, 40.0, 66.6, 80.0, 99.9-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)

Result🔗

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

Combinations with other operators🔗

Combinations

Possible predecessors

open_framegrabberOpenFramegrabber, set_framegrabber_paramSetFramegrabberParam

Possible successors

grab_image_asyncGrabImageAsync, grab_data_asyncGrabDataAsync, set_framegrabber_paramSetFramegrabberParam, close_framegrabberCloseFramegrabber

See also

open_framegrabberOpenFramegrabber, info_framegrabberInfoFramegrabber, set_framegrabber_paramSetFramegrabberParam

Module🔗

Foundation