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.
-
VmbUint32_t major
-
typedef struct VmbVersionInfo VmbVersionInfo_t
- IMEXPORTC VmbError_t VMB_CALL 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
VmbErrorBadParameter –
versionInfo
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.
-
const char *cameraIdString
-
typedef struct VmbCameraInfo VmbCameraInfo_t
- IMEXPORTC VmbError_t VMB_CALL 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.
VmbErrorBadParameter –
pathConfiguration
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.
- IMEXPORTC void VMB_CALL 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.
-
const char *transportLayerIdString
-
typedef struct VmbTransportLayerInfo VmbTransportLayerInfo_t
- IMEXPORTC VmbError_t VMB_CALL 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
VmbErrorApiNotStarted – VmbStartup() was not called before the current command
VmbErrorInternalFault – An internal fault occurred
VmbErrorNotImplemented – One of the transport layers does not provide the required information
VmbErrorBadParameter –
numFound
is nullVmbErrorStructSize – 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.
-
const char *interfaceIdString
-
typedef struct VmbInterfaceInfo VmbInterfaceInfo_t
- IMEXPORTC VmbError_t VMB_CALL 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
VmbErrorApiNotStarted – VmbStartup() was not called before the current command
VmbErrorBadParameter –
numFound
is nullVmbErrorStructSize – 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.
-
const char *cameraIdString
-
typedef struct VmbCameraInfo VmbCameraInfo_t
- IMEXPORTC VmbError_t VMB_CALL 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
VmbErrorApiNotStarted – VmbStartup() was not called before the current command
VmbErrorBadParameter –
numFound
is nullVmbErrorStructSize – The given struct size is not valid for this API version and
cameraInfo
is not nullVmbErrorMoreData – The given list length was insufficient to hold all available entries
- Returns:
An error code indicating success or the type of error that occurred.
- IMEXPORTC VmbError_t VMB_CALL 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
VmbErrorApiNotStarted – VmbStartup() was not called before the current command
VmbErrorInvalidCall – If called from a chunk access callback
VmbErrorBadParameter –
info
is nullVmbErrorBadHandle – The handle does not correspond to a camera
- Returns:
An error code indicating success or the type of error that occurred.
- IMEXPORTC VmbError_t VMB_CALL 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
VmbErrorApiNotStarted – VmbStartup() was not called before the current command
VmbErrorBadParameter –
idString
orinfo
are null oridString
is the empty stringVmbErrorNotFound – 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.
- IMEXPORTC VmbError_t VMB_CALL 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
VmbErrorApiNotStarted – VmbStartup() 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
orcameraHandle
are nullVmbErrorInvalidAccess – 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.
- IMEXPORTC VmbError_t VMB_CALL 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
VmbErrorApiNotStarted – VmbStartup() 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
- IMEXPORTC VmbError_t VMB_CALL 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 tonumFound
.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
VmbErrorApiNotStarted – VmbStartup() was not called before the current command
VmbErrorBadParameter – Both
featureInfoList
andnumFound
are nullVmbErrorBadHandle – 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.
- IMEXPORTC VmbError_t VMB_CALL 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
VmbErrorApiNotStarted – VmbStartup() was not called before the current command
VmbErrorBadParameter –
name
orfeatureInfo
are nullVmbErrorBadHandle – 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
- Returns:
An error code indicating success or the type of error that occurred.
- IMEXPORTC VmbError_t VMB_CALL 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
VmbErrorBadParameter –
name
is null or bothfeatureInfoList
andnumFound
are nullVmbErrorApiNotStarted – VmbStartup() 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.
- IMEXPORTC VmbError_t VMB_CALL 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
VmbErrorApiNotStarted – VmbStartup() was not called before the current command
VmbErrorBadParameter –
name
is null or bothisReadable
andisWriteable
are nullVmbErrorBadHandle – The given handle is not valid
VmbErrorNotFound – The feature was not found
VmbErrorInvalidAccess – Operation is invalid with the current access mode
- Returns:
An error code indicating success or the type of error that occurred.
Integer Feature Access
- IMEXPORTC VmbError_t VMB_CALL 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
VmbErrorApiNotStarted – VmbStartup() was not called before the current command
VmbErrorBadParameter –
name
orvalue
are nullVmbErrorBadHandle – The given handle is not valid
VmbErrorNotFound – The feature was not found
VmbErrorWrongType – The type of feature
name
is not IntegerVmbErrorInvalidAccess – 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.
- IMEXPORTC VmbError_t VMB_CALL 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
VmbErrorApiNotStarted – VmbStartup() was not called before the current command
VmbErrorBadParameter – If
name
is nullVmbErrorBadHandle – The given handle is not valid
VmbErrorNotFound – The feature was not found
VmbErrorWrongType – The type of feature
name
is not IntegerVmbErrorInvalidAccess – 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.
- IMEXPORTC VmbError_t VMB_CALL 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
VmbErrorApiNotStarted – VmbStartup() was not called before the current command
VmbErrorBadParameter – If
name
is null or bothmin
andmax
are nullVmbErrorBadHandle – 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.
- IMEXPORTC VmbError_t VMB_CALL 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
VmbErrorApiNotStarted – VmbStartup() was not called before the current command
VmbErrorBadParameter – If
name
orvalue
are nullVmbErrorBadHandle – The given handle is not valid
VmbErrorNotFound – The feature was not found
VmbErrorWrongType – The type of feature
name
is not IntegerVmbErrorInvalidAccess – The information is unavailable or cannot be read
- Returns:
An error code indicating success or the type of error that occurred.
- IMEXPORTC VmbError_t VMB_CALL 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
VmbErrorApiNotStarted – VmbStartup() was not called before the current command
VmbErrorBadParameter –
name
is null or bothbuffer
andbufferFilledCount
are nullVmbErrorBadHandle – 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
- IMEXPORTC VmbError_t VMB_CALL 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
VmbErrorApiNotStarted – VmbStartup() was not called before the current command
VmbErrorBadParameter –
name
orvalue
are nullVmbErrorBadHandle – The given handle is not valid
VmbErrorNotFound – The feature was not found
VmbErrorWrongType – The type of feature
name
is not FloatVmbErrorInvalidAccess – 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.
- IMEXPORTC VmbError_t VMB_CALL 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
VmbErrorApiNotStarted – VmbStartup() was not called before the current command
VmbErrorInvalidCall – If called from feature callback
VmbErrorBadParameter –
name
is nullVmbErrorBadHandle – The given handle is not valid
VmbErrorNotFound – The feature was not found
VmbErrorWrongType – The type of feature
name
is not FloatVmbErrorInvalidAccess – 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.
- IMEXPORTC VmbError_t VMB_CALL 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
VmbErrorBadParameter –
name
is null or bothmin
andmax
are nullVmbErrorApiNotStarted – VmbStartup() 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.
- IMEXPORTC VmbError_t VMB_CALL 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
VmbErrorBadParameter –
name
is null or bothvalue
andhasIncrement
are nullVmbErrorApiNotStarted – VmbStartup() 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
- IMEXPORTC VmbError_t VMB_CALL 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
VmbErrorApiNotStarted – VmbStartup() was not called before the current command
VmbErrorBadParameter –
name
orvalue
are nullVmbErrorBadHandle – The given handle is not valid
VmbErrorNotFound – If feature is not found
VmbErrorWrongType – The type of feature
name
is not BooleanVmbErrorNotImplemented – 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.
- IMEXPORTC VmbError_t VMB_CALL 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
VmbErrorApiNotStarted – VmbStartup() was not called before the current command
VmbErrorBadParameter –
name
is nullVmbErrorBadHandle – The given handle is not valid
VmbErrorNotFound – If the feature is not found
VmbErrorWrongType – The type of feature
name
is not BooleanVmbErrorInvalidAccess – 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
- IMEXPORTC VmbError_t VMB_CALL 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
VmbErrorBadParameter –
name
orvalue
are nullVmbErrorApiNotStarted – VmbStartup() 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.
- IMEXPORTC VmbError_t VMB_CALL 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
VmbErrorApiNotStarted – VmbStartup() was not called before the current command
VmbErrorInvalidCall – If called from feature callback
VmbErrorBadParameter – If
name
orvalue
are nullVmbErrorBadHandle – The given handle is not valid
VmbErrorNotFound – The feature was not found
VmbErrorWrongType – The type of feature
name
is not EnumerationVmbErrorNotAvailable – The feature is not available
VmbErrorInvalidAccess – Operation is invalid with the current access mode
VmbErrorNotImplemented – The feature isn’t implemented
VmbErrorInvalidValue –
value
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.
- IMEXPORTC VmbError_t VMB_CALL 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 queryarrayLength – [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
VmbErrorApiNotStarted – VmbStartup() was not called before the current command
VmbErrorBadParameter –
name
is null or bothnameArray
andnumFound
are nullVmbErrorBadHandle – The given handle is not valid
VmbErrorNotFound – The feature was not found
VmbErrorNotImplemented – The feature
name
is not implementedVmbErrorWrongType – The type of feature
name
is not EnumerationVmbErrorMoreData – The given array length was insufficient to hold all available entries
- Returns:
An error code indicating success or the type of error that occurred.
- IMEXPORTC VmbError_t VMB_CALL 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
VmbErrorApiNotStarted – VmbStartup() was not called before the current command
VmbErrorBadParameter –
name
,value
orisAvailable
are nullVmbErrorBadHandle – The given handle is not valid
VmbErrorNotFound – The feature was not found
VmbErrorWrongType – The type of feature
name
is not EnumerationVmbErrorNotImplemented – The feature
name
is not implementedVmbErrorInvalidValue – There is no enum entry with string representation of
value
for the given enum featureVmbErrorInvalidAccess – Operation is invalid with the current access mode
- Returns:
An error code indicating success or the type of error that occurred.
- IMEXPORTC VmbError_t VMB_CALL 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
VmbErrorApiNotStarted – VmbStartup() was not called before the current command
VmbErrorBadParameter – If
name
,value
orintVal
are nullVmbErrorBadHandle – The given handle is not valid
VmbErrorNotFound – No feature with the given name was found
VmbErrorNotImplemented – The feature
name
is not implementedVmbErrorInvalidValue –
value
is not the name of a enum entry for the featureVmbErrorWrongType – The type of feature
name
is not Enumeration
- Returns:
An error code indicating success or the type of error that occurred.
- IMEXPORTC VmbError_t VMB_CALL 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
VmbErrorApiNotStarted – VmbStartup() was not called before the current command
VmbErrorBadParameter –
name
orstringValue
are nullVmbErrorBadHandle – The given handle is not valid
VmbErrorNotFound – No feature with the given name was found
VmbErrorNotImplemented – No feature
name
is not implementedVmbErrorInvalidValue –
intValue
is not the int value of an enum entryVmbErrorWrongType – The type of feature
name
is not Enumeration
- Returns:
An error code indicating success or the type of error that occurred.
- IMEXPORTC VmbError_t VMB_CALL 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
VmbErrorApiNotStarted – VmbStartup() was not called before the current command
VmbErrorBadParameter –
featureName
,entryName
orfeatureEnumEntry
are nullVmbErrorBadHandle – The given handle is not valid
VmbErrorNotFound – The feature was not found
VmbErrorNotImplemented – The feature
name
is not implementedVmbErrorInvalidValue – 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.
-
const char *name
-
typedef struct VmbFeatureEnumEntry VmbFeatureEnumEntry_t
String Feature Access
- IMEXPORTC VmbError_t VMB_CALL 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 tobuffer
; the last element ofbuffer
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
VmbErrorApiNotStarted – VmbStartup() was not called before the current command
VmbErrorBadParameter –
name
is null, bothbuffer
andsizeFilled
are null orbuffer
is non-null and bufferSize is 0VmbErrorBadHandle – The given handle is not valid
VmbErrorNotFound – The feature was not found
VmbErrorWrongType – The type of feature
name
is not StringVmbErrorInvalidAccess – 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.
- IMEXPORTC VmbError_t VMB_CALL 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
VmbErrorApiNotStarted – VmbStartup() was not called before the current command
VmbErrorInvalidCall – If called from feature callback
VmbErrorBadParameter –
name
orvalue
are nullVmbErrorBadHandle – The given handle is not valid
VmbErrorNotFound – The feature was not found
VmbErrorWrongType – The type of feature
name
is not StringVmbErrorInvalidAccess – 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.
- IMEXPORTC VmbError_t VMB_CALL 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
VmbErrorApiNotStarted – VmbStartup() was not called before the current command
VmbErrorBadParameter –
name
ormaxLength
are nullVmbErrorBadHandle – The given handle is not valid
VmbErrorWrongType – The type of feature
name
is not StringVmbErrorInvalidAccess – 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
- IMEXPORTC VmbError_t VMB_CALL 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
VmbErrorApiNotStarted – VmbStartup() was not called before the current command
VmbErrorBadParameter –
name
is nullVmbErrorBadHandle – The given handle is not valid
VmbErrorNotFound – Feature was not found
VmbErrorWrongType – The type of feature
name
is not CommandVmbErrorNotImplemented – 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.
- IMEXPORTC VmbError_t VMB_CALL 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
VmbErrorApiNotStarted – VmbStartup() was not called before the current command
VmbErrorInvalidCall – If called from a chunk access callback
VmbErrorBadParameter – If
name
orisDone
are nullVmbErrorBadHandle – The given handle is not valid
VmbErrorNotFound – Feature was not found
VmbErrorWrongType – The type of feature
name
is not CommandVmbErrorInvalidAccess – 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
- IMEXPORTC VmbError_t VMB_CALL 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
VmbErrorApiNotStarted – VmbStartup() was not called before the current command
VmbErrorBadParameter –
name
,buffer
orsizeFilled
are nullVmbErrorBadHandle – The given handle is not valid
VmbErrorNotFound – Feature was not found
VmbErrorWrongType – The type of feature
name
is not RegisterVmbErrorInvalidAccess – 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.
- IMEXPORTC VmbError_t VMB_CALL 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
VmbErrorApiNotStarted – VmbStartup() was not called before the current command
VmbErrorInvalidCall – If called from feature callback or a chunk access callback
VmbErrorBadParameter –
name
orbuffer
are nullVmbErrorBadHandle – The given handle is not valid
VmbErrorNotFound – Feature was not found
VmbErrorWrongType – The type of feature
name
is not RegisterVmbErrorInvalidAccess – 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.
- IMEXPORTC VmbError_t VMB_CALL 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
VmbErrorApiNotStarted – VmbStartup() was not called before the current command
VmbErrorBadParameter – If
name
orlength
are nullVmbErrorBadHandle – The given handle is not valid
VmbErrorNotFound – Feature not found
VmbErrorWrongType – The type of feature
name
is not RegisterVmbErrorInvalidAccess – 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
- IMEXPORTC VmbError_t VMB_CALL 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
VmbErrorApiNotStarted – VmbStartup() was not called before the current command
VmbErrorBadParameter –
frame
orchunkAccessCallback
are nullVmbErrorInUse – 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
VmbErrorNoChunkData –
frame
does not contain chunk dataVmbErrorParsingChunkData – 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.
- VmbError_t(VMB_CALL * 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
- IMEXPORTC VmbError_t VMB_CALL 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
VmbErrorApiNotStarted – VmbStartup() was not called before the current command
VmbErrorInvalidCall – If called from a chunk access callback
VmbErrorBadParameter – If
name
orcallback
are nullVmbErrorBadHandle – The given handle is not valid
VmbErrorNotFound – No feature with
name
was found for the module associated withhandle
VmbErrorNotImplemented – The feature
name
is not implementedVmbErrorInvalidAccess – Operation is invalid with the current access mode
- Returns:
An error code indicating success or the type of error that occurred.
- IMEXPORTC VmbError_t VMB_CALL 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
VmbErrorApiNotStarted – VmbStartup() was not called before the current command
VmbErrorInvalidCall – If called from a chunk access callback
VmbErrorBadParameter – If
name
orcallback
are nullVmbErrorBadHandle – The given handle is not valid
VmbErrorNotFound – No feature with
name
was found for the module associated withhandle
or there was no listener to unregisterVmbErrorNotImplemented – The feature
name
is not implementedVmbErrorInvalidAccess – Operation is invalid with the current access mode
- Returns:
An error code indicating success or the type of error that occurred.
- void(VMB_CALL * 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.
-
void *buffer
- IMEXPORTC VmbError_t VMB_CALL 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
VmbErrorApiNotStarted – VmbStartup() was not called before the current command
VmbErrorBadHandle – The given handle is not valid
VmbErrorBadParameter –
payloadSize
is null
- Returns:
An error code indicating success or the type of error that occurred.
- IMEXPORTC VmbError_t VMB_CALL 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
VmbErrorApiNotStarted – VmbStartup() was not called before the current command
VmbErrorBadHandle – The given camera or stream handle is not valid
VmbErrorBadParameter –
frame
is nullVmbErrorAlready – 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.
- IMEXPORTC VmbError_t VMB_CALL 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
VmbErrorApiNotStarted – VmbStartup() 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.
- IMEXPORTC VmbError_t VMB_CALL 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
VmbErrorApiNotStarted – VmbStartup() was not called before the current command
VmbErrorBadHandle –
handle
is not validVmbErrorInUse – One of the frames of the stream is still in use
- Returns:
An error code indicating success or the type of error that occurred.
- IMEXPORTC VmbError_t VMB_CALL 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
VmbErrorApiNotStarted – VmbStartup() 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.
- IMEXPORTC VmbError_t VMB_CALL 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
VmbErrorApiNotStarted – VmbStartup() was not called before the current command
VmbErrorBadHandle –
handle
is not valid
- Returns:
An error code indicating success or the type of error that occurred.
- IMEXPORTC VmbError_t VMB_CALL 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 nullVmbErrorBadHandle – No stream related to
handle
could be foundVmbErrorApiNotStarted – VmbStartup() was not called before the current command
VmbErrorInternalFault – The buffer or bufferSize members of
frame
have been set to null or zero respectivelyVmbErrorNotFound – 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.
- IMEXPORTC VmbError_t VMB_CALL 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
VmbErrorApiNotStarted – VmbStartup() was not called before the current command
VmbErrorInvalidCall – If called from a chunk access callback
VmbErrorBadParameter – If
frame
or the buffer offrame
are null or the the buffer size offrame
is 0VmbErrorBadHandle – No stream related to
handle
could be foundVmbErrorNotFound – The frame is not one currently queued for the stream
VmbErrorAlready – The frame has already been dequeued or VmbCaptureFrameWait has been called already for this frame
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.
- IMEXPORTC VmbError_t VMB_CALL 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
VmbErrorApiNotStarted – VmbStartup() 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
- IMEXPORTC VmbError_t VMB_CALL 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
VmbErrorApiNotStarted – VmbStartup() 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.
- IMEXPORTC VmbError_t VMB_CALL 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
VmbErrorApiNotStarted – VmbStartup() 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
Determines level of detail for load/save settings logging.
-
VmbFeaturePersist_t persistType
-
typedef struct VmbFeaturePersistSettings VmbFeaturePersistSettings_t
- IMEXPORTC VmbError_t VMB_CALL 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 invalidVmbErrorStructSize – If sizeofSettings the struct size does not match the size of the struct expected by the API
VmbErrorApiNotStarted – VmbStartup() 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.
- IMEXPORTC VmbError_t VMB_CALL 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 filesizeofSettings – [in] Size of the settings struct
- Return values:
VmbErrorSuccess – If no error
VmbErrorApiNotStarted – VmbStartup() 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
VmbErrorWrongType –
handle
is neither null nor a transport layer, interface, local device, remote device or stream handleVmbErrorBadHandle – 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 invalidVmbErrorIO – 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");
-
typedef signed char VmbInt8_t
8-bit signed integer.
-
typedef unsigned char VmbUint8_t
8-bit unsigned integer.
-
typedef short VmbInt16_t
16-bit signed integer.
-
typedef unsigned short VmbUint16_t
16-bit unsigned integer.
-
typedef int VmbInt32_t
32-bit signed integer.
-
typedef unsigned int VmbUint32_t
32-bit unsigned integer.
-
typedef long long VmbInt64_t
64-bit signed integer.
-
typedef unsigned long long 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.
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.
-
enumerator VmbErrorSuccess
-
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.
-
enumerator VmbPixelMono
-
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.
-
enumerator VmbPixelOccupy8Bit
-
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
-
enumerator VmbPixelFormatMono8
-
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.
-
VmbUint32_t major
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)
-
enumerator VmbTransportLayerTypeUnknown
-
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.
-
enumerator VmbAccessModeNone
-
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.
-
enumerator VmbFeatureDataUnknown
-
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.
-
enumerator VmbFeatureVisibilityUnknown
-
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.
-
enumerator VmbFeatureFlagsNone
-
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.
-
enumerator VmbFrameStatusComplete
-
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.
-
enumerator VmbFrameFlagsNone
-
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.
-
enumerator VmbPayloadTypeUnknown
-
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)
-
enumerator VmbFeaturePersistAll
-
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.
-
enumerator VmbModulePersistFlagsNone
-
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
-
enumerator VmbLogLevelNone
-
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
- void(VMB_CALL * 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
- void(VMB_CALL * 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
- VmbError_t(VMB_CALL * 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.
-
const char *transportLayerIdString
-
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.
-
const char *interfaceIdString
-
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.
-
const char *cameraIdString
-
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.
-
const char *name
-
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.
-
const char *name
-
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.
-
void *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
Determines level of detail for load/save settings logging.
-
VmbFeaturePersist_t persistType