- Note
- This is the recommended way of redistributing the product driver files when the original driver package can't or shall not be used.
If your installation also uses the MSI technology this is the easiest way to distribute all the related files! All merge modules (*.msm-files) that belong to a certain version of Impact Acquire can be downloaded from the Balluff website (https://www.balluff.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 Impact Acquire will use the following extensions:
- *.msm (Will only contain 32-bit kernel code and/or 32-bit user-mode code. This file extension is also used for files that are not bound to a certain bitness like e.g. .NET related files)
- *.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 or the vc_redist files) 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
, mvImageProcessing.dll
and mvPropHandling.dll
mvIMPACT_AcquireBaseLibs.x64.msm
contains the 32-bit AND the 64-bit version of mvDeviceManager.dll
, mvImageProcessing.dll
and mvPropHandling.dll
. Both versions of the 2 libraries will be installed into the appropriate target directories
Common Merge Modules For All Device Families
This following section contains merge modules will be needed by any custom installer that shall support at least one Impact Acquire compliant device family:
- Note
- More merge modules than mentioned in this entire documentation are available! However these are typically not needed on a target system thus will not be discussed here. An example would be the merge module containing the API manuals. So if you are missing something here you would like to integrate in your installation, have a look at the extracted merge modules which are available as a separate download. You might find it there. If not get in touch with us as we might be able to help!
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 as well (see Environment Variables below). |
Name of the merge module | mvIMPACT_Acquire.NET.msm |
Requirement | Only needed if the target application has been written using the .NET Framework API of Impact Acquire. See here for the differences between the .NET Framework and the .NET Standard API. |
Name of the merge module | mvIMPACT_Acquire.NET.Standard.msm |
Requirement | Only needed if the target application has been written using the .NET Standard API of Impact Acquire. See here for the differences between the .NET Framework and the .NET Standard API. |
Name of the 32-bit merge module | mvIMPACT_AcquireJava.msm |
Name of the 64-bit merge module | mvIMPACT_AcquireJava.x64.msm |
Requirement | Only needed if the target application has been written using the Java API of Impact Acquire. |
Name of the merge module | mvIMPACT_AcquirePython.msm |
Requirement | Only needed if the target application has been written using the Python API of Impact Acquire. |
Name of the 32-bit merge module | mvIMPACT_AcquireExecutablesPrerequisites.msm |
Name of the 64-bit merge module | mvIMPACT_AcquireExecutablesPrerequisites.x64.msm |
Requirement | Needed if either mvIMPACT_AcquireTools shall be installed or the mvDisplay.dll is needed by the target application. |
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 ImpactControlCenter or DeviceConfigure shall be available |
This merge module has configuration options: Define a property CREATE_DESKTOP_SHORTCUTS
in your installation and pass the value of this property to the merge module if you want desktop icons to be created for the tools. See Installation Options further down in this chapter for additional details.
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 DirectShow interface to Impact Acquire shall be available. |
Name of the 32-bit merge module | mvIMPACT_Acquire_LabVIEW_Adapter.msm |
Name of the 64-bit merge module | mvIMPACT_Acquire_LabVIEW_Adapter.x64.msm |
Requirement | Only needed if devices shall be operated using the Impact Acquire framework via LabVIEW. |
Name of the 32-bit merge module | mvIMPACT_Acquire_LabVIEW_Adapter_Examples.msm |
Name of the 64-bit merge module | mvIMPACT_Acquire_LabVIEW_Adapter_Examples.x64.msm |
Requirement | Only needed if examples on how to operate devices using the Impact Acquire framework via LabVIEW shall be installed. |
Name of the 32-bit merge module | mvIMPACT_Acquire_LabVIEW_Adapter_Documentation.msm |
Name of the 64-bit merge module | mvIMPACT_Acquire_LabVIEW_Adapter_Documentation.x64.msm |
Requirement | Only needed if documentation on how to operate devices using the Impact Acquire framework via LabVIEW shall be installed. |
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 devices shall be operated using the Impact Acquire framework via VisionPro |
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 |
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 |
GenICam™ GenTL Device Specific
Name of the 32-bit merge module | GenICamGenTLConsumer.msm |
Name of the 64-bit merge module | GenICamGenTLConsumer.x64.msm |
Requirement | Only needed when GenICam™ GenTL compliant devices shall be supported by the target application. |
Name of the 32-bit merge module | GenICamRuntime.msm |
Name of the 64-bit merge module | GenICamRuntime.x64.msm |
Requirement | Only needed when GenICam™ GenTL compliant devices shall be supported by the target application. The GenICam™ runtime needed to operate any device that complies with the GenICam™ standard that shall be used through the Impact Acquire capture framework. |
GigE Vision™ Or USB3 Vision™ Devices
- Note
- This section applies to all GigE Vision™ as well as all USB3 Vision™ devices and all BVS CA-GT, BVS CA-GX (mvBlueCOUGAR-X), BVS CA-SF (mvBlueFOX3) and mvBlueCOUGAR-S devices in particular.
Name of the 32-bit merge module | GenICamGenTLProducer.msm |
Name of the 64-bit merge module | GenICamGenTLProducer.x64.msm |
Requirement | Only needed when GenICam™ GenTL GigE Vision™ or USB3 Vision™ compliant devices shall be supported by the target application. To use the user-mode library as a GenTL Producer you must create or append the corresponding environment variables (see Environment Variables below). |
GigE Vision™ Devices
- Note
- This section applies to all GigE Vision™ and all BVS CA-GT, BVS CA-GX (mvBlueCOUGAR-X(D)) and mvBlueCOUGAR-S devices in particular.
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 the GigEConfigure tool or another appropriate method). See Non-MSI based section about installing the GEV driver for details. |
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 configuration options: Define a property CREATE_DESKTOP_SHORTCUTS
in your installation and 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 parameters to be sent to GigEConfigure when starting the system the next time. See Installation Options further down in this chapter for additional details.
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 BVS CA-GT, BVS CA-GX (mvBlueCOUGAR-X) and mvBlueCOUGAR-S devices shall be available |
USB3 Vision™ Devices
- Note
- This section applies to all USB3 Vision™ and all BVS CA-SF (mvBlueFOX3) devices in particular.
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. |
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 BVS CA-SF (mvBlueFOX3) devices shall be available |
PCIe Devices
- Note
- This section applies to all BVS CA-BN devices.
Name of the 32-bit merge module | So far a 32-bit version of this device driver doesn't exist! |
Name of the 64-bit merge module | BVS_CA-BNDriver.x64.msm |
Requirement | Must be installed to work with BVS CA-BN devices. |
Name of the 32-bit merge module | BVS_CA-BNDocumentation.msm |
Name of the 64-bit merge module | BVS_CA-BNDocumentation.x64.msm |
Requirement | Only needed if technical manuals for BVS CA-BN devices shall be available. Please note that right now a 32-bit driver for BVS CA-BN devices doesn't exist! |
USB2 Devices
- Note
- This section applies to all BVS CA-MLC, BVS CA-IGC and mvBlueFOX devices.
Name of the 32-bit merge module | mvBlueFOXKernelDriver.msm |
Name of the 64-bit merge module | mvBlueFOXKernelDriver.x64.msm |
Requirement | Only needed when BVS CA-MLC, BVS CA-IGC or mvBlueFOX devices shall be supported by the target application. |
Name of the 32-bit merge module | mvBlueFOXDriver.msm |
Name of the 64-bit merge module | mvBlueFOXDriver.x64.msm |
Requirement | Must be installed to work with BVS CA-MLC, BVS CA-IGC or mvBlueFOX USB2 devices |
Name of the 32-bit merge module | mvBlueFOXDocumentation.msm | BVS_CA_UBDocumentation.msm |
Name of the 64-bit merge module | mvBlueFOXDocumentation.x64.msm | BVS_CA_UBDocumentation.x64.msm |
Requirement | Only needed if technical manuals for BVS CA-UB, BVS CA-MLC, BVS CA-IGC or mvBlueFOX devices shall be available |
Virtual Devices
Name of the 32-bit merge module | mvVirtualDeviceDriver.msm |
Name of the 64-bit merge module | mvVirtualDeviceDriver.x64.msm |
Requirement | Only needed when Impact Acquire virtual devices shall be available on the target system |
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 |
Running Customized Impact 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 Impact Acquire MSI packages that contain drivers that shall be installed on the target system
- Embed all the original Impact 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. Since all recent releases of Impact Acquire use burn bundles as their main distribution method and MSI file must be extracted from the bundle before embedding it again. This can be achieved using the dark.exe tool that comes as part of the WiX toolset.
- Embed all the files belonging to the Impact 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 in chapter Installation Options. However when the Impact Acquire 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.
Assuming the MSI version of the Impact Acquire framework shall be extracted from the burn bundle (*.exe) this could be achieved like this:
dark.exe -x <pathForExtractedOutput> ImpactAcquire-x86_64-3.5.0.exe
Now only installing the files needed by an application does require to modify one or more of the following properties when launching the MSI version of the Impact 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 remove 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).
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:
When running the Impact Acquire installer with the following command line
msiexec /i ImpactAcquire-x86_64-3.5.0.msi INSTALLLEVEL=0 ADDLOCAL="ImpactAcquireCommonRuntime,VirtualDeviceCaptureDriver"
results in the following features being pre-selected:
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.
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 ImpactAcquire-x86_64-3.5.0.msi REMOVE="USB2TechnicalManuals,DotNETSupport" /quiet