mvIMPACT Acquire SDK C++
Installation from private setup routines

This chapter will briefly explain what has to be done to build installation packages for the applications target platform that include all files needed to operate the device without the need to ship the full MATRIX VISION GmbH driver setup.

Attention
Please note, that this approach is NOT recommended as this might cause version conflicts on the target platform e.g. when the official driver from MATRIX VISION is installed on a target platform together with a version embedded in the private setup routine. Also each time a new driver release is available this might force you to update your installation routine as well.

The latest official drivers can always be found under http://www.matrix-vision.com

Windows

The driver packages are distributed as MSI (Microsoft Windows Installer™) packages.

Attention
Please note, that since mvIMPACT Acquire 2.18.0 all MATRIX VISION MSI packages contain kernel mode drivers signed for different target platforms. During installation the merge modules will decide with driver is the one most suitable for the target system. Currently each merge module containing kernel modules will contain 3 different flavors of this module:
  • a version signed and timestamped with a SHA1 algorithm (this will be used on Systems running Windows 2000, XP or Server 2003)
  • a version signed with a SHA256 algorithm and timestamped with a SHA1 algorithm (this will be used on Systems running Windows Vista, Server 2008, 7, Server 2008R2, 8, 8.1 and Server 2012). Some of the files might also have 2 signatures (a SHA1 one and a SHA256 one)
  • a version signed and timestamped by Microsoft with a SHA256 algorithm (this will be used on Systems running Windows 10). The processed used in this approach is called attestation signing (https://msdn.microsoft.com/de-de/windows/hardware/drivers/develop/attestation-signing-a-kernel-driver-for-public-release)

MSI based private setup routines

If your installation also uses the MSI technology this is the easiest way to distribute all the related driver files! All merge modules (*.msm-files) that belong to a certain version of mvIMPACT Acquire can be downloaded from the MATRIX VISION website (http://www.matrix-vision.com) as a compressed archive.

After extraction these merge modules then can be included into your setup project as needed and you are done.

32-bit merge modules contain 32-bit code only while 64-bit merge modules contain everything that will allow running both 32-bit and 64-bit applications. The names of the merge modules belonging to mvIMPACT Acquire will use the following extensions:

  • *.msm (Will only contain 32-bit kernel code and/or 32-bit user-mode code)
  • *.x64.msm (Will contain 64-bit kernel code and/or 32- AND 64-bit user mode code)

So to run 32-bit applications on a 32-bit version of Windows ONLY the 32-bit *.msm files shall be used and to run either 32- or 64-bit applications (or both 32- AND 64-bit applications) ONLY the 64-bit *.x64.msm files shall be used. The only exceptions from this rule are third party merge modules (e.g. the OpenMP-runtime) where this is stated differently in the list of merge modules below. As an example what is inside a merge module let us consider the mvIMPACT_AcquireBaseLibs file:

  • mvIMPACT_AcquireBaseLibs.msm contains the 32-bit version of mvDeviceManager.dll and mvPropHandling.dll
  • mvIMPACT_AcquireBaseLibs.x64.msm contains the 32-bit AND the 64-bit version of mvDeviceManager.dll and mvPropHandling.dll. Both versions of the 2 libraries will be installed into the appropriate target directories

Unattended Setups

Sometimes user interaction during an installation is not desired. The MSI engine therefore supports a set of command line options that can be used to run setups in special ways. Probably the most common way to run an unattended setup will be an installation without any GUI display or user interaction. This can be achieved like this:

msiexec /i myInstaller.msi /quiet

or (with an automatic reboot of the system at the end of the installation):

msiexec /i myInstaller.msi /quiet /forcerestart

For a complete list of option type

msiexec.exe

in a command shell an hit the ENTER key.

Attention
Please note, that since mvIMPACT Acquire 2.22.0 all MATRIX VISION MSI packages will require the user to accept the EULA (End User License Agreement) before a package can be installed. For installations using the command line the ACCEPT_EULA property needs to be set if the user wants to suppress the GUI EULA confirmation:
msiexec /i myInstaller.msi ACCEPT_EULA=yes
Attention
By using unattended setups (/quiet parameter in the command line) the user explicitly accepts the EULA!

Common merge modules for all device drivers

This following section contains merge modules will be needed by any custom installer that shall support mvIMPACT Acquire compliant devices:

Open MP runtime
Name of the 32 bit merge modules Microsoft_VC120_OpenMP_x86.msm
Name of the 64 bit merge modules Microsoft_VC120_OpenMP_x64.msm
Requirement Must be installed. To run 32 bit applications on 64 bit systems, the 32 bit merge modules must be installed as well
mvIMPACT Acquire driver framework
Name of the 32 bit merge module mvIMPACT_AcquireBaseLibs.msm
Name of the 64 bit merge module mvIMPACT_AcquireBaseLibs.x64.msm
Requirement Must be installed. In order to work with GenICam compliant devices some environment variables must be set (see Environment variables below).
mvIMPACT Acquire tools prerequisites
Name of the 32 bit merge module mvIMPACT_AcquireExecutablesPrerequisites.msm
Name of the 64 bit merge module mvIMPACT_AcquireExecutablesPrerequisites.x64.msm
Requirement Only needed if mvIMPACT_AcquireTools is installed. Contains additional libraries that are needed by some of the tools. In particular this merge module contains the mvDisplay.dll which might be needed by a customers applications as well.
mvIMPACT Acquire tools
Name of the 32 bit merge module mvIMPACT_AcquireTools.msm
Name of the 64 bit merge module mvIMPACT_AcquireTools.x64.msm
Requirement Only needed if tools like wxPropView or mvDeviceConfigure shall be available

This merge module has cofiguration options: Define a property CREATE_DESKTOP_SHORTCUTS in your installation an pass the value of this property to the merge module if you want desktop icons to be created for the tools. Define a property FILTER_INSTALL_PARAMS and feed it with a string containing arbitrary command line paramters to be send to mvGigEConfigure when starting the system the next time. See installation option further down in this chapter for additional details.

DirectShow support for mvIMPACT Acquire compliant devices
Name of the 32 bit merge module mvDirectShow_acquireDriver.msm
Name of the 64 bit merge module mvDirectShow_acquireDriver.x64.msm
Requirement Only needed if the application requires a DirectShow interface
VisionPro support for mvIMPACT Acquire compliant devices
Name of the 32 bit merge module mvIMPACT_Acquire_Cognex_Adapter.msm
Name of the 64 bit merge module mvIMPACT_Acquire_Cognex_Adapter.x64.msm
Requirement Only needed if the device shall be operated using VisionPro
NeuroCheck 6 support for mvIMPACT Acquire compliant devices
Name of the 32 bit merge module mvIMPACT_Acquire_NeuroCheck6_Adapter.msm
Name of the 64 bit merge module mvIMPACT_Acquire_NeuroCheck6_Adapter.x64.msm
Requirement Only needed if the device shall be operated using NeuroCheck 6. Files will only be installed if an existing NeuroCheck 6 installation can be detected in at least one of the ProgramFiles folders
NeuroCheck 6.1 support for mvIMPACT Acquire compliant devices
Name of the 32 bit merge module mvIMPACT_Acquire_NeuroCheck6_1_Adapter.msm
Name of the 64 bit merge module mvIMPACT_Acquire_NeuroCheck6_1_Adapter.x64.msm
Requirement Only needed if the device shall be operated using NeuroCheck 6.1. Files will only be installed if an existing NeuroCheck 6.1 installation can be detected in at least one of the ProgramFiles folders

mvBlueCOUGAR, mvBlueLYNX-M7, mvBlueFOX3

User mode driver
Name of the 32 bit merge module mvGenTL-AcquireDriver.msm
Name of the 64 bit merge module mvGenTL-AcquireDriver.x64.msm
Requirement Must be installed. To use the user mode driver as a GenTL Producer you must create or append the corresponding environment variables (see Environment variables below).
C/C++ runtime
Name of the 32 bit merge modules Microsoft_VC120_CRT_x86.msm
Name of the 64 bit merge modules Microsoft_VC120_CRT_x64.msm
Requirement Must be installed. To run 32 bit applications on 64 bit systems, the 32 bit merge modules must be installed as well
GenICam runtime
Name of the 32 bit merge module GenICamRuntime.msm
Name of the 64 bit merge module GenICamRuntime.x64.msm
Requirement Must be installed. The GenICam runtime needed to operate any device the complies with the GenICam standard that shall be used through the mvGenTL-Acquire driver package.

Installation Options

When the original MSI installer of the mvGenTL_Acquire driver package is used, the user will be prompted to restart the system at the end of the installation. During reboot then the GigE Vision Filter Driver is installed by mvGigEConfigure.exe. When all the appropriate merge modules have been integrated into the setup, this will also happen in custom installations. However sometimes user interaction during the installation is not desired and/or GUI based tools shall not be displayed. This can be achieved by changing a public property of the installer's internal data base.

An installation of the driver without any user interaction can be achieved like this from the command line:

msiexec /i mvGenTL_Acquire-x86-2.2.2.msi /quiet /forcerestart FILTER_INSTALL_PARAMS="install quit"

This will install the driver, reboot the system and install the filter driver without displaying the GigEConfigure tool to the user. Please note that you have to call the install engine from an administrator shell in order to get this working properly.

Apart from that there are 3 other public properties, which can be tailored to suit the needs of the application:

  • GEV_SUPPORT (Valid values: 'yes', 'no')
  • GEV_NDIS_DRIVER_INSTALL (Valid values: 'yes', 'no')
  • U3V_SUPPORT (Valid values: 'yes', 'no')

These properties control whether the corresponding kernel drivers will be installed on the target system or not. The default for both properties is yes.

So e.g. to install the GEV driver only you can call the MSI engine like this:

msiexec /i mvGenTL_Acquire-x86-2.2.2.msi /quiet /forcerestart FILTER_INSTALL_PARAMS="install quit" U3V_SUPPORT=no GEV_SUPPORT=yes

To to copy all the GEV driver and tools related files to the target system only without actually installing the filter driver you can call the MSI engine like this:

msiexec /i mvGenTL_Acquire-x86-2.2.2.msi /quiet /forcerestart FILTER_INSTALL_PARAMS="install quit" GEV_NDIS_DRIVER_INSTALL=no
Note
Please note that setting GEV_SUPPORT to no will superimpose the GEV_NDIS_DRIVER_INSTALL property so combining GEV_SUPPORT=no and GEV_NDIS_DRIVER_INSTALL=yes does not make any sense!

When only the U3V driver shall be support in silent mode call msiexec like this:

msiexec /i mvGenTL_Acquire-x86-2.2.2.msi /quiet /forcerestart U3V_SUPPORT=yes GEV_SUPPORT=no

Configuring the filter driver installation tool then is not necessary, as it is only needed for GEV support.

GigE Vision device specific

Kernel mode driver
Name of the 32 bit merge module mvGigECaptureDriver.msm
Name of the 64 bit merge module mvGigECaptureDriver.x64.msm
Requirement Should be installed for optimal performance. Needs additional work (Filter driver must be installed either by using mvGigEConfigure.exe or another appropriate method). See Non-MSI based section about installing the GEV driver for details.
GigE Vision specific tools
Name of the 32 bit merge module mvGigETools.msm
Name of the 64 bit merge module mvGigETools.x64.msm
Requirement Should be installed for optimal performance. Contains tools that can be used to install/remove/enable/disable the filter driver and to set up GigE Vision compliant devices. In order to automatically install the driver some environment variables must be set (see Environment variables below).

This merge module has a cofiguration option: Define a property CREATE_DESKTOP_SHORTCUTS in your installation an pass the value of this property to the merge module if you want desktop icons to be created for the tools.

Firmware updates for GigE Vision devices
Name of the 32 bit merge module mvBlueCOUGARUpdate.msm
Name of the 64 bit merge module mvBlueCOUGARUpdate.x64.msm
Requirement Only needed if firmware files to update mvBlueCOUGAR and mvBlueLYNX-M7 devices shall be available
Technical manuals for GigE Vision devices
Name of the 32 bit merge module mvBlueCOUGARDocumentation.msm
Name of the 64 bit merge module mvBlueCOUGARDocumentation.x64.msm
Requirement Only needed if technical manuals for mvBlueCOUGAR and mvBlueLYNX-M7 devices shall be available

USB3 Vision device specific

Kernel mode driver
Name of the 32 bit merge module mvUSB3VisionKernelDriver.msm
Name of the 64 bit merge module mvUSB3VisionKernelDriver.x64.msm
Requirement Must be installed for USB3 Vision support.
Firmware updates for USB3 Vision devices
Name of the 32 bit merge module mvBlueFOX3Update.msm
Name of the 64 bit merge module mvBlueFOX3Update.x64.msm
Requirement Only needed if firmware files to update mvBlueFOX3 devices shall be available
Technical manuals for USB3 Vision devices
Name of the 32 bit merge module mvBlueFOX3Documentation.msm
Name of the 64 bit merge module mvBlueFOX3Documentation.x64.msm
Requirement Only needed if technical manuals for mvBlueFOX3 devices shall be available

mvBlueFOX

Kernel mode driver
Name of the 32 bit merge module mvBlueFOXKernelDriver.msm
Name of the 64 bit merge module mvBlueFOXKernelDriver.x64.msm
Requirement Must be installed.
User mode driver
Name of the 32 bit merge module mvBlueFOXDriver.msm
Name of the 64 bit merge module mvBlueFOXDriver.x64.msm
Requirement Must be installed
Technical manuals for mvBlueFOX devices
Name of the 32 bit merge module mvBlueFOXDocumentation.msm
Name of the 64 bit merge module mvBlueFOXDocumentation.x64.msm
Requirement Only needed if technical manuals for mvBlueFOX devices shall be available

mvHYPERION

Kernel mode driver
Name of the 32 bit merge module mvHYPERIONKernelDriver.msm, mvSerialPortKernelDriver.msm
Name of the 64 bit merge module mvHYPERIONKernelDriver.x64.msm, mvSerialPortKernelDriver.x64.msm
Requirement Must be installed.
User mode driver
Name of the 32 bit merge module mvHYPERIONDriver.msm
Name of the 64 bit merge module mvHYPERIONDriver.x64.msm
Requirement Must be installed
Technical manuals for mvHYPERION devices
Name of the 32 bit merge module mvHYPERIONDocumentation.msm
Name of the 64 bit merge module mvHYPERIONDocumentation.x64.msm
Requirement Only needed if technical manuals for mvHYPERION devices shall be available
CameraLink communication
Name of the 32 bit merge module mvCameraLinkCommunication.msm
Name of the 64 bit merge module mvCameraLinkCommunication.x64.msm
Requirement Only needed if the application wants to establish serial communication to CameraLink cameras

This merge module has configuration options. Define CL_COM_LIB_PATH_PROP (or CL_COM_LIB_PATH_PROP and CL_COM_LIB_PATH_PROP_X86 for 64-bit systems) and set it/them to the desired path(es). Refer to the CameraLink specification for details.

mvTITAN, mvGAMMA

Kernel and User mode driver
Name of the 32 bit merge module mvTITANDriver.msm, mvInstinfTool.msm, mvSDKDriverCommonFiles.msm, mvSetDMATool.msm
Name of the 64 bit merge module mvTITANDriver.signed.x64.msm, mvSDKDriverCommonFiles.msm, mvSDKTITANKernelDriver.x64.msm, mvSDKTITANUserModeDriver.x64.msm, mvSetDMATool.msm (this is the 32-bit version, 64-bit support not availalable)
Requirement Must be installed.
Technical manuals for mvTITAN and mvGAMMA devices
Name of the 32 bit merge module mvTITANDocumentation.msm
Name of the 64 bit merge module mvTITANDocumentation.x64.msm
Requirement Only needed if technical manuals for mvTITAN and mvGAMMA devices shall be available
CameraLink communication
Name of the 32 bit merge module mvCameraLinkCommunication.msm
Name of the 64 bit merge module mvCameraLinkCommunication.x64.msm
Requirement Only needed if the application wants to establish serial communication to CameraLink cameras

mvDELTA, mvSIGMA

Kernel and User mode driver
Name of the 32 bit merge module mvSIGMADriver.msm, mvInstinfTool.msm, mvSDKDriverCommonFiles.msm, mvSetDMATool.msm
Name of the 64 bit merge module mvSIGMADriver.signed.x64.msm (both 32-bit and 64-bit mvIMPACT Acquire user mode driver), mvSDKDriverCommonFiles.x64.msm, mvSetDMATool.msm (this is the 32-bit version, 64-bit support not availalable), mvSIGMAUserModeDriver.x64.msm, mvSDKSIGMAKernelDriver.x64.msm
Requirement Must be installed.
User mode driver(DEPRECATED)
Name of the 32 bit merge module NOT AVAILABLE
Name of the 64 bit merge module mvSIGMAUserModeDriver.msm
Requirement Should not be installed anymore. This is a deprecated merge module just provided for backward compatibility in order not to break existing installer build scripts. It contains the 32-bit user mode drivers to access boards belonging to this family. New installations should install mvSIGMAUserModeDriver.x64.msm instead. Do NOT install both mvSIGMAUserModeDriver.msm and mvSIGMAUserModeDriver.x64.msm on a system. This will break the MSI engines reference counting leaving files on the system after uninstalling the package
Technical manuals for mvSIGMA and mvDELTA devices
Name of the 32 bit merge module mvSIGMADocumentation.msm
Name of the 64 bit merge module mvSIGMADocumentation.x64.msm
Requirement Only needed if technical manuals for mvSIGMA and mvDELTA devices shall be available

mvVirtualDevice

For mvVirtualDevice devices:

User mode driver
Name of the 32 bit merge module mvVirtualDeviceDriver.msm
Name of the 64 bit merge module mvVirtualDeviceDriver.x64.msm
Requirement Must be installed
Technical manuals for mvVirtualDevice devices
Name of the 32 bit merge module mvVirtualDeviceDocumentation.msm
Name of the 64 bit merge module mvVirtualDeviceDocumentation.x64.msm
Requirement Only needed if technical manuals for mvVirtualDevice devices shall be available
Note
This is the recommended way of redistributing the product driver files when the original driver package can't or shall not be used.

Running customized mvIMPACT Acquire MSI installers from other installation frameworks

If other installation frameworks such as Inno Setup or NSIS (Nullsoft Scriptable Install System) are used then sometimes using merge modules (*.msm files) is not an option as it is not supported by the installation framework. In such cases there are 3 ways to go:

  • Directly ship all the mvIMPACT Acquire MSI packages that contain drivers that shall be installed on the target system
  • Embed all the original mvIMPACT Acquire MSI packages that contain drivers that shall be installed on the target system into the installer of the client application and run the installers during the installation of the application
  • Embed all the files belonging to the mvIMPACT Acquire framework that are needed to access the hardware that shall run on the target system into the installer of the client application. This approach is covered in the next section

How to launch an installation from another installation with no user interaction has been already discussed Unattended Setups here. However when the mvIMPACT Acquire MSI installers are embedded into another installation simply running these installers might no always result in only the desired files being installed but also the header files, documentation and other features unwanted on a defined target system.

So installing the files needed by an application only does require to modify one or more of the following properties when launching the mvIMPACT Acquire installation:

  • ADDLOCAL (The value of the ADDLOCAL property is a list of features that are delimited by commas, and are to be installed locally)
  • REMOVE (The value of the REMOVE property is a list of features delimited by commas that are to be removed. These refers to features which are already installed on the target system, thus this property can be used to uninstall one or more features of a certain package)
  • INSTALLLEVEL (The INSTALLLEVEL property is the initial level at which features are selected "ON" for installation by default)

For details refer to the documentation about these properties in the MSDN (http://msdn.microsoft.com).

So one way to go would be to switch off ALL features by setting the INSTALLLEVEL property to 0 and then add all those features needed by the application by providing a list of these features to the ADDLOCAL property:

msiexec /i myInstaller.msi INSTALLLEVEL=0 ADDLOCAL="mvBlueFOXDriverModule,Documentation,DotNETSupport,SDKHeader" /quiet /forcerestart

When e.g. running the mvBlueFOX installer with the following command line

msiexec /i mvBlueFOX-x86-2.4.1.msi INSTALLLEVEL=0 ADDLOCAL="mvBlueFOXDriverModule,Documentation,DotNETSupport,SDKHeader"

results in the following features being pre-selected:

CustomizedmvBlueFOXInstalledUsingTheADDLOCALProperty.png

To obtain the names of the features to be installed any tool that can analyze an MSI-files database can be used. The following screenshot was taken by Orca, which is a tool for authoring MSI files that can be downloaded from Microsoft™ free of charge.

UsingORCAToIdentifyInstallationFeatures.png

On the other hand to remove one or more features belonging to a known installer on the target system can be accomplished using the REMOVE property. So to e.g. remove the .NET support and the technical manual for mvBlueFOX devices the following command line can be used:

msiexec /i mvBlueFOX-x86-2.4.1.msi REMOVE="Documentation,DotNETSupport" /quiet

Non-MSI based setup routines

Note
If not specified, all files can be found in the folder which contains the driver files.

Other setup routines should NOT include the driver files if this can be avoided, as this might cause version conflicts when the original installation package is installed as well and might also confuse the MSI engine when removing the original installation package, which might cause an incomplete package removal operation. However if this approach is desired this section provides a brief list of things that must be done of the target machine.

Common files needed for all device drivers

To run a MATRIX VISION device with the mvIMPACT Acquire interface some common files are needed for every device on the target system:

  • mvPropHandling.dll
  • mvDeviceManager.dll

Both files can be found in "$(windir)\system32" (32 bit version) and/or "$(windir)\SysWOW64" (64 bit version).

As the user mode part of the device driver internally make use of Open MP (http://openmp.org/) under Windows a matching version of the Open MP runtime must be installed on the target system as well. Current versions of the drivers are linked against version 12.0.21005.1 of the runtime. The corresponding merge modules or redistributables can be obtained from Microsoft

Attention
Since release 1.8.0 of the mvIMPACT Acquire interface the file libexpat.dll is no longer shipped with the installation package, as it is no longer needed by any of the modules belonging to the mvIMPACT Acquire interface. This might force you to modify your installer.

All these files can be either be copied somewhere in the systems path or into the applications directory.

With these files the device can be used and configured from an application. Some features however require some additional installation work:

Displaying image data

In case an application makes use of the mvDisplay library this must be deployed on the target system as well. The same restrictions, path informations, etc. as in the previous section apply.

Load/Store settings

In order to allow the application to load and store settings in the registry these keys must be created during the installation:

  • "HKEY_LOCAL_MACHINE\Software\MATRIX VISION\Settings"
  • "HKEY_CURRENT_USER\Software\MATRIX VISION\Settings"

If the keys are missing settings can still be loaded and stored in the platform independent XML format by using the appropriate functions discussed in the chapters describing the software interface.

Log-file support

If your application shall be able to generate *.log-files the following directories must be created on the target system:

  • "%ALLUSERS%\Documents\MATRIX VISION"
  • "%ALLUSERS%\Documents\MATRIX VISION\mvIMPACT acquire"
  • "%ALLUSERS%\Documents\MATRIX VISION\mvIMPACT acquire\Logs"

Apart from that these files must be installed to "%ALLUSERS%\Documents\MATRIX VISION\mvIMPACT acquire\Logs\":

  • mvDebugFlags.mvd
  • logo.gif
  • mvIMPACT_acquireLogFile.xsl
  • mvLogfileViewer.html
  • sarissa.js
  • Apache.txt (this must be shipped with mvLogfileViewer.html and sarissa.js for legal reasons as part of the file make use of code under the Apache 2.0 license)

The first file is discussed in detail in the logging chapter of this manual, the latter files are only needed if the standard MATRIX VISION log-file style shall be used(XML with stylesheet transformation). To find out how to embed your own log-file stylesheet please refer to the chapter about the logging mechanism. Here it also explained how to create plain XML log files and XML files that can be viewed using mvLogFileViewer.html.

Camera description files support (frame grabbers)

If your application shall be able to work with camera description files and does NOT modify the property mvIMPACT::acquire::Device::customDataDirectory before initialising the device the following directories must be created on the target system:

  • "%ALLUSERS%\Documents\MATRIX VISION"
  • "%ALLUSERS%\Documents\MATRIX VISION\mvIMPACT acquire"
  • "%ALLUSERS%\Documents\MATRIX VISION\mvIMPACT acquire\CameraFiles"

All camera description files that shall be used by the application must be installed into the folder CameraFiles in order to be recognized by the driver.

mvBlueCOUGAR, mvBlueLYNX-M7, mvBlueFOX3

  • mvGenTLConsumer.dll can be copied somewhere in the systems path or into the applications directory (in the standard installation, the file can be found in "$(windir)\system32" [32 bit version] and/or "$(windir)\SysWOW64" [64 bit version])
  • mvGenTLProducer.cti can be copied somewhere in the systems path or into the applications directory

GigE Vision device specific (Windows XP and smaller)

If the GigE Vision™ capture filter kernel mode driver shall be used the following files must be shipped as well:

  • mvGigECapture.inf (matching the target platform)
  • mvGigECapturem.inf (matching the target platform)
  • mvGigECapture_x86.cat or mvGigECapture_amd64.cat
  • mvGigECapturem_x86.cat or mvGigECapturem_amd64.cat
  • mvGigECapture.sys (matching the target platform)
Note
Please note that the file mvGigECapture.sys that is installed on the target system will differ from Windows version to Windows version. Currently Windows 2000 will need a different version of this file than newer versions of Windows. To obtain the correct file needed for the target platform the original installer must be installed on the system in question. Thus to build an installer for Windows 2000 the *.sys-file must be obtained from a Windows 2000 system. When working with the merge modules this will be done automatically.

GigE Vision device specific (Windows Vista and newer)

If the GigE Vision™ capture filter kernel mode driver shall be used the following files must be shipped as well:

  • mvGigECapture2.inf
  • mvGigECapture2_x86.cat or mvGigECapture2_amd64.cat
  • mvGigECapture2.sys

GigE Vision device specific (Installation)

To actually install the filter driver on the system there are 2 ways to go: Either the tool mvGigEConfigure.exe or the built-in mechanism of Windows to install a filter driver can be used.

Using mvGigEConfigure there are again 2 possibilities:

  1. The user interactive version by simply starting the tool and then clicking Install driver or Remove driver and/or by right clicking on a network connection entry to enable/disable the filter driver.
  2. By using the command line options available for the tool. For details please have a look into the GUI section for mvGigEConfigure in the technical manual of the corresponding product.

Using the built-in mechanism of Windows works like this:

First navigate to any of the network connections available to the system and open the properties dialog of that connection.

GEV_ManualFilterDriverInstallation_1.PNG
Figure 3: Network connection properties

Here click on Install...

In the next Windows select Service and click on Add....

GEV_ManualFilterDriverInstallation_2.PNG
Figure 4: Network component type selection

Now click on Have Disk....

GEV_ManualFilterDriverInstallation_3.PNG
Figure 5: Network service selection

Click on Browse... and navigate to the folder containing the GigE Vision™ capture filter kernel mode driver files mentioned above.

GEV_ManualFilterDriverInstallation_4.PNG
Figure 6: Install from disc

Select the file mvGigECapture.inf and click on Open

GEV_ManualFilterDriverInstallation_5.PNG
Figure 7: Locate file

Click on OK

GEV_ManualFilterDriverInstallation_6.PNG
Figure 8: Select network service

Now depending on the amount of network connections installed in your system and depending on the version of Windows you are working with a couple of warnings might appear that must be confirmed with something like Continue anyway.

GEV_ManualFilterDriverInstallation_7.PNG
Figure 9: Software installation

Afterwards the filter driver will installed and active on EVERY network connection of the system. If that is not desired, it can be enable and disabled from the properties dialog of the network connection that shall be modified by checking or unchecking the box in from of the MATRIX VISION filter driver entry.

GEV_ManualFilterDriverInstallation_8.PNG
Figure 10: Software installation

USB3 Vision device specific

For USB3 Vision™ device support the following files must be shipped as well:

For 32-bit support:

  • mvUSB3Vision.inf
  • mvUSB3Vision.cat
  • x86/libusbK_x86.dll
  • x86/libusb0_x86.dll
  • x86/libusbK.sys
  • x86/WdfCoInstaller01009.dll

For 64-bit support:

  • mvUSB3Vision.inf
  • mvUSB3Vision.cat
  • x86/libusbK_x86.dll
  • x86/libusb0_x86.dll
  • amd64/libusbK.sys
  • amd64/libusbK.dll
  • amd64/libusb0.dll
  • amd64/WdfCoInstaller01009.dll

The relative folder structure is vital! Installation of the kernel module will fail if this does not match!

GenICam runtime

Apart from that, the GenICam runtime this driver has been linked with must be installed on the target system. The runtime modules are contained in the merge modules belonging to this driver package.

Warning
Please do NOT use the official runtime installer that can be downloaded from www.genicam.org. This has been compiled with a different version of Visual Studio an cannot be used to operate the mvIMPACT Acquire GenTL consumer. Only use the libraries that come with this installation package that are stored under the installation folder in the sub-directory 'Toolkits/GenICam_v<major>_<minor>'

The driver will try to locate the GenICam runtime under /Toolkits/GenICam_v<major>_<minor> thus if you plan to distribute the runtime in a different way you need to setup you environment accordingly as described by the GenICam standard.

Note
MATRIX VISION does NOT recommend this approach. The merge modules provided by MATRIX VISION should be used instead!

mvBlueFOX

  • mvBlueFOX.dll can be copied somewhere in the systems path or into the applications directory

In the standard installation, the file can be found in "$(windir)\system32" (32 bit version) and/or "$(windir)\SysWOW64" (64 bit version).

The files belonging to the kernel driver

  • amvBlueFOX2.inf must be copied into the Windows inf folder
  • mvBlueFOX2.sys must be copied into the Windows drivers folder
  • mvBlueFOX2.cat (signed catalog file for the mvBlueFOX2.sys module)
Attention
The leading 'a' in the file name amvBlueFOX2.inf is NOT a mistake. The reason for this strange file name is that Windows 2000 by default uses the first *.INF-file in an alphabetical search that matches the detected device. As previous versions of this driver package contained 2 versions of the kernel driver, the 'older' versions *.INF-files name was mvBlueFOX.inf and in order to install the newer version of the kernel driver as a default driver the new *.INF-file must be found before the old one as Windows does not list all available drivers but only the first one detected.

The kernel driver files should be installed BEFORE connecting the device to the target system the first time as then Windows automatically detects the driver.

.cat files can't just be copied into some system specific directory. Please refer to the corresponding documentation by Microsoft.

Note
Previous 32 bit versions of this package contained a 2nd version of the kernel driver. This driver is no longer shipped as the performance of this driver was not as good as the performance of the current kernel driver. Files belonging to this version where:
  • mvBlueFOX.inf which must be copied into the Windows inf folder
  • mvBlueFOX.sys which must be copied into the Windows drivers folder

The last version of the installer package containing these files where 1.10.66. This driver will no longer be supported. Please use mvDeviceConfigure to upgrade devices using the old version of the kernel driver.

For information on the different kernel driver versions please see the section GUI -> mvDeviceConfigure -> How to update the kernel driver

In addition to the files mentioned above a Windows driver framework co-installer is needed. This file must be copied into the Windows system (system32) folder. Both the 32-bit and the 64-bit version of the driver need 'WdfCoinstaller01009.dll' for the driver installation. If the co-installer is not present on the target system they must be copied as well.

Experienced users are encouraged to use the Microsoft Driver install Framework for applications to deploy this driver on the target system (http://msdn.microsoft.com/en-us/library/ms790295.aspx). This is the recommended way for installing device drivers.

These files alone will correctly install the mvBlueFOX as a recognized device on the target system. However to access the device from any kind of application the base libraries for the mvIMPACT Acquire interface will be needed as well.

mvVirtualDevice

  • mvVirtualDevice.dll can be copied somewhere in the systems path or into the applications directory

In the standard installation, the file can be found in "$(windir)\system32" (32 bit version) and/or "$(windir)\SysWOW64" (64 bit version).

mvHYPERION

  • mvHYPERION.sys (kernel driver for mvHYPERION-CLb and mvHYPERION-CLe boards)
  • mvHYPERION.inf (installation file for mvHYPERION-CLb and mvHYPERION-CLe boards)
  • mvHYPERION_x86.cat (signed catalog file for the mvHYPERION.sys module on 32 bit Windows™ systems)
  • mvHYPERION_amd64.cat (signed catalog file for the mvHYPERION.sys module on x64 Windows™ systems)
  • mvHYPERION2.sys (kernel driver for mvHYPERION-CLm and mvHYPERION-CLf boards)
  • mvHYPERION2.inf (installation file for mvHYPERION-CLm and mvHYPERION-CLf boards)
  • mvHYPERION2_x86.cat (signed catalog file for the mvHYPERION2.sys module on 32 bit Windows™ systems)
  • mvHYPERION2_amd64.cat (signed catalog file for the mvHYPERION2.sys module on x64 Windows™ systems)
  • mvSAlloc.sys (sub allocator module for any of the mvHYPERION kernal driver modules)
  • mvSerialPort.sys (kernel driver for serial ports provided by any mvHYPERION board)
  • mvSerialPort.inf (installation file for the serial port driver)
  • mvSerialPort_x86.cat (signed catalog file for the mvSerialPort.sys module on 32 bit Windows™ systems)
  • mvSerialPort_amd64.cat (signed catalog file for the mvSerialPort.sys module on x64 Windows™ systems)

These files must somehow be accessible during the installation procedure. Therefore they should be copied to some temporary location or somewhere into the target directory. In order to install the low level hardware driver then the normal driver installation procedures can be used. MATRIX VISION recommends using the mechanisms available in the Microsoft Driver Install Frameworks (DIFx) for installing the kernel driver. Please note that the mvHYPERION driver files are signed via the *.cat file. This will be needed in order to load kernel mode code under Windows Vista x64 and presumably every other new operating system published by the Microsoft company.

These files alone will correctly install any mvHYPERION device currently present in the system as a recognized device. For devices added to the system later on the steps described above MUST be repeated.

The next time you start the system after connecting the devices to the target motherboard the Windows plug and play manager will inform the user about newly unknown hardware devices and will offer to install these devices. You can either cancel this operation OR (if all the files mentioned above are still present on the target system) you can follow the plug and play wizards dialogs and can specify the mvhyperion.inf file when the system asks for it OR (if you have used the DIFx) don't do anything as the system will handle the new device correctly.

For applications, that communicate via the CameraLink serial interface with the camera these files will be needed as well:

  • clsermv.dll (can be copied somewhere in the systems path or into the applications directory)
  • clsermvg.dll (can be copied somewhere in the systems path or into the applications directory)
  • clsermv.h (only needed for CameraLink devices when communication applications via CameraLink shall be compiled on this platform)

To access the device from any kind of application based on the mvIMPACT Acquire interface the base libraries for the mvIMPACT Acquire interface together with the device specific interface library

  • mvHYPERIONfg.dll (can be copied somewhere in the systems path or into the applications directory; in the standard installation, the file can be found in "$(windir)\system32" [32 bit version] and/or "$(windir)\SysWOW64" [64 bit version])

will be needed as well.

mvDELTA, mvSIGMA

  • matrixfg.sys (only needed for Windows NT based systems (NT4, 2000, XP))
  • matrixfg.vxd (only needed for Windows98)
  • mvmm.exe (only needed for Windows98)
  • mvmmrun.bat (only needed for Windows98)
  • oswin32.dll
  • setdma.exe (only needed for Windows NT based systems (NT4, 2000, XP))
  • instinf.exe
  • mvsl32.dll (in the standard installation, the file can be found in "$(windir)\system32" [32 bit version] and/or "$(windir)\SysWOW64" [64 bit version])
  • mvsigma.sys (only needed for Windows NT based systems (NT4, 2000, XP))
  • mvsl32.inf

All these files must somehow be accessible during the installation procedure. Therefore they should be copied to some temporary location or somewhere into the target directory. In order to install the low level hardware driver then the executable instinf.exe must be called with the name of the *.inf file for this driver:

instinf.exe %FOLDER_CONTAINING_THE_DRIVER_FILES/mvsl32.inf

This will start the MATRIX VISION driver installation. However as the system MUST be restarted afterwards, the low level driver installer will schedule a reboot request after this installation. If you want to suppress this and reboot the system after your application has been installed completely call instinf.exe with the parameter /nr:

instinf.exe /nr %FOLDER_CONTAINING_THE_DRIVER_FILES/mvsl32.inf

After executing instinf.exe successfully the temporary files can be removed from the target system again, as the installer creates copies of these files in the correct target directories depending on the version of Windows.

Afterwards every device belonging to this device family will be correctly installed on this system. To verify this you can move to the Windows device manager.

These files alone will correctly install any mvDELTA or mvSIGMA device currently present in the system as a recognized device. For devices added to the system later on the steps described above MUST be repeated.

The next time you start the system after connecting the devices to the target motherboard the Windows plug and play manager will inform the user about newly unknown hardware devices and will offer to install these devices. You can either cancel this operation OR (if all the files mentioned above are still present on the target system) you can follow the plug and play wizards dialogs and can specify the mvsl32.inf file when the system asks for it.

To access the device from any kind of application based on the mvIMPACT Acquire interface the base libraries for the mvIMPACT Acquire interface together with the device specific interface library

  • mvSIGMAfg.dll (can be copied somewhere in the systems path or into the applications directory)

will be needed as well.

mvTITAN, mvGAMMA

  • matrixfg.sys (only needed for Windows NT based systems (NT4, 2000, XP))
  • matrixfg.vxd (only needed for Windows98)
  • mvmm.exe (only needed for Windows98)
  • mvmmrun.bat (only needed for Windows98)
  • oswin32.dll
  • setdma.exe (only needed for Windows NT based systems (NT4, 2000, XP))
  • instinf.exe
  • mvtitan.bin
  • titan.bin
  • mvtitan.dll (in the standard installation, the file can be found in "$(windir)\system32" [32 bit version] and/or "$(windir)\SysWOW64" [64 bit version])
  • mvtitan.sys (only needed for Windows NT based systems (NT4, 2000, XP))
  • mvtitan.inf

All these files must somehow be accessible during the installation procedure. Therefore they should be copied to some temporary location or somewhere into the target directory. In order to install the low level hardware driver then the executable instinf.exe must be called with the name of the *.inf file for this driver:

instinf.exe %FOLDER_CONTAINING_THE_DRIVER_FILES/mvtitan.inf

This will start the MATRIX VISION driver installation. However as the system MUST be restarted afterwards, the low level driver installer will schedule a reboot request after this installation. If you want to suppress this and reboot the system after your application has been installed completely call instinf.exe with the parameter /nr:

instinf.exe /nr %FOLDER_CONTAINING_THE_DRIVER_FILES/mvtitan.inf

After executing instinf.exe successfully the temporary files can be removed from the target system again, as the installer creates copies of these files in the correct target directories depending on the version of Windows.

Afterwards every device belonging to this device family will be correctly installed on this system. To verify this you can move to the Windows device manager.

These files alone will correctly install any mvTITAN or mvGAMMA device currently present in the system as a recognized device. For devices added to the system later on the steps described above MUST be repeated.

The next time you start the system after connecting the devices to the target motherboard the Windows plug and play manager will inform the user about newly unknown hardware devices and will offer to install these devices. You can either cancel this operation OR (if all the files mentioned above are still present on the target system) you can follow the plug and play wizards dialogs and can specify the mvtitan.inf file when the system asks for it.

For applications, that communicate via the CameraLink serial interface with the camera these files will be needed as well:

  • clsermv.dll (can be copied somewhere in the systems path or into the applications directory)
  • clsermvg.dll (can be copied somewhere in the systems path or into the applications directory)
  • clsermv.h (only needed for CameraLink devices when communication applications via CameraLink shall be compiled on this platform)

To access the device from any kind of application based on the mvIMPACT Acquire interface the base libraries for the mvIMPACT Acquire interface together with the device specific interface library

  • mvTITANfg.dll (can be copied somewhere in the systems path or into the applications directory)

will be needed as well.

Migrating Installers

Migrating Installers to mvIMPACT Acquire 2.6.4 or higher

Since mvIMPACT Acquire 2.6.4 and the migration to version 2.4 of the GenICam runtime libraries the embedded *.exe installers for the GenICam runtime are no longer shipped. When migrating custom installers that shall support device drivers depending on the GenICam runtime to mvIMPACT 2.6.4 or greater the GenICamRuntime.msm or GenICamRuntime.x64.msm must be installed instead of the deprecated GenICam_VC80_Win32_i86_v2_3_0.exe or GenICam_VC80_Win64_x64_v2_3_0.exe files. Using these newer merge modules also comes with the advantage, that whenever a new version of the GenICam runtime gets released, this will automatically end up in these files thus custom installers do no longer need to be updated manually.

Migrating Installers to mvIMPACT Acquire 2.8.0 or higher

Since mvIMPACT Acquire 2.8.0 all MATRIX VISION MSI packages are built with VisualStudio 2013, and therefore use the Microsoft_VC120_OpenMP OpenMP runtime and Microsoft_VC120_CRT C/C++ runtime. Earlier versions used to be compiled with Visual Studio 2005, meaning that the VC80 counterparts of OpenMP and C/C++ runtime were used.

Environment variables

When not re-distributing the original mvIMPACT Acquire installation packages an application might need certain environment variables in order to run properly. As not every possible setup needs any of the variables described here, they will not be created by default, but must be added as needed to a custom client installer. This chapter briefly explains all environment variables that are important when deploying a mvIMPACT Acquire based application.

Common enviroment variables

MVIMPACT_ACQUIRE_DIR

The MVIMPACT_ACQUIRE_DIR variable is needed by some applications in order to locate certain files. E.g. mvGigEConfigure will use this variable to locate the GigE Vision capture driver when the tool is used to install the driver. Also the mvDeviceManager library needs it in order to set up some process local environment variables relative to it. Thus without this variable GenICam compliant devices (mvBlueCOUGAR, mvBlueLYNX-M7, mvBlueFOX3) cannot be operated. The variable must point to the root folder of the mvIMPACT Acquire related modules.

MVIMPACT_ACQUIRE_DATA_DIR

The MVIMPACT_ACQUIRE_DATA_DIR variable is needed in order to setup the cache path for GenICam XML files as well as for locating camera descriptions files used by frame grabbers (mvHYPERION, mvTITAN, mvGAMMA, mvSIGMA, mvDELTA). The folder pointed to should provide read AND write access for the user. The required folder structure below this folder should look like this:

  MVIMPACT_ACQUIRE_DATA_DIR
    |- CameraFiles <-- Store camera descriptions here
    |- GenICam     <-- Here pre-processed GenICam files will be stored by the mvIMPACT Acquire runtime. This will speed up initialisation time of devices

mvBlueCOUGAR, mvBlueLYNX-M7, mvBlueFOX3

GENICAM_GENTL32_PATH

The GENICAM_GENTL32_PATH variable is needed for reasons described in the GenICam GenTL specification (see GenICam downloads on the EMVA homepage (http://www.emva.org) to get a copy of the latest version OR use the one provided together with the installation archive you have installed the driver on your development system from). An application should always check whether this variable already exists as other applications might register it as well. Therefore every application shall only APPEND data to existing variables and shall only remove the part that was added without necessarily deleting the full variable. The variable shall contain the path to the folder containing 32-bit versions of *.cti (see above) files (typically located in the bin folder of the folder pointed to by MVIMPACT_ACQUIRE_DIR.

GENICAM_GENTL64_PATH

The GENICAM_GENTL64_PATH variable is needed for the very same reasons as the GENICAM_GENTL32_PATH variable when working with 64-bit applications and has the same requirements.

Linux

mvBlueCOUGAR, mvBlueLYNX-M7, mvBlueFOX3

GenICam runtime

For installation on a Linux-i686 system the files with the -i86 suffix must be extracted. On a Linux-x64_86 system the corresponding packages with the -x64.tgz suffix must be used.

mkdir /opt/genicam
tar xzvf GenICam_Runtime_gcc40_Linux32_i86_v3_0_1.tgz -C /opt/genicam

These variables must be added to the environment, e.g. by placing these lines in the .profile or .bashrc file.

export GENICAM_ROOT_V3_0=/opt/genicam
#if the next line shall work, $HOME/tmp must exist, which it does not by default, thus you might want to create it OR use the global 'tmp' folder
#export GENICAM_CACHE_V3_0=$HOME/tmp
export GENICAM_CACHE_V3_0=/tmp
export GENICAM_LOG_CONFIG_V3_0=$GENICAM_ROOT_V3_0/log/config-unix/DebugLogging.properties

In case you are developing applications using the GenICam SDK add the GenICam include path to your pre-proceccesor options, e.g:

CPPFLAGS += $(GENICAM_ROOT_V3_0)/include
and the GenICam lib resp. lib64 path to your linker options, e.g:
ifeq ($(DEST),$(filter $(DEST),x86_64))
LIB_SUBDIR=bin/Linux64_x64
else
LIB_SUBDIR=bin/Linux32_i86
endif
LDFLAGS += $(GENICAM_ROOT_V3_0)/$(LIB_SUBDIR) -lGCBase_gcc40_v3_0 -lGenApi_gcc40_v3_0 -lMathParser_gcc40_v3_0 -lLog_gcc40_v3_0.'

Finally

$(GENICAM_ROOT_V3_0)/$(LIB_SUBDIR)

must somehow end up in the systems library search path thus you might want to add a file to

/etc/ld.so.conf.d/genicam.conf

containing the following line:

/opt/genicam/bin/Linux32_i86/

OR you can use a different mechanism.

mvBlueLYNX-X

The following packages are pre-installed on the mvBlueLYNX-X and are necessary for correct operation of mvIMPACT Acquire on the camera:

  • libmvPropHandling
  • libmvDeviceManager
  • libmvGenTLConsumer
  • libmvGenTLProducer
  • genicam
  • mv-camera-modules
  • mv-sensor-modules

The following packages and their dependencies are pre-installed on the mvBlueLYNX-X and are necessary for correct operation of the mvIMPACT Acquire sample applications on the camera. They may be removed if the applications are not needed:

  • wxPropView
  • LiveSnapFLTK
  • mvimpact-acquire-apps

The following packages are not pre-installed on the mvBlueLYNX-X and are only needed for additional functions or devices:

  • libmvBlueFOX
  • libmvVirtualDevice
  • libmvV4L

This package and its dependencies are not pre-installed on the mvBlueLYNX-X and are only needed when using the mvIMPACT Acquire .NET wrapper:

  • mvimpact-acquire-dotnet

This package is not pre-installed and contains mvIMPACT Acquire .NET wrapper sample applications:

  • mvimpact-acquire-dotnet-apps

Common

Please have a look at the "Quickstart Linux" chapter of the respective MATRIX VISION device for additional information.