Impact Acquire SDK C++
Device Class Reference

This class and its functions represent an actual device detected by this interface in the current system. More...

#include <mvIMPACT_acquire.h>

Public Member Functions

void close (void)
 Closes an opened device.
 
 Device (const Device &src)
 Copy constructor.
 
ComponentList deviceDriverFeatureList (void) const
 Returns a list providing access to driver library specific features.
 
UserDatagetUserData (void)
 Returns a reference to a helper class to handle user specific data stored in the devices non-volatile memory(if available).
 
bool hasCapability (TDeviceCapability capability) const
 Checks whether this device has a certain capability.
 
bool hasValidLicense (void) const
 Checks whether this device has a valid usage license.
 
HDEV hDev (void) const
 A unique identifier for this device.
 
HDRV hDrv (void) const
 A unique identifier for the functionality offered by this device.
 
bool isInUse (void) const
 Returns the current usage status of this device.
 
bool isOpen (void) const
 Returns the current initialisation status in this process.
 
void open (void)
 Opens a device.
 
Deviceoperator= (const Device &rhs)
 Allows assignments of mvIMPACT::acquire::Device objects.
 
int setID (int newID) const
 Assigns a new ID to this device.
 
int updateFirmware (void) const
 Updates the firmware of the device.
 
void validateInterfaceLayout (TDeviceInterfaceLayout requiredInterfaceLayout) const
 A convenience function mostly used internally. Raises an exception if the current value of mvIMPACT::acquire::Device::interfaceLayout does not match the value passed to the function.
 
 ~Device (void)
 Class destructor.
 

Public Attributes

PropertyIAcquisitionStartStopBehaviour acquisitionStartStopBehaviour
 An enumerated integer property defining the start/stop behaviour during acquisition of this driver instance.
 
PropertyIBoolean allowUnrecommendedFeatures
 An enumerated integer property which can be used to unlock certain features, that are available but not recommended by the device manufacturer.
 
PropertyS autoLoadSettingOrder
 A string property (read-only) containing the auto load order of feature settings that is executed during initialisation of the device.
 
PropertyIBoolean autoNegotiatePacketSize
 An enumerated integer property which can be used to enable or disable the MTU auto negotiation of a GigE Vision device when opening it.
 
PropertyIDeviceAutoNegotiatePacketSizeMode autoNegotiatePacketSizeMode
 An enumerated integer property (read-only) that can be used to define how the auto packet size negotiation for a GigE Vision device is handled.
 
PropertyIDeviceCapability capabilities
 An enumerated integer property (read-only) defining special device capabilities.
 
PropertyS customDataDirectory
 A string property (read-only once the device is open) containing a path to a custom directory for the location of camera description files, etc.
 
PropertyI defaultRequestCount
 An integer property that defines the number of mvIMPACT::acquire::Request objects to be created when the device is opened.
 
PropertyIDeviceAccessMode desiredAccess
 An enumerated integer property that can be used to define the desired access to the device when opening it.
 
PropertyIDeviceClass deviceClass
 An enumerated integer property (read-only) defining the device class this device belongs to.
 
PropertyS deviceFamilyName
 A string property (read-only) containing the family name of this device.
 
PropertyI deviceID
 An integer property (read-only) containing the device ID associated with this device.
 
PropertyS deviceModelName
 A string property (read-only) containing the model name of this device.
 
PropertyS deviceVersion
 A string property (read-only) containing the version(e.g. the hard ware revision) of this device.
 
PropertyS family
 A string property (read-only) containing the family name of this device.
 
PropertyI firmwareVersion
 An integer property (read-only) containing the firmware version of this device.
 
PropertyIDeviceAccessMode grantedAccess
 An enumerated integer property (read-only) that can be used to query the granted access to the device after an attempt to open it.
 
PropertyIHWUpdateResult HWUpdateResult
 An enumerated integer property (read-only) defining user executed hardware update results.
 
PropertyIDeviceInterfaceLayout interfaceLayout
 An enumerated integer property which can be used to define which interface layout shall be used when the device is opened.
 
PropertyS licenseDetails
 A string property (read-only) that indicates why a device may be used with this SDK.
 
PropertyIBoolean licenseValid
 A boolean property (read-only) that indicates if a device may be used with this SDK.
 
PropertyIDeviceLoadSettings loadSettings
 An enumerated integer property which can be used to define which previously stored setting to load when the device is opened.
 
PropertyS manufacturer
 A string property (read-only) containing the name of the manufacturer of this device.
 
PropertyS manufacturerSpecificInformation
 A string property (read-only) containing manufacturer specific information of this device.
 
PropertyS product
 A string property (read-only) containing the product name of this device.
 
PropertyI resultQueueCount
 An integer property that defines the number of result queues to be created when the device is opened.
 
PropertyS serial
 A string property (read-only) containing the serial number of this device.
 
PropertyIDeviceState state
 An enumerated integer property (read-only) containing the current state of this device.
 
PropertyI streamChannelCount
 An integer property providing the number of stream channels supported by this device.
 
PropertyIBoolean userControlledImageProcessingEnable
 An enumerated integer property defining whether user controlled image processing related features shall be created under 'System Settings' or not.
 

Detailed Description

This class and its functions represent an actual device detected by this interface in the current system.

Instances of it can only be created by instances of the mvIMPACT::acquire::DeviceManager class as only the mvIMPACT::acquire::DeviceManager has the precise knowledge to do that anyway. As a result from this fact pointers to instances of mvIMPACT::acquire::Device can be obtained via a mvIMPACT::acquire::DeviceManager object only.

Attention
NEVER try to explicitly delete an instance of mvIMPACT::acquire::Device! You did not allocate it and the result will be a crash! The mvIMPACT::acquire::DeviceManager will take care of all resources for you.

A valid pointer to a mvIMPACT::acquire::Device object is needed to construct most of the other objects available in this interface.

Almost every object requiring a valid pointer to a mvIMPACT::acquire::Device object will need to device in an initialized state as the properties provided e.g. by the class mvIMPACT::acquire::CameraSettingsBase will be constructed when the device is initialized. To initialize a device this class provides the function mvIMPACT::acquire::Device::open. However every object which needs an initialized device to be constructed successfully will try to open the device when it hasn't been opened before, so the user does not need to call this function explicitly.

Attention
Whenever a device is closed via a call to mvIMPACT::acquire::Device::close all other objects constructed with a pointer to that device(e.g. mvIMPACT::acquire::CameraSettingsBase before will become invalid and need to be reconstructed afterwards, so don't close a device needlessly.
Whenever the last instance to a DeviceManager object gets destroyed within the current process every remaining device that was opened in this process before will be closed automatically! Thus every instance to mvIMPACT::acquire::Device objects or objects created with a pointer to a mvIMPACT::acquire::Device object will become invalid automatically. Therefore the user has to make sure there is always at least one instance to a mvIMPACT::acquire::DeviceManager object within the current process unless no more device access functions shall be called!
Examples
Callback.cpp, CaptureToMegaBuffer.cpp, CaptureToOpenGLMemory.cpp, CaptureToUserMemory.cpp, CaptureToUserMemory.legacy.cpp, ContinuousCapture.cpp, ContinuousCapture.linux.cpp, ContinuousCapture.win32.cpp, ContinuousCaptureAllDevices.cpp, ContinuousCaptureAllDevices.linux.cpp, ContinuousCaptureAllDevices.win32.cpp, ContinuousCaptureAllFormats.cpp, ContinuousCaptureAllFormats.win32.cpp, ContinuousCaptureFFmpeg.cpp, ContinuousCaptureGenDC.cpp, ContinuousCaptureMultiPart.cpp, ContinuousCaptureMultiPart.legacy.cpp, ContinuousCaptureOnlyProcessLatest.cpp, ContinuousCaptureOnlyProcessLatest.legacy.cpp, ContinuousCaptureToAVIFile.cpp, ContinuousCapture_BVS-3D-RV0.cpp, ContinuousCapture_BVS-3D-RV1.cpp, DigitalIOs.cpp, DigitalIOs.legacy.cpp, FirmwareUpdate.cpp, GenICamCallbackOnEvent.cpp, GenICamCommonSettingsUsage.cpp, GenICamCommonSettingsUsage.legacy.cpp, GenICamI2cUsage.cpp, GenICamInterfaceLayout.cpp, GenICamInterfaceLayout.legacy.cpp, GenICamSequencerParameterChangeAtRuntime.cpp, GenICamSequencerUsage.cpp, GenICamSequencerUsage.legacy.cpp, GenICamSequencerUsageWithPaths.cpp, GenICamSequencerUsageWithPaths.legacy.cpp, GenICamSmartFrameRecallUsage.cpp, GenICamSmartFrameRecallUsage.legacy.cpp, GenericInterfaceLayout.cpp, GenericInterfaceLayout.legacy.cpp, GigEVisionActionFeatures.cpp, Properties.cpp, Properties.legacy.cpp, SequenceCapture.cpp, SequenceCapture.win32.cpp, SingleCapture.cpp, SingleCaptureMasterSlave.cpp, SingleCaptureMasterSlave.legacy.cpp, SingleCaptureStorage.cpp, TimestampFeatures.cpp, and exampleHelper.h.

Constructor & Destructor Documentation

◆ Device()

Device ( const Device & src)
inlineexplicit

Copy constructor.

Creates a new object from an existing device object. Keep in mind that this new object will provide access to the very same hardware and therefore you might as well use the original reference returned from the mvIMPACT::acquire::DeviceManager. This constructor is only provided for internal reference counting to guarantee correct operation of the objects of this class under all platforms and languages.

◆ ~Device()

~Device ( void )
inline

Class destructor.

Note
This destructor must only be called for objects that have been created directly by the user on unmanaged heaps. Under most circumstances this means NEVER. E.g. for instances that have been obtained from a mvIMPACT::acquire::DeviceManager object do NOT call this destructor. The mvIMPACT::acquire::DeviceManager will take care of all the resources for you.

Member Function Documentation

◆ close()

void close ( void )
inline

Closes an opened device.

This function closes a device previously opened again.

Attention
Whenever a device is closed via a call to mvIMPACT::acquire::Device::close all other objects constructed with a pointer to that device(e.g. mvIMPACT::acquire::CameraSettingsBase before will become invalid and need to be reconstructed afterwards, so don't close a device needlessly.
See also
Device::open,
Device::isOpen
Examples
CaptureToOpenGLMemory.cpp, and ContinuousCapture.linux.cpp.

◆ deviceDriverFeatureList()

ComponentList deviceDriverFeatureList ( void ) const
inline

Returns a list providing access to driver library specific features.

This list does exist only once per device driver library. Changes in this list will affect all devices that are operated using this device driver library.

Since
2.17.0

◆ getUserData()

UserData & getUserData ( void )
inline

Returns a reference to a helper class to handle user specific data stored in the devices non-volatile memory(if available).

Returns
A reference to a helper class to handle user specific data stored in the devices non-volatile memory(if available).

◆ hasCapability()

bool hasCapability ( TDeviceCapability capability) const
inline

Checks whether this device has a certain capability.

Valid values for this property are defined by the enumeration mvIMPACT::acquire::TDeviceCapability.

Returns
  • true if the device has the capability in question
  • false otherwise.
Parameters
[in]capabilityThe capability whose presence shall be checked.

◆ hasValidLicense()

bool hasValidLicense ( void ) const
inline

Checks whether this device has a valid usage license.

Valid values for this property are defined by the enumeration mvIMPACT::acquire::TBoolean.

Note
As the name indicates, this property returns if this device has a valid license. Not all third-party vendors are allowed to run with this SDK without limitations, so this function offers a way to check in advance if this is one of them.
Since
2.46.0
Returns
  • true if the device has a valid license
  • false otherwise.

◆ hDev()

HDEV hDev ( void ) const
inline

A unique identifier for this device.

Note
This handle is NOT to be confused with the id stored in the devices EEPROM The latter one represents a number stored somewhere in the physical device's EEPROM, while this handle can be assumed as a handle from a software based point of view.
Examples
FirmwareUpdate.cpp, GenericInterfaceLayout.cpp, GenericInterfaceLayout.legacy.cpp, GigEVisionActionFeatures.cpp, Properties.cpp, and Properties.legacy.cpp.

◆ hDrv()

HDRV hDrv ( void ) const
inline

A unique identifier for the functionality offered by this device.

Note
This identifier is only valid, if the device has been initialized before by a call to Device::open

◆ isInUse()

bool isInUse ( void ) const
inline

Returns the current usage status of this device.

If this function returns true, this device was not in use at the time of calling this function. A call to mvIMPACT::acquire::Device::open() can still fail afterwards if some other process on the system claimed the device in the time between this call and the call to mvIMPACT::acquire::Device::open().

See also
Device::open,
Device::close
Since
2.0.11
Returns
  • true if the device is in use by at least one process(this includes the calling process).
  • false otherwise.

◆ isOpen()

bool isOpen ( void ) const
inline

Returns the current initialisation status in this process.

If this function returns true, this only states that the current process has not opened the device in question already. A call to mvIMPACT::acquire::Device::open() can still fail because of some other process using this device.

See also
Device::open,
Device::close
Returns
  • true if the device is initialized(opened) in the current process.
  • false otherwise.
Examples
ContinuousCapture_BVS-3D-RV0.cpp, and GigEVisionActionFeatures.cpp.

◆ open()

void open ( void )
inline

Opens a device.

This function will try to open the device represented by this instance of mvIMPACT::acquire::Device. If this fails for any reason an exception will be thrown. The exception object will contain additional information about the reason for the error.

Calling this function is not really necessary, as each object for accessing other settings of the device or even the function interface need the device to be opened in order to be constructed. Therefore all the constructors for these objects check if the device is open by calling mvIMPACT::acquire::Device::isOpen and open the device if necessary.

Note
Keep in mind that the first object trying to open the device might therefore throw an exception as well if opening the device fails for some reason.

Whenever a device is opened, the driver executes the following procedure:

Device_Setting_Start_Procedure.png
Device setting start procedure

Please have a look here for more information about automatic loading of settings when a device is opened.

Examples
Callback.cpp, CaptureToMegaBuffer.cpp, CaptureToOpenGLMemory.cpp, CaptureToUserMemory.cpp, CaptureToUserMemory.legacy.cpp, ContinuousCapture.cpp, ContinuousCapture.linux.cpp, ContinuousCaptureAllDevices.cpp, ContinuousCaptureAllDevices.win32.cpp, ContinuousCaptureAllFormats.cpp, ContinuousCaptureAllFormats.win32.cpp, ContinuousCaptureFFmpeg.cpp, ContinuousCaptureGenDC.cpp, ContinuousCaptureMultiPart.cpp, ContinuousCaptureMultiPart.legacy.cpp, ContinuousCaptureToAVIFile.cpp, ContinuousCapture_BVS-3D-RV0.cpp, ContinuousCapture_BVS-3D-RV1.cpp, GenICamCommonSettingsUsage.cpp, GenICamI2cUsage.cpp, GenICamInterfaceLayout.cpp, GenICamInterfaceLayout.legacy.cpp, GenICamSequencerParameterChangeAtRuntime.cpp, GenICamSequencerUsage.cpp, GenICamSequencerUsage.legacy.cpp, GenICamSequencerUsageWithPaths.cpp, GenICamSequencerUsageWithPaths.legacy.cpp, GenICamSmartFrameRecallUsage.cpp, GenICamSmartFrameRecallUsage.legacy.cpp, GenericInterfaceLayout.cpp, GenericInterfaceLayout.legacy.cpp, GigEVisionActionFeatures.cpp, Properties.cpp, Properties.legacy.cpp, SequenceCapture.cpp, SingleCapture.cpp, SingleCaptureMasterSlave.cpp, SingleCaptureMasterSlave.legacy.cpp, SingleCaptureStorage.cpp, and TimestampFeatures.cpp.

◆ operator=()

Device & operator= ( const Device & rhs)
inline

Allows assignments of mvIMPACT::acquire::Device objects.

◆ setID()

int setID ( int newID) const
inline

Assigns a new ID to this device.

To allow any application to distinguish between different devices of the same type the user can assign a unique ID to each device using this function. This ID currently is limited to values between 0 and 250 and is stored in the devices internal memory. This ID is NOT volatile. It will remain stored even if the device is unplugged.

Note
REMARKS:
  • The device must be closed to assign a new ID.
  • This ID is not to be confused with the handle returned by the function mvIMPACT::acquire::Device::hDev. The latter one represents something which can be assumed as a handle from a software based point of view, while the ID represented by the property mvIMPACT::acquire::Device::deviceID is an ID stored in the physical devices EEPROM.
  • Not every device will offer this feature! When calling this function for a device that does not offer this feature, the function will return mvIMPACT::acquire::DMR_FEATURE_NOT_AVAILABLE.
See also
mvIMPACT::acquire::Device::open,
mvIMPACT::acquire::Device::close
Returns
Parameters
[in]newIDThe new ID that shall be assigned to the device.

◆ updateFirmware()

int updateFirmware ( void ) const
inline

Updates the firmware of the device.

Calling this function will cause the driver to download a firmware version compiled into the driver library into the devices non-volatile internal memory.

Note
  • This feature currently is only available for mvBlueFOX devices. To update the firmware of other devices please refer to the tool DeviceConfigure(this tool also offers a command-line interface)
  • Be sure you know what you are doing before calling this function. Under normal circumstances it won't be necessary to update a devices firmware.
  • The download will take some time (depending on the device up to 30 seconds). During this time the device and the thread calling this function will NOT respond.
  • Do NOT interrupt this download.
  • After a successful download a USB device needs to be unplugged and plugged in again. Otherwise the new firmware version will not be activated.
  • To download a new firmware version the device must be closed.
  • Not every device will offer this feature! When calling this function for a device that does not offer this feature, the function will return mvIMPACT::acquire::DMR_FEATURE_NOT_AVAILABLE.
See also
mvIMPACT::acquire::Device::open,
mvIMPACT::acquire::Device::close
Returns

◆ validateInterfaceLayout()

void validateInterfaceLayout ( TDeviceInterfaceLayout requiredInterfaceLayout) const
inline

A convenience function mostly used internally. Raises an exception if the current value of mvIMPACT::acquire::Device::interfaceLayout does not match the value passed to the function.

If a driver does not support the interface layout property this function does nothing!

Member Data Documentation

◆ acquisitionStartStopBehaviour

PropertyIAcquisitionStartStopBehaviour acquisitionStartStopBehaviour

An enumerated integer property defining the start/stop behaviour during acquisition of this driver instance.

Valid values for this property are defined by the enumeration mvIMPACT::acquire::TAcquisitionStartStopBehaviour.

Note
This property will become read-only while the device is open.
This property is not supported by every device. Therefore always call the function mvIMPACT::acquire::Component::isValid to check if this property is available or not.

Not every device will offer the same options. Check for valid modes by reading the properties translation dictionary with the functions mvIMPACT::acquire::PropertyIAcquisitionStartStopBehaviour::getTranslationDictString and mvIMPACT::acquire::PropertyIAcquisitionStartStopBehaviour::getTranslationDictValue. C++ offers the more efficient function mvIMPACT::acquire::PropertyIAcquisitionStartStopBehaviour::getTranslationDict in addition to the functions mentioned above.

Since
1.12.11
Examples
ContinuousCapture.linux.cpp, ContinuousCaptureAllDevices.cpp, ContinuousCaptureAllDevices.win32.cpp, ContinuousCaptureGenDC.cpp, ContinuousCapture_BVS-3D-RV0.cpp, ContinuousCapture_BVS-3D-RV1.cpp, GenICamCommonSettingsUsage.cpp, GenICamCommonSettingsUsage.legacy.cpp, GenICamI2cUsage.cpp, GenICamInterfaceLayout.cpp, GenICamInterfaceLayout.legacy.cpp, GenICamSequencerParameterChangeAtRuntime.cpp, GenICamSequencerUsage.cpp, GenICamSequencerUsage.legacy.cpp, GenICamSequencerUsageWithPaths.cpp, GenICamSequencerUsageWithPaths.legacy.cpp, GenICamSmartFrameRecallUsage.cpp, GenICamSmartFrameRecallUsage.legacy.cpp, GigEVisionActionFeatures.cpp, TimestampFeatures.cpp, and exampleHelper.h.

◆ allowUnrecommendedFeatures

PropertyIBoolean allowUnrecommendedFeatures

An enumerated integer property which can be used to unlock certain features, that are available but not recommended by the device manufacturer.

Valid values for this property are defined by the enumeration mvIMPACT::acquire::TBoolean.

This property will be invisible by default. As the name indicates its use requires special knowledge that can be provided by the device manufacturer on request.

Note
Once the device is in use (has been initialized) this property will become (read-only).
Attention
Unlocking certain unrecommended features might result in the appearance of new translation dictionary entries for certain properties. Some of these translation strings might contain an exclamation mark ('!') in its name. NEVER rely on that! These exclamation marks or even the complete entry might disappear with a new driver release without further notice!

◆ autoLoadSettingOrder

PropertyS autoLoadSettingOrder

A string property (read-only) containing the auto load order of feature settings that is executed during initialisation of the device.

The first setting detected on the system will be used.

◆ autoNegotiatePacketSize

PropertyIBoolean autoNegotiatePacketSize

An enumerated integer property which can be used to enable or disable the MTU auto negotiation of a GigE Vision device when opening it.

If set to true, the driver will try to determine the max. possible packet size during init, which if successful will result in optimal performance. Valid values for this property are defined by the enumeration mvIMPACT::acquire::TBoolean.

Note
Once the device is in use (has been initialized) this property will become (read-only). If this feature is disabled even before the device has been opened a firmware update is needed to use it when accessed via the mvGenTLProducer-lib. When using a 3rd party GenTL producer to access the GigE Vision device this feature will not be available.
This property might not be supported by every device. Therefore always call the function mvIMPACT::acquire::Component::isValid to check if this property is available or not.

◆ autoNegotiatePacketSizeMode

PropertyIDeviceAutoNegotiatePacketSizeMode autoNegotiatePacketSizeMode

An enumerated integer property (read-only) that can be used to define how the auto packet size negotiation for a GigE Vision device is handled.

If set to mvIMPACT::acquire::danpsmHighToLow the MTU is automatically negotiated starting from the NICs current MTU down to a value supported by all components belonging to the network path (device, network interface card, switches, ...), if set to mvIMPACT::acquire::danpsmLowToHigh the negotiation starts with the small value tries larger values with each iteration until the optimal value has been found. Valid values for this property are defined by the enumeration mvIMPACT::acquire::TDeviceAutoNegotiatePacketSizeMode.

Note
Once the device is in use (has been initialized) this property will become (read-only). When using a 3rd party GenTL producer to access the GigE Vision device this feature will not be available.
This property might not be supported by every device. Therefore always call the function mvIMPACT::acquire::Component::isValid to check if this property is available or not.

◆ capabilities

An enumerated integer property (read-only) defining special device capabilities.

This property stores certain device capabilities that can be read without opening the device.

Valid values for this property are defined by the enumeration mvIMPACT::acquire::TDeviceCapability.

◆ customDataDirectory

PropertyS customDataDirectory

A string property (read-only once the device is open) containing a path to a custom directory for the location of camera description files, etc.

When a custom path is assigned to this property this path will be used to locate certain driver specific files and folders. Under this folder the following structure must be created:

|- CameraFiles // this folder will be searched by frame grabbers for camera description files
|- GenICam // this folder will be searched by GenICam compliant devices that refer to a local GenICam&trade; description file
PropertyS customDataDirectory
A string property (read-only once the device is open) containing a path to a custom directory for the...
Definition mvIMPACT_acquire.h:6660

If this property is left empty

  • PUBLIC%/Documents/Balluff/ImpactAcquire will be used by default on Windows™ platforms and
  • /opt/ImpactAcquire/data on Unix based platforms.

◆ defaultRequestCount

PropertyI defaultRequestCount

An integer property that defines the number of mvIMPACT::acquire::Request objects to be created when the device is opened.

By writing to this property an application can define the default number of mvIMPACT::acquire::Request objects that will be allocated when opening the device.

Note
This property will become read-only while the device is open.
See also
mvIMPACT::acquire::SystemSettings::requestCount to change the number of request objects later and to find out why this parameter is important
Examples
ContinuousCapture.linux.cpp.

◆ desiredAccess

An enumerated integer property that can be used to define the desired access to the device when opening it.

Valid values for this property are defined by the enumeration mvIMPACT::acquire::TDeviceAccessMode.

Note
This property will become read-only while the device is open.
This property is not supported by every device. Therefore always call the function mvIMPACT::acquire::Component::isValid to check if this property is available or not.

◆ deviceClass

PropertyIDeviceClass deviceClass

An enumerated integer property (read-only) defining the device class this device belongs to.

Note
This property has been added to the device driver in version 1.8.3 thus might not be available when working with old device drivers. Therefore always call the function mvIMPACT::acquire::Component::isValid to check if this property is available or not.

◆ deviceFamilyName

PropertyS deviceFamilyName

A string property (read-only) containing the family name of this device.

Since
3.0.0

◆ deviceID

PropertyI deviceID

An integer property (read-only) containing the device ID associated with this device.

A device ID can be used to identify a certain device in the system. The ID is an 8 bit unsigned integer value stored in the device's EEPROM. In order to allow the distinct detection of a device via its device ID, the user has to make sure that two devices belonging to the same product family never share the same ID.

Note
REMARKS:
  • To modify the device ID a separate tool will be provided. To modify the device ID without that tool the function mvIMPACT::acquire::Device::setID can be called.
  • This ID is not to be confused with the handle returned by the function mvIMPACT::acquire::Device::hDev. The latter one represents something which can be assumed as a handle from a software based point of view, while the ID represented by the property deviceID is an ID stored in the physical devices EEPROM.

◆ deviceModelName

PropertyS deviceModelName

A string property (read-only) containing the model name of this device.

Since
3.0.0

◆ deviceVersion

PropertyS deviceVersion

A string property (read-only) containing the version(e.g. the hard ware revision) of this device.

Note
This feature is supported by every device driver. If a device does not seem to support this feature (calling mvIMPACT::acquire::Component::isValid returns false) a driver update will fix this.

◆ family

PropertyS family

A string property (read-only) containing the family name of this device.

Note
This is a legacy property only provided for backward compatibility. New applications should use mvIMPACT::acquire::Device::deviceFamilyName instead!
Examples
ContinuousCaptureToAVIFile.cpp, DigitalIOs.cpp, DigitalIOs.legacy.cpp, FirmwareUpdate.cpp, SequenceCapture.cpp, and SequenceCapture.win32.cpp.

◆ firmwareVersion

PropertyI firmwareVersion

An integer property (read-only) containing the firmware version of this device.

A firmware is considered to be something that is stored in non volatile device memory, thus when a device is disconnected from the power supply and plugged into a different target system the same code will be executed on the device.

Some devices however may not support non volatile memory to accommodate a firmware. Typically the device driver then will download a firmware into the devices RAM at startup. Such devices will be considered as not supporting a firmware as in this case only the driver version present on the target system has impact on the devices behaviour.

When a device does not support a non volatile firmware, reading this property will always return 0.

Examples
ContinuousCaptureMultiPart.cpp, ContinuousCaptureMultiPart.legacy.cpp, FirmwareUpdate.cpp, GenICamSmartFrameRecallUsage.cpp, and GenICamSmartFrameRecallUsage.legacy.cpp.

◆ grantedAccess

An enumerated integer property (read-only) that can be used to query the granted access to the device after an attempt to open it.

Valid values for this property are defined by the enumeration mvIMPACT::acquire::TDeviceAccessMode.

Note
This property is not supported by every device. Therefore always call the function mvIMPACT::acquire::Component::isValid to check if this property is available or not.

◆ HWUpdateResult

PropertyIHWUpdateResult HWUpdateResult

An enumerated integer property (read-only) defining user executed hardware update results.

This property e.g. might contain the result of a user executed firmware update. Valid values for this property are defined by the enumeration mvIMPACT::acquire::THWUpdateResult.

◆ interfaceLayout

An enumerated integer property which can be used to define which interface layout shall be used when the device is opened.

Valid values for this property are defined by the enumeration mvIMPACT::acquire::TDeviceInterfaceLayout.

Note
Once the device is in use (has been initialized) this property will become (read-only).
This feature is available for every device. A device not offering this feature requires a driver update. Always check for the availability of this feature by calling mvIMPACT::acquire::Component::isValid.

Not every device will offer the same options. Check for valid modes by reading the properties translation dictionary with the functions mvIMPACT::acquire::PropertyIDeviceInterfaceLayout::getTranslationDictString and mvIMPACT::acquire::PropertyIDeviceInterfaceLayout::getTranslationDictValue. C++ offers the more efficient function mvIMPACT::acquire::PropertyIDeviceInterfaceLayout::getTranslationDict in addition to the functions mentioned above.

Examples
CaptureToOpenGLMemory.cpp, ContinuousCapture.linux.cpp, ContinuousCaptureAllDevices.cpp, ContinuousCaptureAllDevices.win32.cpp, ContinuousCaptureFFmpeg.cpp, ContinuousCaptureGenDC.cpp, ContinuousCapture_BVS-3D-RV0.cpp, ContinuousCapture_BVS-3D-RV1.cpp, DigitalIOs.cpp, DigitalIOs.legacy.cpp, GenICamCommonSettingsUsage.cpp, GenICamCommonSettingsUsage.legacy.cpp, GenICamI2cUsage.cpp, GenICamInterfaceLayout.cpp, GenICamInterfaceLayout.legacy.cpp, GenICamSequencerParameterChangeAtRuntime.cpp, GenICamSequencerUsage.cpp, GenICamSequencerUsage.legacy.cpp, GenICamSequencerUsageWithPaths.cpp, GenICamSequencerUsageWithPaths.legacy.cpp, GenICamSmartFrameRecallUsage.cpp, GenICamSmartFrameRecallUsage.legacy.cpp, GenericInterfaceLayout.cpp, GenericInterfaceLayout.legacy.cpp, GigEVisionActionFeatures.cpp, and TimestampFeatures.cpp.

◆ licenseDetails

PropertyS licenseDetails

A string property (read-only) that indicates why a device may be used with this SDK.

This property holds information on why a device may be used with Impact Acquire.

Note
This property will only be supported by some drivers (those allowing the usage of third party devices). Therefore always call the function mvIMPACT::acquire::Component::isValid to check if this property is available or not.
See also
mvIMPACT::acquire::Device::licenseValid
Since
2.46.0

◆ licenseValid

PropertyIBoolean licenseValid

A boolean property (read-only) that indicates if a device may be used with this SDK.

All Balluff imaging and image capture devices may be used with this SDK without limitations. Third party devices might work as well but without an appropriate license that can be obtained from Balluff certain restrictions may apply.

Note
This property will only be supported by some drivers (those allowing the usage of third party devices). Therefore always call the function mvIMPACT::acquire::Component::isValid to check if this property is available or not.
See also
mvIMPACT::acquire::Device::licenseDetails
Since
2.46.0

◆ loadSettings

An enumerated integer property which can be used to define which previously stored setting to load when the device is opened.

Valid values for this property are defined by the enumeration mvIMPACT::acquire::TDeviceLoadSettings.

Note
Once the device is in use (has been initialized) this property will become (read-only).

◆ manufacturer

PropertyS manufacturer

A string property (read-only) containing the name of the manufacturer of this device.

Note
This property is not supported by every device. Therefore always call the function mvIMPACT::acquire::Component::isValid to check if this property is available or not.
Since
2.11.3

◆ manufacturerSpecificInformation

PropertyS manufacturerSpecificInformation

A string property (read-only) containing manufacturer specific information of this device.

Note
This property is not supported by every device. Therefore always call the function mvIMPACT::acquire::Component::isValid to check if this property is available or not.
Since
2.18.3
Examples
GenICamI2cUsage.cpp.

◆ product

◆ resultQueueCount

PropertyI resultQueueCount

An integer property that defines the number of result queues to be created when the device is opened.

By writing to this property an application can define the number of result queues that will be allocated when opening the device. When requesting buffers the user can define in which result queue a processed request shall end up by writing to the property mvIMPACT::acquire::ImageRequestControl::resultQueue. When waiting for a request to become ready by calling mvIMPACT::acquire::FunctionInterface::imageRequestWaitFor the application can specify on which queue to wait.

Device* pDev = getDevicePointerFromSomewhere();
ImageRequestControl irc( pDev );
FunctionInterface fi( pDev );
irc.resultQueue.write( 0 );
fi.imageRequestSingle( &irc ); // request a buffer that will be stored in queue 0 when ready
irc.resultQueue.write( 1 );
fi.imageRequestSingle( &irc ); // request a buffer that will be stored in queue 1 when ready
fi.imageRequestWaitFor( 500, 0 ); // wait on queue 0
fi.imageRequestWaitFor( 500, 1 ); // wait on queue 1
This class and its functions represent an actual device detected by this interface in the current sys...
Definition mvIMPACT_acquire.h:6118
PropertyI resultQueueCount
An integer property that defines the number of result queues to be created when the device is opened.
Definition mvIMPACT_acquire.h:6741
const EnumPropertyI & write(ZYX value, int index=0) const
Writes one value to the property.
Definition mvIMPACT_acquire.h:4426
The function interface to devices supported by this interface.
Definition mvIMPACT_acquire.h:10758
A helper class to control the way an image request will be processed.
Definition mvIMPACT_acquire.h:10360

This can be useful e.g. when working with 2 different settings to sort all buffer capture with setting 0 into one queue and all the others into another queue.

Note
This property will become read-only while the device is open.
See also
mvIMPACT::acquire::ImageRequestControl::resultQueue,
mvIMPACT::acquire::FunctionInterface::imageRequestWaitFor

◆ serial

◆ state

An enumerated integer property (read-only) containing the current state of this device.

This property e.g. provides information about the current state of the device. For USB devices this can e.g. indicate whether a device is currently plugged into the system or not.

Valid values for this property are defined by the enumeration mvIMPACT::acquire::TDeviceState.

GenICam/GenTL device specific: In order to reduce the amount of network traffic to a minimum, this property will only be updated automatically for network devices if the property mvIMPACT::acquire::Device::registerErrorEvent is set to mvIMPACT::acquire::bTrue (which is the default behaviour). If the IP addresses stay the same the connection is automatically re-established then once the device is detected by the driver again. However if the IP address of the device and/or the network adapter of the system it is used from changes mvIMPACT::acquire::DeviceManager::updateDeviceList() must be called regardless of the value of mvIMPACT::acquire::Device::registerErrorEvent before a device that was lost can re-establish a connection to the capture driver. Apart from that ALL GenICam/GenTL will only update this property automatically if the device is currently in use BY THIS PROCESS, so when the device has been opened. This is also to save bandwidth and resources!

◆ streamChannelCount

PropertyI streamChannelCount

An integer property providing the number of stream channels supported by this device.

This property can be useful for devices offering more (or less) than one stream channel. It might be useful to use it in combination with mvIMPACT::acquire::Device::resultQueueCount to change the number of result queues to allow the engine to store the resulting mvIMPACT::acquire::Request to a specific result queue.

Note
This property is only supported by GenICam&trade compliant devices.
See also
mvIMPACT::acquire::Device::resultQueueCount

◆ userControlledImageProcessingEnable

PropertyIBoolean userControlledImageProcessingEnable

An enumerated integer property defining whether user controlled image processing related features shall be created under 'System Settings' or not.

Valid values for this property are defined by the enumeration mvIMPACT::acquire::TBoolean.

Setting this feature to mvIMPACT::acquire::bTrue will result in a separate thread being created when opening the device driver instance. The thread will decouple the host based image processing from the acquisition engine. Apart from that it will also create additional properties in the ImageProcessingControl list under SystemSettings that can be used to control the behaviour of this thread. This might be useful e.g. to make sure images can be acquired faster than they can be processed and it is not needed to processed each image.

Note
This property will become read-only while the device is open.
See also
mvIMPACT::acquire::SystemSettings::imageProcessingMode
mvIMPACT::acquire::Request::hasProcessingBeenSkipped
Since
2.14.0