VmbC C API Function Reference#

Overview#

VmbVersionQuery()

VmbStartup() VmbShutdown()

VmbTransportLayersList()

VmbInterfacesList()

VmbCamerasList() VmbCameraInfoQuery() VmbCameraOpen() VmbCameraClose()

VmbFeaturesList() VmbFeatureInfoQuery() VmbFeatureAccessQuery() VmbFeatureListSelected()

VmbFeatureIntGet() VmbFeatureIntSet() VmbFeatureIntRangeQuery() VmbFeatureIntIncrementQuery() VmbFeatureIntValidValueSetQuery()

VmbFeatureFloatGet() VmbFeatureFloatSet() VmbFeatureFloatRangeQuery()

VmbFeatureEnumGet() VmbFeatureEnumSet() VmbFeatureEnumRangeQuery() VmbFeatureEnumIsAvailable() VmbFeatureEnumAsInt() VmbFeatureEnumAsString() VmbFeatureEnumEntryGet()

VmbFeatureStringGet() VmbFeatureStringSet() VmbFeatureStringMaxlengthQuery()

VmbFeatureBoolGet() VmbFeatureBoolSet()

VmbFeatureCommandRun() VmbFeatureCommandIsDone()

VmbFeatureRawGet() VmbFeatureRawSet() VmbFeatureRawLengthQuery()

VmbFeatureInvalidationRegister() VmbFeatureInvalidationUnregister()

VmbFrameAnnounce() VmbFrameRevoke() VmbFrameRevokeAll() VmbCaptureStart() VmbCaptureEnd() VmbCaptureFrameQueue() VmbCaptureFrameWait() VmbCaptureQueueFlush()

VmbMemoryRead() VmbMemoryWrite() VmbRegistersRead() VmbRegistersWrite()

VmbCameraSettingsSave() VmbCameraSettingsLoad()

VmbChunkDataAccess()

API Version#

struct VmbVersionInfo#

Version information.

Out

VmbUint32_t major#

Major version number.

VmbUint32_t minor#

Minor version number.

VmbUint32_t patch#

Patch version number.

typedef struct VmbVersionInfo VmbVersionInfo_t#
VmbError_t VmbVersionQuery(VmbVersionInfo_t *versionInfo, VmbUint32_t sizeofVersionInfo)#

Retrieve the version number of VmbC.

This function can be called at anytime, even before the API is initialized. All other version numbers may be queried via feature access.

Parameters:
  • versionInfo[out] Pointer to the struct where version information resides

  • sizeofVersionInfo[in] Size of structure in bytes

Return values:
  • VmbErrorSuccess – The call was successful

  • VmbErrorInvalidCall – If called from a chunk access callback.

  • VmbErrorStructSize – The given struct size is not valid for this version of the API

  • VmbErrorBadParameterversionInfo is null.

Returns:

An error code indicating success or the type of error.

API Initialization#

struct VmbCameraInfo#

Camera information.

Holds read-only information about a camera.

Out

const char *cameraIdString#

Identifier of the camera.

const char *cameraIdExtended#

globally unique identifier for the camera

const char *cameraName#

The display name of the camera.

const char *modelName#

Model name.

const char *serialString#

Serial number.

VmbHandle_t transportLayerHandle#

Handle of the related transport layer for feature access.

VmbHandle_t interfaceHandle#

Handle of the related interface for feature access.

VmbHandle_t localDeviceHandle#

Handle of the related GenTL local device. NULL if the camera is not opened.

VmbHandle_t const *streamHandles#

Handles of the streams provided by the camera. NULL if the camera is not opened.

VmbUint32_t streamCount#

Number of stream handles in the streamHandles array.

VmbAccessMode_t permittedAccess#

Permitted access modes, see VmbAccessModeType.

typedef struct VmbCameraInfo VmbCameraInfo_t#
VmbError_t VmbStartup(const VmbFilePathChar_t *pathConfiguration)#

Initializes the VmbC API.

Note: This function must be called before any VmbC function other than VmbVersionQuery() is run.

Parameters:

pathConfiguration[in] A string containing a semicolon (Windows) or colon (other os) separated list of paths. The paths contain directories to search for .cti files, paths to .cti files and optionally the path to a configuration xml file. If null is passed, the .cti files from the default configuration xml file are considered. If no paths are configured in the xml file, the paths from the GENICAM_GENTL{32|64}_PATH environment variable are considered. In addition to that, .cti files located next to the VmbC library are considered.

Return values:
  • VmbErrorSuccess – The call was successful.

  • VmbErrorAlready – This function was called before and no VmbShutdown call has completed on a non-callback thread after this VmbStartup call.

  • VmbErrorInvalidCall – If called from a callback or VmbShutdown is currently running or the function is called from a Vmb callback.

  • VmbErrorBadParameterpathConfiguration contains only separator and whitespace chars.

  • VmbErrorXml – If parsing the settings xml is unsuccessful; a missing default xml file does not result in this error.

  • VmbErrorTLNotFound – A transport layer that was marked as required was not found.

  • VmbErrorNoTL – No transport layer was found on the system; note that some of the transport layers may have been filtered out via the settings file.

  • VmbErrorIO – A log file should be written according to the settings xml file, but this log file could not be opened.

Returns:

An error code indicating success or the type of error that occurred.

void VmbShutdown(void)#

Perform a shutdown of the API.

This frees some resources and deallocates all physical resources if applicable.

The call is silently ignored, if executed from a callback.

Transport Layer Enumeration & Information#

struct VmbTransportLayerInfo#

Transport layer information.

Holds read-only information about a transport layer.

Out

const char *transportLayerIdString#

Unique id of the transport layer.

const char *transportLayerName#

Name of the transport layer.

const char *transportLayerModelName#

Model name of the transport layer.

const char *transportLayerVendor#

Vendor of the transport layer.

const char *transportLayerVersion#

Version of the transport layer.

const char *transportLayerPath#

Full path of the transport layer.

VmbHandle_t transportLayerHandle#

Handle of the transport layer for feature access.

VmbTransportLayerType_t transportLayerType#

The type of the transport layer.

typedef struct VmbTransportLayerInfo VmbTransportLayerInfo_t#
VmbError_t VmbTransportLayersList(VmbTransportLayerInfo_t *transportLayerInfo, VmbUint32_t listLength, VmbUint32_t *numFound, VmbUint32_t sizeofTransportLayerInfo)#

List all the transport layers that are used by the API.

Note: This function is usually called twice: once with an empty array to query the length of the list, and then again with an array of the correct length.

Parameters:
  • transportLayerInfo[inout] Array of VmbTransportLayerInfo_t, allocated by the caller. The transport layer list is copied here. May be null.

  • listLength[in] Number of entries in the caller’s transportLayerInfo array.

  • numFound[inout] Number of transport layers found. May be more than listLength.

  • sizeofTransportLayerInfo[in] Size of one VmbTransportLayerInfo_t entry (ignored if transportLayerInfo is null).

Return values:
  • VmbErrorSuccess – The call was successful

  • VmbErrorInvalidCall – If called from a chunk access callback

  • VmbErrorApiNotStartedVmbStartup() was not called before the current command

  • VmbErrorInternalFault – An internal fault occurred

  • VmbErrorNotImplemented – One of the transport layers does not provide the required information

  • VmbErrorBadParameternumFound is null

  • VmbErrorStructSize – The given struct size is not valid for this API version

  • VmbErrorMoreData – The given list length was insufficient to hold all available entries

Returns:

An error code indicating success or the type of error that occurred.

Interface Enumeration & Information#

struct VmbInterfaceInfo#

Interface information.

Holds read-only information about an interface.

Out

const char *interfaceIdString#

Identifier of the interface.

const char *interfaceName#

Interface name, given by the transport layer.

VmbHandle_t interfaceHandle#

Handle of the interface for feature access.

VmbHandle_t transportLayerHandle#

Handle of the related transport layer for feature access.

VmbTransportLayerType_t interfaceType#

The technology of the interface.

typedef struct VmbInterfaceInfo VmbInterfaceInfo_t#
VmbError_t VmbInterfacesList(VmbInterfaceInfo_t *interfaceInfo, VmbUint32_t listLength, VmbUint32_t *numFound, VmbUint32_t sizeofInterfaceInfo)#

List all the interfaces that are currently visible to the API.

Note: All the interfaces known via GenICam transport layers are listed by this command and filled into the provided array. Interfaces may correspond to adapter cards or frame grabber cards. This function is usually called twice: once with an empty array to query the length of the list, and then again with an array of the correct length.

Parameters:
  • interfaceInfo[inout] Array of VmbInterfaceInfo_t, allocated by the caller. The interface list is copied here. May be null.

  • listLength[in] Number of entries in the callers interfaceInfo array

  • numFound[inout] Number of interfaces found. Can be more than listLength

  • sizeofInterfaceInfo[in] Size of one VmbInterfaceInfo_t entry

Return values:
  • VmbErrorSuccess – The call was successful

  • VmbErrorInvalidCall – If called from a chunk access callback

  • VmbErrorApiNotStartedVmbStartup() was not called before the current command

  • VmbErrorBadParameternumFound is null

  • VmbErrorStructSize – The given struct size is not valid for this API version

  • VmbErrorMoreData – The given list length was insufficient to hold all available entries

Returns:

An error code indicating success or the type of error that occurred.

Camera Enumeration & Information#

struct VmbCameraInfo

Camera information.

Holds read-only information about a camera.

Out

const char *cameraIdString

Identifier of the camera.

const char *cameraIdExtended

globally unique identifier for the camera

const char *cameraName

The display name of the camera.

const char *modelName

Model name.

const char *serialString

Serial number.

VmbHandle_t transportLayerHandle

Handle of the related transport layer for feature access.

VmbHandle_t interfaceHandle

Handle of the related interface for feature access.

VmbHandle_t localDeviceHandle

Handle of the related GenTL local device. NULL if the camera is not opened.

VmbHandle_t const *streamHandles

Handles of the streams provided by the camera. NULL if the camera is not opened.

VmbUint32_t streamCount

Number of stream handles in the streamHandles array.

VmbAccessMode_t permittedAccess

Permitted access modes, see VmbAccessModeType.

typedef struct VmbCameraInfo VmbCameraInfo_t
VmbError_t VmbCamerasList(VmbCameraInfo_t *cameraInfo, VmbUint32_t listLength, VmbUint32_t *numFound, VmbUint32_t sizeofCameraInfo)#

List all the cameras that are currently visible to the API.

Note: This function is usually called twice: once with an empty array to query the length of the list, and then again with an array of the correct length. If camera lists change between the calls, numFound may deviate from the query return.

Parameters:
  • cameraInfo[inout] Array of VmbCameraInfo_t, allocated by the caller. The camera list is copied here. May be null.

  • listLength[in] Number of entries in the callers cameraInfo array.

  • numFound[inout] Number of cameras found. Can be more than listLength.

  • sizeofCameraInfo[in] Size of one VmbCameraInfo_t entry (if cameraInfo is null, this parameter is ignored).

Return values:
  • VmbErrorSuccess – The call was successful

  • VmbErrorInvalidCall – If called from a chunk access callback

  • VmbErrorApiNotStartedVmbStartup() was not called before the current command

  • VmbErrorBadParameternumFound is null

  • VmbErrorStructSize – The given struct size is not valid for this API version and cameraInfo is not null

  • VmbErrorMoreData – The given list length was insufficient to hold all available entries

Returns:

An error code indicating success or the type of error that occurred.

VmbError_t VmbCameraInfoQueryByHandle(VmbHandle_t cameraHandle, VmbCameraInfo_t *info, VmbUint32_t sizeofCameraInfo)#

Retrieve information about a single camera given its handle.

Note: Some information is only filled for opened cameras.

Parameters:
  • cameraHandle[in] The handle of the camera; both remote and local device handles are permitted

  • info[inout] Structure where information will be copied

  • sizeofCameraInfo[in] Size of the structure

Return values:
  • VmbErrorSuccess – The call was successful

  • VmbErrorStructSize – The given struct size is not valid for this API version

  • VmbErrorApiNotStartedVmbStartup() was not called before the current command

  • VmbErrorInvalidCall – If called from a chunk access callback

  • VmbErrorBadParameterinfo is null

  • VmbErrorBadHandle – The handle does not correspond to a camera

Returns:

An error code indicating success or the type of error that occurred.

VmbError_t VmbCameraInfoQuery(const char *idString, VmbCameraInfo_t *info, VmbUint32_t sizeofCameraInfo)#

Retrieve information about a single camera given the ID of the camera.

Note: Some information is only filled for opened cameras.

Parameters:
  • idString[in] ID of the camera

  • info[inout] Structure where information will be copied

  • sizeofCameraInfo[in] Size of the structure

Return values:
  • VmbErrorSuccess – The call was successful

  • VmbErrorInvalidCall – If called from a chunk access callback

  • VmbErrorApiNotStartedVmbStartup() was not called before the current command

  • VmbErrorBadParameteridString or info are null or idString is the empty string

  • VmbErrorNotFound – No camera with the given id is found

  • VmbErrorStructSize – The given struct size is not valid for this API version

Returns:

An error code indicating success or the type of error that occurred.

VmbError_t VmbCameraOpen(const char *idString, VmbAccessMode_t accessMode, VmbHandle_t *cameraHandle)#

Open the specified camera.

A camera may be opened in a specific access mode, which determines the level of control you have on a camera. Examples for idString:

“DEV_81237473991” for an ID given by a transport layer, “169.254.12.13” for an IP address, “000F314C4BE5” for a MAC address or “DEV_1234567890” for an ID as reported by Vmb

Parameters:
  • idString[in] ID of the camera.

  • accessMode[in] The desired access mode.

  • cameraHandle[out] The remote device handle of the camera, if opened successfully.

Return values:
  • VmbErrorSuccess – The call was successful

  • VmbErrorApiNotStartedVmbStartup() was not called before the current command

  • VmbErrorInUse – The camera with the given ID is already opened

  • VmbErrorInvalidCall – If called from frame callback or chunk access callback

  • VmbErrorBadParameter – If idString or cameraHandle are null

  • VmbErrorInvalidAccess – A camera with the given id was found, but could not be opened

  • VmbErrorNotFound – The designated camera cannot be found

Returns:

An error code indicating success or the type of error that occurred.

VmbError_t VmbCameraClose(const VmbHandle_t cameraHandle)#

Close the specified camera.

Depending on the access mode this camera was opened with, events are killed, callbacks are unregistered, and camera control is released.

Parameters:

cameraHandle[in] A valid camera handle

Return values:
  • VmbErrorSuccess – The call was successful

  • VmbErrorApiNotStartedVmbStartup() was not called before the current command

  • VmbErrorInUse – The camera is currently in use with VmbChunkDataAccess

  • VmbErrorBadHandle – The handle does not correspond to an open camera

  • VmbErrorInvalidCall – If called from frame callback or chunk access callback

Returns:

An error code indicating success or the type of error that occurred.

General Feature Functions#

VmbError_t VmbFeaturesList(VmbHandle_t handle, VmbFeatureInfo_t *featureInfoList, VmbUint32_t listLength, VmbUint32_t *numFound, VmbUint32_t sizeofFeatureInfo)#

List all the features for this entity.

This function lists all implemented features, whether they are currently available or not. The list of features does not change as long as the entity is connected.

This function is usually called twice: once with an empty list to query the length of the list, and then again with a list of the correct length.

If VmbErrorMoreData is returned and numFound is non-null, the total number of features has been written to numFound.

If there are more elements in featureInfoList than features available, the remaining elements are filled with zero-initialized VmbFeatureInfo_t structs.

Parameters:
  • handle[in] Handle for an entity that exposes features

  • featureInfoList[out] An array of VmbFeatureInfo_t to be filled by the API. May be null if numFund is used for size query.

  • listLength[in] Number of VmbFeatureInfo_t elements provided

  • numFound[out] Number of VmbFeatureInfo_t elements found. May be null if featureInfoList is not null.

  • sizeofFeatureInfo[in] Size of a VmbFeatureInfo_t entry

Return values:
  • VmbErrorSuccess – The call was successful

  • VmbErrorStructSize – The given struct size of VmbFeatureInfo_t is not valid for this version of the API

  • VmbErrorApiNotStartedVmbStartup() was not called before the current command

  • VmbErrorBadParameter – Both featureInfoList and numFound are null

  • VmbErrorBadHandle – The given handle is not valid

  • VmbErrorInvalidAccess – Operation is invalid with the current access mode

  • VmbErrorMoreData – The given list length was insufficient to hold all available entries

Returns:

An error code indicating success or the type of error that occurred.

VmbError_t VmbFeatureInfoQuery(const VmbHandle_t handle, const char *name, VmbFeatureInfo_t *featureInfo, VmbUint32_t sizeofFeatureInfo)#

Query information about the constant properties of a feature.

Users provide a pointer to VmbFeatureInfo_t, which is then set to the internal representation. In case that some of the optional feature meta data is not available, the API will set the corresponding struct member to an empty string or a default value.

Parameters:
  • handle[in] Handle for an entity that exposes features

  • name[in] Name of the feature

  • featureInfo[out] The feature info to query

  • sizeofFeatureInfo[in] Size of the structure

Return values:
  • VmbErrorSuccess – The call was successful

  • VmbErrorStructSize – The given struct size of VmbFeatureInfo_t is not valid for this version of the API

  • VmbErrorApiNotStartedVmbStartup() was not called before the current command

  • VmbErrorBadParametername or featureInfo are null

  • VmbErrorBadHandle – The given handle is not valid

  • VmbErrorNotFound – A feature with the given name does not exist.

  • VmbErrorInvalidAccess – Operation is invalid with the current access mode

  • VmbErrorNotImplemented – The feature isn’t implemented

Returns:

An error code indicating success or the type of error that occurred.

VmbError_t VmbFeatureListSelected(const VmbHandle_t handle, const char *name, VmbFeatureInfo_t *featureInfoList, VmbUint32_t listLength, VmbUint32_t *numFound, VmbUint32_t sizeofFeatureInfo)#

List all the features selected by a given feature for this module.

This function lists all selected features, whether they are currently available or not. Features with selected features (“selectors”) have no direct impact on the camera, but only influence the register address that selected features point to. The list of features does not change while the camera/interface is connected. This function is usually called twice: once with an empty array to query the length of the list, and then again with an array of the correct length.

Parameters:
  • handle[in] Handle for an entity that exposes features

  • name[in] Name of the feature

  • featureInfoList[out] An array of VmbFeatureInfo_t to be filled by the API. May be null if numFound is used for size query.

  • listLength[in] Number of VmbFeatureInfo_t elements provided

  • numFound[out] Number of VmbFeatureInfo_t elements found. May be null if featureInfoList is not null.

  • sizeofFeatureInfo[in] Size of a VmbFeatureInfo_t entry

Return values:
  • VmbErrorSuccess – The call was successful

  • VmbErrorBadParametername is null or both featureInfoList and numFound are null

  • VmbErrorApiNotStartedVmbStartup() was not called before the current command

  • VmbErrorBadHandle – The given handle is not valid

  • VmbErrorInvalidAccess – Operation is invalid with the current access mode

  • VmbErrorStructSize – The given struct size of VmbFeatureInfo_t is not valid for this version of the API

  • VmbErrorMoreData – The given list length was insufficient to hold all available entries

Returns:

An error code indicating success or the type of error that occurred.

VmbError_t VmbFeatureAccessQuery(const VmbHandle_t handle, const char *name, VmbBool_t *isReadable, VmbBool_t *isWriteable)#

Return the dynamic read and write capabilities of this feature.

The access mode of a feature may change. For example, if “PacketSize” is locked while image data is streamed, it is only readable.

Parameters:
  • handle[in] Handle for an entity that exposes features.

  • name[in] Name of the feature.

  • isReadable[out] Indicates if this feature is readable. May be null.

  • isWriteable[out] Indicates if this feature is writable. May be null.

Return values:
  • VmbErrorSuccess – The call was successful

  • VmbErrorApiNotStartedVmbStartup() was not called before the current command

  • VmbErrorBadParametername is null or both isReadable and isWriteable are null

  • VmbErrorBadHandle – The given handle is not valid

  • VmbErrorNotFound – The feature was not found

  • VmbErrorInvalidAccess – Operation is invalid with the current access mode

  • VmbErrorNotImplemented – The feature isn’t implemented

Returns:

An error code indicating success or the type of error that occurred.

Integer Feature Access#

VmbError_t VmbFeatureIntGet(const VmbHandle_t handle, const char *name, VmbInt64_t *value)#

Get the value of an integer feature.

Parameters:
  • handle[in] Handle for an entity that exposes features

  • name[in] Name of the feature

  • value[out] Value to get

Return values:
  • VmbErrorSuccess – The call was successful

  • VmbErrorApiNotStartedVmbStartup() was not called before the current command

  • VmbErrorBadParametername or value are null

  • VmbErrorBadHandle – The given handle is not valid

  • VmbErrorNotFound – The feature was not found

  • VmbErrorWrongType – The type of feature name is not Integer

  • VmbErrorInvalidAccess – Operation is invalid with the current access mode

  • VmbErrorNotImplemented – The feature isn’t implemented

  • VmbErrorNotAvailable – The feature isn’t available currently

Returns:

An error code indicating success or the type of error that occurred.

VmbError_t VmbFeatureIntSet(const VmbHandle_t handle, const char *name, VmbInt64_t value)#

Set the value of an integer feature.

Parameters:
  • handle[in] Handle for an entity that exposes features

  • name[in] Name of the feature

  • value[in] Value to set

Return values:
  • VmbErrorSuccess – The call was successful

  • VmbErrorInvalidCall – If called from feature callback

  • VmbErrorApiNotStartedVmbStartup() was not called before the current command

  • VmbErrorBadParameter – If name is null

  • VmbErrorBadHandle – The given handle is not valid

  • VmbErrorNotFound – The feature was not found

  • VmbErrorWrongType – The type of feature name is not Integer

  • VmbErrorInvalidAccess – The feature is unavailable or not writable

  • VmbErrorNotImplemented – The feature isn’t implemented

  • VmbErrorNotAvailable – The feature isn’t available currently

  • VmbErrorInvalidValue – If value is either out of bounds or not an increment of the minimum

Returns:

An error code indicating success or the type of error that occurred.

VmbError_t VmbFeatureIntRangeQuery(const VmbHandle_t handle, const char *name, VmbInt64_t *min, VmbInt64_t *max)#

Query the range of an integer feature.

Parameters:
  • handle[in] Handle for an entity that exposes features

  • name[in] Name of the feature

  • min[out] Minimum value to be returned. May be null.

  • max[out] Maximum value to be returned. May be null.

Return values:
  • VmbErrorSuccess – The call was successful

  • VmbErrorApiNotStartedVmbStartup() was not called before the current command

  • VmbErrorBadParameter – If name is null or both min and max are null

  • VmbErrorBadHandle – The given handle is not valid

  • VmbErrorNotFound – The feature was not found

  • VmbErrorWrongType – The type of feature name is not Integer

  • VmbErrorInvalidAccess – The range information is unavailable or not writable

Returns:

An error code indicating success or the type of error that occurred.

VmbError_t VmbFeatureIntIncrementQuery(const VmbHandle_t handle, const char *name, VmbInt64_t *value)#

Query the increment of an integer feature.

Parameters:
  • handle[in] Handle for an entity that exposes features

  • name[in] Name of the feature

  • value[out] Value of the increment to get.

Return values:
  • VmbErrorSuccess – The call was successful

  • VmbErrorApiNotStartedVmbStartup() was not called before the current command

  • VmbErrorBadParameter – If name or value are null

  • VmbErrorBadHandle – The given handle is not valid

  • VmbErrorNotFound – The feature was not found

  • VmbErrorWrongType – The type of feature name is not Integer

  • VmbErrorInvalidAccess – The information is unavailable or cannot be read

Returns:

An error code indicating success or the type of error that occurred.

VmbError_t VmbFeatureIntValidValueSetQuery(const VmbHandle_t handle, const char *name, VmbInt64_t *buffer, VmbUint32_t bufferSize, VmbUint32_t *setSize)#

Retrieves info about the valid value set of an integer feature.

Retrieves information about the set of valid values of an integer feature. If null is passed as buffer, only the size of the set is determined and written to bufferFilledCount; Otherwise the largest possible number of elements of the valid value set is copied to buffer.

Parameters:
  • handle[in] The handle for the entity the feature information is retrieved from

  • name[in] The name of the feature to retrieve the info for; if null is passed VmbErrorBadParameter is returned

  • buffer[in] The array to copy the valid values to or null if only the size of the set is requested

  • bufferSize[in] The size of buffer; if buffer is null, the value is ignored

  • setSize[out] The total number of elements in the set; the value is set, if VmbErrorMoreData is returned

Return values:
  • VmbErrorSuccess – The call was successful

  • VmbErrorApiNotStartedVmbStartup() was not called before the current command

  • VmbErrorBadParametername is null or both buffer and bufferFilledCount are null

  • VmbErrorBadHandle – The given handle is not valid

  • VmbErrorNotFound – The feature was not found

  • VmbErrorWrongType – The type of the feature is not Integer

  • VmbErrorValidValueSetNotPresent – The feature does not provide a valid value set

  • VmbErrorMoreData – Some of data was retrieved successfully, but the size of buffer is insufficient to store all elements

  • VmbErrorIncomplete – The module the handle refers to is in a state where it cannot complete the request

  • VmbErrorOther – Some other issue occurred

Returns:

An error code indicating success or the type of error that occurred.

Float Feature Access#

VmbError_t VmbFeatureFloatGet(const VmbHandle_t handle, const char *name, double *value)#

Get the value of a float feature.

Parameters:
  • handle[in] Handle for an entity that exposes features

  • name[in] Name of the feature

  • value[out] Value to get

Return values:
  • VmbErrorSuccess – The call was successful

  • VmbErrorApiNotStartedVmbStartup() was not called before the current command

  • VmbErrorBadParametername or value are null

  • VmbErrorBadHandle – The given handle is not valid

  • VmbErrorNotFound – The feature was not found

  • VmbErrorWrongType – The type of feature name is not Float

  • VmbErrorInvalidAccess – Operation is invalid with the current access mode

  • VmbErrorNotImplemented – The feature isn’t implemented

  • VmbErrorNotAvailable – The feature isn’t available currently

Returns:

An error code indicating success or the type of error that occurred.

VmbError_t VmbFeatureFloatSet(const VmbHandle_t handle, const char *name, double value)#

Set the value of a float feature.

Parameters:
  • handle[in] Handle for an entity that exposes features

  • name[in] Name of the feature

  • value[in] Value to set

Return values:
  • VmbErrorSuccess – The call was successful

  • VmbErrorApiNotStartedVmbStartup() was not called before the current command

  • VmbErrorInvalidCall – If called from feature callback

  • VmbErrorBadParametername is null

  • VmbErrorBadHandle – The given handle is not valid

  • VmbErrorNotFound – The feature was not found

  • VmbErrorWrongType – The type of feature name is not Float

  • VmbErrorInvalidAccess – Operation is invalid with the current access mode

  • VmbErrorNotImplemented – The feature isn’t implemented

  • VmbErrorNotAvailable – The feature isn’t available currently

  • VmbErrorInvalidValue – If value is not within valid bounds

Returns:

An error code indicating success or the type of error that occurred.

VmbError_t VmbFeatureFloatRangeQuery(const VmbHandle_t handle, const char *name, double *min, double *max)#

Query the range of a float feature.

Only one of the values may be queried if the other parameter is set to null, but if both parameters are null, an error is returned.

Parameters:
  • handle[in] Handle for an entity that exposes features

  • name[in] Name of the feature

  • min[out] Minimum value to be returned. May be null.

  • max[out] Maximum value to be returned. May be null.

Return values:
  • VmbErrorSuccess – The call was successful

  • VmbErrorBadParametername is null or both min and max are null

  • VmbErrorApiNotStartedVmbStartup() was not called before the current command

  • VmbErrorBadHandle – The given handle is not valid

  • VmbErrorInvalidAccess – Operation is invalid with the current access mode

  • VmbErrorNotFound – The feature was not found

  • VmbErrorWrongType – The type of feature name is not Float

Returns:

An error code indicating success or the type of error that occurred.

VmbError_t VmbFeatureFloatIncrementQuery(const VmbHandle_t handle, const char *name, VmbBool_t *hasIncrement, double *value)#

Query the increment of a float feature.

Parameters:
  • handle[in] Handle for an entity that exposes features

  • name[in] Name of the feature

  • hasIncrement[out] true if this float feature has an increment.

  • value[out] Value of the increment to get.

Return values:
  • VmbErrorSuccess – The call was successful

  • VmbErrorBadParametername is null or both value and hasIncrement are null

  • VmbErrorApiNotStartedVmbStartup() was not called before the current command

  • VmbErrorBadHandle – The given handle is not valid

  • VmbErrorInvalidAccess – Operation is invalid with the current access mode

  • VmbErrorNotImplemented – The feature isn’t implemented

  • VmbErrorNotAvailable – The feature isn’t available currently

  • VmbErrorNotFound – The feature was not found

  • VmbErrorWrongType – The type of feature name is not Float

Returns:

An error code indicating success or the type of error that occurred.

Bool Feature Access#

VmbError_t VmbFeatureBoolGet(const VmbHandle_t handle, const char *name, VmbBool_t *value)#

Get the value of a boolean feature.

Parameters:
  • handle[in] Handle for an entity that exposes features

  • name[in] Name of the boolean feature

  • value[out] Value to be read

Return values:
  • VmbErrorSuccess – If no error

  • VmbErrorApiNotStartedVmbStartup() was not called before the current command

  • VmbErrorBadParametername or value are null

  • VmbErrorBadHandle – The given handle is not valid

  • VmbErrorNotFound – If feature is not found

  • VmbErrorWrongType – The type of feature name is not Boolean

  • VmbErrorNotImplemented – The feature isn’t implemented

  • VmbErrorNotAvailable – The feature isn’t available currently

  • VmbErrorInvalidAccess – Operation is invalid with the current access mode

Returns:

An error code indicating success or the type of error that occurred.

VmbError_t VmbFeatureBoolSet(const VmbHandle_t handle, const char *name, VmbBool_t value)#

Set the value of a boolean feature.

Parameters:
  • handle[in] Handle for an entity that exposes features

  • name[in] Name of the boolean feature

  • value[in] Value to write

Return values:
  • VmbErrorSuccess – If no error

  • VmbErrorApiNotStartedVmbStartup() was not called before the current command

  • VmbErrorBadParametername is null

  • VmbErrorBadHandle – The given handle is not valid

  • VmbErrorNotFound – If the feature is not found

  • VmbErrorWrongType – The type of feature name is not Boolean

  • VmbErrorInvalidAccess – Operation is invalid with the current access mode

  • VmbErrorNotImplemented – The feature isn’t implemented

  • VmbErrorNotAvailable – The feature isn’t available currently

  • VmbErrorInvalidValue – If value is not within valid bounds

  • VmbErrorInvalidCall – If called from feature callback

Returns:

An error code indicating success or the type of error that occurred.

Enum Feature Access#

VmbError_t VmbFeatureEnumGet(const VmbHandle_t handle, const char *name, const char **value)#

Get the value of an enumeration feature.

Parameters:
  • handle[in] Handle for an entity that exposes features

  • name[in] Name of the feature

  • value[out] The current enumeration value. The returned value is a reference to the API value

Return values:
  • VmbErrorSuccess – The call was successful

  • VmbErrorBadParametername or value are null

  • VmbErrorApiNotStartedVmbStartup() was not called before the current command

  • VmbErrorBadHandle – The given handle is not valid

  • VmbErrorNotFound – The feature was not found

  • VmbErrorWrongType – The type of feature featureName is not Enumeration

  • VmbErrorNotImplemented – The feature isn’t implemented

  • VmbErrorNotAvailable – The feature is not available

  • VmbErrorInvalidAccess – Operation is invalid with the current access mode

Returns:

An error code indicating success or the type of error that occurred.

VmbError_t VmbFeatureEnumSet(const VmbHandle_t handle, const char *name, const char *value)#

Set the value of an enumeration feature.

Parameters:
  • handle[in] Handle for an entity that exposes features

  • name[in] Name of the feature

  • value[in] Value to set

Return values:
  • VmbErrorSuccess – The call was successful

  • VmbErrorApiNotStartedVmbStartup() was not called before the current command

  • VmbErrorInvalidCall – If called from feature callback

  • VmbErrorBadParameter – If name or value are null

  • VmbErrorBadHandle – The given handle is not valid

  • VmbErrorNotFound – The feature was not found

  • VmbErrorWrongType – The type of feature name is not Enumeration

  • VmbErrorNotAvailable – The feature is not available

  • VmbErrorInvalidAccess – Operation is invalid with the current access mode

  • VmbErrorNotImplemented – The feature isn’t implemented

  • VmbErrorInvalidValuevalue is not a enum entry for the feature or the existing enum entry is currently not available

Returns:

An error code indicating success or the type of error that occurred.

VmbError_t VmbFeatureEnumRangeQuery(const VmbHandle_t handle, const char *name, const char **nameArray, VmbUint32_t arrayLength, VmbUint32_t *numFound)#

Query the value range of an enumeration feature.

All elements not filled with the names of enum entries by the function are set to null.

Parameters:
  • handle[in] Handle for an entity that exposes features

  • name[in] Name of the feature

  • nameArray[out] An array of enumeration value names; may be null if numFound is used for size query

  • arrayLength[in] Number of elements in the array

  • numFound[out] Number of elements found; may be null if nameArray is not null

Return values:
  • VmbErrorSuccess – The call was successful

  • VmbErrorApiNotStartedVmbStartup() was not called before the current command

  • VmbErrorBadParametername is null or both nameArray and numFound are null

  • VmbErrorBadHandle – The given handle is not valid

  • VmbErrorNotFound – The feature was not found

  • VmbErrorNotImplemented – The feature name is not implemented

  • VmbErrorWrongType – The type of feature name is not Enumeration

  • VmbErrorMoreData – The given array length was insufficient to hold all available entries

Returns:

An error code indicating success or the type of error that occurred.

VmbError_t VmbFeatureEnumIsAvailable(const VmbHandle_t handle, const char *name, const char *value, VmbBool_t *isAvailable)#

Check if a certain value of an enumeration is available.

Parameters:
  • handle[in] Handle for an entity that exposes features

  • name[in] Name of the feature

  • value[in] Value to check

  • isAvailable[out] Indicates if the given enumeration value is available

Return values:
  • VmbErrorSuccess – The call was successful

  • VmbErrorApiNotStartedVmbStartup() was not called before the current command

  • VmbErrorBadParametername, value or isAvailable are null

  • VmbErrorBadHandle – The given handle is not valid

  • VmbErrorNotFound – The feature was not found

  • VmbErrorWrongType – The type of feature name is not Enumeration

  • VmbErrorNotImplemented – The feature name is not implemented

  • VmbErrorInvalidValue – There is no enum entry with string representation of value for the given enum feature

  • VmbErrorInvalidAccess – Operation is invalid with the current access mode

Returns:

An error code indicating success or the type of error that occurred.

VmbError_t VmbFeatureEnumAsInt(const VmbHandle_t handle, const char *name, const char *value, VmbInt64_t *intVal)#

Get the integer value for a given enumeration string value.

Converts a name of an enum member into an int value (“Mono12Packed” to 0x10C0006)

Parameters:
  • handle[in] Handle for an entity that exposes features

  • name[in] Name of the feature

  • value[in] The enumeration value to get the integer value for

  • intVal[out] The integer value for this enumeration entry

Return values:
  • VmbErrorSuccess – The call was successful

  • VmbErrorApiNotStartedVmbStartup() was not called before the current command

  • VmbErrorBadParameter – If name, value or intVal are null

  • VmbErrorBadHandle – The given handle is not valid

  • VmbErrorNotFound – No feature with the given name was found

  • VmbErrorNotImplemented – The feature name is not implemented

  • VmbErrorInvalidValuevalue is not the name of a enum entry for the feature

  • VmbErrorWrongType – The type of feature name is not Enumeration

Returns:

An error code indicating success or the type of error that occurred.

VmbError_t VmbFeatureEnumAsString(VmbHandle_t handle, const char *name, VmbInt64_t intValue, const char **stringValue)#

Get the enumeration string value for a given integer value.

Converts an int value to a name of an enum member (e.g. 0x10C0006 to “Mono12Packed”)

Parameters:
  • handle[in] Handle for an entity that exposes features

  • name[in] Name of the feature

  • intValue[in] The numeric value

  • stringValue[out] The string value for the numeric value

Return values:
  • VmbErrorSuccess – The call was successful

  • VmbErrorApiNotStartedVmbStartup() was not called before the current command

  • VmbErrorBadParametername or stringValue are null

  • VmbErrorBadHandle – The given handle is not valid

  • VmbErrorNotFound – No feature with the given name was found

  • VmbErrorNotImplemented – No feature name is not implemented

  • VmbErrorInvalidValueintValue is not the int value of an enum entry

  • VmbErrorWrongType – The type of feature name is not Enumeration

Returns:

An error code indicating success or the type of error that occurred.

VmbError_t VmbFeatureEnumEntryGet(const VmbHandle_t handle, const char *featureName, const char *entryName, VmbFeatureEnumEntry_t *featureEnumEntry, VmbUint32_t sizeofFeatureEnumEntry)#

Get infos about an entry of an enumeration feature.

Parameters:
  • handle[in] Handle for an entity that exposes features

  • featureName[in] Name of the feature

  • entryName[in] Name of the enum entry of that feature

  • featureEnumEntry[out] Infos about that entry returned by the API

  • sizeofFeatureEnumEntry[in] Size of the structure

Return values:
  • VmbErrorSuccess – The call was successful

  • VmbErrorStructSize – Size of VmbFeatureEnumEntry_t is not compatible with the API version

  • VmbErrorApiNotStartedVmbStartup() was not called before the current command

  • VmbErrorBadParameterfeatureName, entryName or featureEnumEntry are null

  • VmbErrorBadHandle – The given handle is not valid

  • VmbErrorNotFound – The feature was not found

  • VmbErrorNotImplemented – The feature name is not implemented

  • VmbErrorInvalidValue – There is no enum entry with a string representation of entryName

  • VmbErrorWrongType – The type of feature featureName is not Enumeration

Returns:

An error code indicating success or the type of error that occurred.

struct VmbFeatureEnumEntry#

Info about possible entries of an enumeration feature.

Out

const char *name#

Name used in the API.

const char *displayName#

Enumeration entry name to be used in GUIs.

const char *tooltip#

Short description, e.g. for a tooltip.

const char *description#

Longer description.

VmbInt64_t intValue#

Integer value of this enumeration entry.

const char *sfncNamespace#

Namespace this feature resides in.

VmbFeatureVisibility_t visibility#

GUI visibility.

typedef struct VmbFeatureEnumEntry VmbFeatureEnumEntry_t#

String Feature Access#

VmbError_t VmbFeatureStringGet(const VmbHandle_t handle, const char *name, char *buffer, VmbUint32_t bufferSize, VmbUint32_t *sizeFilled)#

Get the value of a string feature.

This function is usually called twice: once with an empty buffer to query the length of the string, and then again with a buffer of the correct length.

The value written to sizeFilled includes the terminating 0 character of the string.

If a buffer is provided and there its insufficient to hold all the data, the longest possible prefix fitting the buffer is copied to buffer; the last element of buffer is set to 0 case.

Parameters:
  • handle[in] Handle for an entity that exposes features

  • name[in] Name of the string feature

  • buffer[out] String buffer to fill. May be null if sizeFilled is used for size query.

  • bufferSize[in] Size of the input buffer

  • sizeFilled[out] Size actually filled. May be null if buffer is not null.

Return values:
  • VmbErrorSuccess – The call was successful

  • VmbErrorApiNotStartedVmbStartup() was not called before the current command

  • VmbErrorBadParametername is null, both buffer and sizeFilled are null or buffer is non-null and bufferSize is 0

  • VmbErrorBadHandle – The given handle is not valid

  • VmbErrorNotFound – The feature was not found

  • VmbErrorWrongType – The type of feature name is not String

  • VmbErrorInvalidAccess – Operation is invalid with the current access mode

  • VmbErrorNotImplemented – The feature isn’t implemented

  • VmbErrorNotAvailable – The feature isn’t available currently

  • VmbErrorMoreData – The given buffer size was too small

Returns:

An error code indicating the type of error, if any.

VmbError_t VmbFeatureStringSet(const VmbHandle_t handle, const char *name, const char *value)#

Set the value of a string feature.

Parameters:
  • handle[in] Handle for an entity that exposes features

  • name[in] Name of the string feature

  • value[in] Value to set

Return values:
  • VmbErrorSuccess – If no error

  • VmbErrorApiNotStartedVmbStartup() was not called before the current command

  • VmbErrorInvalidCall – If called from feature callback

  • VmbErrorBadParametername or value are null

  • VmbErrorBadHandle – The given handle is not valid

  • VmbErrorNotFound – The feature was not found

  • VmbErrorWrongType – The type of feature name is not String

  • VmbErrorInvalidAccess – Operation is invalid with the current access mode

  • VmbErrorInvalidValue – If length of value exceeded the maximum length

  • VmbErrorNotImplemented – The feature isn’t implemented

  • VmbErrorNotAvailable – The feature isn’t available currently

Returns:

An error code indicating success or the type of error that occurred.

VmbError_t VmbFeatureStringMaxlengthQuery(const VmbHandle_t handle, const char *name, VmbUint32_t *maxLength)#

Get the maximum length of a string feature.

The length reported does not include the terminating 0 char.

Note: For some features the maximum size is not fixed and may change.

Parameters:
  • handle[in] Handle for an entity that exposes features

  • name[in] Name of the string feature

  • maxLength[out] Maximum length of this string feature

Return values:
  • VmbErrorSuccess – If no error

  • VmbErrorApiNotStartedVmbStartup() was not called before the current command

  • VmbErrorBadParametername or maxLength are null

  • VmbErrorBadHandle – The given handle is not valid

  • VmbErrorWrongType – The type of feature name is not String

  • VmbErrorInvalidAccess – Operation is invalid with the current access mode

  • VmbErrorNotImplemented – The feature isn’t implemented

  • VmbErrorNotAvailable – The feature isn’t available currently

Returns:

An error code indicating success or the type of error that occurred.

Command Feature Access#

VmbError_t VmbFeatureCommandRun(const VmbHandle_t handle, const char *name)#

Run a feature command.

Parameters:
  • handle[in] Handle for an entity that exposes features

  • name[in] Name of the command feature

Return values:
  • VmbErrorSuccess – If no error

  • VmbErrorInvalidCall – If called from a feature callback or chunk access callback

  • VmbErrorApiNotStartedVmbStartup() was not called before the current command

  • VmbErrorBadParametername is null

  • VmbErrorBadHandle – The given handle is not valid

  • VmbErrorNotFound – Feature was not found

  • VmbErrorWrongType – The type of feature name is not Command

  • VmbErrorNotImplemented – The feature isn’t implemented

  • VmbErrorNotAvailable – The feature isn’t available currently

  • VmbErrorInvalidAccess – Operation is invalid with the current access mode

Returns:

An error code indicating success or the type of error that occurred.

VmbError_t VmbFeatureCommandIsDone(const VmbHandle_t handle, const char *name, VmbBool_t *isDone)#

Check if a feature command is done.

Parameters:
  • handle[in] Handle for an entity that exposes features

  • name[in] Name of the command feature

  • isDone[out] State of the command.

Return values:
  • VmbErrorSuccess – If no error

  • VmbErrorApiNotStartedVmbStartup() was not called before the current command

  • VmbErrorInvalidCall – If called from a chunk access callback

  • VmbErrorBadParameter – If name or isDone are null

  • VmbErrorBadHandle – The given handle is not valid

  • VmbErrorNotFound – Feature was not found

  • VmbErrorWrongType – The type of feature name is not Command

  • VmbErrorInvalidAccess – Operation is invalid with the current access mode

  • VmbErrorNotImplemented – The feature isn’t implemented

  • VmbErrorNotAvailable – The feature isn’t available currently

Returns:

An error code indicating success or the type of error that occurred.

Raw Feature Access#

VmbError_t VmbFeatureRawGet(const VmbHandle_t handle, const char *name, char *buffer, VmbUint32_t bufferSize, VmbUint32_t *sizeFilled)#

Read the memory contents of an area given by a feature name.

This feature type corresponds to a top-level “Register” feature in GenICam. Data transfer is split up by the transport layer if the feature length is too large. You can get the size of the memory area addressed by the feature name by VmbFeatureRawLengthQuery().

Parameters:
  • handle[in] Handle for an entity that exposes features

  • name[in] Name of the raw feature

  • buffer[out] Buffer to fill

  • bufferSize[in] Size of the buffer to be filled

  • sizeFilled[out] Number of bytes actually filled

Return values:
  • VmbErrorSuccess – If no error

  • VmbErrorApiNotStartedVmbStartup() was not called before the current command

  • VmbErrorBadParametername, buffer or sizeFilled are null

  • VmbErrorBadHandle – The given handle is not valid

  • VmbErrorNotFound – Feature was not found

  • VmbErrorWrongType – The type of feature name is not Register

  • VmbErrorInvalidAccess – Operation is invalid with the current access mode

  • VmbErrorNotImplemented – The feature isn’t implemented

  • VmbErrorNotAvailable – The feature isn’t available currently

Returns:

An error code indicating success or the type of error that occurred.

VmbError_t VmbFeatureRawSet(const VmbHandle_t handle, const char *name, const char *buffer, VmbUint32_t bufferSize)#

Write to a memory area given by a feature name.

This feature type corresponds to a first-level “Register” node in the XML file. Data transfer is split up by the transport layer if the feature length is too large. You can get the size of the memory area addressed by the feature name by VmbFeatureRawLengthQuery().

Parameters:
  • handle[in] Handle for an entity that exposes features

  • name[in] Name of the raw feature

  • buffer[in] Data buffer to use

  • bufferSize[in] Size of the buffer

Return values:
  • VmbErrorSuccess – If no error

  • VmbErrorApiNotStartedVmbStartup() was not called before the current command

  • VmbErrorInvalidCall – If called from feature callback or a chunk access callback

  • VmbErrorBadParametername or buffer are null

  • VmbErrorBadHandle – The given handle is not valid

  • VmbErrorNotFound – Feature was not found

  • VmbErrorWrongType – The type of feature name is not Register

  • VmbErrorInvalidAccess – Operation is invalid with the current access mode

  • VmbErrorNotImplemented – The feature isn’t implemented

  • VmbErrorNotAvailable – The feature isn’t available currently

Returns:

An error code indicating success or the type of error that occurred.

VmbError_t VmbFeatureRawLengthQuery(const VmbHandle_t handle, const char *name, VmbUint32_t *length)#

Get the length of a raw feature for memory transfers.

This feature type corresponds to a first-level “Register” node in the XML file.

Parameters:
  • handle[in] Handle for an entity that exposes features

  • name[in] Name of the raw feature

  • length[out] Length of the raw feature area (in bytes)

Return values:
  • VmbErrorSuccess – If no error

  • VmbErrorApiNotStartedVmbStartup() was not called before the current command

  • VmbErrorBadParameter – If name or length are null

  • VmbErrorBadHandle – The given handle is not valid

  • VmbErrorNotFound – Feature not found

  • VmbErrorWrongType – The type of feature name is not Register

  • VmbErrorInvalidAccess – Operation is invalid with the current access mode

  • VmbErrorNotImplemented – The feature isn’t implemented

  • VmbErrorNotAvailable – The feature isn’t available currently

Returns:

An error code indicating success or the type of error that occurred.

Chunk Data Access#

VmbError_t VmbChunkDataAccess(const VmbFrame_t *frame, VmbChunkAccessCallback chunkAccessCallback, void *userContext)#

Access chunk data for a frame.

This function can only succeed if the given frame has been filled by the API.

Parameters:
  • frame[in] A pointer to a filled frame that is announced

  • chunkAccessCallback[in] A callback to access the chunk data from

  • userContext[in] A pointer to pass to the callback

Return values:
  • VmbErrorSuccess – The call was successful

  • VmbErrorInvalidCall – If called from a chunk access callback or a feature callback

  • VmbErrorApiNotStartedVmbStartup() was not called before the current command

  • VmbErrorBadParameterframe or chunkAccessCallback are null

  • VmbErrorInUse – The frame state does not allow for retrieval of chunk data (e.g. the frame could have been reenqueued before the chunk access could happen).

  • VmbErrorNotFound – The frame is currently not announced for a stream

  • VmbErrorDeviceNotOpen – If the device the frame was received from is no longer open

  • VmbErrorNoChunkDataframe does not contain chunk data

  • VmbErrorParsingChunkData – The chunk data does not adhere to the expected format

  • VmbErrorUserCallbackException – The callback threw an exception

  • VmbErrorFeaturesUnavailable – The feature description for the remote device is unavailable

  • VmbErrorCustom – The minimum a user defined error code returned by the callback

Returns:

An error code indicating success or the type of error that occurred.

typedef VmbError_t (*VmbChunkAccessCallback)(VmbHandle_t featureAccessHandle, void *userContext)#

Function pointer type to access chunk data.

This function should complete as quickly as possible, since it blocks other updates on the remote device.

This function should not throw exceptions, even if VmbC is used from C++. Any exception thrown will only result in an error code indicating that an exception was thrown.

Param featureAccessHandle:

[in] A special handle that can be used for accessing features; the handle is only valid during the call of the function.

Param userContext:

[in] The value the user passed to VmbChunkDataAccess.

Return:

An error to be returned from VmbChunkDataAccess in the absence of other errors; A custom exit code >= VmbErrorCustom can be returned to indicate a failure via VmbChunkDataAccess return code

Feature Invalidation#

VmbError_t VmbFeatureInvalidationRegister(VmbHandle_t handle, const char *name, VmbInvalidationCallback callback, void *userContext)#

Register a VmbInvalidationCallback callback for feature invalidation signaling.

Any feature change, either of its value or of its access state, may be tracked by registering an invalidation callback. Registering multiple callbacks for one feature invalidation event is possible because only the combination of handle, name, and callback is used as key. If the same combination of handle, name, and callback is registered a second time, the callback remains registered and the context is overwritten with userContext.

Parameters:
  • handle[in] Handle for an entity that emits events

  • name[in] Name of the event

  • callback[in] Callback to be run when invalidation occurs

  • userContext[in] User context passed to function

Return values:
  • VmbErrorSuccess – If no error

  • VmbErrorApiNotStartedVmbStartup() was not called before the current command

  • VmbErrorInvalidCall – If called from a chunk access callback

  • VmbErrorBadParameter – If name or callback are null

  • VmbErrorBadHandle – The given handle is not valid

  • VmbErrorNotFound – No feature with name was found for the module associated with handle

  • VmbErrorNotImplemented – The feature name is not implemented

  • VmbErrorInvalidAccess – Operation is invalid with the current access mode

Returns:

An error code indicating success or the type of error that occurred.

VmbError_t VmbFeatureInvalidationUnregister(VmbHandle_t handle, const char *name, VmbInvalidationCallback callback)#

Unregister a previously registered feature invalidation callback.

Since multiple callbacks may be registered for a feature invalidation event, a combination of handle, name, and callback is needed for unregistering, too.

Parameters:
  • handle[in] Handle for an entity that emits events

  • name[in] Name of the event

  • callback[in] Callback to be removed

Return values:
  • VmbErrorSuccess – If no error

  • VmbErrorApiNotStartedVmbStartup() was not called before the current command

  • VmbErrorInvalidCall – If called from a chunk access callback

  • VmbErrorBadParameter – If name or callback are null

  • VmbErrorBadHandle – The given handle is not valid

  • VmbErrorNotFound – No feature with name was found for the module associated with handle or there was no listener to unregister

  • VmbErrorNotImplemented – The feature name is not implemented

  • VmbErrorInvalidAccess – Operation is invalid with the current access mode

Returns:

An error code indicating success or the type of error that occurred.

typedef void (*VmbInvalidationCallback)(const VmbHandle_t handle, const char *name, void *userContext)#

Invalidation callback type for a function that gets called in a separate thread and has been registered with VmbFeatureInvalidationRegister().

While the callback is run, all feature data is atomic. After the callback finishes, the feature data may be updated with new values.

Do not spend too much time in this thread; it prevents the feature values from being updated from any other thread or the lower-level drivers.

Param handle:

[in] Handle for an entity that exposes features

Param name:

[in] Name of the feature

Param userContext:

[in] Pointer to the user context, see VmbFeatureInvalidationRegister

Image preparation and acquisition#

struct VmbFrame#

Frame delivered by the camera.

In

void *buffer#

Comprises image and potentially chunk data.

VmbUint32_t bufferSize#

The size of the data buffer.

void *context[4]#

4 void pointers that can be employed by the user (e.g. for storing handles)

Out

VmbFrameStatus_t receiveStatus#

The resulting status of the receive operation.

VmbUint64_t frameID#

Unique ID of this frame in this stream.

VmbUint64_t timestamp#

The timestamp set by the camera.

VmbUint8_t *imageData#

The start of the image data, if present, or null.

VmbFrameFlags_t receiveFlags#

Flags indicating which additional frame information is available.

VmbPixelFormat_t pixelFormat#

Pixel format of the image.

VmbImageDimension_t width#

Width of an image.

VmbImageDimension_t height#

Height of an image.

VmbImageDimension_t offsetX#

Horizontal offset of an image.

VmbImageDimension_t offsetY#

Vertical offset of an image.

VmbPayloadType_t payloadType#

The type of payload.

VmbBool_t chunkDataPresent#

True if the transport layer reported chunk data to be present in the buffer.

typedef struct VmbFrame VmbFrame_t#
VmbError_t VmbPayloadSizeGet(VmbHandle_t handle, VmbUint32_t *payloadSize)#

Get the necessary payload size for buffer allocation.

Returns the payload size necessary for buffer allocation as queried from the Camera. If the stream module provides a PayloadSize feature, this value will be returned instead. If a camera handle is passed, the payload size refers to the stream with index 0.

Parameters:
  • handle[in] Camera or stream handle

  • payloadSize[out] Payload Size

Return values:
  • VmbErrorSuccess – If no error

  • VmbErrorApiNotStartedVmbStartup() was not called before the current command

  • VmbErrorBadHandle – The given handle is not valid

  • VmbErrorBadParameterpayloadSize is null

Returns:

An error code indicating success or the type of error that occurred.

VmbError_t VmbFrameAnnounce(VmbHandle_t handle, const VmbFrame_t *frame, VmbUint32_t sizeofFrame)#

Announce frames to the API that may be queued for frame capturing later.

Allows some preparation for frames like DMA preparation depending on the transport layer. The order in which the frames are announced is not taken into consideration by the API. If frame.buffer is null, the allocation is done by the transport layer. The application has to ensure that the frames are also revoked by calling VmbFrameRevoke() or VmbFrameRevokeAll() when cleaning up.

Parameters:
  • handle[in] Camera or stream handle

  • frame[in] Frame buffer to announce

  • sizeofFrame[in] Size of the frame structure

Return values:
  • VmbErrorSuccess – If no error

  • VmbErrorStructSize – The given struct size is not valid for this version of the API

  • VmbErrorInvalidCall – If called from a frame callback or a chunk access callback

  • VmbErrorApiNotStartedVmbStartup() was not called before the current command

  • VmbErrorBadHandle – The given camera or stream handle is not valid

  • VmbErrorBadParameterframe is null

  • VmbErrorAlready – The frame has already been announced

  • VmbErrorBusy – The underlying transport layer does not support announcing frames during acquisition

  • VmbErrorMoreData – The given buffer size is invalid (usually 0)

Returns:

An error code indicating success or the type of error that occurred.

VmbError_t VmbFrameRevoke(VmbHandle_t handle, const VmbFrame_t *frame)#

Revoke a frame from the API.

The referenced frame is removed from the pool of frames for capturing images.

Parameters:
  • handle[in] Handle for a camera or stream

  • frame[in] Frame buffer to be removed from the list of announced frames

Return values:
  • VmbErrorSuccess – If no error

  • VmbErrorInvalidCall – If called from a frame callback or a chunk access callback

  • VmbErrorApiNotStartedVmbStartup() was not called before the current command

  • VmbErrorBadHandle – The given handle is not valid

  • VmbErrorBadParameter – The given frame pointer is not valid

  • VmbErrorBusy – The underlying transport layer does not support revoking frames during acquisition

  • VmbErrorNotFound – The given frame could not be found for the stream

  • VmbErrorInUse – The frame is currently still in use (e.g. in a running frame callback)

Returns:

An error code indicating success or the type of error that occurred.

VmbError_t VmbFrameRevokeAll(VmbHandle_t handle)#

Revoke all frames assigned to a certain stream or camera.

In case of an failure some of the frames may have been revoked. To prevent this it is recommended to call VmbCaptureQueueFlush for the same handle before invoking this function.

Parameters:

handle[in] Handle for a stream or camera

Return values:
  • VmbErrorSuccess – If no error

  • VmbErrorInvalidCall – If called from a frame callback or a chunk access callback

  • VmbErrorApiNotStartedVmbStartup() was not called before the current command

  • VmbErrorBadHandlehandle is not valid

  • VmbErrorInUse – One of the frames of the stream is still in use

Returns:

An error code indicating success or the type of error that occurred.

VmbError_t VmbCaptureStart(VmbHandle_t handle)#

Prepare the API for incoming frames.

Parameters:

handle[in] Handle for a camera or a stream

Return values:
  • VmbErrorSuccess – If no error

  • VmbErrorInvalidCall – If called from a frame callback or a chunk access callback

  • VmbErrorApiNotStartedVmbStartup() was not called before the current command

  • VmbErrorBadHandle – The given handle is not valid; this includes the camera no longer being open

  • VmbErrorInvalidAccess – Operation is invalid with the current access mode

  • VmbErrorMoreData – The buffer size of the announced frames is insufficient

  • VmbErrorInsufficientBufferCount – The operation requires more buffers to be announced; see the StreamAnnounceBufferMinimum stream feature

  • VmbErrorAlready – Capturing was already started

Returns:

An error code indicating success or the type of error that occurred.

VmbError_t VmbCaptureEnd(VmbHandle_t handle)#

Stop the API from being able to receive frames.

Consequences of VmbCaptureEnd(): The frame callback will not be called anymore

Note

This function waits for the completion of the last callback for the current capture. If the callback does not return in finite time, this function may not return in finite time either.

Parameters:

handle[in] Handle for a stream or camera

Return values:
  • VmbErrorSuccess – If no error

  • VmbErrorInvalidCall – If called from a frame callback or a chunk access callback

  • VmbErrorApiNotStartedVmbStartup() was not called before the current command

  • VmbErrorBadHandlehandle is not valid

Returns:

An error code indicating success or the type of error that occurred.

VmbError_t VmbCaptureFrameQueue(VmbHandle_t handle, const VmbFrame_t *frame, VmbFrameCallback callback)#

Queue frames that may be filled during frame capturing.

The given frame is put into a queue that will be filled sequentially. The order in which the frames are filled is determined by the order in which they are queued. Any frames passed to this function must first be announced with VmbFrameAnnounce().

Warning

callback should to return in finite time. Otherwise VmbCaptureEnd and operations resulting in the stream being closed may not return.

Parameters:
  • handle[in] Handle of a camera or stream

  • frame[in] Pointer to an already announced frame

  • callback[in] Callback to be run when the frame is complete. Null is OK.

Return values:
  • VmbErrorSuccess – The call was successful

  • VmbErrorInvalidCall – If called from a chunk access callback

  • VmbErrorBadParameter – If frame is null

  • VmbErrorBadHandle – No stream related to handle could be found

  • VmbErrorApiNotStartedVmbStartup() was not called before the current command

  • VmbErrorInternalFault – The buffer or bufferSize members of frame have been set to null or zero respectively

  • VmbErrorNotFound – The frame is not a frame announced for the given stream

  • VmbErrorAlready – The frame is currently queued

Returns:

An error code indicating success or the type of error that occurred.

VmbError_t VmbCaptureFrameWait(const VmbHandle_t handle, const VmbFrame_t *frame, VmbUint32_t timeout)#

Wait for a queued frame to be filled (or dequeued).

The frame needs to be queued and not filled for the function to complete successfully.

If a camera handle is passed, the first stream of the camera is used.

Parameters:
  • handle[in] Handle of a camera or stream

  • frame[in] Pointer to an already announced and queued frame

  • timeout[in] Timeout (in milliseconds)

Return values:
  • VmbErrorSuccess – If no error

  • VmbErrorApiNotStartedVmbStartup() was not called before the current command

  • VmbErrorInvalidCall – If called from a chunk access callback

  • VmbErrorBadParameter – If frame or the buffer of frame are null or the the buffer size of frame is 0

  • VmbErrorBadHandle – No stream related to handle could be found

  • VmbErrorNotFound – The frame is not one currently queued for the stream

  • VmbErrorAlready – The frame has already been dequeued and delivered to the user

  • VmbErrorInUse – If the frame was queued with a frame callback

  • VmbErrorTimeout – Call timed out

  • VmbErrorIncomplete – Capture is not active when the function is called

Returns:

An error code indicating success or the type of error that occurred.

VmbError_t VmbCaptureQueueFlush(VmbHandle_t handle)#

Flush the capture queue.

Control of all the currently queued frames will be returned to the user, leaving no frames in the capture queue. After this call, no frame notification will occur until frames are queued again

Frames need to be revoked separately, if desired.

This function can only succeeds, if no capture is currently active. If VmbCaptureStart has been called for the stream, but no successful call to VmbCaptureEnd happened, the function fails with error code VmbErrorInUse.

Parameters:

handle[in] The handle of the camera or stream to flush.

Return values:
  • VmbErrorSuccess – If no error

  • VmbErrorApiNotStartedVmbStartup() was not called before the current command

  • VmbErrorInvalidCall – If called from a chunk access callback

  • VmbErrorBadHandle – No stream related to handle could be found.

  • VmbErrorInUse – There is currently an active capture

Returns:

An error code indicating success or the type of error that occurred.

Direct Access#

VmbError_t VmbMemoryRead(const VmbHandle_t handle, VmbUint64_t address, VmbUint32_t bufferSize, char *dataBuffer, VmbUint32_t *sizeComplete)#

Read an array of bytes.

Parameters:
  • handle[in] Handle for an entity that allows memory access

  • address[in] Address to be used for this read operation

  • bufferSize[in] Size of the data buffer to read

  • dataBuffer[out] Buffer to be filled

  • sizeComplete[out] Size of the data actually read

Return values:
  • VmbErrorSuccess – If no error

  • VmbErrorInvalidCall – If called from a chunk access callback

  • VmbErrorApiNotStartedVmbStartup() was not called before the current command

  • VmbErrorBadHandle – The given handle is not valid

  • VmbErrorInvalidAccess – Operation is invalid with the current access mode

Returns:

An error code indicating success or the type of error that occurred.

VmbError_t VmbMemoryWrite(const VmbHandle_t handle, VmbUint64_t address, VmbUint32_t bufferSize, const char *dataBuffer, VmbUint32_t *sizeComplete)#

Write an array of bytes.

Parameters:
  • handle[in] Handle for an entity that allows memory access

  • address[in] Address to be used for this read operation

  • bufferSize[in] Size of the data buffer to write

  • dataBuffer[in] Data to write

  • sizeComplete[out] Number of bytes successfully written; if an error occurs this is less than bufferSize

Return values:
  • VmbErrorSuccess – If no error

  • VmbErrorInvalidCall – If called from a chunk access callback

  • VmbErrorApiNotStartedVmbStartup() was not called before the current command

  • VmbErrorBadHandle – The given handle is not valid

  • VmbErrorInvalidAccess – Operation is invalid with the current access mode

  • VmbErrorMoreData – Not all data were written; see sizeComplete value for the number of bytes written

Returns:

An error code indicating success or the type of error that occurred.

Load & Save Settings#

struct VmbFeaturePersistSettings#

Parameters determining the operation mode of VmbSettingsSave and VmbSettingsLoad.

In

VmbFeaturePersist_t persistType#

Type of features that are to be saved.

VmbModulePersistFlags_t modulePersistFlags#

Flags specifying the modules to persist/load.

VmbUint32_t maxIterations#

Number of iterations when loading settings.

VmbLogLevel_t loggingLevel#

DEPRECATED. The value of this member is never evaluated.

typedef struct VmbFeaturePersistSettings VmbFeaturePersistSettings_t#
VmbError_t VmbSettingsSave(VmbHandle_t handle, const VmbFilePathChar_t *filePath, const VmbFeaturePersistSettings_t *settings, VmbUint32_t sizeofSettings)#

Write the current features related to a module to a xml file.

Camera must be opened beforehand and function needs corresponding handle. With given filename parameter path and name of XML file can be determined. Additionally behaviour of function can be set with providing ‘persistent struct’.

Parameters:
  • handle[in] Handle for an entity that allows register access

  • filePath[in] The path to the file to save the settings to; relative paths are relative to the current working directory

  • settings[in] Settings struct; if null the default settings are used (persist features except LUT for the remote device, maximum 5 iterations, logging only errors)

  • sizeofSettings[in] Size of settings struct

Return values:
  • VmbErrorSuccess – If no error

  • VmbErrorInvalidCall – If called from a chunk access callback

  • VmbErrorBadParameter – If filePath is or the settings struct is invalid

  • VmbErrorStructSize – If sizeofSettings the struct size does not match the size of the struct expected by the API

  • VmbErrorApiNotStartedVmbStartup() was not called before the current command

  • VmbErrorBadHandle – The given handle is not valid

  • VmbErrorNotFound – The provided handle is insufficient to identify all the modules that should be saved

  • VmbErrorInvalidAccess – Operation is invalid with the current access mode

  • VmbErrorIO – There was an issue writing the file.

Returns:

An error code indicating success or the type of error that occurred.

VmbError_t VmbSettingsLoad(VmbHandle_t handle, const VmbFilePathChar_t *filePath, const VmbFeaturePersistSettings_t *settings, VmbUint32_t sizeofSettings)#

Load all feature values from xml file to device-related modules.

The modules must be opened beforehand. If the handle is non-null it must be a valid handle other than the Vmb API handle. Additionally behaviour of function can be set with providing settings . Note that even in case of an failure some or all of the features may have been set for some of the modules.

The error code VmbErrorRetriesExceeded only indicates that the number of retries was insufficient to restore the features. Even if the features could not be restored for one of the modules, restoring the features is not aborted but the process continues for other modules, if present.

Parameters:
  • handle[in] Handle related to the modules to write the values to; may be null to indicate that modules should be identified based on the information provided in the input file

  • filePath[in] The path to the file to load the settings from; relative paths are relative to the current working directory

  • settings[in] Settings struct; pass null to use the default settings. If the maxIterations field is 0, the number of iterations is determined by the value loaded from the xml file

  • sizeofSettings[in] Size of the settings struct

Return values:
  • VmbErrorSuccess – If no error

  • VmbErrorApiNotStartedVmbStartup() was not called before the current command

  • VmbErrorInvalidCall – If called from a chunk access callback

  • VmbErrorStructSize – If sizeofSettings the struct size does not match the size of the struct expected by the API

  • VmbErrorWrongTypehandle is neither null nor a transport layer, interface, local device, remote device or stream handle

  • VmbErrorBadHandle – The given handle is not valid

  • VmbErrorAmbiguous – The modules to restore the settings for cannot be uniquely identified based on the information available

  • VmbErrorNotFound – The provided handle is insufficient to identify all the modules that should be restored

  • VmbErrorRetriesExceeded – Some or all of the features could not be restored with the max iterations specified

  • VmbErrorInvalidAccess – Operation is invalid with the current access mode

  • VmbErrorBadParameter – If filePath is null or the settings struct is invalid

  • VmbErrorIO – There was an issue with reading the file.

Returns:

An error code indicating success or the type of error that occurred.

Common Types & Constants#

Main header file for the common types of the APIs.

This file describes all necessary definitions for types used within the Vmb APIs. These type definitions are designed to be portable from other languages and other operating systems.

Basic Types

VMB_FILE_PATH_LITERAL(value)#

macro for converting a c string literal into a system dependent string literal

Adds L as prefix on Windows and is replaced by the unmodified value on other operating systems.

const VmbFilePathChar_t* path = VMB_FILE_PATH_LITERAL("./some/path/tl.cti");
enum VmbBoolVal#

enum for bool values.

Values:

enumerator VmbBoolTrue#
enumerator VmbBoolFalse#
typedef int8_t VmbInt8_t#

8-bit signed integer.

typedef uint8_t VmbUint8_t#

8-bit unsigned integer.

typedef int16_t VmbInt16_t#

16-bit signed integer.

typedef uint16_t VmbUint16_t#

16-bit unsigned integer.

typedef int32_t VmbInt32_t#

32-bit signed integer.

typedef uint32_t VmbUint32_t#

32-bit unsigned integer.

typedef int64_t VmbInt64_t#

64-bit signed integer.

typedef uint64_t VmbUint64_t#

64-bit unsigned integer.

typedef void *VmbHandle_t#

Handle, e.g. for a camera.

typedef char VmbBool_t#

Boolean type (equivalent to char).

For values see VmbBoolVal

typedef enum VmbBoolVal VmbBoolVal

enum for bool values.

typedef unsigned char VmbUchar_t#

char type.

typedef char VmbFilePathChar_t#

Character type used for file paths

Error Codes

enum VmbErrorType#

Error codes, returned by most functions.

Values:

enumerator VmbErrorSuccess#

No error.

enumerator VmbErrorInternalFault#

Unexpected fault in VmbC or driver.

enumerator VmbErrorApiNotStarted#

VmbStartup() was not called before the current command

enumerator VmbErrorNotFound#

The designated instance (camera, feature etc.) cannot be found.

enumerator VmbErrorBadHandle#

The given handle is not valid.

enumerator VmbErrorDeviceNotOpen#

Device was not opened for usage.

enumerator VmbErrorInvalidAccess#

Operation is invalid with the current access mode.

enumerator VmbErrorBadParameter#

One of the parameters is invalid (usually an illegal pointer)

enumerator VmbErrorStructSize#

The given struct size is not valid for this version of the API.

enumerator VmbErrorMoreData#

More data available in a string/list than space is provided.

enumerator VmbErrorWrongType#

Wrong feature type for this access function.

enumerator VmbErrorInvalidValue#

The value is not valid; either out of bounds or not an increment of the minimum.

enumerator VmbErrorTimeout#

Timeout during wait.

enumerator VmbErrorOther#

Other error.

enumerator VmbErrorResources#

Resources not available (e.g. memory)

enumerator VmbErrorInvalidCall#

Call is invalid in the current context (e.g. callback)

enumerator VmbErrorNoTL#

No transport layers are found.

enumerator VmbErrorNotImplemented#

API feature is not implemented.

enumerator VmbErrorNotSupported#

API feature is not supported.

enumerator VmbErrorIncomplete#

The current operation was not completed (e.g. a multiple registers read or write)

enumerator VmbErrorIO#

Low level IO error in transport layer.

enumerator VmbErrorValidValueSetNotPresent#

The valid value set could not be retrieved, since the feature does not provide this property.

enumerator VmbErrorGenTLUnspecified#

Unspecified GenTL runtime error.

enumerator VmbErrorUnspecified#

Unspecified runtime error.

enumerator VmbErrorBusy#

The responsible module/entity is busy executing actions.

enumerator VmbErrorNoData#

The function has no data to work on.

enumerator VmbErrorParsingChunkData#

An error occurred parsing a buffer containing chunk data.

enumerator VmbErrorInUse#

Something is already in use.

enumerator VmbErrorUnknown#

Error condition unknown.

enumerator VmbErrorXml#

Error parsing XML.

enumerator VmbErrorNotAvailable#

Something is not available.

enumerator VmbErrorNotInitialized#

Something is not initialized.

enumerator VmbErrorInvalidAddress#

The given address is out of range or invalid for internal reasons.

enumerator VmbErrorAlready#

Something has already been done.

enumerator VmbErrorNoChunkData#

A frame expected to contain chunk data does not contain chunk data.

enumerator VmbErrorUserCallbackException#

A callback provided by the user threw an exception.

enumerator VmbErrorFeaturesUnavailable#

The XML for the module is currently not loaded; the module could be in the wrong state or the XML could not be retrieved or could not be parsed properly.

enumerator VmbErrorTLNotFound#

A required transport layer could not be found or loaded.

enumerator VmbErrorAmbiguous#

An entity cannot be uniquely identified based on the information provided.

enumerator VmbErrorRetriesExceeded#

Something could not be accomplished with a given number of retries.

enumerator VmbErrorInsufficientBufferCount#

The operation requires more buffers.

enumerator VmbErrorCustom#

The minimum error code to use for user defined error codes to avoid conflict with existing error codes.

typedef enum VmbErrorType VmbErrorType

Error codes, returned by most functions.

typedef VmbInt32_t VmbError_t#

Type for an error returned by API methods; for values see VmbErrorType.

Version

typedef struct VmbVersionInfo VmbVersionInfo_t

Version information.

Pixel information

enum VmbPixelType#

Indicates if pixel is monochrome or RGB.

Values:

enumerator VmbPixelMono#

Monochrome pixel.

enumerator VmbPixelColor#

Pixel bearing color information.

enum VmbPixelOccupyType#

Indicates number of bits for a pixel. Needed for building values of VmbPixelFormatType.

Values:

enumerator VmbPixelOccupy8Bit#

Pixel effectively occupies 8 bits.

enumerator VmbPixelOccupy10Bit#

Pixel effectively occupies 10 bits.

enumerator VmbPixelOccupy12Bit#

Pixel effectively occupies 12 bits.

enumerator VmbPixelOccupy14Bit#

Pixel effectively occupies 14 bits.

enumerator VmbPixelOccupy16Bit#

Pixel effectively occupies 16 bits.

enumerator VmbPixelOccupy24Bit#

Pixel effectively occupies 24 bits.

enumerator VmbPixelOccupy32Bit#

Pixel effectively occupies 32 bits.

enumerator VmbPixelOccupy48Bit#

Pixel effectively occupies 48 bits.

enumerator VmbPixelOccupy64Bit#

Pixel effectively occupies 64 bits.

enum VmbPixelFormatType#

Pixel format types. As far as possible, the Pixel Format Naming Convention (PFNC) has been followed, allowing a few deviations. If data spans more than one byte, it is always LSB aligned, except if stated differently.

Values:

enumerator VmbPixelFormatMono8#

Monochrome, 8 bits (PFNC: Mono8)

enumerator VmbPixelFormatMono10#

Monochrome, 10 bits in 16 bits (PFNC: Mono10)

enumerator VmbPixelFormatMono10p#

Monochrome, 10 bits continuously packed (4x10 bits in 40 bits) (PFNC: Mono10p)

enumerator VmbPixelFormatMono12#

Monochrome, 12 bits in 16 bits (PFNC: Mono12)

enumerator VmbPixelFormatMono12Packed#

Monochrome, 2x12 bits in 24 bits (GEV:Mono12Packed)

enumerator VmbPixelFormatMono12p#

Monochrome, 2x12 bits in 24 bits (PFNC: MonoPacked)

enumerator VmbPixelFormatMono14#

Monochrome, 14 bits in 16 bits (PFNC: Mono14)

enumerator VmbPixelFormatMono16#

Monochrome, 16 bits (PFNC: Mono16)

enumerator VmbPixelFormatBayerGR8#

Bayer-color, 8 bits, starting with GR line (PFNC: BayerGR8)

enumerator VmbPixelFormatBayerRG8#

Bayer-color, 8 bits, starting with RG line (PFNC: BayerRG8)

enumerator VmbPixelFormatBayerGB8#

Bayer-color, 8 bits, starting with GB line (PFNC: BayerGB8)

enumerator VmbPixelFormatBayerBG8#

Bayer-color, 8 bits, starting with BG line (PFNC: BayerBG8)

enumerator VmbPixelFormatBayerGR10#

Bayer-color, 10 bits in 16 bits, starting with GR line (PFNC: BayerGR10)

enumerator VmbPixelFormatBayerRG10#

Bayer-color, 10 bits in 16 bits, starting with RG line (PFNC: BayerRG10)

enumerator VmbPixelFormatBayerGB10#

Bayer-color, 10 bits in 16 bits, starting with GB line (PFNC: BayerGB10)

enumerator VmbPixelFormatBayerBG10#

Bayer-color, 10 bits in 16 bits, starting with BG line (PFNC: BayerBG10)

enumerator VmbPixelFormatBayerGR12#

Bayer-color, 12 bits in 16 bits, starting with GR line (PFNC: BayerGR12)

enumerator VmbPixelFormatBayerRG12#

Bayer-color, 12 bits in 16 bits, starting with RG line (PFNC: BayerRG12)

enumerator VmbPixelFormatBayerGB12#

Bayer-color, 12 bits in 16 bits, starting with GB line (PFNC: BayerGB12)

enumerator VmbPixelFormatBayerBG12#

Bayer-color, 12 bits in 16 bits, starting with BG line (PFNC: BayerBG12)

enumerator VmbPixelFormatBayerGR12Packed#

Bayer-color, 2x12 bits in 24 bits, starting with GR line (GEV:BayerGR12Packed)

enumerator VmbPixelFormatBayerRG12Packed#

Bayer-color, 2x12 bits in 24 bits, starting with RG line (GEV:BayerRG12Packed)

enumerator VmbPixelFormatBayerGB12Packed#

Bayer-color, 2x12 bits in 24 bits, starting with GB line (GEV:BayerGB12Packed)

enumerator VmbPixelFormatBayerBG12Packed#

Bayer-color, 2x12 bits in 24 bits, starting with BG line (GEV:BayerBG12Packed)

enumerator VmbPixelFormatBayerGR10p#

Bayer-color, 10 bits continuously packed, starting with GR line (PFNC: BayerGR10p)

enumerator VmbPixelFormatBayerRG10p#

Bayer-color, 10 bits continuously packed, starting with RG line (PFNC: BayerRG10p)

enumerator VmbPixelFormatBayerGB10p#

Bayer-color, 10 bits continuously packed, starting with GB line (PFNC: BayerGB10p)

enumerator VmbPixelFormatBayerBG10p#

Bayer-color, 10 bits continuously packed, starting with BG line (PFNC: BayerBG10p)

enumerator VmbPixelFormatBayerGR12p#

Bayer-color, 12 bits continuously packed, starting with GR line (PFNC: BayerGR12p)

enumerator VmbPixelFormatBayerRG12p#

Bayer-color, 12 bits continuously packed, starting with RG line (PFNC: BayerRG12p)

enumerator VmbPixelFormatBayerGB12p#

Bayer-color, 12 bits continuously packed, starting with GB line (PFNC: BayerGB12p)

enumerator VmbPixelFormatBayerBG12p#

Bayer-color, 12 bits continuously packed, starting with BG line (PFNC: BayerBG12p)

enumerator VmbPixelFormatBayerGR16#

Bayer-color, 16 bits, starting with GR line (PFNC: BayerGR16)

enumerator VmbPixelFormatBayerRG16#

Bayer-color, 16 bits, starting with RG line (PFNC: BayerRG16)

enumerator VmbPixelFormatBayerGB16#

Bayer-color, 16 bits, starting with GB line (PFNC: BayerGB16)

enumerator VmbPixelFormatBayerBG16#

Bayer-color, 16 bits, starting with BG line (PFNC: BayerBG16)

enumerator VmbPixelFormatRgb8#

RGB, 8 bits x 3 (PFNC: RGB8)

enumerator VmbPixelFormatBgr8#

BGR, 8 bits x 3 (PFNC: BGR8)

enumerator VmbPixelFormatRgb10#

RGB, 12 bits in 16 bits x 3 (PFNC: RGB12)

enumerator VmbPixelFormatBgr10#

RGB, 12 bits in 16 bits x 3 (PFNC: RGB12)

enumerator VmbPixelFormatRgb12#

RGB, 12 bits in 16 bits x 3 (PFNC: RGB12)

enumerator VmbPixelFormatBgr12#

RGB, 12 bits in 16 bits x 3 (PFNC: RGB12)

enumerator VmbPixelFormatRgb14#

RGB, 14 bits in 16 bits x 3 (PFNC: RGB12)

enumerator VmbPixelFormatBgr14#

RGB, 14 bits in 16 bits x 3 (PFNC: RGB12)

enumerator VmbPixelFormatRgb16#

RGB, 16 bits x 3 (PFNC: RGB16)

enumerator VmbPixelFormatBgr16#

RGB, 16 bits x 3 (PFNC: RGB16)

enumerator VmbPixelFormatArgb8#

ARGB, 8 bits x 4 (PFNC: RGBa8)

enumerator VmbPixelFormatRgba8#

RGBA, 8 bits x 4, legacy name.

enumerator VmbPixelFormatBgra8#

BGRA, 8 bits x 4 (PFNC: BGRa8)

enumerator VmbPixelFormatRgba10#

RGBA, 8 bits x 4, legacy name.

enumerator VmbPixelFormatBgra10#

RGBA, 8 bits x 4, legacy name.

enumerator VmbPixelFormatRgba12#

RGBA, 8 bits x 4, legacy name.

enumerator VmbPixelFormatBgra12#

RGBA, 8 bits x 4, legacy name.

enumerator VmbPixelFormatRgba14#

RGBA, 8 bits x 4, legacy name.

enumerator VmbPixelFormatBgra14#

RGBA, 8 bits x 4, legacy name.

enumerator VmbPixelFormatRgba16#

RGBA, 8 bits x 4, legacy name.

enumerator VmbPixelFormatBgra16#

RGBA, 8 bits x 4, legacy name.

enumerator VmbPixelFormatYuv411#

YUV 4:1:1 with 8 bits (PFNC: YUV411_8_UYYVYY, GEV:YUV411Packed)

enumerator VmbPixelFormatYuv422#

YUV 4:2:2 with 8 bits (PFNC: YUV422_8_UYVY, GEV:YUV422Packed)

enumerator VmbPixelFormatYuv444#

YUV 4:4:4 with 8 bits (PFNC: YUV8_UYV, GEV:YUV444Packed)

enumerator VmbPixelFormatYuv422_8#

YUV 4:2:2 with 8 bits Channel order YUYV (PFNC: YUV422_8)

enumerator VmbPixelFormatYCbCr8_CbYCr#

YCbCr 4:4:4 with 8 bits (PFNC: YCbCr8_CbYCr) - identical to VmbPixelFormatYuv444.

enumerator VmbPixelFormatYCbCr422_8#

YCbCr 4:2:2 8-bit YCbYCr (PFNC: YCbCr422_8)

enumerator VmbPixelFormatYCbCr411_8_CbYYCrYY#

YCbCr 4:1:1 with 8 bits (PFNC: YCbCr411_8_CbYYCrYY) - identical to VmbPixelFormatYuv411.

enumerator VmbPixelFormatYCbCr601_8_CbYCr#

YCbCr601 4:4:4 8-bit CbYCrt (PFNC: YCbCr601_8_CbYCr)

enumerator VmbPixelFormatYCbCr601_422_8#

YCbCr601 4:2:2 8-bit YCbYCr (PFNC: YCbCr601_422_8)

enumerator VmbPixelFormatYCbCr601_411_8_CbYYCrYY#

YCbCr601 4:1:1 8-bit CbYYCrYY (PFNC: YCbCr601_411_8_CbYYCrYY)

enumerator VmbPixelFormatYCbCr709_8_CbYCr#

YCbCr709 4:4:4 8-bit CbYCr (PFNC: YCbCr709_8_CbYCr)

enumerator VmbPixelFormatYCbCr709_422_8#

YCbCr709 4:2:2 8-bit YCbYCr (PFNC: YCbCr709_422_8)

enumerator VmbPixelFormatYCbCr709_411_8_CbYYCrYY#

YCbCr709 4:1:1 8-bit CbYYCrYY (PFNC: YCbCr709_411_8_CbYYCrYY)

enumerator VmbPixelFormatYCbCr422_8_CbYCrY#

YCbCr 4:2:2 with 8 bits (PFNC: YCbCr422_8_CbYCrY) - identical to VmbPixelFormatYuv422.

enumerator VmbPixelFormatYCbCr601_422_8_CbYCrY#

YCbCr601 4:2:2 8-bit CbYCrY (PFNC: YCbCr601_422_8_CbYCrY)

enumerator VmbPixelFormatYCbCr709_422_8_CbYCrY#

YCbCr709 4:2:2 8-bit CbYCrY (PFNC: YCbCr709_422_8_CbYCrY)

enumerator VmbPixelFormatYCbCr411_8#

YCbCr 4:1:1 8-bit YYCbYYCr (PFNC: YCbCr411_8)

enumerator VmbPixelFormatYCbCr8#

YCbCr 4:4:4 8-bit YCbCr (PFNC: YCbCr8)

enumerator VmbPixelFormatLast#
typedef enum VmbPixelType VmbPixelType

Indicates if pixel is monochrome or RGB.

typedef enum VmbPixelOccupyType VmbPixelOccupyType

Indicates number of bits for a pixel. Needed for building values of VmbPixelFormatType.

typedef enum VmbPixelFormatType VmbPixelFormatType

Pixel format types. As far as possible, the Pixel Format Naming Convention (PFNC) has been followed, allowing a few deviations. If data spans more than one byte, it is always LSB aligned, except if stated differently.

typedef VmbUint32_t VmbPixelFormat_t#

Type for the pixel format; for values see VmbPixelFormatType.

struct VmbVersionInfo
#include <VmbCommonTypes.h>

Version information.

Out

VmbUint32_t major

Major version number.

VmbUint32_t minor

Minor version number.

VmbUint32_t patch

Patch version number.

File containing constants used in the Vmb C API.

Defines

VMB_PATH_SEPARATOR_CHAR#

the character used to separate file paths in the parameter of VmbStartup

VMB_PATH_SEPARATOR_STRING#

the string used to separate file paths in the parameter of VmbStartup

VMB_SFNC_NAMESPACE_CUSTOM#

The C string identifying the namespace of features not defined in the SFNC standard.

VMB_SFNC_NAMESPACE_STANDARD#

The C string identifying the namespace of features defined in the SFNC standard.

Struct definitions for the VmbC API.

Transport layer

enum VmbTransportLayerType#

Camera or transport layer type (for instance U3V or GEV).

Values:

enumerator VmbTransportLayerTypeUnknown#

Interface is not known to this version of the API.

enumerator VmbTransportLayerTypeGEV#

GigE Vision.

enumerator VmbTransportLayerTypeCL#

Camera Link.

enumerator VmbTransportLayerTypeIIDC#

IIDC 1394.

enumerator VmbTransportLayerTypeUVC#

USB video class.

enumerator VmbTransportLayerTypeCXP#

CoaXPress.

enumerator VmbTransportLayerTypeCLHS#

Camera Link HS.

enumerator VmbTransportLayerTypeU3V#

USB3 Vision Standard.

enumerator VmbTransportLayerTypeEthernet#

Generic Ethernet.

enumerator VmbTransportLayerTypePCI#

PCI / PCIe.

enumerator VmbTransportLayerTypeCustom#

Non standard.

enumerator VmbTransportLayerTypeMixed#

Mixed (transport layer only)

typedef enum VmbTransportLayerType VmbTransportLayerType

Camera or transport layer type (for instance U3V or GEV).

typedef VmbUint32_t VmbTransportLayerType_t#

Type for an Interface; for values see VmbTransportLayerType.

typedef struct VmbTransportLayerInfo VmbTransportLayerInfo_t

Transport layer information.

Holds read-only information about a transport layer.

Interface

typedef struct VmbInterfaceInfo VmbInterfaceInfo_t

Interface information.

Holds read-only information about an interface.

Camera

enum VmbAccessModeType#

Access mode for cameras.

Used in VmbCameraInfo_t as flags, so multiple modes can be announced, while in VmbCameraOpen(), no combination must be used.

Values:

enumerator VmbAccessModeNone#

No access.

enumerator VmbAccessModeFull#

Read and write access.

enumerator VmbAccessModeRead#

Read-only access.

enumerator VmbAccessModeUnknown#

Access type unknown.

enumerator VmbAccessModeExclusive#

Read and write access without permitting access for other consumers.

typedef enum VmbAccessModeType VmbAccessModeType

Access mode for cameras.

Used in VmbCameraInfo_t as flags, so multiple modes can be announced, while in VmbCameraOpen(), no combination must be used.

typedef VmbUint32_t VmbAccessMode_t#

Type for an AccessMode; for values see VmbAccessModeType.

typedef struct VmbCameraInfo VmbCameraInfo_t

Camera information.

Holds read-only information about a camera.

Feature

enum VmbFeatureDataType#

Supported feature data types.

Values:

enumerator VmbFeatureDataUnknown#

Unknown feature type.

enumerator VmbFeatureDataInt#

64-bit integer feature

enumerator VmbFeatureDataFloat#

64-bit floating point feature

enumerator VmbFeatureDataEnum#

Enumeration feature.

enumerator VmbFeatureDataString#

String feature.

enumerator VmbFeatureDataBool#

Boolean feature.

enumerator VmbFeatureDataCommand#

Command feature.

enumerator VmbFeatureDataRaw#

Raw (direct register access) feature.

enumerator VmbFeatureDataNone#

Feature with no data.

enum VmbFeatureVisibilityType#

Feature visibility.

Values:

enumerator VmbFeatureVisibilityUnknown#

Feature visibility is not known.

enumerator VmbFeatureVisibilityBeginner#

Feature is visible in feature list (beginner level)

enumerator VmbFeatureVisibilityExpert#

Feature is visible in feature list (expert level)

enumerator VmbFeatureVisibilityGuru#

Feature is visible in feature list (guru level)

enumerator VmbFeatureVisibilityInvisible#

Feature is visible in the feature list, but should be hidden in GUI applications.

enum VmbFeatureFlagsType#

Feature flags.

Values:

enumerator VmbFeatureFlagsNone#

No additional information is provided.

enumerator VmbFeatureFlagsRead#

Static info about read access. Current status depends on access mode, check with VmbFeatureAccessQuery()

enumerator VmbFeatureFlagsWrite#

Static info about write access. Current status depends on access mode, check with VmbFeatureAccessQuery()

enumerator VmbFeatureFlagsVolatile#

Value may change at any time.

enumerator VmbFeatureFlagsModifyWrite#

Value may change after a write.

typedef enum VmbFeatureDataType VmbFeatureDataType

Supported feature data types.

typedef VmbUint32_t VmbFeatureData_t#

Data type for a Feature; for values see VmbFeatureDataType.

typedef enum VmbFeatureVisibilityType VmbFeatureVisibilityType

Feature visibility.

typedef VmbUint32_t VmbFeatureVisibility_t#

Type for Feature visibility; for values see VmbFeatureVisibilityType.

typedef enum VmbFeatureFlagsType VmbFeatureFlagsType

Feature flags.

typedef VmbUint32_t VmbFeatureFlags_t#

Type for Feature flags; for values see VmbFeatureFlagsType.

typedef struct VmbFeatureInfo VmbFeatureInfo_t#

Feature information.

Holds read-only information about a feature.

typedef struct VmbFeatureEnumEntry VmbFeatureEnumEntry_t

Info about possible entries of an enumeration feature.

Frame

enum VmbFrameStatusType#

Status of a frame transfer.

Values:

enumerator VmbFrameStatusComplete#

Frame has been completed without errors.

enumerator VmbFrameStatusIncomplete#

Frame could not be filled to the end.

enumerator VmbFrameStatusTooSmall#

Frame buffer was too small.

enumerator VmbFrameStatusInvalid#

Frame buffer was invalid.

enum VmbFrameFlagsType#

Frame flags.

Values:

enumerator VmbFrameFlagsNone#

No additional information is provided.

enumerator VmbFrameFlagsDimension#

VmbFrame_t::width and VmbFrame_t::height are provided.

enumerator VmbFrameFlagsOffset#

VmbFrame_t::offsetX and VmbFrame_t::offsetY are provided (ROI)

enumerator VmbFrameFlagsFrameID#

VmbFrame_t::frameID is provided.

enumerator VmbFrameFlagsTimestamp#

VmbFrame_t::timestamp is provided.

enumerator VmbFrameFlagsImageData#

VmbFrame_t::imageData is provided.

enumerator VmbFrameFlagsPayloadType#

VmbFrame_t::payloadType is provided.

enumerator VmbFrameFlagsChunkDataPresent#

VmbFrame_t::chunkDataPresent is set based on info provided by the transport layer.

enum VmbPayloadType#

Frame payload type.

Values:

enumerator VmbPayloadTypeUnknown#

Unknown payload type.

enumerator VmbPayloadTypeImage#

image data

enumerator VmbPayloadTypeRaw#

raw data

enumerator VmbPayloadTypeFile#

file data

enumerator VmbPayloadTypeJPEG#

JPEG data as described in the GigEVision 2.0 specification.

enumerator VmbPayloadTypJPEG2000#

JPEG 2000 data as described in the GigEVision 2.0 specification.

enumerator VmbPayloadTypeH264#

H.264 data as described in the GigEVision 2.0 specification.

enumerator VmbPayloadTypeChunkOnly#

Chunk data exclusively.

enumerator VmbPayloadTypeDeviceSpecific#

Device specific data format.

enumerator VmbPayloadTypeGenDC#

GenDC data.

typedef enum VmbFrameStatusType VmbFrameStatusType

Status of a frame transfer.

typedef VmbInt32_t VmbFrameStatus_t#

Type for the frame status; for values see VmbFrameStatusType.

typedef enum VmbFrameFlagsType VmbFrameFlagsType

Frame flags.

typedef VmbUint32_t VmbFrameFlags_t#

Type for Frame flags; for values see VmbFrameFlagsType.

typedef enum VmbPayloadType VmbPayloadType

Frame payload type.

typedef VmbUint32_t VmbPayloadType_t#

Type representing the payload type of a frame. For values see VmbPayloadType.

typedef VmbUint32_t VmbImageDimension_t#

Type used to represent a dimension value, e.g. the image height.

typedef struct VmbFrame VmbFrame_t

Frame delivered by the camera.

Save/LoadSettings

enum VmbFeaturePersistType#

Type of features that are to be saved (persisted) to the XML file when using VmbSettingsSave.

Values:

enumerator VmbFeaturePersistAll#

Save all features to XML, including look-up tables (if possible)

enumerator VmbFeaturePersistStreamable#

Save only features marked as streamable, excluding look-up tables.

enumerator VmbFeaturePersistNoLUT#

Save all features except look-up tables (default)

enum VmbModulePersistFlagsType#

Parameters determining the operation mode of VmbSettingsSave and VmbSettingsLoad.

Values:

enumerator VmbModulePersistFlagsNone#

Persist/Load features for no module.

enumerator VmbModulePersistFlagsTransportLayer#

Persist/Load the transport layer features.

enumerator VmbModulePersistFlagsInterface#

Persist/Load the interface features.

enumerator VmbModulePersistFlagsRemoteDevice#

Persist/Load the remote device features.

enumerator VmbModulePersistFlagsLocalDevice#

Persist/Load the local device features.

enumerator VmbModulePersistFlagsStreams#

Persist/Load the features of stream modules.

enumerator VmbModulePersistFlagsAll#

Persist/Load features for all modules.

enum VmbLogLevel#

A level to use for logging.

Values:

enumerator VmbLogLevelNone#

Nothing is logged regardless of the severity of the issue.

enumerator VmbLogLevelError#

Only errors are logged.

enumerator VmbLogLevelDebug#

Only error and debug messages are logged.

enumerator VmbLogLevelWarn#

Only error, debug and warn messages are logged.

enumerator VmbLogLevelTrace#

all messages are logged

enumerator VmbLogLevelAll#

all messages are logged

typedef enum VmbFeaturePersistType VmbFeaturePersistType

Type of features that are to be saved (persisted) to the XML file when using VmbSettingsSave.

typedef VmbUint32_t VmbFeaturePersist_t#

Type for feature persistence; for values see VmbFeaturePersistType.

typedef enum VmbModulePersistFlagsType VmbModulePersistFlagsType

Parameters determining the operation mode of VmbSettingsSave and VmbSettingsLoad.

typedef VmbUint32_t VmbModulePersistFlags_t#

Type for module persist flags; for values see VmbModulePersistFlagsType.

Use a combination of VmbModulePersistFlagsType constants

typedef enum VmbLogLevel VmbLogLevel

A level to use for logging.

typedef VmbUint32_t VmbLogLevel_t#

The type used for storing the log level.

Use a constant from VmbLogLevel

typedef struct VmbFeaturePersistSettings VmbFeaturePersistSettings_t

Parameters determining the operation mode of VmbSettingsSave and VmbSettingsLoad.

Callbacks

typedef void (*VmbInvalidationCallback)(const VmbHandle_t handle, const char *name, void *userContext)

Invalidation callback type for a function that gets called in a separate thread and has been registered with VmbFeatureInvalidationRegister().

While the callback is run, all feature data is atomic. After the callback finishes, the feature data may be updated with new values.

Do not spend too much time in this thread; it prevents the feature values from being updated from any other thread or the lower-level drivers.

Param handle:

[in] Handle for an entity that exposes features

Param name:

[in] Name of the feature

Param userContext:

[in] Pointer to the user context, see VmbFeatureInvalidationRegister

typedef void (*VmbFrameCallback)(const VmbHandle_t cameraHandle, const VmbHandle_t streamHandle, VmbFrame_t *frame)#

Frame Callback type for a function that gets called in a separate thread if a frame has been queued with VmbCaptureFrameQueue.

Warning

Any operations closing the stream including VmbShutdown and VmbCameraClose in addition to VmbCaptureEnd block until any currently active callbacks return. If the callback does not return in finite time, the program may not return.

Param cameraHandle:

[in] Handle of the camera the frame belongs to

Param streamHandle:

[in] Handle of the stream the frame belongs to

Param frame:

[in] The received frame

typedef VmbError_t (*VmbChunkAccessCallback)(VmbHandle_t featureAccessHandle, void *userContext)

Function pointer type to access chunk data.

This function should complete as quickly as possible, since it blocks other updates on the remote device.

This function should not throw exceptions, even if VmbC is used from C++. Any exception thrown will only result in an error code indicating that an exception was thrown.

Param featureAccessHandle:

[in] A special handle that can be used for accessing features; the handle is only valid during the call of the function.

Param userContext:

[in] The value the user passed to VmbChunkDataAccess.

Return:

An error to be returned from VmbChunkDataAccess in the absence of other errors; A custom exit code >= VmbErrorCustom can be returned to indicate a failure via VmbChunkDataAccess return code

struct VmbTransportLayerInfo
#include <VmbCTypeDefinitions.h>

Transport layer information.

Holds read-only information about a transport layer.

Out

const char *transportLayerIdString

Unique id of the transport layer.

const char *transportLayerName

Name of the transport layer.

const char *transportLayerModelName

Model name of the transport layer.

const char *transportLayerVendor

Vendor of the transport layer.

const char *transportLayerVersion

Version of the transport layer.

const char *transportLayerPath

Full path of the transport layer.

VmbHandle_t transportLayerHandle

Handle of the transport layer for feature access.

VmbTransportLayerType_t transportLayerType

The type of the transport layer.

struct VmbInterfaceInfo
#include <VmbCTypeDefinitions.h>

Interface information.

Holds read-only information about an interface.

Out

const char *interfaceIdString

Identifier of the interface.

const char *interfaceName

Interface name, given by the transport layer.

VmbHandle_t interfaceHandle

Handle of the interface for feature access.

VmbHandle_t transportLayerHandle

Handle of the related transport layer for feature access.

VmbTransportLayerType_t interfaceType

The technology of the interface.

struct VmbCameraInfo
#include <VmbCTypeDefinitions.h>

Camera information.

Holds read-only information about a camera.

Out

const char *cameraIdString

Identifier of the camera.

const char *cameraIdExtended

globally unique identifier for the camera

const char *cameraName

The display name of the camera.

const char *modelName

Model name.

const char *serialString

Serial number.

VmbHandle_t transportLayerHandle

Handle of the related transport layer for feature access.

VmbHandle_t interfaceHandle

Handle of the related interface for feature access.

VmbHandle_t localDeviceHandle

Handle of the related GenTL local device. NULL if the camera is not opened.

VmbHandle_t const *streamHandles

Handles of the streams provided by the camera. NULL if the camera is not opened.

VmbUint32_t streamCount

Number of stream handles in the streamHandles array.

VmbAccessMode_t permittedAccess

Permitted access modes, see VmbAccessModeType.

struct VmbFeatureInfo#
#include <VmbCTypeDefinitions.h>

Feature information.

Holds read-only information about a feature.

Out

const char *name#

Name used in the API.

const char *category#

Category this feature can be found in.

const char *displayName#

Feature name to be used in GUIs.

const char *tooltip#

Short description, e.g. for a tooltip.

const char *description#

Longer description.

const char *sfncNamespace#

Namespace this feature resides in.

const char *unit#

Measuring unit as given in the XML file.

const char *representation#

Representation of a numeric feature.

VmbFeatureData_t featureDataType#

Data type of this feature.

VmbFeatureFlags_t featureFlags#

Access flags for this feature.

VmbUint32_t pollingTime#

Predefined polling time for volatile features.

VmbFeatureVisibility_t visibility#

GUI visibility.

VmbBool_t isStreamable#

Indicates if a feature can be stored to / loaded from a file.

VmbBool_t hasSelectedFeatures#

Indicates if the feature selects other features.

struct VmbFeatureEnumEntry
#include <VmbCTypeDefinitions.h>

Info about possible entries of an enumeration feature.

Out

const char *name

Name used in the API.

const char *displayName

Enumeration entry name to be used in GUIs.

const char *tooltip

Short description, e.g. for a tooltip.

const char *description

Longer description.

VmbInt64_t intValue

Integer value of this enumeration entry.

const char *sfncNamespace

Namespace this feature resides in.

VmbFeatureVisibility_t visibility

GUI visibility.

struct VmbFrame
#include <VmbCTypeDefinitions.h>

Frame delivered by the camera.

In

void *buffer

Comprises image and potentially chunk data.

VmbUint32_t bufferSize

The size of the data buffer.

void *context[4]

4 void pointers that can be employed by the user (e.g. for storing handles)

Out

VmbFrameStatus_t receiveStatus

The resulting status of the receive operation.

VmbUint64_t frameID

Unique ID of this frame in this stream.

VmbUint64_t timestamp

The timestamp set by the camera.

VmbUint8_t *imageData

The start of the image data, if present, or null.

VmbFrameFlags_t receiveFlags

Flags indicating which additional frame information is available.

VmbPixelFormat_t pixelFormat

Pixel format of the image.

VmbImageDimension_t width

Width of an image.

VmbImageDimension_t height

Height of an image.

VmbImageDimension_t offsetX

Horizontal offset of an image.

VmbImageDimension_t offsetY

Vertical offset of an image.

VmbPayloadType_t payloadType

The type of payload.

VmbBool_t chunkDataPresent

True if the transport layer reported chunk data to be present in the buffer.

struct VmbFeaturePersistSettings
#include <VmbCTypeDefinitions.h>

Parameters determining the operation mode of VmbSettingsSave and VmbSettingsLoad.

In

VmbFeaturePersist_t persistType

Type of features that are to be saved.

VmbModulePersistFlags_t modulePersistFlags

Flags specifying the modules to persist/load.

VmbUint32_t maxIterations

Number of iterations when loading settings.

VmbLogLevel_t loggingLevel

DEPRECATED. The value of this member is never evaluated.