Image Manager (CVCDriver.dll) 14.0

Interface for continuously acquiring images. More...

Enumerations

enum  RINGBUFFER_INFO_CMD { RINGBUFFER_INFO_TIMESTAMP = 0 , RINGBUFFER_INFO_TAG = 1 , RINGBUFFER_INFO_LOCKED = 2 }
 
More...
 
enum  RINGBUFFER_LOCKMODE { RINGBUFFER_LOCKMODE_AUTO = 0 , RINGBUFFER_LOCKMODE_OFF = 1 , RINGBUFFER_LOCKMODE_ON = 2 , RINGBUFFER_LOCKMODE_INVALID = 3 }
 
More...
 
enum  RINGBUFFER_LOCKMODE_CMD { RINGBUFFER_LOCKMODE_CMD_GET = 0 , RINGBUFFER_LOCKMODE_CMD_SET = 1 , RINGBUFFER_LOCKMODE_CMD_VALIDATE = 2 }
 
More...
 
enum  RINGBUFFER_NUMBUFFER_CMD { RINGBUFFER_NUMBUFFER_CMD_GET = 0 , RINGBUFFER_NUMBUFFER_CMD_SET = 1 , RINGBUFFER_NUMBUFFER_CMD_VALIDATE = 2 }
 
More...
 

Functions

cvbbool_t CanRingBuffer (IMG Image)
 This function verifies whether the image supports the RingBuffer interface. More...
 
cvbres_t RBBufferSeq (IMG Image, cvbval_t lSequenceIndex, cvbval_t &lBufferIndex)
 Returns the buffer index for a given sequence number. More...
 
cvbres_t RBGetBufferImage (IMG Image, cvbval_t lBufferIndex, IMG &I)
 Returns a new image object which dereferences a specifc image buffer. More...
 
cvbres_t RBGetRingBufferInfo (IMG Image, cvbval_t lBufferIndex, RINGBUFFER_INFO_CMD lRequestedInformation, double &dInfo)
 Returns additional information for a specific buffer. More...
 
cvbres_t RBIsLocked (IMG Image, cvbval_t lBufferIndex, cvbbool_t &BIsLocked)
 Checks if a specific imagebuffer is locked or not. More...
 
cvbres_t RBLockMode (IMG Image, RINGBUFFER_LOCKMODE_CMD lAction, RINGBUFFER_LOCKMODE &lMode)
 Sets the Lockmode. More...
 
cvbres_t RBNumBuffer (IMG Image, RINGBUFFER_NUMBUFFER_CMD lAction, cvbval_t &lNum, IMG &imgNew)
 Sets, gets or validates the number of imagebuffers in the image. More...
 
cvbres_t RBUnlock (IMG Image, cvbval_t lBufferIndex)
 Manually unlocks a specific buffer. More...
 

Detailed Description

Interface for continuously acquiring images.

Enumeration Type Documentation

◆ RINGBUFFER_INFO_CMD


Attention
The list below descripes the specific constant declarations and typedefs. There are declared in the header file iCVCDriver.* .
Enumerator
RINGBUFFER_INFO_TIMESTAMP 

Inquire the timestamp of a buffer image.

Attention
This feature is optional and may not be implemented by any driver.
RINGBUFFER_INFO_TAG 

Inquire a tag for a buffer image.

Attention
This feature is optional and may not be implemented by any driver.
RINGBUFFER_INFO_LOCKED 

Inquire the lockstatus for a buffer image.

◆ RINGBUFFER_LOCKMODE


Attention
The lock mode can't be changed while a grab is active. You may have to stop the acquisition before changing the lockmode.
The list below descripes the specific constant declarations and typedefs. There are declared in the header file iCVCDriver.* .
Enumerator
RINGBUFFER_LOCKMODE_AUTO 

Sets the lock mode to auto.
That means that a buffer is automatically unlocked with the next call to G2Wait. This is the traditional CVB behavior if you are using any of the acquisition interfaces or controls.

RINGBUFFER_LOCKMODE_OFF 

Don't lock buffers at all.
Simply acquire into the ringbuffer and overwrite the image data.

RINGBUFFER_LOCKMODE_ON 

Don't unlock buffers automatically.
The buffer has to be unlocked manually with RBUnlock to enable a new data transfer into that buffer.

Using this mode it's possible to write a very high speed sequence into memory by simply start a grab with lock mode set to ON, wait for a certain time till all buffers are locked and then call G2Freeze.

Attention
If all buffers are locked the system looses images.
RINGBUFFER_LOCKMODE_INVALID 

Lock mode returned from RBLockMode with the RINGBUFFER_LOCKMODE_CMD_VALIDATE command (see RINGBUFFER_LOCKMODE_CMD)
if the specified lock mode was not available.

◆ RINGBUFFER_LOCKMODE_CMD


Attention
The list below describes the specific constant declarations and typedefs. There are declared in the header file iCVCDriver.*.
Enumerator
RINGBUFFER_LOCKMODE_CMD_GET 

Get active lock mode.

RINGBUFFER_LOCKMODE_CMD_SET 

Set active lock mode.

RINGBUFFER_LOCKMODE_CMD_VALIDATE 

Validate active lock mode.

◆ RINGBUFFER_NUMBUFFER_CMD


Attention
The number of buffers can't be changed while the grab is active. Stop the acquisition before changing the number of buffers.
The list below describes the specific constant declarations and typedefs. There are declared in the header file iCVCDriver.*.
Enumerator
RINGBUFFER_NUMBUFFER_CMD_GET 

Get the Number of buffers in your ring buffer.

RINGBUFFER_NUMBUFFER_CMD_SET 

Set the number of buffers in your ringbuffer.

RINGBUFFER_NUMBUFFER_CMD_VALIDATE 

Validate that a given number of buffers is valid.

Function Documentation

◆ CanRingBuffer()

cvbbool_t CanRingBuffer ( IMG  Image)

This function verifies whether the image supports the RingBuffer interface.

Parameters
[in]ImageHandle of image object.
Returns
TRUE if the image supports the RingBuffer interface, FALSE otherwise.
Supported platforms:
Win32
Win64
Linux
Examples:
Delphi - Delphi RingBuffer Example
Visual Basic - VB RingBuffer Example 1, VB RingBuffer Example 2
Visual C++ - VC Driver MDI Example (DLL only)

◆ RBBufferSeq()

cvbres_t RBBufferSeq ( IMG  Image,
cvbval_t  lSequenceIndex,
cvbval_t &  lBufferIndex 
)

Returns the buffer index for a given sequence number.

E.g. the SequenceNumber '0' returns the index of the last buffer acquired by G2Wait. SequenceNumber NumBuffers-1 returns the index of the 'oldest' image in the ringbuffer acquired by G2Wait.

Parameters
[in]ImageHandle of image object.
[in]lSequenceIndexIndex in the sequence.
[out]lBufferIndexIndex of the buffer.
Returns
>=0 : OK
<0 : an error occured
Supported platforms:
Win32
Win64
Linux
Examples:
Visual C++ - VC Driver MDI Example (DLL only)

◆ RBGetBufferImage()

cvbres_t RBGetBufferImage ( IMG  Image,
cvbval_t  lBufferIndex,
IMG &  I 
)

Returns a new image object which dereferences a specifc image buffer.

For example:
If you use 5 imagebuffers in the ringbuffer and you call RBGetBufferImage with a BufferIndex of 3 you will get a new image which containes the data of the forth image buffer.
To retrieve the index of the last (timewise) acquired imagebuffer call RBBufferSeq function with a sequence number of 0.

Attention
Release the image when it is no longer needed to decrement the image reference counter.
Parameters
[in]ImageHandle of image object.
[in]lBufferIndexNumber of buffer for returned image.
[out]INew image.
Returns
>=0 : OK
<0 : an error occured
Supported platforms:
Win32
Win64
Linux
Examples:
Visual C++ - VC Driver MDI Example (DLL only)

◆ RBGetRingBufferInfo()

cvbres_t RBGetRingBufferInfo ( IMG  Image,
cvbval_t  lBufferIndex,
RINGBUFFER_INFO_CMD  lRequestedInformation,
double &  dInfo 
)

Returns additional information for a specific buffer.

Parameters
[in]ImageHandle of image object.
[in]lBufferIndexIndex of the buffer to get the status for.
[in]lRequestedInformationCommand to execute (see RINGBUFFER_INFO_CMD).
[out]dInfoReturn value containing the information.
Returns
>=0 : OK
<0 : an error occured
Supported platforms:
Win32
Win64
Linux
Examples:
Visual C++ - VC Driver MDI Example (DLL only)

◆ RBIsLocked()

cvbres_t RBIsLocked ( IMG  Image,
cvbval_t  lBufferIndex,
cvbbool_t &  BIsLocked 
)

Checks if a specific imagebuffer is locked or not.

Parameters
[in]ImageHandle of image object.
[in]lBufferIndexNumber of buffer ot check.
[out]BIsLockedTRUE indicates that the buffer is locked, FALSE otherwise.
Returns
>=0 : OK
<0 : an error occured
Supported platforms:
Win32
Win64
Linux
Examples:
Visual C++ - VC Driver MDI Example (DLL only)

◆ RBLockMode()

cvbres_t RBLockMode ( IMG  Image,
RINGBUFFER_LOCKMODE_CMD  lAction,
RINGBUFFER_LOCKMODE lMode 
)

Sets the Lockmode.

Attention
It is not allowed to change the number of buffers while a grab is active.
Parameters
[in]ImageHandle of image object.
[in]lActionCommand to execute (see RINGBUFFER_LOCKMODE_CMD).
[out]lModeMode to set (see RINGBUFFER_LOCKMODE).
Returns
>=0 : OK
<0 : an error occured
Supported platforms:
Win32
Win64
Linux
Related Topics:
RBUnlock
Examples:
Visual C++ - VC Driver MDI Example (DLL only)

◆ RBNumBuffer()

cvbres_t RBNumBuffer ( IMG  Image,
RINGBUFFER_NUMBUFFER_CMD  lAction,
cvbval_t &  lNum,
IMG &  imgNew 
)

Sets, gets or validates the number of imagebuffers in the image.

Attention
It is not allowed to change the number of buffers while a grab is active.
Parameters
[in]ImageHandle of image object.
[in]lActionCommand to execute (see RINGBUFFER_NUMBUFFER_CMD).
[in,out]lNumNumber of images (get or set depends on the command).
[in,out]imgNewIf the number of buffers in the images changes, this parameter returns the new image.
Returns
>=0 : OK
<0 : an error occured
Supported platforms:
Win32
Win64
Linux
Examples:
Visual C++ - VC Driver MDI Example (DLL only)

◆ RBUnlock()

cvbres_t RBUnlock ( IMG  Image,
cvbval_t  lBufferIndex 
)

Manually unlocks a specific buffer.

Use this function to unlock a buffer when using RINGBUFFER_LOCKMODE_ON lockmode. Do not use this function for any other lockmode (see RINGBUFFER_NUMBUFFER_CMD for more information).

Parameters
[in]ImageHandle of image object.
[in]lBufferIndexNumber of the buffer to unlock.
Returns
>=0 : OK
<0 : an error occured
Supported platforms:
Win32
Win64
Linux
Related Topics:
RBLockMode
Examples:
Visual C++ - VC Driver MDI Example (DLL only)