mvIMPACT Acquire GUI Applications Manual
mvIMPACT Acquire GUI Applications Manual
Documentation
2 wxPropView 2
2.1 Basic Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.1.1 Application Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.1.2 How To See The First Image . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.1.3 The Property Grid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.1.4 Importing And Exporting Images . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.1.5 Accessing Log Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.2 Advanced Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.2.1 The Status Bar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.2.2 Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.2.3 Detailed Driver Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
2.2.4 Display Possibilities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
2.2.5 Setting Up Multiple Display Support, Working With Several Capture Settings In Parallel . . . . 35
2.2.6 Record To RAM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
2.2.7 Record To Hard Disk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
2.2.8 Snapshot To Hard Disk Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
2.2.9 Video Stream Recording With FFmpeg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
2.2.10 Influencing The Image Processing Performance . . . . . . . . . . . . . . . . . . . . . . . 56
2.2.11 Sharpness Adjustment / Focus Your Lens . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
2.3 Image Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
2.3.1 General Usage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
2.3.2 Pixel Histogram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
2.3.3 Horizontal/Vertical Line Profile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
2.3.4 Spatial Noise Histogram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
2.3.5 Temporal Noise Histogram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
2.3.6 Intensity Plot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
2.3.7 Vector Scope . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
2.3.8 Info Plot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
2.3.9 Feature Versus Time Plot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
2.4 Device Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
2.4.1 General Device Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
2.4.2 mvBlueFOX-1xx/mvBlueFOX-2xx . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
2.4.3 Frame Grabber . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
2.5 Wizards . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
2.5.1 AOI Wizard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
2.5.2 Color Correction Wizard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
2.5.3 File Access Wizards . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
2.5.4 Lens Control Wizard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
2.5.5 LUT Control Wizard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
2.5.6 Multi-AOI Wizard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
Generated by Doxygen
ii
3 mvDeviceConfigure 130
3.1 Updating The Firmware Of A MATRIX VISION Device . . . . . . . . . . . . . . . . . . . . . . . . . 131
3.1.1 Device Selection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
3.1.2 Execute Firmware Update . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
3.1.3 Preserving UserSets During A Firmware Update . . . . . . . . . . . . . . . . . . . . . . . . 134
3.1.4 Always Select Best Matching Firmware For Device . . . . . . . . . . . . . . . . . . . . . . . 135
3.1.5 Troubleshooting / Dealing With Firmware Update Failures . . . . . . . . . . . . . . . . . . . 135
3.2 Verifying The Firmware Of A MATRIX VISION Device . . . . . . . . . . . . . . . . . . . . . . . . . 137
3.2.1 Device Selection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
3.3 Log-Output Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
3.3.1 Section Name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
3.3.2 Devices Using This Section . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
3.3.3 Flags, Output Destinations, Output File Name, "Always Clear File" and "Stylesheet" . . . . . 143
3.3.4 Configure And Existing Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
3.3.5 Adding A New Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
3.4 DirectShow™ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
3.4.1 Registering devices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146
3.4.2 Changing The Friendly Name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148
3.4.3 Using regsvr32 To Avoid User Interaction . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150
3.5 CPU Sleep State / C-State configuration (Windows only, up to Windows 7) . . . . . . . . . . . . . . 151
3.6 mvBlueFOX-1xx/mvBlueFOX-2xx . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153
3.6.1 Assigning A Unique ID To A Device . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153
3.7 mvHYPERION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
3.7.1 Assigning System-wide DMA memory (Windows only) . . . . . . . . . . . . . . . . . . . . . 154
3.8 Command-line Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
3.8.1 update_fw_file Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156
3.8.2 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
4 mvGigEConfigure 158
4.1 Install The GigE Vision™ Capture Filter Driver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
4.2 Remove The GigE Vision™ Capture Filter Driver . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160
4.3 Enable/Disable The GigE Vision™ Capture Filter Driver . . . . . . . . . . . . . . . . . . . . . . . . 161
4.4 Miscellaneous . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
4.5 Command-line Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
4.5.1 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162
5 mvIPConfigure 164
Generated by Doxygen
1 About this manual 1
This manual is meant to give an overview about the GUI tools coming as part of any mvIMPACT Acquire driver
package:
• wxPropView is used to configure devices and acquire images from them, display and modify device/driver
properties, perform various image analysis as well as importing/exporting individual images to/from the hard
disk and recording video streams.
• mvDeviceConfigure is used to update the firmware of MATRIX VISION devices, configure the log output of
the mvIMPACT Acquire driver stack, assign unique IDs to some MATRIX VISION devices and some other
things.
• mvIPConfigure is used to configure the network behavior of GigE Vision™ devices and examine and resolve
network related issues with these.
• mvGigEConfigure is used to install, remove or configure the MATRIX VISION GigE Vision™ capture filter
driver on Windows systems.
Generated by Doxygen
2
2 wxPropView
wxPropView is used to acquire images, configure the device, display and modify device/driver properties, perform
various image analysis as well as recording video streams. Depending on the operating system, you will find the
application after the installation as follows:
• Windows
– as an icon with the name "wxPropView" on the desktop or within the "Start Menu"
• Linux
• macOS
Note
• Linux: Without being root the system might not allow an application to modify the priorities of the
threads it creates. Since certain driver operations will work better with modified thread priorities it
is recommended to run wxPropView with this possibility, which might require the application being
executed as the root user. When this shall be done the following paths have to be exported for the
root user (this is done automatically for simple user):
export GENICAM_ROOT=/home/x/tmp
export GENICAM_ROOT_V3_3=/home/x/tmp
export GENICAM_LOG_CONFIG=/home/x/tmp/share/genicam/log/config/DefaultLogging.properties
. /etc/profile.d/genicam.sh
Generated by Doxygen
2.1 Basic Operation 3
wxPropView - Introduction:
https://www.matrix-vision.com/de/knowledge-base/video-tutorials/wxpropview/in
• Basic Operation
• Advanced Operation
• Image Analysis
• Device Configuration
• Wizards
• Command-line Interface
wxPropView will start with the Quick Setup Wizard if a device with a suitable feature set has been selected and
used:
Generated by Doxygen
4
If supported the Quick Setup Wizard is the recommended way of capturing the first images. Later or when a third
party device or a MATRIX VISION device without the feature required by this wizard is used when started the first
time the application will look more or less like this:
On the left-hand side of the upper toolbar a drop down box will list all devices currently recognized by the mvIMPACT
Acquire driver framework. If you find that a device is missing first make sure that you have it's driver package installed
(e.g. by clicking on the "Info" button in the upper toolbar) and then make sure that the corresponding interface
technology and the interface the device is connected to (e.g. a network card (NIC)) is enabled for enumeration. This
can be seen by pressing the "Info" button in the upper toolbar. This would then open the Detailed Driver Information
dialog.
Generated by Doxygen
2.1 Basic Operation 5
To work with a device select it from the drop-down box and press the "Use" button.
Devices plugged into the system after the application has been started might not be listed until the "Update" button
has been pressed. When this button is pressed every installed driver will rescan all interfaces for new devices so
this will take some time.
In the middle of the upper toolbar various controls to either launch the Quick Setup Wizard or to start and stop the
acquisition manually are located. In the right section of the upper toolbar recording of series of images into the RAM
of the host computer can be configured. All these control will become available after a device has been initialised
by pressing the "Use" button.
2.1.1.1 Enabling More Controls Depending on your experience and/or needs you might want to see/do more
than shown above. This can be achieved via the "Settings" menu:
• Selecting "Settings -> Property Grid -> Show Property Grid" will enable the The Property Grid displaying
all device and driver features on the left side of the application
• Enabling the "Show Left Tool Bar" option in the "Settings -> Options" dialog will add more tools to the far
left side of the application
2.1.1.2 Enabling The Image Analysis Tools Once the left toolbar is available there is more that can be acti-
vated. The most interesting feature is probably the Image Analysis tab control on the lower right of the application:
Generated by Doxygen
6
2.1.1.3 The Big Picture With all features enabled wxPropView then will look somewhat like this:
Generated by Doxygen
2.1 Basic Operation 7
• "Menu Bar" for accessing various features not bound to any buttons or other controls
• "Upper Tool Bar" for selecting and initializing devices, start/stop image acquisition, record/play back image
sequences, launching the Quick Setup Wizard and the interface configuration dialog
• "Left Tool Bar" to hide and show parts of the GUI and control various other settings
– the The Property Grid on the left providing access to the driver and device features
– the display area showing the current image
• the Image Analysis area allowing to look at an image's histogram and various other things
Pressing F1 will open a HELP dialog also showing the Command-line Interface of the application.
After having successfully initialized a device the tree control in the lower left part of the "Main Window" will display
the properties (settings or parameters) (according to the "interface layout") accessible by the user.
Note
USB3 Vision™ devices: Please have a look at the troubleshooting chapter of the mvBlueFOX 3 product
manual if you neither see the mvBlueFOX3 nor cannot use it
As described earlier, each device currently recognized will be listed in the drop down menu in the upper left corner
of the "Upper Tool Bar". When this is the first time you start the application after the system has been booted this
might take some seconds when working with devices that are not connected to the host system via PCI or PCIe.
Once you have selected the device of your choice from the drop down menu click on the "Use" button to open it.
When the device has been opened successfully, the remaining buttons of the dialog will become enabled!
Note
"Frame grabber devices": Before you can capture data make sure that
Now, you can capture an image ("Acquisition Mode": "SingleFrame") or display live images ("Continuous"). Just
Note
How to capture image data and configure a device from a custom application is described in great detail
in the corresponding mvIMPACT Acquire API manuals for the programming language of your choice.
Generated by Doxygen
8
• the pixel clock of the sensor(defining the read-out speed of the device), and
If you want to have a fixed frame rate using the "Continuous" mode, for some "GenICam" compliant devices the
property "Setting -> Base -> Camera -> GenICam -> Acquisition Control -> Acquisition Frame Rate" will
be supported
Alternatively, if you need frame rates below 5 fps, you can use Timers.
Generated by Doxygen
2.1 Basic Operation 9
See also
Note
For color sensors, it is recommended to perform a white balance calibration now. This will improve the
quality of the resulting images significantly.
Since
With "Save Current Image" a dialog will appear, where you can specify the destination folder and the file format.
With "Copy Current Image To Clipboard" you can open you preferred image editing tool an paste the clipboard into
it. For this functionality you can also use the shortcuts CTRL-C and CTRL-V.
The property grid on the left side of the application is the main way to modify driver and device behaviour. Properties
displayed in light grey are read-only and cannot be modified by the user. Only the properties, which actually have
an impact on the resulting image right now, will be visible. Therefore, certain properties might appear or disappear
when modifying another properties.
The values of properties currently set to their default values will be displayed in a normal green font to indicate that
these values have not been modified by the user so far. Modified properties (even if the value is the same as the
default) will be displayed in a bold green font. It is possible that properties do already appear as being modified
directly after opening a driver instance to it. In that case a previously stored setting has be found and loaded. See
Storing, Restoring And Managing Settings for details.
Generated by Doxygen
10
2.1.3.1 User Experience In the upper section of the property grid the "User Experience" can be selected. Ac-
cording to the chosen experience, the level of visibility is different:
2.1.3.2 Find A Feature Once a device has been opened and maybe after switching the User Experience to "←-
Guru" there can easily be 500+ features into the feature tree of a single device instance. When not quite sure where
to look the "Find Feature" option might come in handy:
This will open a flat list of all features currently available (even those currently invisible). While typing along the list
is reduced to the features containing what has been typed so far.
Generated by Doxygen
2.1 Basic Operation 11
Once the feature has been found a double-click on that feature will close the find dialog again an will expand the
feature tree accordingly and will select the feature the user was looking for.
2.1.3.3 Detailed Feature Information Right-clicking on a feature in the property grid will allow (among other
things) to display the "Detailed Feature Information", displaying all sorts of information about a certain feature in
a separate dialog:
Generated by Doxygen
12
For additional information about what all these data means please refer to the documentation of the objects derived
from the Component class in the API manual of the programming language of your choice. Online versions of all
these documents can be found here: https://www.matrix-vision.com/manuals/
2.1.3.4 Properties
To modify the value of a property select the edit control right of the properties name. Property values, which refer to
the default value of the device, are displayed in green. A property value once modified by the user will be displayed
in black (even if the value itself has not changed). To restore its default value of a single property
To restore the default value for a complete list (which might include sub-lists)
In this case a popup window will be opened and you have to confirm again.
Most properties store one value only, thus they will appear as a single entry in the property grid. However, properties
are capable of storing more than one value, if this is desired. A property storing more than one value will appear as
a parent list item with a WHITE background color (lists will be displayed with a grey background) and as many child
elements as values stored by the property. The parent grid control will display the number of values stored by the
property, every child element will display its corresponding value index.
If supported by the property, the user might increase or decrease the number of values stored by right-clicking on
the parent grid element. If the property allows the modification the pop up menu will contain additional entries now:
Generated by Doxygen
2.1 Basic Operation 13
When a new value has been created it will be displayed as a new child item of the parent grid item:
Currently, only the last value can be removed via the GUI and a value can't be removed, when a property stores
one value only.
Also the user might want to set all (or a certain range of) values for properties that store multiple values with a single
operation. If supported by the property, this can also be achieved by right-clicking on the parent grid element. If the
property allows this modification the pop up menu will again contain additional entries:
Generated by Doxygen
14
It's possible to either set all (or a range of) elements of the property to a certain value OR to define a value range,
that then will be applied to the range of property elements selected by the user. The following example will explain
how this works:
In this sample the entries 0 to 255 of the property will be assigned the value range of 0 to 255. This will result in the
following values AFTER applying the values:
Generated by Doxygen
2.1 Basic Operation 15
Both might come in handy at some time. They allow to directly exchange the value of a property containing binary
data with the hard disk.
2.1.3.5 Methods
Methods appear as entries in the tree control as well. However, their name and behavior differs significantly from
the behavior of properties. The names of method objects will appear in 'C' syntax like e.g. "int function( char∗, int
)". This will specify a function returning an integer value and expecting a string and an integer as input parameters.
To execute a method object either click on the little button with the 3 dots right of the methods parameter list or
Generated by Doxygen
16
Parameters can be passed to methods by selecting the edit control left of a method object. Separate the parameters
by blanks. So to call a function expecting a string and an integer value you e.g. might enter "testString 0"
into the edit control left of the method.
The return value (in almost every case an error code as an integer) will be displayed in the lower right corner of the
tree control. The values displayed here directly correspond the error codes defined in the interface reference and
therefore will be of type TDMR_ERROR or TPROPHANDLING_ERROR.
It is possible to execute methods either synchronously or asynchronously. This can be configured by using the
Options dialog and is explained in the section Synchronous Method Execution.
2.1.3.7 Callbacks The property grid offers a way to get informed when properties change. This can be done by
right-clicking on the desired feature and then select "Attach Callback" from the context menu. This can be done
for as many features as desired.
Generated by Doxygen
2.1 Basic Operation 17
Now whenever one of these features change in any way (this includes not only a properties value but also e.g. it's
visibility or access mode) a message will be written to the "Output" tab of the lower right analysis controls:
To detach/remove the callback again just right-click on the feature again and select "Detach Callback". This option
will only be available if a callback is currently attached to the feature.
wxPropView offers a wide range of image formats that can be used for exporting captured image to a file. Some
formats e.g. like packed YUV 4:2:2 with 10 bit per component are rather special thus they can't be stored into a
file like e.g. offered by the BMP file header. When a file is stored in a format, that does not support this data type
wxPropView will convert this image into something that matches the original image format as close as possible.
This, however, can result in the loss of data. In order to allow the storage of the complete information contained in a
captured image wxPropView allows to store the data in a raw format as well. This file format will just contain a binary
dump of the image with no leader or header information. However, the file name will automatically be extended by
information about the image to allow the restoring of the data at a later time.
All image formats, that can be exported can also be imported again. Importing a file can be done in 3 different
ways:
Generated by Doxygen
18
• via the menu (via the menu: "Action -> Load image...")
• by dragging an image file onto an image display within wxPropView and the dropping it there
• by starting wxPropView from the command line passing the file to open as a command line parameter (on
Windows® e.g. "wxPropView.exe MyImage.png" followed by [ENTER])
When importing a "∗.raw" image file a small dialog will pop up allowing the user to define the dimensions and
the pixel format of the image. When the file name has been generated using the image storage function offered by
wxPropView, the file name will be passed and the extracted information will automatically be set in the dialog thus
the user simply needs to confirm this information is correct.
Since
Using Windows, it is possible to access the log files generated by MATRIX VISION via the Help menu. Sending us
the log files will speed up support cases.
• open the systems default email client to send an email to the MATRIX VISION Service Desk.
Generated by Doxygen
2.1 Basic Operation 19
2.1.5.1 Linux
Since
cd $MVIMPACT_ACQUIRE_DATA_DIR/logs
user@linux-desktop:~$
// <- Starting the console window, you will be in the home directory: /home/
user@linux-desktop:~$ cd workspace/apps/
// <- Change the directory
user@linux-desktop:/home/workspace/apps$ ls -l
// <- List the directory
insgesamt 144
drwxr-xr-x 9 user user 4096 Mai 21 15:08 Callback
drwxr-xr-x 8 user user 4096 Mai 21 15:08 Callback_C
drwxr-xr-x 9 user user 4096 Mai 21 15:08 CaptureToUserMemory_C
drwxr-xr-x 3 user user 4096 Mai 21 15:03 Common
drwxr-xr-x 11 user user 4096 Mai 21 15:09 ContinuousCapture
drwxr-xr-x 9 user user 4096 Mai 21 15:09 ContinuousCaptureAllDevices
drwxr-xr-x 6 user user 4096 Mai 21 15:09 ContinuousCaptureFLTK
drwxr-xr-x 9 user user 4096 Mai 21 15:09 ContinuousCapture_C
drwxr-xr-x 11 user user 4096 Mai 21 15:09 DigitalIOs
drwxr-xr-x 11 user user 4096 Mai 21 15:09 GenericInterfaceLayout
drwxr-xr-x 11 user user 4096 Mai 21 15:09 GenICamInterfaceLayout
-rw-r--r-- 1 user user 854 Mai 21 15:03 Makefile
-rw-r--r-- 1 user user 7365 Mai 21 15:03 Makefile.samp.inc
-rw-r--r-- 1 user user 20713 Mai 21 15:03 mvDebugFlags.mvd
// <- Log activation flag
drwxr-xr-x 7 user user 4096 Mai 21 15:09 mvDeviceConfigure
drwxr-xr-x 6 user user 4096 Mai 21 15:10 mvIPConfigure
drwxr-xr-x 6 user user 4096 Mai 21 15:11 mvPropView
drwxr-xr-x 9 user user 4096 Mai 21 15:11 SingleCapture
drwxr-xr-x 9 user user 4096 Mai 21 15:11 SingleCaptureStorage
For log file generation you have to execute your app from the folder where mvDebugFlags.mvd is located. E.g. if
you want to start wxPropView:
user@linux-desktop:/home/workspace/apps$ ./mvPropView/x86_64/wxPropView
// <- Start the executable from the folder, where \b mvDebugFlags.mvd is located.
Another possibility would be, to copy the mvDebugFlags.mvd file to the folder of the executable:
Afterwards, several log files are generated which are listed in files.mvloglist. The log files have the file
extension .mvlog. Please send these files to our support team.
Generated by Doxygen
20
2.1.5.2 macOS
Since
If you have used the install script, you can access the log files via /∼/mvIMPACT_Acquire/data/logs .
You can also extract the directory using the following command
cd $MVIMPACT_ACQUIRE_DATA_DIR/logs
Another possibility would be to copy the mvDebugFlags.mvd file to the folder of the executable:
Afterwards, several log files are generated which are listed in files.mvloglist. The log files have the file
extension .mvlog. Please send these files to our support team.
If the status bar is enabled (see Options for how to switch on and off the status bar) and a device has been initialized
and is currently transferring data various data is displayed here:
• FPS: The current frame rate as a slow running average. The value will slowly adjust to the current capture
frame rate
• Display Frame Rate: The current rate captured data is displayed with. This value will never be higher than
the FPS value. Capturing data has the highest priority
and display updates will be skipped in favor of being able to capture and process all data. The rough display
frame rate can be configured via 'Settings -> Set Update Frequency...'
• MB/s: The current average bandwidth used for capturing data from the selected device
Generated by Doxygen
2.2 Advanced Operation 21
• Frame Buffer Usage: The current fill level of the device's frame buffer. This is a feature only available for
certain MATRIX VISION devices. A value somewhere around 0 which sometimes increases and sometimes
decreases would be normal. An ever increasing value or a more or less constant value of 100% indicates a
bandwidth problem
• Frames: The value of the 'FrameCount' property from the 'Statistics' property list. In contrast to the 'FrameNr'
property display in the image overlay this value
is even increased for timed out, aborted or otherwise erroneous buffers. See tool-tip/documentation of that
property to find out more
• Errors: The value of the 'ErrorCount' property from the 'Statistics' property list. See tool-tip/documentation of
that property to find out more
• Timeouts: The value of the 'TimedOutRequests' property from the 'Statistics' property list. See tool-
tip/documentation of that property to find out more
• Aborted: The value of the 'AbortedRequestsCount' property from the 'Statistics' property list. See tool-
tip/documentation of that property to find out more
• Lost: The value of the 'LostImagesCount' property from the 'Statistics' property list. See tool-
tip/documentation of that property to find out more
• Incomplete: The value of the 'FramesIncompleteCount' property from the 'Statistics' property list. See tool-
tip/documentation of that property to find out more
• Image: The dimensions and pixel format of the buffer currently displayed
• (x,y): The value of the pixel of the current coordinates when moving over the image with the mouse pointer
2.2.2 Options
Generated by Doxygen
22
wxPropView - Options
Most of these are self explanatory. Those requiring some explanation are listed in the following sections.
2.2.2.1 Use Selector Grouping This is an option coming as a requirement from the GenICam standard (
https://www.emva.org/standards-technology/genicam/) where the concept of Selectors exists.
With these option enable (the default behaviour) features which are selected by others will be grouped below the
selecting feature in The Property Grid whenever possible. This usually results in a better tree structure. To find out
more about Selectors please refer to the GenICam standard.
Generated by Doxygen
2.2 Advanced Operation 23
2.2.2.2 Prefer Display Names A feature can have a so called display name in addition to it's API/feature name.
This display name might include whitespace characters and other things forbidden for normal feature names and
sometimes might improve readability in a GUI. Switching this option on or off will fill The Property Grid with either
the real feature names (as an API call would use them) or (if available) with the display names associated with each
feature. In case a feature does not define a display name the real feature name will be used instead.
Generated by Doxygen
24
Generated by Doxygen
2.2 Advanced Operation 25
wxPropView - The Same Sub-Tree Of The Property Grid Using Normal Feature Names
• With this feature active, Methods invoked from The Property Grid will be executed in the main thread of the
application. This results in the GUI to block until the method has been executed completely.
• With this option disabled (the default behaviour) method calls will be executed in a background task. Calling
several lengthly methods quickly will queue all the jobs into a queue. This queue will be monitored by a
background task and this background task then will execute one method after the other(NEVER two or more
in parallel) and will report back each individual execution result back to the main thread of the application.
Potential errors will be displayed from the main thread e.g. in the "Output" window of the Image Analysis
controls or by displaying a popup window containing details of the failure. The GUI will always stay responsive.
2.2.2.4 Allow Fast Single Frame Acquisition With this option enabled the "Acquire" button can be pressed
several times in "SingleFrame" mode even if the previous image transfer is still ongoing. Some third party devices
might have problems with remembering all single frame requests however since the standard doesn't really enforce
a certain behavior here. Some devices might return some kind of "I am still busy" notification others might simply
queue all requests and send out individual image one after the other. This option sometimes can be useful to test
for exactly this behaviour.
Generated by Doxygen
26
The driver information dialog can be accessed by pressing the "Info" button in the upper toolbar of the application.
It needs some time to open up since it will scan every driver loaded and every device accessible through that driver
before opening. Afterwards a tree visualizing the current driver/interface/device stack will be displayed:
• Each driver loaded will result in one entry directly below the Drivers node
– This entry will at least contain the full path and version of this driver
• If at least one device has been detected by a driver then below this specific driver node there will be another
sub-node Devices listing all the devices currently detected
– Here below the actual GenICam GenTL Consumer several GenICam GenTL Producers might be listed
since the mvIMPACT Acquire Consumer is capable to connect to an arbitrary number of 3rd party
Producers as well as to the MATRIX VISION specific ones.
– According to the GenICam GenTL standard each Producer represents devices detected connected to
interfaces thus the tree here is a little deeper
– mvIMPACT Acquire allows to disable the enumeration of certain interfaces or even complete Producer
libraries for performance and also for stability reasons in case a Producer detected in the current sys-
tem doesn't operate well with the rest of the framework. What is enumerated and what is not can be
configured by using the check-boxes within the dialog. The configuration will be stored permanently and
can be configured at any time.
Generated by Doxygen
2.2 Advanced Operation 27
– Opening this dialog however is meant to display ALL devices thus even if a certain interface is not
meant to be enumerated opening this dialog will do so. As a consequence wxPropView will display all
devices connected to disabled interfaces upon leaving the dialog again until the application is closed
and restarted again.
More information about GenTL Consumer and Producer setup can be found in the corresponding chapter in the API
manuals. A more complex setup might look somewhat like this:
Here several third party Producers each exposing a one or more interfaces can be seen. Also different transport
layer technologies are supported as shown in the image from above.
See also
By default wxPropView will only display complete images. Incompletely captured images(e.g. due to transmission
errors or bandwidth shortages) will increase driver internal error counters only. These errors can either be observed
in The Status Bar or by navigating to the Statistics section of The Property Grid. If for debugging purposes also
incomplete images shall be displayed this can be changed either via the menu item "Settings -> Image Display
-> Show Incomplete Frames" or by pressing the "Incomplete" button on the left toolbar.
The area displaying the actual image has a zoom feature and when zoom in a lot, a thumbnail of the full image can
be displayed as well by enabling the Monitor Display from the left toolbar. Within the monitor display the part
of the zoomed image which is currently visible within the selected display will be marked then:
Generated by Doxygen
28
To zoom in and out of the image, the display window needs to be selected first by left-clicking on it and then the +/-
keys or the mouse wheel can be used. In order to do this the Fit To Screen option for this display window must
be switched off! This option as well as various other things affecting the behaviour of this display window can be
configured by right-clicking on the display area.
• "Fit To Screen": Will scale the image in a way that the maximum area is occupied while the aspect ratio is
preserved. With this option enabled regular zooming will not be possible.
Generated by Doxygen
2.2 Advanced Operation 29
• "1:1 Display": Will set all zoom factors back to 1. Will be ignored if "Fit To Screen" is active.
• "Full Screen": On Windows when a continuous acquisition is running will switch the display windows into a
DirectX based exclusive window. Only the live image will be displayed than. Pressing ESCAPE will switch
back to normal operation.
• "Scaling Mode": Will allow to select between different scaling options when zooming in and out of the image.
All modes provide either better performance in terms of CPU usage or better quality in terms of less scaling
artifacts. Which mode is best depends on the application.
• "Request Info Overlay": Will display all meta-information (e.g. timestamp, frame ID, ...) belonging to each
image on top of the display actual image data
• "Select Request Info Overlay": Allows to select a custom color for the "Request Info Overlay"
• "Performance Warning Overlay": Will display various information about potential performance bottlenecks
in the current setup on top of the actual image data
• "Warn On Modifications Applied To The Image By The Display (By An Overlay)": If active a message
will be drawn on top of the image in the main display area to inform e.g. about data modifications applied to
the image by the display module (e.g. bit shifting).
• "Save Current Image": Will open a save dialog and will eventually store the image in the selected format to
the selected location
• "Copy Current Image To Clipboard": Will copy the current image into the systems clipboard
Within the far right corner of The Status Bar the intensity of the pixel the mouse currently hovers on in the display
area will be displayed:
• The intensities for the individual color channels depending on the current pixel format(e.g. as from the screen-
shot above: The red, green and blue intensity of that pixel)
Generated by Doxygen
30
This value results in a different group of bits being displayed allowing to see noise or other things otherwise hidden
in the LSBs (least significant bits) of the image. Apart from the dialog also left-clicking on the display and then using
the left and right arrow keys can be used to adjust the bit shift value.
Note
When enabling the "Warn On Modifications Applied To The Image By The Display" the currently
displayed bits are written on top of the image!
wxPropView - 12-bit grey-scale image and display options by using the bit shift value
In this particular case, the pixel will be brighter (as the most significant bits are 1’s). Perhaps you already recognized
it. Each shift means that each pixel value is multiplied or divided by 2 according to the direction.
If the pixel value is greater than 255, the pixel value will be clipped to 255. To describe this from a programmer’s
view; a represents the pixel value:
Generated by Doxygen
2.2 Advanced Operation 31
Combined with the monitor image shown above also the MSBs can be seen in parallel since the monitor display will
not use the bit shift value at all.
A display window can be configured to display multiple consecutive images as a single big one. A typical use case
for this would be a line scan camera where several small stripes shall be combined as a single big image. But same
can also be used with area scan images. Usually just a single image will be displayed and will be overwritten by the
next image:
Now when several images shall be combined the "Configure Images Per Display Count..." menu option must be
selected:
Generated by Doxygen
32
This will open a dialog providing some additional explanation and allowing the user to select how many images shall
be combined into a single one:
Note
After configuration a continuous (or single frame based) acquisition can be started again and the big buffer will be
filled in aring-buffer fashion, meaning when the last section of the big buffer has been filled with a fresh image the
next time the uppermost section will be updated again:
Generated by Doxygen
2.2 Advanced Operation 33
wxPropView is also capable of working with multiple display windows! This becomes particularly useful when either
working with one device and multiple settings as described here or when working with a GenICam device that offers
a sequencer. See Sequencer Control Wizard to find out more about that!
The amount of parallel image displays can be configured via the Command-line Interface by the parameters "dcx"
and "dcy":
Since
Generated by Doxygen
34
It is also possible to change the amount of display at runtime via "Settings -> Image Displays -> Configure
Image Display Count":
Afterwards 2 smaller dialogs will pop up allowing to select the amount of display windows in X/horizontal direction:
Generated by Doxygen
2.2 Advanced Operation 35
Each display window can be configured individually via it's context menu. For example it is possible to assign
different scaling factors and interpolation algorithms to each window. The perform an analysis like calculating a
histogram the corresponding display must be selected by left-clicking on it.
2.2.5 Setting Up Multiple Display Support, Working With Several Capture Settings In Parallel
wxPropView
• is capable of dealing with multiple capture settings or acquisition sequences for a single device
"Frame grabber":
• For frame grabbers with multiple input channels this e.g. can be used to display live images from all input
channels simultaneously. This even works if each input channel is connected to a different video signal in
terms of resolution and timing.
Additional capture settings can be created via the menu item: "Capture -> Capture Settings -> Create Capture
Settings". The Property Grid will display these capture settings either in "Developers" or in "Multiple Settings
View".
Generated by Doxygen
36
Note
In GenICam interface layout multiple capture settings are NOT supported. However, you can define dif-
ferent acquisition sets using the SequencerControl category of features or the corresponding sequencer
wizard of wxPropView if supported by the device.
Generated by Doxygen
2.2 Advanced Operation 37
Now, in order to set up wxPropView to work with 2 instead of one capture setting,
1. Various additional capture settings can be created. In order to understand what a capture setting actually is
please refer to
• "Image Acquisition -> Working With Settings" chapter of the "mvIMPACT Acquire API" manuals.
Creating a capture setting is done via the menu: "Capture -> Capture Settings -> Create Capture
Setting".
2. Then, the user is asked for the name of the new setting.
3. And finally for the base this new setting shall be derived from.
Generated by Doxygen
38
Generated by Doxygen
2.2 Advanced Operation 39
As "NewSetting1" has been derived from "Base" changing a property in "Base" will automatically change this
property in "NewSetting1" if this property has not already been modified in "NewSetting1". Again to get an
understanding for this behaviour please refer to
Now, to set up wxPropView to display all images taken using capture setting "Base" in one display and all image
taken using capture setting "NewSetting1" in another display the capture settings need to be assigned to image
displays via "Capture -> Capture Settings -> Assign To Display(s)". How to create multiple display windows is
explained in Using Multiple Displays.
Generated by Doxygen
40
By default a new setting when created will be assigned to one of the available displays in a round-robin scheme,
thus when there are 3 displays, the first (Base) setting will be assigned to "Display 0", the next to "Display 1", the
next to "Display 2" and a fourth setting will be assigned to "Display 0" again. The setting to display relationships
can be customized via "Capture -> Capture Settings -> Assign to Display(s)".
As each image display keeps a reference to the request, this image belongs to the driver can't re-use the request
buffer until a new request is drawn into this display. Thus, it might be necessary to increase the number of request
objects the driver is working with if a larger number of displays are involved. The minimum number of requests
needed is 2 times the amount of images displays. The number of requests used by the driver can be set up in the
drivers property tree:
Finally, wxPropView must be configured in order to use all available capture settings in a round-robin scheme. This
can be done by setting the capture setting usage mode to "Automatic" via "Capture -> Capture Settings ->
Usage Mode":
Generated by Doxygen
2.2 Advanced Operation 41
That's it. Now, starting a live acquisition will display live images in both displays and each display is using a different
set of capture parameters. If a device supports parallel acquisition from multiple input channels, this will increase
as wxPropView now needs to display more images per second. Each display can be configured independently thus
e.g. one display can be used scaled while the other displays 1:1 data. The analysis plots can be assigned to a
specific display by left-clicking on the corresponding image display, the info plot will plot a graph for each capture
setting in parallel.
When only one setting shall be used at a given time, this can be achieved by setting the capture setting usage mode
back to "Manual" via "Capture -> Capture Settings -> Usage Mode". Then the setting that shall be used can be
manually selected in the request control list:
Generated by Doxygen
42
Finally when the capture setting usage mode has been set to Automatic a continuous acquisition using all settings
can be started that will display all images that have been captured using a certain setting into a specific display
window:
2. Press Acquire
3. When all images have been recorded the Next and Prev. buttons can be used to display the individual
images.
Generated by Doxygen
2.2 Advanced Operation 43
If you switched on the request info overlay (see Display Possibilities), the additional information will be displayed for
each image as well. With the timestamp you can see the interval between the individual frames in microseconds.
Without changing anything else recording works by using all request objects currently available to the driver (see
"System Settings -> RequestCount"). So instead of freeing a request object and feeding it back into the driver as
soon as a new image has been sent to the display module all the buffers are kept in memory. Because of that the
acquisition will stop automatically once RequestCount images have been captured. The capturing can either be
done in SingleFrame, Continuous or even in MultiFrame mode.
Generated by Doxygen
44
• "Silent Mode": Enabling this option will no longer display dialogs like asking the user to confirm the deletion
of the current recorded sequence before recording a new one.
• "Continuous": Enabling this option will no longer stop the recording once all buffers have been filled but
instead will always keep all the most recent buffers in memory and when necessary discarding the oldest one
when capturing a new one. This can be useful when a certain event/scene shall be captured and it is not fully
known when this will happen. When enough buffers are available simply stopping the acquisition afterwards
will allow to view the last buffers then
• "Setup Sequence Size": This will open a small dialog allowing to define sequence length that is larger than
the number of request objects available to the driver by effectively creating a deep copy of each image. The
dialog will display some additional details regarding this option.
2.2.6.2 Storing Recorded Sequences It is also possible to store recorded sequences in various ways:
• "Save Images Into Separate Files": This will open a file dialog allowing the selection of an output directory
and a file format for the operation. Afterwards individual image files will be written into that directory. If meta-
data is attached to these images (e.g. when working with chunk data) this information might be saved as
XML-file in the same directory as the image, when the corresponding checkbox in the file dialog is checked.
Otherwise the meta-data will be lost.
• "Save Images Into Stream": This will open a file dialog allowing the selection of an output file name. After-
wards all the data will be written into a single file. This will keep all the meta-data like chunk information but
as no header or anything else will be added to the output file a user needs to know what to do with this data
afterwards. The stream will contain a 1:1 copy of all the captured buffers one after the other. This can NOT
be imported back into wxPropView nor can it be parsed without additional knowledge! To record streams of
images Video Stream Recording With FFmpeg might be a better alternative if meta-data is not needed.
This mode can be used to save a sequence of images from the current acquisition to the hard disk directly.
You can save acquired images to the hard disk the following way:
Generated by Doxygen
2.2 Advanced Operation 45
• Select "Capture -> Setup Hard Disk Recording" from the menu.
• Current status information will be visible in the Output tab of the Image Analysis (The Big Picture)
Since
The snapshot mode can be used to save single images from the current acquisition to the hard disk directly.
Generated by Doxygen
46
• Select "Capture -> Setup Snapshot To Hard Disk Mode" from the menu.
• Now you can save the current image by pressing the space bar. Make sure, that the wxPropView main
window is selected.
• Current status information will be visible in the Output tab of the Analysis Area (The Big Picture)
Generated by Doxygen
2.2 Advanced Operation 47
Since
With the Video Stream Recording, it is possible to compress the acquired images into a video stream container and
save it on the hard disk.
Note
• Download the shared FFmpeg packages in version 4.x from the project website
• Extract the package in the proper folder, specified by your operating system (Have a look at the
detailed documentation of the VideoStream class for the programming language you plan to work
with, use C++ if you don't plan to develop code. Within the C++ documentation navigate to "←-
Modules -> Common -> VideoStream", click on it and scroll down to "Detailed Description")
In wxPropView, a video stream can be recorded by the 'Start', 'Pause' and 'Stop' buttons at the top right tool-bar.
They are however inactive when the video stream recording mode is deactivated OR when the video stream is not
correctly set up.
1. Select the device to use and open it by clicking on the 'Use' button.
2. Navigate to the 'Capture' menu and click on the 'Video Stream Recording...' option to start a setup dialog.
Generated by Doxygen
48
3. A setup dialog will then be initialized as follows. Please read the setup hints in the text box for more informa-
tion.
4. Enable the video stream recording mode. Choose a pixel format (e.g. 'YUV422Packed' or 'YUV422Planar')
that will be generated by the device driver and used by FFmpeg for video stream encoding. Then click on
'Select an output file' to create/choose a file to hold the recorded video stream.
Generated by Doxygen
2.2 Advanced Operation 49
Figure 4: Enable the video stream recording mode and set up device driver related parameters
5. In the file selector, choose a file type (e.g. '∗.mp4' or '∗.m2v') and enter a file name.
Generated by Doxygen
50
6. Set up video stream related parameters accordingly. In the check boxes below, users are allowed to choose
whether to synchronize acquisition stop with recording stop and whether to overwrite the already recorded
video stream if the currently selected output file has the same file name as the previous one.
Generated by Doxygen
2.2 Advanced Operation 51
7. Once the video stream recording has been set up, click 'Apply' or 'Ok' to apply the current settings. Afterwards,
a log message in the analysis output will indicate whether the current settings have been applied successfully.
If successful, the 'Start' control button at the top right tool-bar will be enabled.
Generated by Doxygen
52
Note
When deactivating the video stream recording, uncheck the 'Enable video stream recording mode' and
then click 'Apply' or 'Ok' for the settings to take effect.
Once the settings have been applied, users can control the recording process via the 'Start', 'Pause' and 'Stop'
buttons:
• Start recording: Click the 'Start' control button to start recording the video stream. The current recording
status and information will be displayed in the analysis output. During recording, the setup dialog as well as
the 'Start' button will be disabled. The 'Pause' and 'Stop' buttons will then be enabled.
Generated by Doxygen
2.2 Advanced Operation 53
• Pause recording: Click the 'Pause' button to pause a running recording. The current recording status will be
displayed in the analysis output.
Generated by Doxygen
54
• Resume recording: Click the 'Pause' button to resume a paused recording. The current recording status will
be displayed in the analysis output.
• Stop recording: Click the 'Stop' button to stop recording the video stream. The current recording status and
information will be displayed in the analysis output. Once the recording has been stopped, the setup dialog
as well as the 'Start' button will be enabled again. The 'Pause' and 'Stop' buttons will then be disabled.
Generated by Doxygen
2.2 Advanced Operation 55
When recording to an output file which has the same file name as the previous one while overwriting the recorded
content is not desired:
1. When clicking 'Start', a file selector will pop up to ask users to create a new output file with the same file type
as the previous one. If a new set of parameters of the video stream recording is needed, please click 'Cancel'
in the file selector and re-configure parameters in the setup dialog.
Figure 12: Select a new file when starting to record to an output file with the same file name as the previous
one without overwriting
2. Once a new file has been created, the video stream will start to get recorded. The current recording status
and information will be displayed in the analysis output. During recording, the setup dialog as well as the
'Start' button will be disabled. The 'Pause' and 'Stop' buttons will then be enabled.
Generated by Doxygen
56
Figure 13: Start recording to an output file with the same file name as the previous one without overwriting
mvIMPACT Acquire internally as well as wxPropView's various analysis and display options make massive use
of various techniques to improve the overall processing performance. One of the techniques used is OpenMP
( https://en.wikipedia.org/wiki/OpenMP) for distributing the load caused by expensive algorithms.
Usually the OpenMP runtime choses acceptable default parameters for these tasks but sometimes or on some
platforms manual adjustment might become necessary. When defaults are not ideal for whatever reasons or you
simply want to play around with this feature the number of threads used by the OpenMP runtime can be configured
manually:
Generated by Doxygen
2.3 Image Analysis 57
The number of threads can be anything between 1 and the number of CPUs in the current system. More threads
introduce more overhead thus the speed gain typically is NOT linear as it be seen in the next image:
This timing diagram was generated by using the Feature Versus Time Plot. It can be seen that adding more threads
to a task is not always perfect. In fact the additional CPU time needed can be rather high (have a look at the task
manager of your system as well).
Note
Depending on the compiler used to build mvIMPACT Acquire and/or wxPropView setting the thread
count might either affect the whole process (Windows) or the display and analysis module of wxProp←-
View only (Linux). On systems where this does only affect wxPropView itself each mvIMPACT Acquire
driver instance will allow to adjust the maximum number of threads that shall be used for driver internal
image processing as well. In that case the property "SystemSettings -> ImageProcessing -> Image←-
ProcessingMaximumThreadCount" will be available and can be configured as needed.
Since
2.41.0
Sharpness Adjustment can be performed quite easily using on of the profile plots! See Horizontal/Vertical Line Profile
to find out how to do this.
wxPropView comes with various controls that allow to perform some basic analysis of the images captured or
imported from hard disk. Among these are elements to display various histograms and line profiles as well as
information about images or properties over time.
Some of the analysis plots allow to switch between Graphical and Numerical display. On the numerical
display a right-click on the data will allow to copy the full numerical data grid into the clipboard.
Generated by Doxygen
58
Whenever an analysis plot offers a user selectable AOI, the currently defined AOI will be displayed on top of the
image when the corresponding analysis plot is selected and the Full AOI Mode option for that plot is switched
off. The AOI then can either be selected by using the AOI related spin buttons within the analysis tabs control area
or by using the mouse within the image display area. When using the mouse:
• left-click anywhere within the AOI and hold down the mouse button to move the AOI
• move on any of the edges or corners of the AOI and press the left mouse button on any of the small squares
displayed on top of the bounding box to change the size of the AOI
• left-click anywhere outside the AOI and hold down the mouse button to draw a completely new AOI
2.3.1.1.1 Synchronize AOIs The AOIs for the individual analysis tabs can be configured independently from all
the other tabs and all settings will be stored across sessions. When closing wxPropView and restarting it later the
last configuration will be restored. Sometimes however it might be useful to use the same AOI for ALL analysis
tabs. This can be configured by enabling the "Synchronize AOIs" option:
Generated by Doxygen
2.3 Image Analysis 59
2.3.1.2 Other Drawing/Display Options Some of the analysis plots will provide additional controls to configure
the way the resulting data will be displayed.:
• "Full AOI Mode": Instead of using the configured AOI to calculate analysis data the full image will be pro-
cessed. The current AOI settings however will be preserved and can be reactivated by switching this option
back to off.
• "Process Bayer Parity": When raw Bayer images are captured this option can be used to either treat this
image as a single channel gray-scale image or treat it as a 4 channel (red, green, green, blue) image resulting
in either one large data set or 4 smaller ones. The latter option might e.g. be useful to see differences in the 2
green components or can be used for white balancing an image by adjusting parameters until all 4 data sets
are almost equal.
• "Plot Differences": Will display the delta between the current and the previous value instead of the value
itself
• "Scale Automatically": Will automatically adjust the Y-axis of a plot to map the lowest value of the current
value set to the intersection with the X-axis and the highest value to the upper limit of the plot. Enabling this
option will constantly change the scale of the Y-axis
• "Draw Start(%)": Will define the start of the range of data to display relative to the full data available. E.g.
if a histogram contains 256 entries and this value is set to 50, then only the upper half of the histogram will
displayed. This value combined with "Draw Window(%)" will allow to zoom in on a certain range of the
result data.
• "Draw Window(%)": Will define the range of data to display from the full data available. E.g. if a histogram
contains 256 entries and this value is set to 50 while "Draw Start(\%)" remains 0 then only the lower half of
the histogram will displayed. This value combined with "Draw Start(%)" will allow to zoom in on a certain
range of the result data.
• "Draw Step Width": Will allow to define how many data points will be drawn. 0 will draw 256, 1 will draw
every data point which e.g. for 16-bit data might be slow and other values draw a subset from the available
data points and might result in rounding effects so e.g. might hide missing codes. Use this option carefully!
Generated by Doxygen
60
• "Update Interval": Allows to balance CPU usage versus update speed for the selected control. E.g. a value
of 3 will only calculate and display updated data every third image or AOI movement.
• "History Depth": This is e.g. supported by the Intensity Plot and defines the number of result data sets kept
in memory. E.g. a value of 5 will result in this and the last 4 analysis results being kept and displayed. This
result data sets will be generated either
Note
Not every option listed here will be available for every analysis control!
To do this
• right-click on the specific analysis grid when in numerical display mode and
From within this context menu also a printf style format string can be specified for the data grid in order to e.g.
view the data e.g. in hexadecimal format.
The pixel histogram control does provide a way to visualize the intensity distribution of the individual color channels
of an image:
Generated by Doxygen
2.3 Image Analysis 61
In this example as the AOI contains a lot of green pixels, less red pixels and even less blue pixels of different
medium intensities the resulting histogram has peaks within the middle of the histogram where the green peaks are
the highest, followed by red and then blue.
The displayed analysis results in the graphical view will be scaled automatically to accommodate the most frequent
value. At the top additional information about each color channel will be displayed. From left to right the 3 values
per channel are
See also
The horizontal and vertical line profile plots provide a way to visualize course of the intensity either in a horizontal
or in a vertical direction:
Generated by Doxygen
62
In this example (horizontal line profile) each test image bar within the AOI results in a flat line of a certain intensity
within the middle of the intensity range. Whenever a new intensity bar starts there is a sudden jump in intensity
found as well in the profile.
Typically the AOI dimension in the other direction will be 1 but also any other value is possible. In that case the
average value of the included range will be calculated.
Note
The profile lines can also be used to conveniently adjust the focus by looking at an edge and then try to
adjust the lens in a way this edge has its maximum gradient.
See also
The spatial noise histogram calculates and evaluates the statistical difference between two neighboring pixels in
vertical and horizontal direction. I.e. it shows the sensor's spatial background pattern like the sensitivity shifts of
each pixel. An ideal sensor or camera has a spatial noise of zero, a real sensor will not. analog gain for example
will result in additional noise. However, you have to keep in mind the temporal noise as well.
Generated by Doxygen
2.3 Image Analysis 63
For the information displayed in the upper region of the graphical view read: Channel::Direction (Mean/average
difference, most frequent value count/ value, Standard deviation)
Example: For a single channel(Mono) image the output of 'C0Hor(3.43, 5086/ 0, 9.25), C0Ver(3.26, 4840/ 0, 7.30)
will indicate that the mean difference between pixels in horizontal direction is 3.43, the most frequent difference is 0
and this difference is present 5086 times in the current AOI. The standard deviation in horizontal direction is 9.25.
The C0Ver value list contains the same data but in vertical direction.
See also
The temporal noise histogram shows the changes of a pixel from image to image. This method is more stable
because it is relatively independent from the image content. By subtracting two images, the actual structure is
eliminated, leaving the change of a pixel from image to image, that is, the noise assuming the sudden, massive
changes in scene or lighting conditions can be neglected. When capturing images for this kind of analysis all
parameters should stay constant, all automatic mechanisms(AGC, AEC, AWB, ...) have to be turned off and the
image should not have underexposed or saturated areas. However, there are no picture signals without temporal
noise. Light is a natural signal and the noise always increases with the signal strength. If the noise only follows
the natural limits, then the camera is good. Only if additional noise is added the camera or the sensor isn't working
perfectly.
Generated by Doxygen
64
For the information displayed in the upper region of the graphical view read: Channel (Mean difference, most
frequent value count/ value, Standard deviation)
Example: For a single channel(Mono) image the output of 'C0(3.43, 5086/ 0, 9.25) will indicate that the mean
difference between pixels in 2 consecutive images is 3.43, the most frequent difference is 0 and this difference is
present 5086 times in the current AOI. The standard deviation between pixels in these 2 images is 9.25. Please
note the impact of the 'Update Interval' in this plot: It can be used to define a gap between 2 images to compare.
E.g. if the update interval is set to 2, the differences between image 1 and 3, 3 and 5, 5 and 7 etc. will be calculated.
In order to get the difference between 2 consecutive images the update interval must be set to 1!
See also
This plot can be used to display either the average intensity or the most frequent value of pixel data within a certain
AOI over time:
There will be history depth entries, meaning the calculated data of the last history depth images or AOI movements
will be stored and displayed. So assuming the color bar from the above image moves to the right a little with each
new image right now this results in an ever increasing average green intensity since darker parts move out of the
AOI while lighter ones enter it from the left. The red and blue components are 0 obviously since only the green color
bar is within the AOI.
See also
Generated by Doxygen
2.3 Image Analysis 65
This plot will display the color distribution within a user selectable AOI within the analyzed image. Each color that
is present in the AOI will result in a single dot in the resulting plot, so colors appearing only in a single pixel will be
as prominent as a color occupying 99% of the AOI. This can be useful to check saturation, missing codes, fine tune
the color fidelity and various other things:
In the center of the plot all pixels with similar intensities for all 3 color components of a pixel will end up. The farer
out a pixel the more prominent 1 or 2 intensities of a 3 channel image are relative to the third component. So an
RGB value of 255/0/0 will end up in the little red square of the plot, a value of 0/255/255 will end up in the little cyan
square and so on.
See also
The info plot allows to select a certain property which is part of the meta data / chunk data of each image and plot
the value of this feature over time to see changes in this value.
Generated by Doxygen
66
• seeing sudden jumps in the FrameID (e.g. because of transmission problems or device frame buffer over-
flows)(In this case it might be helpful to enable the "Plot Differences" option)
• checking the precision of IEEE1588 timestamps or timestamp that are in sync. with the host system in general
by using the "Timestamp As Time" display (This will assume the timestamp of the device to be a real-world
time thus will only display correct times if that is the case. Otherwise ignore this display)
• checking since when and for how long the current acquisition is running
• checking when the last buffer has been received from the currently selected device
Note
Most features might require that chunk data is switched on for the device data transfer. For more informa-
tion about enabling/disabling meta data or about the Chunk Data format please refer to the corresponding
chapter in the product manual!
See also
Generated by Doxygen
2.3 Image Analysis 67
• see how the exposure time or gain changes when a device performs AEC or AGC
• check how the properties "Statistics -> ImageProcTime_s" or "Statistics -> FormatConvertTime_s"
change over time with changing AOIs or processing algorithms
Note
• Only a single feature can currently be displayed in this plot. As soon as another one is selected the
new feature will be plotted instead.
• Only integer or floating point properties can be attached to this control.
See also
Generated by Doxygen
68
• mvBlueFOX-1xx/mvBlueFOX-2xx
• Frame Grabber
After the device has been initialized successfully in the "Grid" area of the GUI the available GenICam "interface
layout" properties are displayed in a hierarchy tree.
2.4.1.1 Changing The Interface Layout To GenICam Or DeviceSpecific The mvIMPACT Acquire interface
internally uses the GenICam runtime libraries, so that it can be considered as an user application written with the
GenICam interface. This behavior has several advantages:
• The current version of the mvGenTL-Acquire driver is meant to work with every GigE Vision™ and every U3V
(USB3 Vision™) compliant device.
• Developers either can use the generic GenICam properties or the "mvIMPACT Acquire" properties.
You can change the property interfaceLayout with wxPropView to select the preferred interface.
• When "GigE Vision" and GenICam compliant devices from several vendors shall be used in the same ap-
plication it's recommended to use the "GenICam" interface layout only in order to keep the application code
simple.
• When several different MATRIX VISION devices (e.g. a frame grabber, a USB camera and a GigE Vision
camera) shall be operated by the same application, it's recommended to use the device specific interface
for the same reasons.
Generated by Doxygen
2.4 Device Configuration 69
• When an application shall be able to work with every MATRIX VISION device and every "GigE Vision" and
GenICam compliant device both approaches make sense however a mixture between the 2 worlds can't be
avoided.
To specify the InterfaceLayout for all devices globally, you can do this via the "Action -> Default Device Interface
Layout" in the menu:
If you want to specify the InterfaceLayout for the used device, you can do this via "Device Properties" in the
section "Device -> InterfaceLayout":
Generated by Doxygen
70
Note
If a device is opened, but the selected interface layout has been declared deprecated, a message box
will show up to make sure that the interface layout has not been changed by accident.
Warning message if an interface layout is selected which has been declared deprecated for the used device
See also
2.4.1.2 Different Interface Layouts Devices belonging to this family only support the Device Specific interface
layout which is the common interface layout supported by most MATRIX VISION devices.
GenICam compliant devices can be operated in different interface layouts. Have a look at a GenICam compliant
device for additional information.
2.4.1.3 Interface Configuration And Driver Configuration Some basic driver configuration is available through
the Detailed Driver Information dialog. Much more is possible and how to do this is described in the API manuals in
the corresponding chapter "Setting Up The Framework For Third Party GenTL Producer Usage"
See also
• About Settings
• Storing Settings
• Restoring Settings
• Deleting Settings
Generated by Doxygen
2.4 Device Configuration 71
2.4.1.4.1 About Settings A setting contains all parameters that are needed to configure the device to a state it
was in when the setting was created. Every image can be captured with a completely different set of parameters. In
almost every case, these parameters are accessible via a property offered by the device driver. A setting e.g. might
contain
• The gain to be applied to the analog to digital conversion process for analog video sources or
So for the user a setting is the one and only place where all the necessary modifications can be applied to achieve
the desired data acquisition mode. There is however an important difference in behaviour between different interface
layouts. See here to find out how to modify the interface layout or check in the API documentation for the interface←-
Layout property of the class Device.
• When working with the DeviceSpecific interface layout, each frame will be captured with the settings as
present when requesting the image. Every parameter can be modified at any time. When requesting another
image the settings valid at that moment will be used to fill this buffer with data
• For the GenICam interface layout all device properties modified during a continuous acquisition will be applied
at once so might affect this or the next image transmitted by the device. Depending on various parameters
(the number of buffer already captured but not collected by the application, the way the device internally
operates(e.g. has already captured a couple of images that await transmission), etc.) this will have impact
on that captured images somewhere in the near future thus when a precise moment to change settings is
needed, continuous acquisition must be stopped and then restarted after modifying the features. Certain
features (typically those affecting the buffer layout/size) cannot be changed while a continuous acquisition is
running in GenICam interface layout anyway.
Now, whenever a device is opened, the driver will execute following procedure:
Generated by Doxygen
72
• Please note that each setting location step in the figure from above internally contains two search steps. First
the framework will try to locate a setting with user scope and if this can't be located, the same setting will be
searched with global (system-wide) scope. On Windows this e.g. will access either the HKEY_CURRENT←-
_USER or (in the second step) the HKEY_LOCAL_MACHINE branch in the Registry.
• Whenever storing a product specific setting, the device specific setting of the device used for storing will be
deleted (if existing). E.g. you have a device "VD000001" which belongs to the product group "VirtualDevice"
with a setting exclusively for "VD000001". As soon as you store a product specific setting using THIS device,
the (device specific) setting for "VD000001" will be deleted. Otherwise a product specific setting would never
be loaded as a device specific setting will always be found first. Storing a product specific setting with
a different device belonging to the same family however will NOT delete device specific settings for other
devices.
• The very same thing will also happen when opening a device from any other application! mvPropView does
not behave in a special way but only acts as an arbitrary user application.
• Whenever storing a device family specific setting, the device specific or product specific setting of the device
used for storing will be deleted (if existing). See above to find out why.
• On Windows the driver will not look for a matching XML file during start-up automatically as the native
storage location for settings is the Windows Registry. This must be loaded explicitly by the user by using the
appropriate API function offered by the SDK. However, under Linux XML files are the only setting formats
understood by the driver framework thus here the driver will also look for them at start-up. The device specific
setting will be an XML file with the serial number of the device as the file name, the product specific setting
will be an XML file with the product string as the filename, the device family specific setting will be an XML
file with the device family name as the file name. All other XML files containing settings will be ignored!
• Restoring of settings previously stored works in a similar way. After a device has been opened the settings
will be loaded automatically as described above.
• A detailed description of the individual properties offered by a device will not be provided here but can be
found in the C++ API reference, where descriptions for all properties relevant for the user (grouped together
in classes sorted by topic) can be found. As mvPropView doesn't introduce new functionality but simply
evaluates the list of features offered by the device driver and lists them any modification made using the
GUI controls just calls the underlying function needed to write to the selected component. mvPropView also
doesn't know about the type of component or e.g. the list of allowed values for a property. This again is
information delivered by the driver and therefore can be queried by the user as well without the need to have
special inside information. One version of the tool will always be delivered in source so it can be used as a
reference to find out how to get the desired information from the device driver.
Generated by Doxygen
2.4 Device Configuration 73
Settings can be stored in several ways via the menu: "Action -> Capture Settings -> Save Active Device
Settings":
• "As Default Settings For All Devices Belonging To The Same Family (Per User Only)": As the start-up
parameters for every device belonging to the same family, e.g. for mvBlueCOUGAR-X, mvBlueCOUGAR-XD,
mvBlueCOUGAR-XT.
• "As Default Settings For All Devices Belonging To The Same Family And Product Type": As the start-
up parameters for every device belonging to the same product, e.g. for any mvBlueCOUGAR-X but not for
mvBlueCOUGAR-XD or mvBlueCOUGAR-XT.
• "As Default Settings For This Device(Serial Number)": As the start-up parameters for the currently se-
lected device.
• "To A File": As an XML file that can be used e.g. to transport a setting from one machine to another or even
to use the settings configured for one platform on another (Windows <-> Linux <-> macOS).
2.4.1.4.3 Restoring Settings Restoring of settings previously stored works in a similar way as Storing Settings.
After a device has been opened the settings will be loaded automatically as described above.
However a different setting can be restored at any time via the menu: "Action -> Capture Settings -> Load
Active Device Settings":
• explicitly load the device family specific settings stored on this machine (from "The Default Settings Location
For This Devices Family (Per User Only)")
• explicitly load the product specific settings stored on this machine (from "The Default Settings Location For
This Devices Family And Product Type)")
• explicitly load the device specific settings stored on this machine (from "The Default Settings Location For
This Device(Serial Number)")
• explicitly load device family specific settings from a XML file previously created ("From A File")
Generated by Doxygen
74
Note
Another way to load a setting from hard disk is by dragging it onto The Property Grid and dropping it
there.
"GenICam devices": Since mvIMPACT Acquire 2.9.0 GenICam devices will be able to save their prop-
erties in a XML File, only if the properties have the streamable attribute set (for more information refer
to the GenICam standard specification). Properties with no streamable attribute set, will
be silently ignored when saving, which means they will not be saved in the XML file. For MATRIX VI-
SION GenICam cameras, starting with firmware version 1.6.414 the streamable attribute is set for all
the necessary properties.
Note
Since mvIMPACT Acquire 2.9.0 and again in version 2.11.0 storing and loading of camera settings in a
XML file for the GenICam interface layout has been updated. As a result XML files created with newer
versions of mvIMPACT Acquire might not be readable on systems with older version of mvIMPACT
Acquire installed. XML files created on systems with earlier versions of mvIMPACT Acquire will always
be readable this or newer versions. See the following table for details.
mvIMPACT Acquire Loading a XML set- Loading a XML set- Loading a XML set-
Version tings file created with tings file created with tings file created with
mvIMPACT Acquire ver- mvIMPACT Acquire ver- mvIMPACT Acquire ver-
sion < 2.9.0 sion 2.9.0 - 2.10.1 sion 2.11.0 or later
< 2.9.0 YES NO NO
2.9.0 - 2.10.1 YES YES NO
>= 2.11.0 YES YES YES
Attention
Since mvIMPACT Acquire 2.28.0 it is possible for devices operated in the GenICam interface lay-
out to store settings including sequencer set and user set (see SFNC( https://www.emva.←-
org/standards-technology/genicam/) for details) data by specifying appropriate flags dur-
ing the storage operation. Settings stored like this cannot be loaded by previous mvIMPACT Acquire
versions.
Note
For devices operated in the GenICam interface layout further restriction apply: Settings created with a
certain product type can only be used with other devices belonging to the exact same type as defined
by the property Product inside the device list (the one device specific property list that is accessible
without initializing the device before). Even if a setting can be used with various firmware versions it is
recommended to use one setting for multiple devices all updated to the very same firmware version to
avoid compatibility problems.
Generated by Doxygen
2.4 Device Configuration 75
2.4.1.4.4 Deleting Settings With "Action -> Capture Settings -> Manage..." you can delete the settings
which were saved on the system:
This will open another dialog displaying ALL (not only the ones applicable for the currently selected device) settings
that are currently stored on the system at the default location:
Generated by Doxygen
76
While using a color version of the camera, the PC will calculate a color image from the original gray Bayer mosaic
data. For getting correct colors when working with a Bayer mosaic filter you have to calibrate the white balance (this
must be performed every time the lighting conditions change).
The "White Balance Control" can be found in "Setting -> Base -> Camera -> GenICam -> Analog Control ->
Balance White Auto". Just select "Continuous" and you will get a white balanced image.
For older devices, wxPropView offers predefined settings for e.g.
• "Daylight",
• "TungstenLamp",
• "HalogenLamp",
Simply select the necessary item in the menu "Image Settings -> Base -> ImageProcessing -> WhiteBalance"
(DeviceSpecific interface layout) or "Setting -> Base -> ImageProcessing -> WhiteBalance" (GenICam inter-
face layout).
If you need a user defined setting, you can also define own ones. For this, select a profile (e.g. User1) for this
setting:
Generated by Doxygen
2.4 Device Configuration 77
Note
Point the camera on a white or light gray area (the pixels do not have to be saturated, so use gray values between
150 and 230).
Go to the menu item "WhiteBalanceCalibration" and select the parameter "Calibrate Next Frame":
wxPropView - WhiteBalanceCalibration
By committing the selected value, the application accepts the change. The next acquired image will be the reference
for the white balance.
Generated by Doxygen
78
For easier handling and easier working, all settings can be saved by clicking the menu Action -> Capture Settings -> Save ....
2.4.1.5.1 Optimizing White Balance In The Camera The gain is increased before the digital white balancing,
which uses green as reference. Based on the 14 bit image raw data, the digital white balance adjusts the gain of
red and blue. Afterwards, the 8 bit reducing and the transfer takes place.
To optimize the digital white balance within the camera you can select "Red" or "Blue" in "Balance Ratio Selector"
(in "Analog Control") to adjust the gain. Afterwards, turn "Balance White Auto" to "Off" and "Once" to execute it.
To configure a device for a triggered acquisition, in wxPropView the property "Setting -> Base -> Camera -
> GenICam -> Acquisition Control -> Trigger Selector" ("GenICam interface layout") is available. For older
devices without GenICam you will find the property here: "Image Setting -> Camera -> TriggerMode".
Generated by Doxygen
2.4 Device Configuration 79
Note
The supported trigger modes of each sensor are described in the "More specific data" of each sensor
in the corresponding product manual.
• DeviceTriggerMode. However, not every device will offer all these trigger modes but a subset of them. Valid
trigger modes therefore can be found by reading the properties translation dictionary.
• OBJ_GetDictSize() (C or VB developers)
There is also a chapter "Getting a triggered image" chapter, which is available in the "mvIMPACT Acquire API"
manuals.
Note
The following description will be significant if you are using the "DeviceSpecific interface layout". In
GenICam layout, the "Digital I/O" section can be found in "Setting -> Base -> Camera -> GenICam ->
Digital I/O Control".
For performance reasons, device drivers will not automatically update their digital input properties if nobody is
interested in the current state. Therefore, in order to check the current state of a certain digital input, it is necessary
to manually refresh the state of the properties. To do this please right-click on the property you are interested in and
select "Force Refresh" from the pop-up menu.
Some devices might also offer an event notification if a certain digital input changed its state. This event can then
be enabled
• via the "EventSelector" in "Setting -> Base -> Camera -> GenICam -> Event Control".
• Afterwards, a callback can be registered by right-clicking on the property you are interested in again.
• Now, select "Attach Callback" from the pop-up menu and switch to the "Output" tab in the lower right section
of wxPropView (Analysis tabs).
Whenever an event is send by the device that updates one of the properties a callback has been attached to, the
output window will print a message with some information about the detected change.
Generated by Doxygen
80
Since
The mvBlueCOUGAR-S cameras feature a built-in defective pixel compensation. For that purpose, you will need
the current firmware.
See also
To compensate the defective pixels, please do following steps (you can use the tab "Pixel Histogram" to show the
gray scale values):
1. Select the value "PixelCompensationLevelRaw", which indicates the percentage level from which a pixel is
considered as defective.
2. Over "int PixelCompensationDetect()", click on the right mouse button and confirm with "Execute".
Generated by Doxygen
2.4 Device Configuration 81
Generated by Doxygen
82
This setting can be saved in the camera via "int PixelCompensationSave()" so that the pixel compensation is
system independent.
Example: You have connected a flash via exposure out of the camera and you want to avoid an overload of the
flash by maloperation, you can save a suitable shutter time, with which the camera will start.
To save your specific settings, set you properties in the "Setting -> Camera -> GenICam" section of wxPropView.
Then, select in "User Set Control" your user set with the "User Set Selector", for example "UserSet1". Afterwards,
save the user set with "int UserSetSave()". Finally, if you want that the camera starts with a specific user set (after
power up), you have to select it with the "User Set Default Selector".
Generated by Doxygen
2.4 Device Configuration 83
Attention
2.4.2 mvBlueFOX-1xx/mvBlueFOX-2xx
2.4.2.1 Setting Up External Trigger And Flash Control To set up external trigger and flash control, following
things are required:
The camera is only connected by USB 2.0 cable to PC. All other signals are connected directly to the camera.
Trigger and flash signals are directly controlled by the FPGA, which does the timing in the camera. This makes the
trigger and flash control independent from CPU load of host PC or temporary USB 2.0 interrupts.
Trigger control
External trigger signal resets the image acquisition asynchronously to any other timing so that reaction delay is such
short that it can be ignored. If a delay between trigger signal and starting integration is needed, it can be defined.
By default it is set to 0 us.
Flash control
Signal for flash control is immediately set as soon as image integration begins. If a delay is needed it can be defined.
By default this delay is set to 0.
Generated by Doxygen
84
Schematic shows how to fit application's switch to camera's digital input. External trigger signal must be in following
conditions:
Application's switch can be a mechanical one any light barrier or some kind of encounter.
Note
Depending on used switch it might be necessary to use a pull-up or pull-down resistor so that camera
input can recognize signal correctly.
See also
2. Click on "Acquire".
5. Connect a standard power supply with e.g. 5 V (higher than the value of "DigitalInputThreshold") to pin 1 (-)
and pin 6 (+)
Generated by Doxygen
2.4 Device Configuration 85
As long as the power supply is connected, you can see a live preview. If you disconnect the power supply the live
preview should stop. If this is working the trigger input works.
Generated by Doxygen
86
If current needed for flash is below 100 mA you can connect flash directly to camera outputs. If it is higher, you have
to use an additional driver for controlling the flash, which provides the higher current.
Note
Depending on used flash driver it could be necessary to use pull-up or pull-down resistors so that driver
can recognize the signal correctly.
See also
By default camera is running free. This means, it uses its own timing depending on set pixel clock, exposure time
and shutter mode.
2.4.2.1.2 Configuring An External Trigger Signal To let the camera acquire images only with an external trig-
ger signal you must change the "TriggerMode" to the mode suitable to your application:
Generated by Doxygen
2.4 Device Configuration 87
mvBlueFOX-1xx/mvBlueFOX-2xx - TriggerMode
Mode Description
Continuous Free running, no external trigger signal needed.
OnDemand Image acquisition triggered by command (software trigger).
OnLowLevel As long as trigger signal is Low camera acquires images with own timing.
OnHighLevel As long as trigger signal is High camera acquires images with own timing.
OnFallingEdge Each falling edge of trigger signal acquires one image.
OnRisingEdge Each rising edge of trigger signal acquires one image.
OnHighExpose Each rising edge of trigger signal acquires one image, exposure time corresponds to pulse
width.
OnLowExpose Each falling edge of trigger signal acquires one image, exposure time corresponds to pulse
width.
OnAnyEdge Start the exposure of a frame when the trigger input level changes from high to low or from
low to high.
Generated by Doxygen
88
mvBlueFOX-1xx/mvBlueFOX-2xx - TriggerSource
Choose either "DigIn0" if signal is connected to "IN0" or DigIn1 if signal is connected to IN1. In general entry
"RTCtrl" is not useful in this case because triggering would be controlled by the HRTC("Hardware Real-Time
Controller")(see product manual https://www.matrix-vision.com/manuals/) which is not described
here and also not necessary.
Depending on voltage level you are using for trigger signal you must choose the "DigitalInputThreshold":
mvBlueFOX-1xx/mvBlueFOX-2xx - DigitalInputThreshold
Generated by Doxygen
2.4 Device Configuration 89
mvBlueFOX-1xx/mvBlueFOX-2xx - ImageRequestTimeout_ms
2.4.2.1.3 Configuring A Flash Signal To activate flash control signal set "FlashMode" to the output you con-
nected flash or flash driver to:
Generated by Doxygen
90
Since this mode is activated each image acquisition will generate the flash signal. This generation is independent
from used trigger mode. Flash signal is directly derived from integration timing.
This means that if no "FlashToExposedToLightDelay" is set flash signal will rise as soon as integration starts and fall
when integration is finished. The pulse width cannot be changed. So you can be sure that integration takes place
when trigger signal is high.
2.4.2.2 Working With The Hardware Look-Up-Table (LUT) There are two parameters which handles the pixel
formats of the camera:
• "Setting -> Camera -> PixelFormat" defines the pixel format used to transfer the image data into the target
systems host memory.
• "Setting -> ImageDestination -> PixelFormat" defines the pixel format of the resulting image (which is
kept in the memory by the driver).
If you set "LUTImplementation" to "Software" in "Setting -> ImageProcessing -> LUTOperations", the hardware
Look-Up-Table (LUT) will work with 8 bit data ("LUTMappingSoftware = 8To8"). Using Gamma functions you will
see gaps in the histogram:
mvBlueFOX-1xx/mvBlueFOX-2xx - 8to8 software LUT leads to gaps in the histogram using gamma functions
(screen-shot: mvBlueFOX-MLC)
Generated by Doxygen
2.4 Device Configuration 91
If you set "LUTImplementation" to "Hardware" in "Setting -> ImageProcessing -> LUTOperations", the hardware
Look-Up-Table (LUT) will work with 10 bit data inside the camera and converts the data to 8 bit for output ("←-
LUTMappingHardware = 10To8"). Now, there will be no gaps in the histogram:
Generated by Doxygen
92
2.4.3.1 Working With Camera Descriptions Certain capture device (e.g. frame grabber) can process data from
a wide range of imaging devices (e.g. cameras). However, in order to interpret the incoming data from an imaging
device correctly, the capture device needs to be given a certain amount of information about the structure of the
video signal.
The "mvIMPACT Acquire" interface addresses this necessity by the introduction of so called "camera descrip-
tions". A "camera description" is a certain set of parameters that should enable the capture device to cope with
the incoming image data to reconstruct a correct image from the imaging device in the memory of the host system.
For instance, this information may contain information whether the image is transmitted as a whole or if it's transmit-
ted as individual blocks (e.g. when dealing with interlaced cameras) that need to be reconstructed in a certain way
to form the complete image.
Each capture device will support different sets of parameters. For example some capture devices will only be able to
capture image data from standard video source such as a PAL or NTSC compliant camera, while others might only
be capable to acquire data from digital image source such as CameraLink® compliant cameras. To reflect these
device specific capabilities "camera descriptions" have been grouped into different base classes. See e.g. mv←-
IMPACT::acquire::CameraDescriptionStandard to find out how the basic structure of these objects look. Which
basic "camera description" classes are supported by an individual device can be seen directly after the device
has been initialised by looking in the "camera description" list. By default this list will contain one description for
each supported basic family:
To select a certain camera description to be used to prepare the capture device for the expected data the property
"Type" under "Image Settings -> Camera" can be modified. Here every available set of camera parameters will
be listed:
Generated by Doxygen
2.4 Device Configuration 93
Now, when a camera is connected, that differs in one or more parameters from the default offered by one of the
available base classes and no special description for the imaging device in question is available a new matching
description must be generated.
Note
It's also possible to modify one of the standard descriptions to adapt the parameter set to the used
imaging device, but this method is not recommend as this would define something to be "standard",
which in fact is not. Therefore it is not possible to store the standard descriptions permanently. It is,
however, possible to modify and work with the changed parameters, but these changes will be lost once
the device is closed.
The recommended way of adapting an imaging source to a capture device is to create a new description for a imag-
ing device that does not completely fall into one of the offered standard descriptions. The first thing to decide when
creating a new camera description is to which existing description offers the closest match for the new description.
Once this has been decided a copy of this description can be created with an arbitrary name (that must be unique
within the family the description is created from). Under wxPropView this can be achieved by
• typing the new name in the parameter edit control right of the "Copy" method of the camera description to
create the copy from.
• Afterwards, press ENTER to commit the new name and then the "Copy" method can be invoked
Generated by Doxygen
94
Afterwards, the newly created camera description will be added to the list of existing ones. Its parameters at this
point will match the parent description (the one the "Copy" method was executed from) completely.
Generated by Doxygen
2.4 Device Configuration 95
Now, the reason for creating a new camera description was that the parameters in the existing description didn't
exactly match the connected imaging device. Therefore, the next step would probably be to modify some of the
parameters. Once this has been done (or before) the newly created description can be selected via the property
"Type" under "Image Settings -> Camera":
Note
A new camera description will NOT be stored permanently by default. In order to make this description
available the next time the capture device is initialised, the newly created description must be exported
via a function call.
To store a camera description permanently the "Export" method of the new camera description must be invoked.
The method does not require any parameters so it can be executed directly by right-clicking on the name of the
function and selecting "Execute" from the popup menu:
Generated by Doxygen
96
As a direct result the modified settings will become the new default values of this particular camera description.
wxPropView indicates this by displaying all values belonging to the description in green now:
Generated by Doxygen
2.4 Device Configuration 97
Note
Again please note, that this will NOT work for one of the standard camera descriptions. Whenever the
user tries to export one of these, the error DMR_EXECUTION_PROHIBITED will be returned.
When exporting a camera description a file in XML format will be written to disc. On Windows® camera descriptions
will be stored under "%ALLUSERS%\Documents\MATRIX VISION\mvIMPACT acquire\Camera←-
Files" or "%MVIMPACT_ACQUIRE_DATA_DIR%\hfill \breakCameraFiles" which will point to the
same folder. On Linux® this directory will be "/etc/matrix-vision/mvimpact-acquire/camerafiles"
while under other platforms these files will end up in the current working directory.
Now, when closing and re-opening a device only the default camera descriptions an the one selected before settings
have been saved will appear in the list of camera descriptions. This is to save memory. However, all detected camera
descriptions will be available via the property "Type" under "Image Settings -> Camera":
Generated by Doxygen
98
Once a description is selected, that hasn't been in the list of camera descriptions before, it will be created and thus
will become available for modifications again:
Generated by Doxygen
2.4 Device Configuration 99
Again: For a different camera a new description should be generated, to operate complex cameras in different
modes, a either a new description can be generated or an existing one can be modified.
After a camera has been modified the "Import" method can be used to fall back to the values stored in the camera
description file:
Generated by Doxygen
100
Generated by Doxygen
2.4 Device Configuration 101
2.4.3.1.1 Configuring An Unknown CameraLink Or SDI Camera If you need a camera description of an un-
known CameraLink or SDI camera, wxPropView supports you with three properties, which can be found in "Info
-> Camera":
• DataCycleCounterLine0
• DataCycleCounterLine1
• LineCounter
Generated by Doxygen
102
For area scan cameras, you will need all three properties.
Generated by Doxygen
2.4 Device Configuration 103
You can take the information in "Info -> Camera" to enter the values in "Camera Descriptions". (The figures 37
and 38 are showing CameraLink examples with default values in "Camera Descriptions". The values from "Info ->
Camera" are not entered yet.)
Note
To get the current values of the properties mentioned above you have to "Acquire" a "SingleFrame" first!
Generated by Doxygen
104
Camera is triggered
Generated by Doxygen
2.4 Device Configuration 105
Generated by Doxygen
106
2.4.3.3.2 Mode 1 In this mode, there is no change in the "Digital I/O" interface necessary.
1. In "Image Setting -> Camera -> TriggerControls -> Frame Start" set "TriggerMode" to "On".
3. Choose the "TriggerActivation" according to the application (e.g. "FallingEdge", "RisingEdge", etc.).
In order to that the camera will send an image stream continuously and the next image after a trigger event will be
acquired.
2.4.3.3.3 Mode 2 In this mode, there is no setup in "TriggerControls" necessary ("TriggerMode" = "Off").
2. Now, set the wanted mode of the used CameraLink signal (normally "DigitalOutputs -> CC1"), which is used
for triggering "TriggerSource" input (normally "Trigger-In"):
(a) "SinglePulse": On the basis of "PulseStartConfiguration" a signal is created and given to the camera for
triggering. Delay time and pulse width can be defined.
(b) "PassThrough": The signal of the chosen input will be negated in timing and pulse width or not passed
to the camera.
Now, after a external trigger signal on the trigger input of the frame grabber, a trigger signal is generated on the
CameraLink connection ("CC1") and passed to the camera. In order to that, the camera acquires an image and
sends it to the frame grabber. You do not need a trigger on the frame grabber for the image acquisition given that
the frame grabber waits for the next image.
2.4.3.3.5 Mode 1 In this mode, there is no setup in "TriggerControls" necessary ("TriggerMode" = "Off").
1. In "Digital I/O" set the mode to "SinglePulse" of the used CameraLink signal (normally "DigitalOutputs ->
CC1"), which is used for triggering and
2. In "PulseStartConfiguration"
Generated by Doxygen
2.4 Device Configuration 107
1. Now, set the wanted mode of the used CameraLink signal (normally "DigitalOutputs -> CC1"), which is
used for triggering "TriggerSource" input (normally "Trigger-In"):
(a) "SinglePulse": On the basis of "PulseStartConfiguration" a signal is created and given to the camera for
triggering. Delay time and pulse width can be defined.
(b) "PassThrough": The signal of the chosen input will be negated in timing and pulse width or not passed
to the camera. Please choose "Sync-In" as input. No further settings are necessary.
Now, after a external trigger signal on the sync input of the frame grabber, a trigger signal is generated on the
CameraLink connection ("CC1") and passed to the camera. In order to that, the camera acquires an image and
sends it to the frame grabber. It is possible to trigger the image acquisition of the frame grabber externally. For this,
please do following:
1. In "Image Settings -> Camera -> TriggerControls -> Frame Start" set "TriggerMode" to "On".
3. Choose the "TriggerActivation" according to the application (e.g. "FallingEdge", "RisingEdge", etc.).
Per image and frame trigger, the number of lines will be acquired, which were defined in the camera description and
the AOI setting before.
2.4.3.4 Camera Acquisition Techniques There are different camera acquisition techniques. How you can set
them with wxPropView, which will be shown in the following section.
2.4.3.4.1 StartTrigger Directly after the trigger signal the acquisition starts. If you have, for example, a line scan
camera and want to acquire 1000 lines, 1000 lines will be acquired. During this time, further trigger signals are
ignored.
StartTrigger
Generated by Doxygen
108
• set "Image Settings -> Camera -> TriggerControls -> FrameStart" to "On",
• set "Image Settings -> Camera -> TriggerControls -> FrameStop" to "Off".
2.4.3.4.2 TriggerStartStop In TriggerStartStop there are two trigger sources, one to start the acquisition and
the second trigger event to stop it. Between start and stop, there is at least one line pause. The image height is
affected by the stop event.
Generated by Doxygen
2.4 Device Configuration 109
TriggerStartStop
• set "Image Settings -> Camera -> TriggerControls -> FrameStart" to "On",
• set "Image Settings -> Camera -> TriggerControls -> FrameStop" to "On" and
Generated by Doxygen
110
2.4.3.4.3 TriggerStartStop - Restart With "TriggerStartStop - Restart" the first trigger starts the acquisition
and following trigger signal stops the previous acquisition and starts the next one.
TriggerStartStop - Restart
• set the same parameters in "Image Settings -> Camera -> TriggerControls -> FrameStart" and "Image
Settings -> Camera -> TriggerControls -> FrameStop".
Generated by Doxygen
2.4 Device Configuration 111
Note
2. trigger period < frame period -> image height reduced (line synchronous; next request starts
immediately without loss of lines)
2.4.3.4.4 TriggerDelay With TriggerDelay it is possible to specify a delay after the trigger start event.
Trigger Delay
Using line scan cameras, the "Y" position specifies the trigger acquisition delay in lines.
Generated by Doxygen
112
2.4.3.5.2 Mode 1 In this mode, there is no change in the "Digital I/O" interface necessary.
1. In "Camera -> TriggerMode" choose the "TriggerMode" (see also: CameraSettingsFrameGrabber and
TriggerControl).
3. Choose the "TriggerActivation" according to the application (e.g. "FallingEdge", "RisingEdge", etc.).
In order to that the camera will send an image stream continuously and the next image after a trigger event on input
Trigger-In will be snapped.
Generated by Doxygen
2.4 Device Configuration 113
1. In "Digital I/O -> DigitalOutputs" (see also: IOSubSystemFrameGrabber) set "ControlMode" of the used
CameraLink signal (normally "DigitalOutputs -> CC1") to "SinglePulse".
2. Now, set
Now, after a external trigger signal on the trigger input "Trigger-In" of the frame grabber, a trigger signal is generated
on the CameraLink connection ("CC1") and passed to the camera. In order to that, the camera snaps an image and
sends it to the frame grabber. You do not need a trigger on the frame grabber for the image acquisition given that
the frame grabber waits for the next image.
In order to that the frame grabber will create a continuous signal with the defined period and it will be sent to the
camera via CameraLink. With this signal, the camera acquires lines and sends them to the frame grabber. Per
image, the number of lines will be acquired, which were defined in the camera description and the AOI setting
before.
Generated by Doxygen
114
(a) Choose a "PassThrough" mode to pass through the external trigger signal on "Sync-In" in frequency
and pulse width.
(b) Choose CameraLink output (normally "CC1").
Now, after a external trigger signal on the sync input of the frame grabber, a trigger signal is generated on the
CameraLink connection ("CC1") and passed to the camera. In order to that, the camera acquires an image and
sends it to the frame grabber. It is possible to trigger the image acquisition of the frame grabber externally. For this,
please do following:
1. In "Image Settings -> Camera -> TriggerControls -> Frame Start" set "TriggerMode" to "On".
Per image and frame trigger, the number of lines will be acquired, which were defined in the camera description and
the AOI setting before.
2.5 Wizards
Wizards in wxPropView are meant to provide a convenient way to make use of certain sets of features that would
otherwise need cumbersome setting up via The Property Grid.
Generated by Doxygen
2.5 Wizards 115
• By pressing the Wizard button on the left toolbar of the application. This button will be enabled whenever
a property is selected in The Property Grid for which a wizard exists and when all other features needed by
this wizard are supported by the device/driver combination as well. So e.g. when selecting any LUT feature
in The Property Grid the Wizard button should become available. So pressing it afterwards would open the
LUT Control Wizard.
• By right-clicking on a feature and selecting "Open Wizard" from the context menu
• By selecting it from the Wizards menu. Here all wizards available by the open device currently selected will
be enabled. Disabled menu entries are either not available for this device or the device needs to be opened
first.
The AOI wizard allows the set up all sorts of AOIs in a fairly easy way. Supported AOIs can either be configured as
described within the image analysis chapter (Analysis AOIs) or by using the controls offed by the dialog. To select
a certain AOI when starting the wizard first the device will be configured to full AOI mode again. Pressing "Ok" will
then close the dialog and will apply all AOI settings to the device, pressing "Cancel" will revert all changes made
with this dialog.
Generated by Doxygen
116
The color correction wizard is mainly meant to allow the usage of the sensor specific color correction matrix (CCM)
which is a standard feature for every MATRIX VISION GenICam device and adjust the color correction to the used
output display thus the monitor which might use a certain color space. Both CCMs (camera and monitor) can then
be combined with a third one that will add/remove saturation from the resulting image. When satisfying settings
have been found some devices will allow to write these settings back into the device. If that is possible then all
the needed calculation will be done in the device itself thus resulting in satisfying images that do not cause any
additional CPU load on the host system.
Note
If the calculation cannot be done by the device then enabling this feature will result in additional CPU
load on the host system!
Both the file up- and download wizard provide an easy way to exchange files with a device. If supported by the
device this can be used e.g. to download a flat field correction image or an application specific file (e.g. calibration
data) that then later is used by another application. These wizards wrap the GenICam File Access Control features.
See also
Generated by Doxygen
2.5 Wizards 117
Note
This wizard addresses MATRIX VISION specific features only thus will only be available for certain Gen←-
ICam compliant MATRIX VISION devices! Whether or not a device supports all the features required by
this wizard determines if it will be available or not. Please refer to the product manual of your device.
If supported a use-case describing electrical characteristics as well as various other information that is
needed to work with this wizard can be found there.
If the feature is available it allows to control a motorized lens connected to the MATRIX VISION device. Things like
focus or zoom might be configurable then depending on the used lens.
See also
The LUT wizard addresses the GenICam LUT Control feature category and aims to provide an easy way to set up
LUTs on a device. A detailed description of the GenICam related features used by the wizard can either be found in
Generated by Doxygen
118
the product specific manual, the mvIMPACT Acquire API documentation or the GenICam SFNC (Standard Features
Naming Convention).
When this wizard is started the first time for a given device it will download all LUTs from the device into the host
systems RAM. Depending on the speed the device is capable of delivering the requested data this might take some
time. During the download or later when uploading a LUT back into the device a progress dialog will inform about
the estimated time remaining. Afterwards the following dialog will be displayed:
Depending on the feature set supported by the device certain features might be disabled or simply will not be
displayed at all. In the upper left corner the LUT to configure can be selected, on the left hand side various controls
will allow to modify the currently selected LUT and the upper right buttons can be used to up- and download the
LUTs to/from the device. With the Import and Export buttons it is possible to exchange LUT data with the hard disk
in CSV-format.
For example if a device supports several LUTs (e.g. one for every color channel) then to copy one LUT into another
press the Copy button:
Generated by Doxygen
2.5 Wizards 119
It is also possible to manually enter each LUT entry by selecting the Numerical tab on the wizard, but this can
take quite some time. It would probably be easier to use Excel or something similar and then export the data in
CSV-format and import it back into the wizard again.
All modifications done to LUTs happen in the host systems cache. To make them effective they must be sent back
to the device. This can be done using the Synchronize dialog:
See also
Generated by Doxygen
120
This wizard will allow to set up a device for transferring multiple AOIs from one larger image combined into a single,
then smaller frame.
Since
Note
This wizard addresses MATRIX VISION specific features only thus will only be available for certain Gen←-
ICam compliant MATRIX VISION devices! Whether or not a device supports all the features required by
this wizard determines if it will be available or not. Whether or not a device supports the "mvMulti←-
AreaMode" and other features required is described in the corresponding product manual.
If the currently selected device supports all the required features, the wizard can be selected from the "Wizards"
menu or by selecting a feature required by the wizard within the The Property Grid and then pressing the Wizard
button in the left toolbar or as described in the very beginning of the Wizards chapter:
Once started the wizard will display one page for each AOI currently configured:
Generated by Doxygen
2.5 Wizards 121
Either the controls on each page can be used to modify each AOI or the green AOIs can be configure like the
Analysis AOIs used for the image analysis plots
The live image in the background shows the created AOIs in green and all the AOIs that must be transmitted as well
in red. The red AOIs are needed as a result of how the sensors implement this feature. More information about this
can be found in the product manual. The resulting image however always contains ALL areas in either red or green
boxes. All the other areas will not be read out of the sensor thus can result in a dramatical reduction in both used
bandwidth and sensor read-out time.
See also
Since
This wizard can be used to configure the Multi-Core Acquisition Optimizer feature of mvIMPACT Acquire.
Note
This feature is currently implemented for the mvBlueCOUGAR-X, mvBlueCOUGAR-XD and mvBlue←-
COUGAR-XT devices! To find out more about the underlying technology and required firmware versions
please refer to the corresponding chapters in the product manuals describing the network setup and
optimization.
This feature will allow to precisely select one or multiple physical CPU cores that shall be used to process the image
data coming from the device. This can be extremely helpful when facing one of the following scenarios:
• The CPU core used for receiving the network data shall be used exclusively for this task and all the application
related additional work like image processing shall be done using the remaining cores only
• Multiple cameras shall be used and each camera shall have its own dedicated CPU core for exclusive usage.
This can be used to avoid situations where the system assigns the work of multiple streams to the same CPU
core leading to data loss due to core overload
Generated by Doxygen
122
• A single core in the host system is not powerful enough to process the incoming network stream resulting
in data loss. Then this wizard as well as the mvIMPACT Acquire API can be used to distribute the load to
several cores
• The application itself performs a lot or parallel processing thus uses each CPU core in the system. The
one that must do the image data processing therefore gets more work in total thus degrading overall system
performance
Note
The Multi-Core Acquisition Optimizer feature uses the RSS (Receive Side Scaling) feature of modern
network cards in combination with a special implementation in the GigE Vision™ filter driver AND the
device firmware. In order to use it the camera must support certain features only available in mvBlue←-
COUGAR-X, mvBlueCOUGAR-XD and mvBlueCOUGAR-XT devices and an RSS capable network card
that is configured accordingly is required. More details can be found in the product manual.
• "Base Core": This is a read-only feature! It reflects the RSS base processor number as configured by the
user (if supported by the NIC driver) or as selected by the NIC driver (if either NOT selected by the user OR
if manual selection is not supported by the NIC driver). CPU cores smaller than this value cannot be used for
processing network data from devices connected to this NIC. More details about RSS and this parameter in
particular can be found in various places on the Internet.
Generated by Doxygen
2.5 Wizards 123
• "First Core Index": This parameter allows the selection of the first CPU core that shall be used for processing
network data from this device relative to the "Base Core". E.g. if the base core has been set to 3 then setting
the first core index to 2 will result in CPU core 5 (3 + 2) being the first core to use for data processing.
• "Core Count": This parameter defines how many CPU cores starting at "First Core Index" shall be used for
processing image network data coming from this specific device. Using more cores reduces the overall load
for each individual core but also results in a slight overhead caused by core switches that must be handled by
the system
• "Core Switch Interval": This parameter defines after how many network packets another CPU core shall be
used. This value is only important when using more than 1 CPU core for processing network data! Selecting
a value that is too high can result in data loss as an individual core might not be able to get rid of its received
data in time and selecting a value too low introduces too much overhead for core switches.
For the full set of details please refer to the product manual mentioned above! As a general rule of thumb the
following guidelines can be used:
• If a single CPU core can cope with all the data the best performance can be achieved by using a dedicated
CPU core for processing the network data and by removing all other application specific CPU load from this
core. So explicit selection of 1 core is done using the Multi-Core Acquisition Optimizer feature (without it the
CPU core used by the system will be different for each session) and the application itself uses appropriate
mechanisms to move the remaining load to the other cores (e.g. by setting the process affinity mask)
• If the application cannot explicitly move its work to certain cores or when a single core is not powerful enough
use 2-8 cores in parallel for network data processing and select a higher "Core Switch Interval" when using
less CPU cores
When the wizard is configured its effect can e.g. be observed using the Windows task manager:
Generated by Doxygen
124
Since
The Quick Setup Wizard is a tiny and powerful single window configuration tool to optimize the image quality
automatically and to set the most important parameters which affect the image quality, in an easy way and to
get an immediate preview of these changes. If the wizard does not start automatically anymore because during a
previous session this option has been enabled the wizard needs to be started manually:
Generated by Doxygen
2.5 Wizards 125
Settings will be accepted by clicking "Ok", otherwise the changes are discarded and the previous ones will be
restored when leaving the dialog.
Depending on the sensor (gray-scale or color/Bayer), the wizard will automatically pre-select settings resulting in an
optimal image quality.
• "Exposure" to Auto,
• "Gain" to Auto,
• a sensor specific "Color Correction Matrix" and the respective "sRGB display matrix" will be applied (if possible
this will be done in the device to reduce the CPU load on the host.
These settings will also be applied whenever the "Color Preset" button is pressed. Assuming that for a color camera
image this results in the best human visual feedback.
Generated by Doxygen
126
• Gray
• Color (Host) will perform most of the expensive optimizations by utilizing the host systems CPU
• Color (Camera) will perform most of the expensive optimizations by utilizing the device, might not always be
available depending on the device's capabilities
• Factory
"Factory" can be used as a fall back to quickly skip or remove all presets and load the factory default settings.
• the sliders
Toggling the "Gamma" button loads or unloads a host based 10-bit Gamma correction with a moderate value of 1.8
into the signal processing path. Switch "Gamma" to make a gray-scale image appear natural for the human eye.
Toggling "Color+" button switches on/off both CCM and sRGB display matrix. This optimizes a color sensor's
response for the human eye and goes in conjunction with a display color response. Because sRGB displays are
mostly used and this is the default color space in Windows OS, these are preselected. If another display matrix
(e.g. Adobe or WideGamut) is required this can be selected by changing the ColorTwistOutputCorrection property
in The Property Grid accordingly. To locate the feature the Find A Feature option could be used.
2.5.8.2.1 Setting The Black Level The black level can be used if dark portions in the image are required to
appear even darker or brighter.
Note
The slider combines analog and digital settings in a way that once the analog value range is fully use the
digital range will be used addition. Analog is preferred whenever possible!
2.5.8.2.2 Setting The Gain Allows to set the gain value manually.
Note
The slider combines analog and digital settings in a way that once the analog value range is fully use the
digital range will be used addition. Analog is preferred whenever possible!
2.5.8.2.3 Setting The Saturation Can be used to increase/decrease the color saturation to make the image
appear more/less colorful. It does not change uncolored parts in the image nor changes the color tone or hue.
Generated by Doxygen
2.5 Wizards 127
Use the "Wizards" menu and select "Quick Setup" to open the Quick Setup Wizard again.
Use "Cancel" to discard the Quick Setup Wizard values and settings and go back to wxPropView and use the
former (or default) settings.
See also
• Display Possibilities
• Example:
– Europe: 50 Hz; Set frame rate to 100, 50, 25 12.5 fps or appropriate.
– In countries with 60 Hz use 120, 60, 30 or 15 accordingly.
Generated by Doxygen
128
The sequencer wizard addresses the GenICam Sequencer Control feature category and aims to provide an easy
way to set up a sequencer on a device. A detailed description of the GenICam related features used by the wizard
can either be found in the product specific manual which provides a use-case explaining the general concept of
the sequencer as well as various background information needed in order to make good use of this feature and the
wizard, the mvIMPACT Acquire API documentation or the GenICam SFNC (Standard Features Naming Convention).
Having a good basic understanding about the GenICam SFNC Sequencer Control concepts is required to efficiently
work with a sequencer on a device as it on of the most complex features offered by a device.
In the upper left region of the dialog the features to be used by the sequencer can be configured. Only the once
required should be enabled here in order to reduce complexity to a minimum. Switching off all features not needed
migth also result in faster switching time on the device when jumping from one set to another at runtime!
The wizard allows to add/remove sequencer sets and also to define a starting set for the sequencer operation
by some buttons. The right side of the dialog can be used to configure each set individually as required. In the
lower right section each set can - depending on certain conditions - be connected with another set. When loops or
open ends are detected warnings will be displayed automatically in this area and also the sets might get a different
background color then.
Note
Only GenICam devices supporting the Sequencer Control category will support this wizard.
See also
wxPropView supports various command-line parameters allowing to control the start-up behavior and the appear-
ance of the application.
Generated by Doxygen
2.6 Command-line Interface 129
Parameter Description
width or w Defines the startup width of wxPropView. Example: width=640
height or h Defines the startup height of wxPropView. Example: height=460
xpos or x Defines the startup x position of wxPropView.
ypos or y Defines the startup x position of wxPropView.
propgridwidth or pgw Defines the startup width of the property grid.
debuginfo or di Will display debug information in the property grid.
dic Will display invisible (currently shadowed) components in the property
grid.
displayCountX or dcx Defines the number of images displayed in horizontal direction.
displayCountY or dcy Defines the number of images displayed in vertical direction.
fulltree or ft Will display the complete property tree (including the data not meant to
be accessed by the user) in the property grid. Example (Tree will be
shown): fulltree=1
fullscreen or fs Will directly switch to full-screen mode. Make sure to select a device
as well and configure it for live acquisition. Example: wxPropView
device=VD000001 live=1 fullscreen=1
device or d Will directly open a device with a particular serial number. '∗' can
be used as a wildcard, just ∗ will take the first device. Example←-
: d=GX000735
qsw Will forcefully hide or show the Quick Setup Wizard, regardless of the
default settings. Example (Quick Setup Wizard will be shown): qsw=1
interfaceConfiguration Will directly launch the interface configuration and driver information
dialog. Example: interfaceConfiguration=1
live Will directly start live acquisition from the device opened via device
or d directly. Example (will start the live acquisition): live=1
allowFullDeviceFileAccess Grants full access to files which are hidden by default (such as the de-
vice firmware) through the file up- and download wizard. Be sure you
know what you are doing when using this parameter. You might dam-
age your device! Example: allowFullDeviceFileAccess=1
To open an image file from hard disk just pass the full path to the image as a command-line parameter.
2.6.1 Examples
This will start the first available device, will hide the Quick Setup Wizard and will display the complete property tree.
Note
Pressing F1 after the application is running will also display a detailed list of available command line
options as well as keyboard shortcuts and some other helping text!
Generated by Doxygen
130
3 mvDeviceConfigure
mvDeviceConfigure is mainly meant to update the firmware of MATRIX VISION devices and to configure the log-
output of the mvIMPACT Acquire driver stack. Apart from that this tool can
• display a list of all devices connected to the system that have a matching mvIMPACT Acquire driver installed
• register/unregister devices for the usage with DirectShow™ applications (Windows only)
• reserve system wide DMA memory for mvHYPERION frame grabber devices
Note
Various things can also be done without user interaction (e.g. updating the firmware of a device). To find out how to
do this please refer to the Command-line Interface section
Generated by Doxygen
3.1 Updating The Firmware Of A MATRIX VISION Device 131
• Log-Output Configuration
• DirectShow™
• mvBlueFOX-1xx/mvBlueFOX-2xx
• mvHYPERION
• Command-line Interface
With the mvDeviceConfigure tool it is possible to update the firmware. In the device list new firmware versions, if
available and detected, will be marked in blue.
Note
Since version 2.29.1 for GenICam compliant devices firmware updates will not be installed by the mv←-
IMPACT Acquire driver installation package any more. Firmware archives can be downloaded from the
MATRIX VISION website instead. The latest firmware (and previous versions) can always be found
in the download area of the corresponding product. Downloaded archives should be copied into the
$(MVIMPACT_ACQUIRE_DIR)/Firmware/<product name> folder as then mvDeviceConfigure will au-
tomatically check if your devices run with the latest firmware or not. Newer versions of mvDevice←-
Configure and wxPropView will also check the MATRIX VISION website and can automatically download
new firmware versions!
To update the firmware on a MATRIX VISION device, the following steps are necessary:
Note
The firmware update is only necessary in some special cases (e.g. to benefit from a new functionality
added to the firmware, to fix a firmware related bug or to update the kernel driver). Before updating
the firmware be sure what you are doing and have a look into the change log (versionInfo.txt and/or the
manual to see if the update will fix your problem). If you have no problem at all it sometimes is better to
leave the system untouched!
The firmware update takes several minutes and during this time the application will not respond!
• Select "Action -> Update Firmware" from the menu or right-click on the device to get the same option
(mvBlueNAOS: "Update Firmware -> From Local Firmware Package").
Generated by Doxygen
132
Note
It is also possible to select the action with a right click on the device.
Note
You will need administrator rights for updating the firmware. A dialog will appear.
• You have to close applications using the device and click Ok.
Generated by Doxygen
3.1 Updating The Firmware Of A MATRIX VISION Device 133
– mvBlueFOX3: mvBlueFOX3_Update.mvu
– mvBlueCOUGAR-X / -XD: mvBlueCOUGAR-X_Update.mvu
– mvBlueCOUGAR--XT: mvBlueCOUGAR-XT_Update.mvu
– mvBlueCOUGAR-S: mvBlueCOUGAR-S[MODELNAME]_Update.fpg
* Afterwards, you have to select the GenICam file that came with the firmware e.g. MATRIXVISION←-
_mvBlueCOUGAR-[MODELNAME]_GigE_[VERSIONNUMBER].zip .
Note
All current camera settings will be lost when updating the firmware. Network configuration settings (such
as static IP settings etc.) on the other hand will not be affected. UserSet settings may or may not be lost,
depending on whether the "Persistent UserSet Settings" parameter is set (this issue will be covered later
in this chapter).
Generated by Doxygen
134
Note
Depending on the system, a restart might be necessary. A dialog will notify this.
For devices that are capable of storing UserSet settings on the device itself these settings will by default be pre-
served during firmware updates since mvIMPACT Acquire 2.9.1. This may lead to slightly longer firmware update
times. If UserSets are not used, and their persistence during firmware-updates is not desired, the "Persistent
UserSet Settings" in the Settings Submenu can be unchecked:
Generated by Doxygen
3.1 Updating The Firmware Of A MATRIX VISION Device 135
Some firmware archives may contain multiple suitable firmware files for a single device. E.g. each firmware file might
support a different feature set or different versions of the same firmware might reside in the same archive. When
more than one equally good match for a firmware is detected in an archive the user will always have to manually
select the version that shall be uploaded to the device, but when several matches have been found that are not
equally good, the state of the "Always Select Best Matching Firmware For Device" option decides whether the
best match is used automatically (when switched ON(default)) or the user is presented with a list where the firmware
to upload can be selected manually (when switched OFF). Best match or match in general can be a bit tricky
to understand but in the end boils down to how good the product itself and the string describing for which products
a certain firmware file inside the archive is suitable do overlap. If there is just one firmware file available within the
selected firmware archive this option won't have an effect.
Since
2.46.0
3.1.5.1 mvBlueCOUGAR-XT
3.1.5.1.1 Rescue Mode The mvBlueCOUGAR-XT features a so called "RescueMode". The rescue mode will
make it possible to reinstall a firmware if an error occurred during a firmware update (e.g. power failure, etc.).
• registers like "Setting -> Base -> Camera -> GenICam -> AcquisitionControl" or "Setting -> Base ->
Camera -> GenICam -> ImageFormatControl" usually located in The Property Grid which are needed for
streaming images, are not available and
Generated by Doxygen
136
• the register "Setting -> Base -> Camera -> GenICam -> DeviceControl -> mvDeviceOperationMode"
contains the value "Rescue".
In "RescueMode", the device is running with a reduced feature set that only allows installing a working, full featured
firmware again, but does not allow acquiring images.
1. A firmware update fails e.g. because of a power failure during the update process. In this scenario the device
will always start in "RescueMode" then until another successful firmware update has been applied. In this
case
• The register "Setting -> Base -> Camera -> GenICam -> DeviceControl -> mvDeviceOperation←-
Mode" contains the value "Rescue".
• The register "Setting -> Base -> Camera -> GenICam -> DeviceControl -> mvDeviceRescue←-
ModeReason" has the value "FirmwareUpdateFailed".
2. An unexpected failure did trigger the software watchdog running on the device. In this case an applica-
tion/user can simply call DeviceReset and the device will try to reboot with the regular firmware image. If
that fails the device again will start in "RescueMode" and a regular firmware update must be performed. In
this case
• The register "Setting -> Base -> Camera -> GenICam -> DeviceControl -> mvDeviceOperation←-
Mode" contains the value "Rescue".
• The register "Setting -> Base -> Camera -> GenICam -> DeviceControl -> mvDeviceRescue←-
ModeReason" has the value "OtherError".
3.1.5.2 mvBlueCOUGAR-X
3.1.5.2.1 Fallback Firmware / Boot Section Mode The mvBlueCOUGAR-X features a backup firmware, located
on the device in the so called "BootSection". This alternate and rudimentary firmware is supposed to start if any-
thing broke the main firmware (e.g. in case of a power failure during a regular firmware update). The sole purpose
of this fallback firmware is to allow another firmware like in Updating The Firmware Of A MATRIX VISION Device in
order to get access to the full feature set of the device again.
• the register "Setting -> Base -> Camera -> GenICam -> DeviceControl -> mvDeviceFirmwareSource"
contains the value "BootSection".
3.1.5.3 mvBlueFOX3
Generated by Doxygen
3.2 Verifying The Firmware Of A MATRIX VISION Device 137
3.1.5.3.1 Fallback Firmware / Bootprogrammer Mode The mvBlueFOX3 features a small backup firmware,
called "Bootprogrammer Mode". The device will start using this firmware, if something broke the main firmware
(e.g. in case of a power failure during a regular firmware update). This firmware will not allow to acquire images
and is only meant to allow to reinstall a working, full featured firmware again.
• the register "Device -> FirmwareVersion" contains a firmware version starting with '0'.
Note
Since version 2.29.1 for GenICam compliant devices firmware updates will not be installed by the mv←-
IMPACT Acquire driver installation package any more. Firmware archives can be downloaded from the
MATRIX VISION website instead. The latest firmware (and previous versions) can always be found
in the download area of the corresponding product. Downloaded archives should be copied into the
$(MVIMPACT_ACQUIRE_DIR)/Firmware/<product name> folder as then mvDeviceConfigure will au-
tomatically check if your devices run with the latest firmware or not. Newer versions of mvDevice←-
Configure and wxPropView will also check the MATRIX VISION website and can automatically download
new firmware versions!
To verify the firmware on a MATRIX VISION device, the following steps are necessary:
Note
The firmware verification is only necessary in rare cases in order to detect a damaged firmware running
on a device or to exclude that a damaged firmware image on the device is responsible for any sort of
unexpected behaviour.
The firmware verification takes about a minute and during this time the application will not respond!
Generated by Doxygen
138
• Select "Action -> Verify Firmware" from the menu or right-click on the device to get the same option.
Note
It is also possible to select the action with a right click on the device.
Afterwards you will be informed about what is about to happen if you continue the verification process:
Generated by Doxygen
3.2 Verifying The Firmware Of A MATRIX VISION Device 139
Next an appropriate firmware archive must be selected for the verification process. This obviously must be the
archive containing the firmware image that is currently running on the device:
Once a firmware archive has been selected the internal verification process will start. This might take up to one
minute most likely about 30 seconds and during this time the application will not react and no progress information
will be displayed. Simply be patient!
Once the verification process has completed the result will be displayed. This is either a success message like it
can be seen below...
Generated by Doxygen
140
... or a message box containing more information about what the result was. Usually this failure message either
explains that the firmware version running on the device is different from the version used for the validation process
in which case an incorrect archive has been selected for the verification or the result is an actual mismatch in both
hashes even though the firmware versions are the same. In this case it is extremely likely that the firmware image
running on the device has actually been damaged. Another firmware update should be applied then and afterwards
this verification process should be repeated. If the problem persists please get in touch with the MATRIX VISION
GmbH support!
Generated by Doxygen
3.3 Log-Output Configuration 141
The mvIMPACT Acquire driver stack provides a user configurable logging framework. This can either be edited
using any text editor which is the recommended way for advanced user only or by using mvDeviceConfiugre. All
configuration data defining what is logged and where the log-messages end up is defined by a file called mv←-
DebugFlags.mvd.
Note
To use mvDeviceConfigure for the configuration of the log-output "Configure Log Output" must be selected from
the "Action" menu:
Generated by Doxygen
142
This will result in the "Log Output Configuration" dialog being opened. Initially this dialog will not contain any
data. Now either an existing log-configuration can be imported by pressing the
"Load..." button or a completely new set of logger information can be created (usually not recommended). Assuming
an existing file shall be opened, this now needs to be located on the hard disk:
Afterwards the interpreted content of the file will be displayed in the list control in the upper part of the screen:
Generated by Doxygen
3.3 Log-Output Configuration 143
This is the name of the logger as later used by the driver. These is either a library name, a device family name
or a device family name directly followed by a device ID. The mvIMPACT Acquire interface consists more or less
of 2 device independent libraries (mvPropHandling and mvDeviceManager) and a device specific library for each
device family (e.g. mvBlueFOX). A mvBlueFOX with a device ID 0 therefore would be configured by a section called
mvBlueFOX0.
This column contains information about the devices that will later write log messages based on this section and the
devices currently detected in the system. The general device family specific section e.g. will be used by any device
belonging to that family whenever general information needs to be written, that does not use the device specific
section.
3.3.3 Flags, Output Destinations, Output File Name, "Always Clear File" and "Stylesheet"
These sections contain information for the driver how, to which location and which information needs to be sent to
the log output. They are described in detail the API manual in the "Logging" section explaining the XML file format
for the ∗.mvd file.
See also
Now e.g. to setup log output for an mvBlueFOX device with a device ID "0" right click on the corresponding list
entry an select "Configure Item" from the popup menu:
Generated by Doxygen
144
Here the user can configure the way the log output shall be generated. When this dialog is ended by pressing the
OK button the changes will be applied to the list of configurations.
When a new configuration shall be generated for one or more devices this can be done by right-clicking anywhere
in the list control and then select "Add Item" from the popup menu:
The application then will display a list of log configurations that haven't yet been configured based on the devices
detected in the system. If the device so far is not present in the system or the configuration shall be created for
another system select "User defined". Please don't forget to name the section correctly as described in the sub
section 'section name'.
Generated by Doxygen
3.4 DirectShow™ 145
3.4 DirectShow™
Note
This feature will only be available when mvDeviceConfigure is started elevated user privileges.
Since registering, removing and modifying devices for the usage with DirectShow™ requires to write to a
special section of the Windows Registry elevated user privileges are needed to do this. You therefore
either have to be legitimated as an administrator or your user must have special access right!
mvIMPACT Acquire is shipped with an adapter allowing to use mvIMPACT Acquire devices from applications sup-
porting DirectShow™
However in order to be able to access a device through the driver stack from an application through DirectShow™ a
registration procedure is needed. This can either be done using mvDeviceConfigure or by a command line tool that
is part of the Windows operating system.
Note
Please be sure to register the devices for DirectShow™ usage with a matching version of mvDevice←-
Configure. I.e. if e.g. a 32-bit version of the VLC Media Player, Virtual Dub, etc., shall be used
the 32-bit version of mvDeviceConfigure ("C:\Program Files\MATRIX VISION\mvIMPACT Acquire\bin")
must be used for the registration procedure. The 64-bit version resides in "C:\Program Files\MATRIX
VISION\mvIMPACT Acquire\bin\x64") and has to be used when 64-bit applications shall work the Direct←-
Show™ interface later.
Generated by Doxygen
146
To register all devices currently recognized by the mvIMPACT Acquire driver stack for access with DirectShow™ the
following registration procedure is needed:
Generated by Doxygen
3.4 DirectShow™ 147
3. To register every installed device for DirectShow™ access click on the menu item "DirectShow" -> "←-
Register All Devices".
4. After a successful registration the column "Registered For DirectShow" will display "yes" for every device and
the devices will be registered with a default DirectShow™ friendly name which is displayed in the "Direct←-
Show Friendly Name" column. This name then will be displayed by applications detecting DirectShow™
Generated by Doxygen
148
devices and this friendly name can be used to connect to an mvIMPACT Acquire device then
2. right-click on the device to rename and select "Set DirectShow Friendly Name":
Generated by Doxygen
3.4 DirectShow™ 149
3. In the dialog that will show up then a new name can be assigned to the device. This then needs to be
confirmed with "OK".
4. Afterwards the column "DirectShow friendly name" will display the newly assigned friendly name.
Generated by Doxygen
150
Note
Please do not select the same friendly name for two different devices. In theory this is possible, however
the mvDeviceConfigure GUI will not allow this to avoid confusion.
To register all devices currently recognized by the mvIMPACT Acquire driver stack with auto-assigned names, the
Windows tool "regsvr32" can be used from an elevated command shell.
The following command line options are available and can be passed during the silent registration:
EXAMPLES:
Register ALL devices that are recognized by mvIMPACT Acquire (this will only register devices which have drivers
installed) without any user interaction:
regsvr32 <path>\DirectShow_acquire.ax /s
Unregister ALL devices that have been registered before without any user interaction:
regsvr32 <path>\DirectShow_acquire.ax /u /s
Generated by Doxygen
3.5 CPU Sleep State / C-State configuration (Windows only, up to Windows 7) 151
Modern PC's, notebook's, etc. try to save energy by using a smart power management. For this several hardware
manufacturers specified the ACPI standard. The standard defines several power states. For example, if processor
load is not needed the processor changes to a power saving (sleep) state automatically and vice versa. Every state
change will stop the processor for microseconds. On some systems this time is enough to cause problems during
high bandwidth image data transfer.
Note
This feature can only be used when mvDeviceConfigure is started with elevated user privileges since
modifying the C-state configuration requires to change the current power scheme which requires elevated
privileges!
See also
mvDeviceConfigure allows to disable the power management on the processor level (so-called "C-states"):
Note
The API used to configure the CPU sleep states on Windows did change through the versions of Win-
dows! The following table shows what can be done in which version of Windows:
Please be sure you know what you do! To turn off the processor's sleep states will lead to a higher power
consumption of your system.
Modifying the sleep states using mvDeviceConfigure does only affects the current power scheme. For
notebooks this will e.g. make a difference depending on whether the notebook is running on battery or
not. E.g. if the sleep states have been disabled while running on battery and then the system is con-
nected to an external power supply, the sleep states might be active again. Thus in order to permanently
disable the sleep states, this needs to be done for all power schemes that will be used when operating
devices.
1. Start mvDeviceConfigure.
Generated by Doxygen
152
mvDeviceConfigure - Settings
The sleep states can also be enabled or disabled from the command shell by calling mvDeviceConfigure like this:
or
The additional quit will result in the application to terminate after the new value has been applied.
Note
With Windows Vista or newer mvDeviceConfigure must be started from a command shell with adminis-
trator privileges in order to modify the processors sleep states.
To completely disable any GUI display the hidden parameter can be specified as well:
Generated by Doxygen
3.6 mvBlueFOX-1xx/mvBlueFOX-2xx 153
3.6 mvBlueFOX-1xx/mvBlueFOX-2xx
The device ID can be used to locate devices with a user defined ID(an integer value). The default ID on the device's
EEPROM is "0". If the user hasn't assigned unique device IDs to his devices, the serial number can be used to
selected a certain device instead. However, certain third-party drivers and interface libraries might rely on these
IDs to be set up in a certain way and in most of the cases this means, that each device needs to have a unique
ID assigned and stored in the devices non-volatile memory. So after installing the device driver and connecting
the devices setting up these IDs might be a good idea. This can also be helpful for applications involving multiple
cameras each with a dedicated job. E.g. the "upper left" camera can also be configured to use the unique ID of 42
so a software opening the device with the ID 42 always knows this will be the "upper left" camera for this application.
Whenever there is more than one device belonging to the same device family with the same ID, mvDeviceConfigure
will display a warning and the devices in red color.
• Select the "Action -> Set ID" from the menu or right-click on the device to get the same option.
Generated by Doxygen
154
Note
It is also possible to select the action with a right click on the device entry in the list.
• Now the overview shows you the list with all devices as well as the new ID.
In case there has been an ID conflict before that has been resolved now mvDeviceConfigure will no longer highlight
the conflict now. If a new conflict has been created by the latest action this can be seen now as well.
3.7 mvHYPERION
Note
This feature can only be used when mvDeviceConfigure is started with elevated user privileges since
the DMA memory configuration requires to access a special section of the Windows Registry and the
invocation of command line tools requiring elevated privileges!
The mvHYPERION driver support to reserve system wide DMA memory. This memory will then exclusively be
accessible by the mvHYPERION driver an no longer by the operating system so only chunks of memory should be
reserved that are not essential for the operating system or the application.
Once done however this memory can be accessed very efficiently by the device driver so it's usage if highly recom-
mended. In order to do so the menu entry "Action -> Update Permanent DMA Buffer Size" can be used.
Once the desired amount of memory has been entered and confirmed the system must be restarted.
Generated by Doxygen
3.8 Command-line Interface 155
mvDeviceConfigure supports various command-line parameters allowing to control the start-up behavior and the
appearance of the application.
Parameter Description
custom_genicam_file or cgf Specifies a custom GenICam file to be used to open
devices for firmware updates. This can be useful when
the actual XML on the device is damaged/invalid.
force or f Forces a firmware update in unattended mode, even if
it isn't a newer version.
fw_file Specifies a custom name for the firmware file to use.
fw_path Specifies a custom path for the firmware files.
hidden Will start the application without showing the splash
screen or the application window. This might be useful
when doing a silent configuration in combination with
the 'quit' parameter
ignore_gev or igev Disables enumerating devices on all GEV interfaces
of the system, for all applications using a MATRIX VI-
SION GenTL producer(syntax: 'igev=1' or 'igev=0')
ignore_pci or ipci Disables enumerating devices on all PCI/PCIe in-
terfaces of the system, for all applications using a
MATRIX VISION GenTL producer(syntax: 'ipci=1' or
'ipci=0')
ignore_u3v or iu3v Disables enumerating devices on all U3V interfaces of
the system, for all applications using a MATRIX VI-
SION GenTL producer(syntax: 'iu3v=1' or 'iu3v=0')
ipv4_mask Specifies an IPv4 address mask to use as a filter for
the selected update operations. Multiple masks can
be passed here separated by semicolons.
log_file='file_name' or lf='file_←- Specifies a log file storing the content of this text con-
name' trol upon application shutdown.
quit or q Ends the application automatically after all updates
have been applied.
set_processor_idle_states or spis Changes the C1, C2 and C3 states for ALL pro-
cessors in the current system(syntax: 'spis=1' or
'spis=0')(Windows only up to WIndows 7).
select_best_matching_firmware or sbmf Defines whether to automatically select the best
matching firmware file found in the selected firmware
package or to present a list of choices to the user
if multiple firmware versions have been detected
(syntax: 'sbmf=1' or 'sbmf=0').
set_userset_persistence or sup Sets the persistency of UserSet settings during
firmware updates (syntax: 'sup=1' or 'sup=0').
setid or id Assigns an integer ID to one or many
devices(syntax: 'id=<serial>.<id>' or
'id=<product>.<id>')(available for mvBlueFOX2
devices only).
update_fw or ufw Updates the firmware of one or many devices.
update_fw_file or ufwf Updates the firmware of one or many devices. Pass a
full path to a text file that contains a serial number or a
product type per line.
Generated by Doxygen
156
The number of commands that can be passed to the application is not limited.
When using the update_fw_file or ufwf to specify a file containing firmware update information the file needs
contain one line per product to update and this line must contain a comma-separated list of arguments where the
first argument either has to be the product type OR a serial number. Lines starting either with "//" or "#" will be
ignored. An example can be seen below:
3.8.1.1 Potential Pitfalls The file will be processed one line after the other. As a result certain combinations of
product types and serial numbers might lead to surprising behaviour:
mvBlueFOX3-2032C
// ... more content
mvBlueFOX3-2032C, serial=F0700033
The second line will effectively replace the initial mvBlueFOX3-2032C entry by a single serial number. So if
F0700033 does NOT specify a device of type mvBlueFOX3-2032C no update will be performed at all otherwise
the firmware of the device with the serial number F0700033 will be updated.
mvBlueFOX3-2032C, serial=F0700033
// ... more content
mvBlueFOX3-2032C
The second line will have no effect here since the first line is the more special one. So if F0700033 does NOT
specify a device of type mvBlueFOX3-2032C no update will be performed at all otherwise the firmware of the device
with the serial number F0700033 will be updated.
FF003022, firmwarefile=boom.mvu
// ... more content
mvBlueFOX3-2032aC, serial=FF003022
Above example will result in the device with the serial number FF003022 being updated twice if it actually is a
product of type mvBlueFOX3-2032aC. The first time a custom firmware archive will be used while this then will most
likely be overwritten by the default firmware archive in the next step.
Generated by Doxygen
3.8 Command-line Interface 157
3.8.2 Examples
mvDeviceConfigure ufw=BF000666
This will update the firmware of a mvBlueFOX with the serial number BF000666.
mvDeviceConfigure update_fw=BF*
This will update the firmware of ALL mvBlueFOX devices in the current system.
This will update the firmware of ALL mvBlueFOX-2 devices in the current system, then will store a log file of the
executed operations and afterwards will terminate the application.
mvDeviceConfigure setid=BF000666.5
This will assign the device ID '5' to a mvBlueFOX with the serial number BF000666.
mvDeviceConfigure ufw=*
This will update the firmware of all mvBlueCOUGAR-X devices with a valid IPv4 address that starts with '169.254.'
or '192.168.100.'.
Note
Pressing F1 after the application is running will also display a detailed list of available command line
options as well as keyboard shortcuts and some other helping text!
Generated by Doxygen
158
4 mvGigEConfigure
mvGigEConfigure is meant to assist with the installation, removal or configuration of the GigE Vision™ capture filter
driver on Windows systems.
This driver will improve the performance of the mvIMPACT Acquire driver stack on Windows systems by adding a
protocol driver to each NIC (networks interface card) in the system.
Note
The Windows 2000 version of this driver does not support the "Resend" mechanism of the GigE
Vision™ protocol.
Installing and configuring drivers on Windows requires elevated user privileges! You therefore either
have to be legitimated as an administrator or your user must have special access right!
In general the installation and the removal of the filter driver is done when installing the mvIMPACT
Acquire GenTL driver package thus usually manual installation/removal is not required. Therefore the
installation process also needs elevated privileges. However if for any reason manual configuration
should become necessary this tool will help doing this. There is also a Command-line Interface allowing
a non-interactive and even non-visual invocation of this tool. This might come in handy when doing
custom installations.
Windows: Given that during the start mvGigEConfigure searches the network for GigE Vision™ devices,
it could be possible that - depending on the Windows firewall settings - a Windows security alert appears.
Please click on "Unblock" or "Allow Access" depending on the version of Windows you are working
with so that the program works properly.
To install the GigE Vision™ capture filter driver, please follow these instructions:
Generated by Doxygen
4.1 Install The GigE Vision™ Capture Filter Driver 159
After the installation of the capture filter driver, you will see you network devices and the connected devices:
When a GigE Vision™ compliant device will be initialised, wxPropView will display the used driver technology in
The Property Grid .
Once a device has been initialized successfully the property "mvStreamDriverTechnology" will display
The property is located under "System Settings -> GenTL" in interface layout "DeviceSpecific" or under "Image
Settings -> Camera -> GenTL" in interface layout "GenICam". For more information about different interface
layouts please refer to Changing The Interface Layout To GenICam Or DeviceSpecific.
Generated by Doxygen
160
Note
Afterwards you might want to Disable the filter driver on certain NIC or virtual adapters manually.
To remove the GigE Vision™ capture filter driver, please follow these instructions:
Note
Afterwards the list of NICs will be empty since only those where the filter driver is installed on (either
enabled or disabled) will be listed.
Generated by Doxygen
4.3 Enable/Disable The GigE Vision™ Capture Filter Driver 161
After an initial installation the filter driver will be installed on every NIC in the system. Sometimes this is not desired
(e.g. when running Wireshark on an adapter with the filter driver installed the image data can not be monitored), so
this tool also allows to enable or disable the filter driver for each NIC individually. This can be done by right-clicking
on the desired network adapter as shown in the following image:
Note
The usage of the filter driver on Windows systems is highly recommended since its usage results in
less CPU load!
4.4 Miscellaneous
• Pressing F5 or selecting "Action -> Update Device List" from the menu will refresh the list of devices
connected to the individual network adapters
• Pressing F8 or selecting "Help -> Display NIC Setup Hints" from the menu will display various suggestions
on how to improve the NICs performance when dealing with GigE Vision™ traffic.
mvGigEConfigure supports various command-line parameters to allow driver installation without the need of user
interaction.
The following table lists the available command-line parameters:
Generated by Doxygen
162
Parameter Description
disable='index' or all Will disable the driver for interface index or every inter-
face.
enable='index', all or allWithAtLeast←- Will enable the driver for interface index, all interfaces
OneDevice or all interfaces that have at least on GigE Vision de-
vice connected to it.
hidden Will start the application without showing the splash
screen or the application window. This might be useful
when doing a silent configuration in combination with
the 'quit' parameter
install Will install the driver if it can be located under
• "%MVIMPACT_ACQUIRE_DIR%\Kernel←-
Drivers\mvGigECaptureDriver(x86)" for 32-bit
versions of Windows Vista, 7, 8 and 8.1
• "%MVIMPACT_ACQUIRE_DIR%\Kernel←-
Drivers\mvGigECaptureDriver(x86)(←-
SHA256.EV)" for 32-bit versions of Windows
10
• "%MVIMPACT_ACQUIRE_DIR%\Kernel←-
Drivers\mvGigECaptureDriver(x64)" for 64-bit
versions of Windows Vista, 7, 8 and 8.1
• "%MVIMPACT_ACQUIRE_DIR%\Kernel←-
Drivers\mvGigECaptureDriver(x64)(←-
SHA256.EV)" for 64-bit versions of Windows 10
and 11
install_retry_count Defines the number of retry attempts for the driver in-
stallation. This can sometimes be useful when a net-
work component is currently in use/shutting down. 45
seconds will be spent between 2 consecutive attempts.
Currently this value will only have an effect, if specified
BEFORE the 'install' parameter!
log_file='file_name' or lf='file_←- Will write the content of the output window of the appli-
name' cation into a file. Passing 'STDLOGDIR' as the initial
path (e.g. STDLOGDIR/file_name.log) will write the file
into MVIMPACT_ACQUIRE_DATA_DIR/logs thus the
file containing the regular mvIMPACT Acquire log-files
as well.
postInstallMessage Will display a message to the user AFTER the filter
driver has been installed on the system.
quit Will automatically terminate the application once all
the other command-line parameters have been pro-
cessed.
remove Will remove the driver.
welcome Will display a welcome message to the user explaining
what is about to happen.
4.5.1 Examples
So e.g. to automatically install the filter driver and terminate the application afterwards without any additional
messages displayed to the user the following command line is needed:
Generated by Doxygen
4.5 Command-line Interface 163
This will install the filter driver, but will disable it on all the adapters and then will terminate automatically:
This will enable the filter driver on adapters 1 and 3 when it is already installed:
Note
Pressing F1 after the application is running will also display a detailed list of available command line
options as well as keyboard shortcuts and some other helping text!
Generated by Doxygen
164
5 mvIPConfigure
mvIPConfigure is meant to allow the configuration of the network behaviour of GigE Vision™ compliant devices.
With mvIPConfigure it is possible
• to find and fix incorrectly configured (e.g. wrong IP address) GigE Vision™ compliant devices
Note
Since the GigE Vision™ standard requires LLA to be enabled at all times the "Use LLA" control will never become
modifiable.
Every GigE Vision™ compliant device must use the following IP protocol selection algorithm:
Generated by Doxygen
5.1 Configure A GigE Vision™ Device 165
Note
Pressing F1 will display a little dialog containing some usage hints as well as a list of available command-
line parameters.
Generated by Doxygen
166
2. When started select the device you want to configure from the list on left side of the tool.
4. When the device shall use a persistent IP address not only check the check box "Use Persistent IP" but also
enter all the required data into the text controls in the group box "Persistent IP address".
Note
In order for the device being correctly detected in the network with the new IP address, please
power-cycle the device after applying the changes in the next step.
5. To write the changes to the device click on "Apply Changes" button. To discard the changes made in the
GUI controls either close the application, select another device or click anywhere in the device list.
Attention
If you use multiple GigE Vision™ devices connected to separate network adapters in a single host sys-
tem, make sure to use different subnets.
Generated by Doxygen
5.2 Assign A Temporary IPv4 Address 167
It is also possible to assign a temporary IP address to a certain device with a known MAC address via the "Action"
menu item.
Note
This even works if the device currently is NOT detected by the application due to incorrect network
configuration! It makes use of the FORCE_IP command specified by the GigE Vision™ standard.
1. Select the "Action" menu item and click on "Manually Assign Temporary IPv4 Address".
Because of the activated setting "Use Advanced Device Discovery", by default incorrectly configured GigE Vi-
sion™ compliant devices will be listed within mvIPConfigure even if the IP address does not match the local net-
work.
Generated by Doxygen
168
Just select the device and configure it as described in Configure A GigE Vision™ Device.
Right-clicking on any device will allow to view potential performance issues as well as a suggestion on how to
resolve them:
Generated by Doxygen
5.5 Various Auto-Configuration Options 169
mvIPConfigure provides various ways to automatically assign a matching IPv4 address to a device currently not
configured correctly for the NIC(network interface card) it is connected to:
Generated by Doxygen
170
By default devices residing in different subnets will not be discovered as the standard discovery mechanism uses
broadcasts into the local subnet. Therefore devices residing in different subnets will not show up without additional
configuration since broadcasts don't cross routers thus are not forwarded into different subnets.
Note
To discover devices residing in different subnets the IPv4 address of these devices must be known
upfront.
Using mvIPConfigure's "Setup Unicast Device Discovery Destinations" dialog allows to specify the known IPv4
address of each device which shall be discovered in a different subnet.
1. Select the "Action" menu item and click on "Set Up Unicast Device Discovery".
Generated by Doxygen
5.6 Detecting Devices Residing In A Different Subnet 171
A dialog will open, where the destination IP addresses of the devices to be discovered can be entered.
2. Select the interface through which the devices in the different subnet will be reachable by using the "←-
Interfaces" drop-down menu. This interface must be able to reach the target subnet of course so has to be
connected to the corresponding router and/or switch.
Note
Once the desired IPv4 addresses have been entered the "Discover" button can be used to detect
those devices. If a device is found the corresponding row in the grid will be marked in green and the
serial number of the discovered device will show up in the discovered column. If a device is NOT
showing up make sure the IPv4 address you have entered is correct and the interface selected for
detection is actually capable of reaching the desired subnet.
Generated by Doxygen
172
Generated by Doxygen
5.7 Command-line Interface 173
To modify the settings the dialog can be used. To disable the device discovery in different subnets just select the
correct interface and clear the table using the "Clear" button.
Note
The settings for detecting devices in different subnets will be permanent for every application using
mvIMPACT Acquire on the given system. There is also a set of API properties that can be used to
implement the same behaviour. In fact mvIPConfigure uses this API internally. To implement this in your
own application have a look at the InterfaceModule class. The properties starting with mvUnicast←-
DeviceDiscovery will provide the required features.
mvIPConfigure supports various command-line parameters to allow various IP setup related configurations without
the need of user interaction.
Parameter Description
device or d Selects a serial number of a device for configuration.
forceAutoConfigureDHCP or facd Configures devices using misconfigured IP addresses
connected to the adapter specified by a wildcard to use
DHCP mode. If no wildcard is specified every detected
misconfigured device will be configured to use DHCP
mode. (syntax: <Adapter IP address wildcard>).
forceAutoConfigurePersistent or facp Assigns automatically a persistent IP address to de-
vices connected to the adapter specified by a wild-
card. If no wildcard is specified every misconfigured
device will set up for a persistent IP address. (syntax:
<Adapter IP address wildcard>).
hidden Will start the application without showing the splash
screen or the application window. This might be useful
when doing a silent configuration in combination with
the 'quit' parameter.
log_file='file_name' or lf='file_←- Specifies a log file storing the content of this text con-
name' trol upon application shutdown.
persistentIPAddress Defines a persistent IP address for the device currently
selected(value syntax: <interface index>;<value>).
persistentSubnetMask Defines a persistent subnet mask for the de-
vice currently selected(value syntax: <interface
index>;<value>).
persistentDefaultGateway Defines a persistent default gateway for the de-
vice currently selected(value syntax: <interface
index>;<value>).
quit or q Terminates the application automatically after all the
configuration has been applied.
useDHCP Enables/disables the usage of DHCP for the de-
vice currently selected(value syntax: <interface
index>;<value>).
userDefinedName or udn Sets a user defined name for the device currently se-
lected.
usePersistentIP Enables/disables the usage of a persistent IP ad-
dress for the device currently selected(value syntax:
<interface index>;<value>).
Generated by Doxygen
174
5.7.1 Examples
Will configure interface 0 of the specified device to use a certain persistent IP configuration.
Will automatically enable persistent IPv4 address acquisition for all devices with an incorrect network setup on
Ethernet adapters with an IP address matching the value after the '=' character and will terminate the application
automatically afterwards.
Will automatically enable DHCP address acquisition for all devices with an incorrect network setup on Ethernet
adapters with an IP address matching the value after the '=' character Both 'force∗' parameters will only apply to
misconfigured devices utilizing a persistent IP address and the 'Auto-fix Invalid Network Configurations' option from
'Settings' menu is active.
Note
Pressing F1 after the application is running will also display a detailed list of available command line
options as well as keyboard shortcuts and some other helping text!
Generated by Doxygen