Impact Acquire SDK C++
|
The Impact Acquire framework uses a property based concept to access parameters of internal structures or to configure the framework's behaviour. Features offered by the device will simply be added to other properties already present in the drivers feature tree. The following list displays the general layout of features in the GenICam™ interface layout (see 'GenICam' vs. 'DeviceSpecific' Interface Layout for details on different interface layouts):
For most of the features offered by a device there will be ready to use wrapper objects that come with the SDK so there will be no need to look up the feature at runtime. Depending on the selected interface layout either objects belonging to the DeviceSpecific interface or to the GenICam™ interface can be used. To see which SDK objects belong to which interface layout all the objects have been put into groups in the Modules section of this documentation. To find out which device supports which interface layout please refer to Which Interface Is Supported By Which Device? .
For the GenICam™ interface layout there will be convenient access objects for ALL the feature defined in the GenICam™ Standard Feature Naming Convention (SFNC) as well as ALL the custom features defined by Balluff. So to access e.g. SFNC compliant features belonging the AcquisitionControl category this object can be used:
mvIMPACT::acquire::GenICam::AcquisitionControl. In order to be able to use the GenICam™ specific wrapper classes in an application also needs to include an additional header file:
The exposure time then can be modified like this:
Further information about the usage of the GenICam™ to change settings can be found a the sample: GenICamCommonSettingsUsage.cpp
In addition to that the mvGenTLConsumer library contains an embedded wrapper code generator that can be used to create a custom header file for a GenICam™ compliant device or device family not known at compile time. The usage of this code generator is explained in the use case GenICam™ To Impact Acquire Code Generator. It can significantly simplify the development process if all devices that shall be used by an application are known at the time of compiling the application.
All objects which grant access to device driver interface properties will require the pointer to the mvIMPACT::acquire::Device acquired from a mvIMPACT::acquire::DeviceManager object again.
A selection of objects the user can create to modify or read mvIMPACT::acquire::Property are listed in the following sections:
If an application shall be capable of dealing with every feature of every device and not all these devices are known at compile time, a code generator can not be used as it can only create code for devices which are accessible when creating the code. In this case, features must be extracted dynamically from the drivers feature tree. To do this SDK offers a set of functions that can be used to search and use features or to iterate over a tree of features. These objects and functions will be explained in the following sections.