mvIMPACT Acquire SDK Python
Introduction To The Python Interface Reference

Overview

This is the documentation for developers who want to work with the Python interface of mvIMPACT Acquire.

Note
The Python interface for mvIMPACT Acquire will be shipped as source code that needs to be compiled for your target environment before it can be used! Please read Building And Running Applications Using mvIMPACT Acquire very carefully first!

Every program written using this interface will start in one or the other form with creating an instance of the class mvIMPACT.acquire.DeviceManager. Each application needs at least one instance of this class while devices are being accessed. To find out how to gain access to a certain device look at the detailed description of this class.

Note
Please carefully read the detailed description of the mvIMPACT.acquire.DeviceManager at least once as there are some important things to keep in mind when designing your application! Not doing so might result in severe headache so be warned!

Once a reference to the desired device represented by an instance of the class mvIMPACT.acquire.Device has been obtained every other device related properties or functions can be accessed.

Stuff from the mvIMPACT.acquire.GenICam package is only available when using the mvIMPACT.acquire.dilGenICam interface layout (by setting mvIMPACT.acquire.Device.interfaceLayout to mvIMPACT.acquire.dilGenICam before opening the device. Classes from the mvIMPACT.acquire package might only be available in interface layout mvIMPACT.acquire.dilDeviceSpecific. These classes will state their limited availability in the documentation. Without explicitly setting the interface layout, mvIMPACT.acquire.dilDeviceSpecific will be used by default for all non GenICam devices and all mvBlueCOUGAR-X/XD devices. All other GenICam compliant devices will only support the mvIMPACT.acquire.dilGenICam layout. The C++ or C# example GenICamInterfaceLayout shows how to set the interface layout. All example applications as well as complex GUI applications like wxPropView will either silently or explicitly switch to the mvIMPACT.acquire.dilGenICam interface layout if possible and the user didn't say otherwise so if an application copies code from example code make sure your application is aware of the interface layout and sets it accordingly!
Note
When the last instance to objects of the class mvIMPACT.acquire.DeviceManager is destroyed, every device pointer or handle to interface properties will become invalid automatically, as the destructor of the device manager decrements an internal usage counter, that automatically closes all devices and frees allocated resources, once this usage counter reaches 0. So make sure there is always at least one instance of the device manager present in your application.

Some source code samples how to locate a certain mvIMPACT.acquire.Device also can be found in the detailed description of the class mvIMPACT.acquire.DeviceManager.

Capturing Image Data

To capture an image an instance of the class mvIMPACT.acquire.FunctionInterface must be created. This class can be constructed by passing a pointer to the mvIMPACT.acquire.Device object obtained from the mvIMPACT.acquire.DeviceManager to the class constructor.

The function interface class provides access to most of the devices executable functions, while most of the settings (e.g. the exposure time or the trigger mode) are implemented as properties (see e.g. mvIMPACT.acquire.Property for details).

This is how a continuous acquisition from a user selected device can be achieved:

from __future__ import print_function
import os
import platform
import sys
# import all the stuff from mvIMPACT Acquire into the current scope
from mvIMPACT import acquire
# import all the mvIMPACT Acquire related helper function such as 'conditionalSetProperty' into the current scope
# If you want to use this module in your code feel free to do so but make sure the 'Common' folder resides in a sub-folder of your project then
from mvIMPACT.Common import exampleHelper
# For systems with NO mvDisplay library support
#import ctypes
#import Image
#import numpy
devMgr = acquire.DeviceManager()
pDev = exampleHelper.getDeviceFromUserInput(devMgr)
if pDev == None:
exampleHelper.requestENTERFromUser()
sys.exit(-1)
pDev.open()
print("Please enter the number of buffers to capture followed by [ENTER]: ", end='')
framesToCapture = exampleHelper.getNumberFromUser()
if framesToCapture < 1:
print("Invalid input! Please capture at least one image")
sys.exit(-1)
# The mvDisplay library is only available on Windows systems for now
isDisplayModuleAvailable = platform.system() == "Windows"
if isDisplayModuleAvailable:
display = acquire.ImageDisplayWindow("A window created from Python")
else:
print("The mvIMPACT Acquire display library is not available on this('" + platform.system() + "') system. Consider using the PIL(Python Image Library) and numpy(Numerical Python) packages instead. Have a look at the source code of this application to get an idea how.")
fi = acquire.FunctionInterface(pDev)
statistics = acquire.Statistics(pDev)
while fi.imageRequestSingle() == acquire.DMR_NO_ERROR:
print("Buffer queued")
pPreviousRequest = None
exampleHelper.manuallyStartAcquisitionIfNeeded(pDev, fi)
for i in range(framesToCapture):
requestNr = fi.imageRequestWaitFor(10000)
if fi.isRequestNrValid(requestNr):
pRequest = fi.getRequest(requestNr)
if pRequest.isOK:
if i%100 == 0:
print("Info from " + pDev.serial.read() +
": " + statistics.framesPerSecond.name() + ": " + statistics.framesPerSecond.readS() +
", " + statistics.errorCount.name() + ": " + statistics.errorCount.readS() +
", " + statistics.captureTime_s.name() + ": " + statistics.captureTime_s.readS())
if isDisplayModuleAvailable:
display.GetImageDisplay().SetImage(pRequest)
display.GetImageDisplay().Update()
# For systems with NO mvDisplay library support
#cbuf = (ctypes.c_char * pRequest.imageSize.read()).from_address(int(pRequest.imageData.read()))
#channelType = numpy.uint16 if pRequest.imageChannelBitDepth.read() > 8 else numpy.uint8
#arr = numpy.fromstring(cbuf, dtype = channelType)
#arr.shape = (pRequest.imageHeight.read(), pRequest.imageWidth.read(), pRequest.imageChannelCount.read())
#if channelCount == 1:
# img = Image.fromarray(arr)
#else:
# img = Image.fromarray(arr, 'RGBA' if alpha else 'RGB')
if pPreviousRequest != None:
pPreviousRequest.unlock()
pPreviousRequest = pRequest
fi.imageRequestSingle()
else:
# Please note that slow systems or interface technologies in combination with high resolution sensors
# might need more time to transmit an image than the timeout value which has been passed to imageRequestWaitFor().
# If this is the case simply wait multiple times OR increase the timeout(not recommended as usually not necessary
# and potentially makes the capture thread less responsive) and rebuild this application.
# Once the device is configured for triggered image acquisition and the timeout elapsed before
# the device has been triggered this might happen as well.
# The return code would be -2119(DEV_WAIT_FOR_REQUEST_FAILED) in that case, the documentation will provide
# additional information under TDMR_ERROR in the interface reference.
# If waiting with an infinite timeout(-1) it will be necessary to call 'imageRequestReset' from another thread
# to force 'imageRequestWaitFor' to return when no data is coming from the device/can be captured.
print("imageRequestWaitFor failed (" + str(requestNr) + ", " + acquire.ImpactAcquireException.getErrorCodeAsString(requestNr) + ")")
exampleHelper.manuallyStopAcquisitionIfNeeded(pDev, fi)
exampleHelper.requestENTERFromUser()
Definition: Common/__init__.py:1
Note
The above code uses the Python 3 style print. Because of the line
from __future__ import print_function

This will also work with Python versions starting with version 2.6. For smaller versions of Python the code needs to be changed!

This sample contains everything the user needs to do to continuously capture images including all initialization work and error handling for every source of error one can think of.

Note
A much more specific summary of the available sample applications can be found at the Typical Usage Scenarios And Example Applications page.

Several example applications will provide an even better understanding of the interface.

The 'GenICam' vs. 'DeviceSpecific' Interface Layout chapter will provide more details on how to work with properties.

Important Differences Between The C++ API And The Python API

When you are familiar with the C++ interface of mvIMPACT Acquire already there are some of important differences you need to know! They shall be explained briefly:

Note
We are currently using Python 2.7.2.1 and 3.7.4 to test the API! If you encounter issues with this or other versions of Python you are working with please get in touch!

There are not too many differences between the C++ and the Python API but some of them are important. They shall be explained briefly:

  • Stuff that has already been declared deprecated at the time of publishing the Python API will not be available
  • Enumerations from the C++ interface do NOT declare a new type in Python. Since an enum value in C/C++ is accessible through the enclosing namespace in Python this enum value will become a module wide constant. Accessing the enumeration value will work like in C/C++:
      // C++
      const TInterfaceLayout interfaceLayout = mvIMPACT::acquire::dilGenICam;
      # Python
      interfaceLayout = mvIMPACT.acquire.dilGenICam
    
    However in Python there will be no type TInterfaceLayout. As most of the documentation in this manual has been auto-translated from the C++ API reference there will be some locations where these enum types are still referenced. Valid enumeration values in this case can be derived from the building a matching prefix yourself. Take all the capital letters from the type (EXCLUDING the first 'T') and check the documentation for matching values. For the type TDeviceInterfaceLayout this prefix will be dil!
  • Simple getter functions may be wrapped as Python properties to have a more Python-like interface. So e.g. the function Component::isValid() will be a property (Component.isValid) in Python
  • Code that in C++ resides in sub-namespaces like e.g. mvIMPACT::acquire::GenICam or mvIMPACT::acquire::display will all end up in acquire in Python(this is likely to change in future versions as the reason for this is a SWIG limitation!)
  • Some functions that use Python style built-in names like mvIMPACT::acquire::Component::type() will use a slightly different name in Python like getType in order to avoid confusion
  • As SWIG has trouble to generate proper code when a C++ class has a member function and a static member function with the same name the static versions of these functions have been prefixed with get. So you call
      c = acquire.Component(hObj)
      # member function
      c.visibilityAsString()
      # static member function
      acquire.Component.getVisibilityAsString(acquire.cvGuru)
    

Apart from that if someone is familiar with the C++ interface it shouldn't be too difficult to use mvIMPACT Acquire with Python.

Known Limitations

  • Working with the class mvIMPACT.acquire.PropertyPtr ( mvIMPACT::acquire::PropertyPtr in C++) is of limited use only: The returned values reference native memory addresses so most likely cannot be worked with in the target language. They might however be fed back into another (finally native) function expecting this address.
  • The file stream classes from the GenICam namespace of the C++ interface (e.g. mvIMPACT::acquire::GenICam::IDevFileStream and mvIMPACT::acquire::GenICam::ODevFileStream) are currently not available in Python.
  • The classes from the namespace mvIMPACT::acquire::GenICam::labs (e.g. mvIMPACT::acquire::GenICam::labs::LensControlBase and mvIMPACT::acquire::GenICam::labs::LensControlBirger) as well as the classes from the C++ header file mvIMPACT_acquire_helper.h are currently not available in Python. Doing so would force users to have a C++11 compatible compiler which again would break the build process for Python 2.x.

Further Reading

Acknowledgments

A couple of persons from outside of MATRIX VISION helped during the development of the Python and Java interface for mvIMPACT Acquire. Most notable Kazunari Kudo! Thanks a lot for answering all sorts of questions regarding the use of SWIG as well as Python and for never losing your humor!

For everyone reading this section looking for a Python interface on a raw GenTL level(https://www.emva.org/standards-technology/genicam/genicam-downloads/) check out Kazunaris Harvester project on github: https://github.com/genicam/harvesters

Also thanks to Joakim Åkerblom and Mattias Johannesson from SICK IVP in Linköping, Sweden for answering some of the Java related questions when building this interface!

Legal Notice

End-user License Agreement

MATRIX VISION GmbH - Special Software License Agreement For %mvIMPACT Acquire SDK
camera driver software

This Software License Agreement (Agreement) is a special legal Agreement between you and
MATRIX VISION GmbH (MV) for the MATRIX VISION software product %mvIMPACT Acquire
SDK, which includes computer software and may include associated media, printed materials or
online or electronic documentation. In addition to the provisions herein, the General Terms and
Conditions ("Allgemeine Geschaeftsbedingungen") of MV, current status: November 2015, are
applicable. In case of a conflict, the Agreement herein shall prevail.
The license grant, is only valid, if you accept this Agreement and the General Terms and Conditions
("Allgemeine Geschaeftsbedingungen") of MV, current status: November 2015, and in particular
do not refer to or use General Conditions that in any way are in conflict with or provide
additional conditions not provided herein. You may contact MV to obtain the current version
(http://www.matrix-vision.com/de-agb.html but URL is subject to change).

1. DEFINITIONS

"Software" means all of the contents of the files provided by MV to you under the product name
mvIMPACT Acquire SDK.
"Documentation" means the User's Guides, User's Manuals and Reference Manuals, if any,
accompanying delivery of the Software. Documentation may be delivered in printed and/or electronic
and/or online forms.

2. LICENSE GRANT

The licensed Software and Documentation shall at all times remain the property of MV and/or its
licensors, and you, as licensee, shall have no right, title, or interest in the Software, except as
expressly set forth in this Agreement.

a) Use with MV Hardware

MV grants to you a nonexclusive license to install and use the Software as provided herein on
the applicable hardware.

b) Use with Third Party Hardware as a courtesy

MV grants to you free of charge, as a courtesy a nonexclusive, revocable license to install and
use the Software as provided herein with third party hardware, i.e. hardware not manufactured
or delivered to you by MV under the following conditions:
- Any of your contractual rights related to products acquired by you from MV, in particular but
not limited to delivery, defects, support, updates, documentation, transfer shall not apply.
- MV has neither designed nor tested the Software for its use with Third Party Hardware and,
therefore, you install and use the Software at your own risk.
- The provisions related to Donations (sec. 516 et seq. of the German Civil Code) shall apply
instead of the provisions regarding defects and liability of the General Terms and Conditions
("Allgemeine Geschaeftsbedingungen") of MV and this agreement..

2.3. COMPLIANCE WITH LICENSE

You agree that upon request from MV or MV's authorized representative, you will within thirty
(30) days fully document and certify that use of any and all MV Software at the time of the request
is in conformity with your valid license from MV.

2.4. DOCUMENTATION
You may make and use a reasonable number of copies of any Documentation, provided that
such copies shall be used only for internal purposes and are not to be republished or distributed
(either in hard copy or electronic form) beyond your premises.

2.7 SYSTEM ENVIRONMENT

You are responsible for providing the system environment in accordance with the system requirements
for Software.

2.8 SUBLICENCES

You may sublicense the Software only upon prior written consent by MV. In case such consent
is given by MV to you, you are obliged to sublicense the Software with a license whose terms
and conditions are at least as restrictive as the terms in this Agreement.

3. DESCRIPTION OF OTHER RIGHTS AND LIMITATIONS

3.1. RENTAL

You may not rent, lease or lend the Software.

3.2. SOFTWARE TRANSFER

Except as may be expressly prohibited herein, you may transfer all your rights to use the Software
to a third party provided that (1) you also transfer all your obligations out of this Agreement,
the Software and all other software bundled with the Software, including all copies, updates
and prior versions, to such third party; (2) you retain no copies, including backups and
copies stored on a computer; and (3) the receiving party accepts the terms and conditions upon
which you legally obtained a license to the Software.

3.3. BACKUP COPY

You may make a reasonable number of copies of the Software to backup devices such as hard
disks, optical media, or tape and a reasonable number of physical DVD media backup copies of
the Software solely to replace the original copy provided to you if the original copy is damaged
or destroyed. All rights not specifically granted to you herein are retained by MV.

3.4. LIMITATION ON REVERSE ENGINEERING, DECOMPILATION, DISASSEMBLY AND

MODIFICATION
You may not reverse engineer, decompile, disassemble or otherwise attempt to discover the
source code of the Software, except to the extent you may be expressly and mandatorily permitted
under applicable law, it is essential to do so in order to achieve interoperability of the Software
with another software program, and you have first requested MV to provide the information
necessary to achieve such interoperability and MV has not made such information available.
Any information supplied by MV or obtained by you, as permitted hereunder, may only be used
by you for the purpose described herein and may not be disclosed to any third party.
You may not modify, adapt, or otherwise alter the Software except as expressly permitted herein.
In particular, you may not attempt to remove the license protection mechanism from the
Software.

3.5. TRADEMARKS

This Agreement does not grant you any rights in connection with any trademarks or service
marks of MV or of MV's suppliers. You may not use the name, trademarks, or service marks of
MV or of MV's suppliers in any advertising, promotional literature or any other material, whether
in written, electronic, or other form, distributed to any third party, except as expressly permitted
by MV.

3.6. UPGRADES

If the Software is an upgrade to a previous version of the Software, any obligation MV may have
to support the previous version of the Software may be ended within one (1) year upon availability
of the upgrade.

3.7. LICENSE FOR THIRD PARTY SOFTWARE

MV has been granted licenses to distribute certain third party software. As a condition of those
licenses, MV is required to distribute the software subject to specific terms and conditions,
which may be different from or additional to those contained herein for MV's Software. You understand
and agree that acceptance of this Agreement also confirms your acceptance of the
applicable provisions for use, including the restrictions on use, of such third party software. You
may contact MV to obtain the current applicable provisions. Any breach of the applicable provisions
of any third party's license terms shall also be considered a material breach of this
Agreement.

3.8. TERMINATION

Without prejudice to any other rights, MV may terminate this Agreement for good cause if you
fail to comply with the terms and conditions of this Agreement. In such event, you must destroy
all copies of the Software and all of its components.

4. INTELLECTUAL PROPERTY RIGHTS

The Software is protected by copyright and other intellectual property laws and treaties. All title
and intellectual property rights in and to the Software, including, but not limited to, any digital
images or example programs, incorporated into the Software, the Documentation and any copies
of the Software are owned by MV or its suppliers. The Software is licensed, not sold.

5. RIGHTS IN CASE OF DEFECTS

In addition to the provisions regarding the rights in case of defects of the General Terms and
Conditions ("Allgemeine Geschaeftsbedingungen") of MV the following provisions shall be applicable:

5.1 Defects must be notified in writing and, unless it is an unreasonable burden, with a comprehensible
description of the error symptoms, as far as possible evidenced by written recordings,
hard copies or other documents demonstrating the defects. The notification of the defect should
enable the reproduction of the error.

5.2 Subsequent performance may also take place through the delivery or installation of a new
program version or a reasonable work-around of the Software. If the defect does not or not substantially
impair the functionality, then MV is entitled, to remedy the defect by delivering a new
version or an update within a reasonable time as part of its version, update and upgrade planning.

9. HAZARDOUS USES

The Software is not designed and/or intended for use in connection with any application requiring
fail-safe performance such as the operation of nuclear power facilities, air traffic control or
navigation systems, weapon control systems, life support systems, or any other system whose
failure could lead to death, personal injury, or severe physical or environmental damage. You
agree that MV will have no responsibility of any nature, and you are solely responsible for any
expense, loss, injury or damage incurred as a result of such use of the Software.

10. ENTIRE AGREEMENT

This Agreement contains the entire, final and exclusive understanding between MV and you,
and may not be modified or amended except by written instrument, executed by authorized representatives
of MV and you. Amendments or additions to this Agreement must be made in writing
to be effective. This shall also apply to amendments of this written form requirement.

11. APPLICABLE LAW

This Agreement is governed by the laws of Germany except for the UN Sales Convention (United
Nations Convention on Contracts for the International Sale of Goods dated 11.4.1980).

12. LEGAL VENUE

The courts in Stuttgart/Germany shall have exclusive jurisdiction over all disputes under and in
connection with this Agreement, provided that you are a merchant within the meaning of the
German Commercial Code or if upon the commencement of legal proceedings, you have no
place of business or ordinary residence in the Federal Republic of Germany.

13. SEVERABILITY

If any provisions of this license is held to be illegal, invalid or enforceable for any reason, then
such provision will be enforced to the maximum extent permissible and the remainder of the
provisions of this license will remain in full force and effect.

Status: November 2015

Used Third Party Software

This SDK and its underlying libraries and drivers as well as some of the applications shipped with the mvIMPACT Acquire packages make use of a couple of third party software packages that come with various licenses. This section is meant to list all these packages and to give credit to those whose code helped in the creation of the mvIMPACT Acquire SDK. Copies of the original license files that have been shipped with the third party packages will also be part of the installation when the third party software is also needed for using certain mvIMPACT Acquire features. The corresponding license file will be located in a sub-folder of the Toolkits folder of the installation directory.

AForge.NET

At least one .NET example (The C# version of the SmartFrameRecall application) makes use of the AForge.NET library (http://www.aforgenet.com/) for Blob detection. This library was originally developed by Andrew Kirillov and there have been various other contributors. The framework is shipped under LGPL v3 and the full license text can be found in various places on the net.

Used version

Since version 2.18.0 of mvIMPACT Acquire the AForge.NET library is used for the example application mentioned above.

mvIMPACT Acquire versionAForge.NET
since 2.18.02.2.5 (Jul 17 2013)

Artistic Style

The C/C++ code of mvIMPACT Acquire is formatted using Artistic Style (http://astyle.sourceforge.net/).

Artistic Style is a source code indenter, formatter, and beautifier for the C, C++, C++/CLI, Objective-C, C# and Java programming languages.

Artistic Style License

Artistic Style may be used and distributed under the MIT license. The MIT is a permissive license with a minimum of restrictions on software use. It is compatible with the GNU General Public License (GPL) and most other licenses.

The main points of the terms of the license are:

- The source code and executables can be used in free or commercial applications.
- The source code can be modified to create derivative works.
- The source code does NOT have to be made available in the derivative works.
- No guarantee or warranty is provided, the software is provided "as-is".

In addition to the license, the documentation accompanying Artistic Style may be distributed or republished without the author's consent.
Note
Artistic Style is only used internally and is NOT part of any shipped distribution of mvIMPACT Acquire!

Used versions

The following table lists which version of mvIMPACT Acquire was using which version of Artistic Style.

mvIMPACT Acquire versionArtistic Style
< 2.22.12.x
since 2.22.13.0
since 2.25.03.1 (Jan 2018)

CMake

Makefiles and project files for building the C, C++ and C# code of mvIMPACT Acquire on various platforms are generated using CMake (https://cmake.org/)

CMake License

CMake comes with the following copyright:

CMake - Cross Platform Makefile Generator
Copyright 2000-2021 Kitware, Inc. and Contributors
All rights reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:

* Redistributions of source code must retain the above copyright
  notice, this list of conditions and the following disclaimer.

* Redistributions in binary form must reproduce the above copyright
  notice, this list of conditions and the following disclaimer in the
  documentation and/or other materials provided with the distribution.

* Neither the name of Kitware, Inc. nor the names of Contributors
  may be used to endorse or promote products derived from this
  software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

------------------------------------------------------------------------------

The following individuals and institutions are among the Contributors:

* Aaron C. Meadows <cmake@shadowguarddev.com>
* Adriaan de Groot <groot@kde.org>
* Aleksey Avdeev <solo@altlinux.ru>
* Alexander Neundorf <neundorf@kde.org>
* Alexander Smorkalov <alexander.smorkalov@itseez.com>
* Alexey Sokolov <sokolov@google.com>
* Alex Merry <alex.merry@kde.org>
* Alex Turbov <i.zaufi@gmail.com>
* Andreas Pakulat <apaku@gmx.de>
* Andreas Schneider <asn@cryptomilk.org>
* André Rigland Brodtkorb <Andre.Brodtkorb@ifi.uio.no>
* Axel Huebl, Helmholtz-Zentrum Dresden - Rossendorf
* Benjamin Eikel
* Bjoern Ricks <bjoern.ricks@gmail.com>
* Brad Hards <bradh@kde.org>
* Christopher Harvey
* Christoph Grüninger <foss@grueninger.de>
* Clement Creusot <creusot@cs.york.ac.uk>
* Daniel Blezek <blezek@gmail.com>
* Daniel Pfeifer <daniel@pfeifer-mail.de>
* Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
* Eran Ifrah <eran.ifrah@gmail.com>
* Esben Mose Hansen, Ange Optimization ApS
* Geoffrey Viola <geoffrey.viola@asirobots.com>
* Google Inc
* Gregor Jasny
* Helio Chissini de Castro <helio@kde.org>
* Ilya Lavrenov <ilya.lavrenov@itseez.com>
* Insight Software Consortium <insightsoftwareconsortium.org>
* Jan Woetzel
* Julien Schueller
* Kelly Thompson <kgt@lanl.gov>
* Konstantin Podsvirov <konstantin@podsvirov.pro>
* Laurent Montel <montel@kde.org>
* Mario Bensi <mbensi@ipsquad.net>
* Martin Graesslin <mgraesslin@kde.org>
* Mathieu Malaterre <mathieu.malaterre@gmail.com>
* Matthaeus G. Chajdas
* Matthias Kretz <kretz@kde.org>
* Matthias Maennich <matthias@maennich.net>
* Michael Hirsch, Ph.D. <www.scivision.co>
* Michael Stuermer
* Miguel A. Figueroa-Villanueva
* Mike Jackson
* Mike McQuaid <mike@mikemcquaid.com>
* Nicolas Bock <nicolasbock@gmail.com>
* Nicolas Despres <nicolas.despres@gmail.com>
* Nikita Krupen'ko <krnekit@gmail.com>
* NVIDIA Corporation <www.nvidia.com>
* OpenGamma Ltd. <opengamma.com>
* Patrick Stotko <stotko@cs.uni-bonn.de>
* Per Oyvind Karlsen <peroyvind@mandriva.org>
* Peter Collingbourne <peter@pcc.me.uk>
* Petr Gotthard <gotthard@honeywell.com>
* Philip Lowman <philip@yhbt.com>
* Philippe Proulx <pproulx@efficios.com>
* Raffi Enficiaud, Max Planck Society
* Raumfeld <raumfeld.com>
* Roger Leigh <rleigh@codelibre.net>
* Rolf Eike Beer <eike@sf-mail.de>
* Roman Donchenko <roman.donchenko@itseez.com>
* Roman Kharitonov <roman.kharitonov@itseez.com>
* Ruslan Baratov
* Sebastian Holtermann <sebholt@xwmw.org>
* Stephen Kelly <steveire@gmail.com>
* Sylvain Joubert <joubert.sy@gmail.com>
* The Qt Company Ltd.
* Thomas Sondergaard <ts@medical-insight.com>
* Tobias Hunger <tobias.hunger@qt.io>
* Todd Gamblin <tgamblin@llnl.gov>
* Tristan Carel
* University of Dundee
* Vadim Zhukov
* Will Dicharry <wdicharry@stellarscience.com>

See version control history for details of individual contributions.

The above copyright and license notice applies to distributions of
CMake in source and binary form.  Third-party software packages supplied
with CMake under compatible licenses provide their own copyright notices
documented in corresponding subdirectories or source files.

------------------------------------------------------------------------------

CMake was initially developed by Kitware with the following sponsorship:

 * National Library of Medicine at the National Institutes of Health
   as part of the Insight Segmentation and Registration Toolkit (ITK).

 * US National Labs (Los Alamos, Livermore, Sandia) ASC Parallel
   Visualization Initiative.

 * National Alliance for Medical Image Computing (NAMIC) is funded by the
   National Institutes of Health through the NIH Roadmap for Medical Research,
   Grant U54 EB005149.

 * Kitware, Inc.

Used versions

The following tables list which version of mvIMPACT Acquire has been generated with which version of CMake

mvIMPACT Acquire versionCMake version (Windows)CMake version (Linux)
since 2.27.03.10.2-
since 2.29.13.6.3
since 2.31.03.13.2
since 2.37.03.16.4
since 2.44.03.20.2 (Apr 29 2021)

CppUnit

The C and C++ code is tested internally using the CppUnit (http://cppunit.sourceforge.net) framework, which come under GNU LESSER GENERAL PUBLIC LICENSE Version 2.1, February 1999.

Note
CppUnit is only used internally and is NOT part of any shipped distribution of mvIMPACT Acquire!

Used version

mvIMPACT Acquire versionCppUnit version
since ancient times1.12.1 (Feb 07 2008)

Crypto++

The Crypto++ (https://cryptopp.com/) Library comes with the following license:

Compilation Copyright (c) 1995-2019 by Wei Dai. All rights reserved.
This copyright applies only to this software distribution package
as a compilation, and does not imply a copyright on any particular
file in the package.

All individual files in this compilation are placed in the public domain by
Wei Dai and other contributors.

I would like to thank the following authors for placing their works into
the public domain:

Joan Daemen - 3way.cpp
Leonard Janke - cast.cpp, seal.cpp
Steve Reid - cast.cpp
Phil Karn - des.cpp
Andrew M. Kuchling - md2.cpp, md4.cpp
Colin Plumb - md5.cpp
Seal Woods - rc6.cpp
Chris Morgan - rijndael.cpp
Paulo Baretto - rijndael.cpp, skipjack.cpp, square.cpp
Richard De Moliner - safer.cpp
Matthew Skala - twofish.cpp
Kevin Springle - camellia.cpp, shacal2.cpp, ttmac.cpp, whrlpool.cpp, ripemd.cpp
Ronny Van Keer - sha3.cpp
Aumasson, Neves, Wilcox-O'Hearn and Winnerlein - blake2.cpp, blake2b_simd.cpp, blake2s_simd.cpp
Aaram Yun - aria.cpp, aria_simd.cpp
Han Lulu, Markku-Juhani O. Saarinen - sm4.cpp sm4_simd.cpp
Daniel J. Bernstein, Jack Lloyd - chacha.cpp, chacha_simd.cpp, chacha_avx.cpp
Andrew Moon - ed25519, x25519, donna_32.cpp, donna_64.cpp, donna_sse.cpp

The Crypto++ Library uses portions of Andy Polyakov's CRYPTOGAMS for Poly1305
scalar multiplication, aes_armv4.S, sha1_armv4.S and sha256_armv4.S. CRYPTOGAMS
is dual licensed with a permissive BSD-style license. The CRYPTOGAMS license is
reproduced below.

The Crypto++ Library uses portions of Jack Lloyd's Botan for ChaCha SSE2 and
AVX. Botan placed the code in public domain for Crypto++ to use.

The Crypto++ Library (as a compilation) is currently licensed under the Boost
Software License 1.0 (http://www.boost.org/users/license.html).

Boost Software License - Version 1.0 - August 17th, 2003

Permission is hereby granted, free of charge, to any person or organization
obtaining a copy of the software and accompanying documentation covered by
this license (the "Software") to use, reproduce, display, distribute,
execute, and transmit the Software, and to prepare derivative works of the
Software, and to permit third-parties to whom the Software is furnished to
do so, all subject to the following:

The copyright notices in the Software and this entire statement, including
the above license grant, this restriction and the following disclaimer,
must be included in all copies of the Software, in whole or in part, and
all derivative works of the Software, unless such copies or derivative
works are solely in the form of machine-executable object code generated by
a source language processor.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
DEALINGS IN THE SOFTWARE.

CRYPTOGAMS License

Copyright (c) 2006-2017, CRYPTOGAMS by <appro@openssl.org>
All rights reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:

* Redistributions of source code must retain copyright notices,
  this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above
  copyright notice, this list of conditions and the following
  disclaimer in the documentation and/or other materials
  provided with the distribution.
* Neither the name of the CRYPTOGAMS nor the names of its copyright
  holder and contributors may be used to endorse or promote products
  derived from this software without specific prior written permission.

Used version

Starting with version 2.41.0, cryptographic functionality is implemented with version 8.3.0 of the CryptoPP library.

mvIMPACT Acquire versionCrypto++ version
since 2.41.08.3.0 (Dec 20 2020)

Doxygen

All the documentation belonging to the mvIMPACT Acquire framework including this manual has been generated using Doxygen (http://www.doxygen.org/) written by Dimitri van Heesch.

Doxygen license

Copyright © 1997-2021 by Dimitri van Heesch.

Permission to use, copy, modify, and distribute this software and its documentation under the terms of the GNU General Public License is hereby granted. No representations are made about the suitability of this software for any purpose. It is provided "as is" without express or implied warranty. See the GNU General Public License for more details.

Documents produced by Doxygen are derivative works derived from the input used in their production; they are not affected by this license.

Used versions

The following table lists which version of mvIMPACT Acquire does use which version of Doxygen

mvIMPACT Acquire versionDoxygen version
since 1.12.501.5.8
since 2.2.01.8.2
since 2.3.11.8.3
since 2.5.191.8.6
since 2.11.71.8.8
since 2.18.01.8.12
since 2.27.01.8.14
since 2.31.01.8.15
since 2.37.01.8.17
since 2.44.01.9.1 (Jan 08 2021)

EPCS

The algorithm for updating the firmware of the mvHYPERION boards used e.g. by mvDeviceConfigure uses a modified version of code originally written by

Scott McNutt smcnu.nosp@m.tt@p.nosp@m.syent.nosp@m..com. This code comes under the GPL license and therefore the modified version of this code as well as the code using it comes either as part of the installation package or can be obtained by contacting MATRIX VISION GmbH (http://www.matrix-vision.com). More information about GPL can be found here: http://en.wikipedia.org/wiki/GNU_General_Public_License

Used version

The original version of this code dates back into the year 2004 but since then has been modified quite a lot by MATRIX VISION.

Expat

Expat is used to parse XML strings within the SDK.

Expat Copyright

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files
(the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify,
merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR
IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Used versions

The following tables list which version of mvIMPACT Acquire is linked with which version of the expat library.

mvIMPACT Acquire versionexpat version
WindowsLinux x86/x86_64Linux ARMhf/sfLinux ARM64
up to 1.7.61.95.80.5.01.5.21.6.0
since 1.8.02.0.0
since 2.40.02.2.9 (Sep 26 2019)

FFmpeg

The example ContinuousCaptureFFmpeg as well as the VideoStream related API is based on the functionality provided by the FFmpeg (https://ffmpeg.org) project, which comes under GNU LESSER GENERAL PUBLIC LICENSE Version 2.1, March 2020. While the ContinuousCaptureFFmpeg example will be available for C++11 compatible compilers only it can also serve as a good start for users of other programming languages, especially C. The example code shows how to combine the mvIMPACT Acquire API with the FFmpeg header files and function. The VideoStream based interface added to mvIMPACT Acquire in version 2.39.0 on the other hand allows to use the FFmpeg features through the mvIMPACT Acquire API so only the FFmpeg runtime libraries need to be available on the host system but the FFmpeg SDK is not needed. As a consequence only a fraction of the FFmpeg project features can be used but the general setup is a lot easier and usually video compression is what you will be looking for when writing an application for a device capturing image data. If you are missing a feature please contact the MATRIX VISION support team.

However, FFmpeg incorporates several optional parts and optimizations that are covered by the GNU General Public License (GPL) version 2 or later. If those parts get used the GPL applies to all of FFmpeg. See http://ffmpeg.org/legal.html to find out how this might affect your application! Because of these licenses mvIMPACT Acquire is NOT shipped together with the FFmpeg libraries needed to use the VideoStream related API! To use it a suitable copy of the FFmpeg libraries must be obtained elsewhere!

To find out how to make use of the FFmpeg library in your application have a look at the documentation of the VideoStream class for the programming language you are working with or the functions accepting the HDMR_VIDEO_STREAM data type if you are working with the C API.

Supported versions

mvIMPACT Acquire versionFFmpeg versions that could be used
since 2.39.04.x

FreeImage

The mvVirtualDevice driver is capable of connecting to the FreeImage library (http://freeimage.sourceforge.net/). This allows the mvVirtualDevice driver to capture various image files like JPG or PNG from a user defined directory. See Use Cases section of the mvVirtualDevice manual for details. FreeImage is used under the following license:

FreeImage free license

FreeImage Public License - Version 1.0

1. Definitions.

1.1. "Contributor" means each entity that creates or contributes to the creation of Modifications.

1.2. "Contributor Version" means the combination of the Original Code, prior Modifications used by a Contributor, and the Modifications made by that particular Contributor.

1.3. "Covered Code" means the Original Code or Modifications or the combination of the Original Code and Modifications, in each case including portions thereof.

1.4. "Electronic Distribution Mechanism" means a mechanism generally accepted in the software development community for the electronic transfer of data.

1.5. "Executable" means Covered Code in any form other than Source Code.

1.6. "Initial Developer" means the individual or entity identified as the Initial Developer in the Source Code notice required by Exhibit A.

1.7. "Larger Work" means a work which combines Covered Code or portions thereof with code not governed by the terms of this License.

1.8. "License" means this document.

1.9. "Modifications" means any addition to or deletion from the substance or structure of either the Original Code or any previous Modifications. When Covered Code is released as a series of files, a
Modification is:

A. Any addition to or deletion from the contents of a file containing Original Code or previous Modifications.

B. Any new file that contains any part of the Original Code or previous Modifications.

1.10. "Original Code" means Source Code of computer software code which is described in the Source Code notice required by Exhibit A as Original Code, and which, at the time of its release under this License is not already Covered Code governed by this License.

1.11. "Source Code" means the preferred form of the Covered Code for making modifications to it, including all modules it contains, plus any associated interface definition files, scripts used to control
compilation and installation of an Executable, or a list of source code differential comparisons against either the Original Code or another well known, available Covered Code of the Contributor's choice. The Source Code can be in a compressed or archival form, provided the appropriate decompression or de-archiving software is widely available for no charge.

1.12. "You" means an individual or a legal entity exercising rights under, and complying with all of the terms of, this License or a future version of this License issued under Section 6.1. For legal entities, "You" includes any entity which controls, is controlled by, or is under common control with You. For purposes of this definition, "control" means (a) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or otherwise, or (b) ownership of fifty percent (50%) or more of the outstanding shares or beneficial ownership of such entity.

2. Source Code License.

2.1. The Initial Developer Grant.
The Initial Developer hereby grants You a world-wide, royalty-free, non-exclusive license, subject to third party intellectual property claims:

(a) to use, reproduce, modify, display, perform, sublicense and distribute the Original Code (or portions thereof) with or without Modifications, or as part of a Larger Work; and

(b) under patents now or hereafter owned or controlled by Initial Developer, to make, have made, use and sell ("Utilize") the Original Code (or portions thereof), but solely to the extent that
any such patent is reasonably necessary to enable You to Utilize the Original Code (or portions thereof) and not to any greater extent that may be necessary to Utilize further Modifications or
combinations.

2.2. Contributor Grant.
Each Contributor hereby grants You a world-wide, royalty-free, non-exclusive license, subject to third party intellectual property claims:

(a) to use, reproduce, modify, display, perform, sublicense and distribute the Modifications created by such Contributor (or portions thereof) either on an unmodified basis, with other Modifications, as Covered Code or as part of a Larger Work; and

(b) under patents now or hereafter owned or controlled by Contributor, to Utilize the Contributor Version (or portions thereof), but solely to the extent that any such patent is reasonably necessary to enable You to Utilize the Contributor Version (or portions thereof), and not to any greater extent that
may be necessary to Utilize further Modifications or combinations.

3. Distribution Obligations.

3.1. Application of License.
The Modifications which You create or to which You contribute are governed by the terms of this License, including without limitation Section 2.2. The Source Code version of Covered Code may be distributed only under the terms of this License or a future version of this License released under Section 6.1, and You must include a copy of this License with every copy of the Source Code You distribute. You may not offer or impose any terms on any Source Code version that alters or
restricts the applicable version of this License or the recipients' rights hereunder. However, You may include an additional document offering the additional rights described in Section 3.5.

3.2. Availability of Source Code.
Any Modification which You create or to which You contribute must be made available in Source Code form under the terms of this License either on the same media as an Executable version or via an accepted Electronic Distribution Mechanism to anyone to whom you made an Executable version available; and if made available via Electronic Distribution Mechanism, must remain available for at least twelve (12) months after the date it initially became available, or at least six (6) months after a subsequent version of that particular Modification has been made available to such recipients. You are responsible for ensuring that the Source Code version remains available even if the Electronic Distribution Mechanism is maintained by a third party.

3.3. Description of Modifications.
You must cause all Covered Code to which you contribute to contain a file documenting the changes You made to create that Covered Code and the date of any change. You must include a prominent statement that the Modification is derived, directly or indirectly, from Original Code provided by the Initial Developer and including the name of the Initial Developer in (a) the Source Code, and (b) in any notice in an Executable version or related documentation in which You describe the origin or ownership of the Covered Code.

3.4. Intellectual Property Matters

(a) Third Party Claims.
If You have knowledge that a party claims an intellectual property right in particular functionality or code (or its utilization under this License), you must include a text file with the source code distribution titled "LEGAL" which describes the claim and the party making the claim in sufficient detail that a recipient will know whom to contact. If you obtain such knowledge after You make Your Modification available as described in Section 3.2, You shall promptly modify the LEGAL file in all copies You make
available thereafter and shall take other steps (such as notifying appropriate mailing lists or newsgroups) reasonably calculated to inform those who received the Covered Code that new knowledge has been obtained.

(b) Contributor APIs.
If Your Modification is an application programming interface and You own or control patents which are reasonably necessary to implement that API, you must also include this information in the LEGAL file.

3.5. Required Notices.
You must duplicate the notice in Exhibit A in each file of the Source Code, and this License in any documentation for the Source Code, where You describe recipients' rights relating to Covered Code. If You created one or more Modification(s), You may add your name as a Contributor to the notice described in Exhibit A. If it is not possible to put such notice in a particular Source Code file due to its
structure, then you must include such notice in a location (such as a relevant directory file) where a user would be likely to look for such a notice. You may choose to offer, and to charge a fee for, warranty, support, indemnity or liability obligations to one or more recipients of Covered Code. However, You may do so only on Your own behalf, and not on behalf of the Initial Developer or any Contributor. You must make it absolutely clear than any such warranty, support, indemnity or
liability obligation is offered by You alone, and You hereby agree to indemnify the Initial Developer and every Contributor for any liability incurred by the Initial Developer or such Contributor as a result of
warranty, support, indemnity or liability terms You offer.

3.6. Distribution of Executable Versions.
You may distribute Covered Code in Executable form only if the requirements of Section 3.1-3.5 have been met for that Covered Code, and if You include a notice stating that the Source Code version of the Covered Code is available under the terms of this License, including a description of how and where You have fulfilled the obligations of Section 3.2. The notice must be conspicuously included in any notice in an Executable version, related documentation or collateral in which You
describe recipients' rights relating to the Covered Code. You may distribute the Executable version of Covered Code under a license of Your choice, which may contain terms different from this License,
provided that You are in compliance with the terms of this License and that the license for the Executable version does not attempt to limit or alter the recipient's rights in the Source Code version from the rights set forth in this License. If You distribute the Executable version under a different license You must make it absolutely clear that any terms which differ from this License are offered by You alone, not by the Initial Developer or any Contributor. You hereby agree to indemnify the Initial Developer and every Contributor for any liability incurred by the Initial Developer or such Contributor as a result of any such terms You offer.

3.7. Larger Works.
You may create a Larger Work by combining Covered Code with other code not governed by the terms of this License and distribute the Larger Work as a single product. In such a case, You must make sure the requirements of this License are fulfilled for the Covered Code.

4. Inability to Comply Due to Statute or Regulation.

If it is impossible for You to comply with any of the terms of this License with respect to some or all of the Covered Code due to statute or regulation then You must: (a) comply with the terms of this License to the maximum extent possible; and (b) describe the limitations and the code they affect. Such description must be included in the LEGAL file described in Section 3.4 and must be included with all distributions of the Source Code. Except to the extent prohibited by statute or regulation, such description must be sufficiently detailed for a recipient of ordinary skill to be able to understand it.

5. Application of this License.

This License applies to code to which the Initial Developer has attached the notice in Exhibit A, and to related Covered Code.

6. Versions of the License.

6.1. New Versions.
Floris van den Berg may publish revised and/or new versions of the License from time to time. Each version will be given a distinguishing version number.

6.2. Effect of New Versions.
Once Covered Code has been published under a particular version of the License, You may always continue to use it under the terms of that version. You may also choose to use such Covered Code under the terms of any subsequent version of the License published by Floris van den Berg
No one other than Floris van den Berg has the right to modify the terms applicable to Covered Code created under this License.

6.3. Derivative Works.
If you create or use a modified version of this License (which you may only do in order to apply it to code which is not already Covered Code governed by this License), you must (a) rename Your license so that the phrases "FreeImage", `FreeImage Public License", "FIPL", or any confusingly similar phrase do not appear anywhere in your license and (b) otherwise make it clear that your version of the license contains terms which differ from the FreeImage Public License. (Filling in the name of the Initial Developer, Original Code or Contributor in the notice described in Exhibit A shall not of themselves be deemed to be modifications of this License.)

7. DISCLAIMER OF WARRANTY.

COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT THE COVERED CODE IS FREE OF DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE COVERED CODE IS WITH YOU. SHOULD ANY COVERED CODE PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER.

8. TERMINATION.

This License and the rights granted hereunder will terminate automatically if You fail to comply with terms herein and fail to cure such breach within 30 days of becoming aware of the breach. All sublicenses to the Covered Code which are properly granted shall survive any termination of this License. Provisions which, by their nature, must remain in effect beyond the termination of this License shall survive.

9. LIMITATION OF LIABILITY.

UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL THE INITIAL DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED CODE, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO YOU OR ANY OTHER PERSON FOR ANY INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY RESULTING FROM SUCH PARTY'S NEGLIGENCE TO THE EXTENT APPLICABLE LAW PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE
EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THAT EXCLUSION AND LIMITATION MAY NOT APPLY TO YOU.

10. U.S. GOVERNMENT END USERS.

The Covered Code is a "commercial item," as that term is defined in 48 C.F.R. 2.101 (Oct. 1995), consisting of "commercial computer software" and "commercial computer software documentation," as such terms are used in 48 C.F.R. 12.212 (Sept. 1995). Consistent with 48 C.F.R. 12.212 and 48 C.F.R. 227.7202-1 through 227.7202-4 (June 1995), all U.S. Government End Users acquire Covered Code with only those rights set forth herein.

11. MISCELLANEOUS.

This License represents the complete agreement concerning subject matter hereof. If any provision of this License is held to be unenforceable, such provision shall be reformed only to the extent necessary to make it enforceable. This License shall be governed by Dutch law provisions (except to the extent applicable law, if any, provides otherwise), excluding its conflict-of-law provisions. With respect to disputes in which at least one party is a citizen of, or an entity chartered or registered to do business in, the Netherlands: (a) unless otherwise agreed in writing, all disputes relating to this License (excepting any dispute relating to intellectual property rights) shall be subject to final and binding arbitration, with the losing party paying all costs of arbitration; (b) any arbitration relating to this Agreement shall be held in Almelo, The Netherlands; and (c) any litigation relating to this Agreement shall be subject to the jurisdiction of the court of Almelo, The Netherlands with the losing party responsible for costs, including without limitation, court costs and reasonable attorneys fees and expenses. Any law or regulation which provides that the language of a contract shall be construed against the drafter shall not apply to this License.

12. RESPONSIBILITY FOR CLAIMS.

Except in cases where another Contributor has failed to comply with Section 3.4, You are responsible for damages arising, directly or indirectly, out of Your utilization of rights under this License, based
on the number of copies of Covered Code you made available, the revenues you received from utilizing such rights, and other relevant factors. You agree to work with affected parties to distribute
responsibility on an equitable basis.

EXHIBIT A.

"The contents of this file are subject to the FreeImage Public License Version 1.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://home.wxs.nl/~flvdberg/freeimage-license.txt

Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. 

Used version

mvIMPACT Acquire versionFreeImage version
since 2.11.93.16.0 (Mar 23 2014)

gcc

The Linux versions of mvIMPACT Acquire are built using the gcc.

Used versions

The following table lists which version of mvIMPACT Acquire was built with which version of gcc.

mvIMPACT Acquire versiongcc version (Linux x86/x86_64)gcc version (Linux ARM sf/hf)gcc version (Linux ARM64)
< 2.33.04.2.44.6.34.8.3
since 2.33.04.8.54.9.4

GenICam

At least one driver package shipped under the product family name mvIMPACT Acquire makes use of the GenICam reference implementation, which is hosted by the EVMA and can be downloaded from their website: http://www.emva.org. All license files belonging to the GenICam reference implementation are shipped with the libraries belonging to the GenICam runtime.

Used versions

The following table lists which version of mvIMPACT Acquire does use which version of the GenICam reference implementation

mvIMPACT Acquire versionGenApi version
since 1.10.501.1.1
since 1.10.741.1.2
since 1.10.952.0.0
since 1.11.02.0.1
since 1.11.422.1.1
since 1.12.532.3.0
since 2.7.02.4.0
since 2.15.03.0.0
since 2.16.13.0.1
since 2.28.03.1.0 (Jun 2018)
since 2.44.03.3.0 (Feb 2021)

Intel Performance Primitives (IPP)

Intel® Integrated Performance Primitives (Intel® IPP) offers developers high-quality, production-ready, low-level building blocks for image processing, signal processing, and data processing (data compression/decompression and cryptography) applications.

More information can be found here: https://software.intel.com/en-us/intel-ipp

Intel Performance Primitives (IPP) license

For:

  • Intel® Math Kernel Library (Intel® MKL)
  • Intel® Integrated Performance Primitives (Intel® IPP)
  • Intel® Machine Learning Scaling Library (Intel® MLSL)
  • Intel® Data Analytics Acceleration Library (Intel® DAAL)
  • Intel® Threading Building Blocks (Intel® TBB)
  • Intel® Distribution for Python*
  • Intel® MPI Library

Intel Simplified Software License (Version February 2020)

Use and Redistribution. You may use and redistribute the software (the "Software"), without modification, provided the following conditions are met:

  • Redistributions must reproduce the above copyright notice and the following terms of use in the Software and in the documentation and/or other materials provided with the distribution.
  • Neither the name of Intel nor the names of its suppliers may be used to endorse or promote products derived from this Software without specific prior written permission.
  • No reverse engineering, decompilation, or disassembly of this Software is permitted.

Limited patent license. Intel grants you a world-wide, royalty-free, non-exclusive license under patents it now or hereafter owns or controls to make, have made, use, import, offer to sell and sell ("Utilize") this Software, but solely to the extent that any such patent is necessary to Utilize the Software alone. The patent license shall not apply to any combinations which include this software. No hardware per se is licensed hereunder.

Third party programs. The Software may contain Third Party Programs. "Third Party Programs" are third party software, open source software or other Intel software listed in the "third-party-programs.txt" or other similarly named text file that is included with the Software. Third Party Programs, even if included with the distribution of the Software, may be governed by separate license terms, including without limitation, third party license terms, open source software notices and terms, and/or other Intel software license terms. These separate license terms may govern your use of the Third Party Programs.

DISCLAIMER. THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT ARE DISCLAIMED. THIS SOFTWARE IS NOT INTENDED FOR USE IN SYSTEMS OR APPLICATIONS WHERE FAILURE OF THE SOFTWARE MAY CAUSE PERSONAL INJURY OR DEATH AND YOU AGREE THAT YOU ARE FULLY RESPONSIBLE FOR ANY CLAIMS, COSTS, DAMAGES, EXPENSES, AND ATTORNEYS' FEES ARISING OUT OF ANY SUCH USE, EVEN IF ANY CLAIM ALLEGES THAT INTEL WAS NEGLIGENT REGARDING THE DESIGN OR MANUFACTURE OF THE MATERIALS.

LIMITATION OF LIABILITY. IN NO EVENT WILL INTEL BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. YOU AGREE TO INDEMNIFY AND HOLD INTEL HARMLESS AGAINST ANY CLAIMS AND EXPENSES RESULTING FROM YOUR USE OR UNAUTHORIZED USE OF THE SOFTWARE.

No support. Intel may make changes to the Software, at any time without notice, and is not obligated to support, update or provide training for the Software.

Termination. Intel may terminate your right to use the Software in the event of your breach of this Agreement and you fail to cure the breach within a reasonable period of time.

Feedback. Should you provide Intel with comments, modifications, corrections, enhancements or other input ("Feedback") related to the Software Intel will be free to use, disclose, reproduce, license or otherwise distribute or exploit the Feedback in its sole discretion without any obligations or restrictions of any kind, including without limitation, intellectual property rights or licensing obligations.

Compliance with laws. You agree to comply with all relevant laws and regulations governing your use, transfer, import or export (or prohibition thereof) of the Software.

Governing law. All disputes will be governed by the laws of the United States of America and the State of Delaware without reference to conflict of law principles and subject to the exclusive jurisdiction of the state or federal courts sitting in the State of Delaware, and each party agrees that it submits to the personal jurisdiction and venue of those courts and waives any objections. The United Nations Convention on Contracts for the International Sale of Goods (1980) is specifically excluded and will not apply to the Software.

Other names and brands may be claimed as the property of others.

Intel Performance Primitives (IPP) license

Intel(R) Integrated Performance Primitives Third Party Programs File

This file is the "third-party-programs.txt" file specified in the associated Intel end user license agreement for the Intel software you are licensing. Third party programs and their corresponding required notices and/or license terms are listed below.


  1. Intel® Threading Building Blocks (Intel® TBB)

Copyright 2018 Intel Corporation

Intel Simplified Software License

Use and Redistribution. You may use and redistribute the software (the “Software”), without modification, provided the following conditions are met:

Redistributions must reproduce the above copyright notice and the following terms of use in the Software and in the documentation and/or other materials provided with the distribution.

Neither the name of Intel nor the names of its suppliers may be used to endorse or promote products derived from this Software without specific prior written permission.

No reverse engineering, decompilation, or disassembly of this Software is permitted.

Limited patent license. Intel grants you a world-wide, royalty-free, non-exclusive license under patents it now or hereafter owns or controls to make, have made, use, import, offer to sell and sell (“Utilize”) this Software, but solely to the extent that any such patent is necessary to Utilize the Software alone. The patent license shall not apply to any combinations which include this software. No hardware per se is licensed hereunder.

Third party and other Intel programs. “Third Party Programs” are the files listed in the “third-party-programs.txt” text file that is included with the Software and may include Intel programs under separate license terms. Third Party Programs, even if included with the distribution of the Materials, are governed by separate license terms and those license terms solely govern your use of those programs.

DISCLAIMER. THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT ARE DISCLAIMED. THIS SOFTWARE IS NOT INTENDED FOR USE IN SYSTEMS OR APPLICATIONS WHERE FAILURE OF THE SOFTWARE MAY CAUSE PERSONAL INJURY OR DEATH AND YOU AGREE THAT YOU ARE FULLY RESPONSIBLE FOR ANY CLAIMS, COSTS, DAMAGES, EXPENSES, AND ATTORNEYS’ FEES ARISING OUT OF ANY SUCH USE, EVEN IF ANY CLAIM ALLEGES THAT INTEL WAS NEGLIGENT REGARDING THE DESIGN OR MANUFACTURE OF THE MATERIALS.

LIMITATION OF LIABILITY. IN NO EVENT WILL INTEL BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. YOU AGREE TO INDEMNIFY AND HOLD INTEL HARMLESS AGAINST ANY CLAIMS AND EXPENSES RESULTING FROM YOUR USE OR UNAUTHORIZED USE OF THE SOFTWARE.

No support. Intel may make changes to the Software, at any time without notice, and is not obligated to support, update or provide training for the Software.

Termination. Intel may terminate your right to use the Software in the event of your breach of this Agreement and you fail to cure the breach within a reasonable period of time.

Feedback. Should you provide Intel with comments, modifications, corrections, enhancements or other input (“Feedback”) related to the Software Intel will be free to use, disclose, reproduce, license or otherwise distribute or exploit the Feedback in its sole discretion without any obligations or restrictions of any kind, including without limitation, intellectual property rights or licensing obligations.

Compliance with laws. You agree to comply with all relevant laws and regulations governing your use, transfer, import or export (or prohibition thereof) of the Software.

Governing law. All disputes will be governed by the laws of the United States of America and the State of Delaware without reference to conflict of law principles and subject to the exclusive jurisdiction of the state or federal courts sitting in the State of Delaware, and each party agrees that it submits to the personal jurisdiction and venue of those courts and waives any objections. The United Nations Convention on Contracts for the International Sale of Goods (1980) is specifically excluded and will not apply to the Software.


The following third party programs have their own third party program files. These additional third party program files are as follows:

1. Intel® Threading Building Blocks (Intel® TBB): \tbb<version>\licensing\third-party-programs-tbb.txt

Other names and brands may be claimed as the property of others.

Used versions

The following table lists which version of mvIMPACT Acquire does use which version of the IPP

mvIMPACT Acquire versionIntel Performance Primitives (IPP) version
since 1.11.66.1.4
since 1.11.306.1.6
since 1.12.27.0.3
since 2.5.37.1.1
since 2.17.32017.0
since 2.26.02018.2
since 2.28.02018.3
since 2.29.1 (Windows only)2019.0
since 2.30.02019.1
since 2.45.02021.2 (Q2/2021)

JDK

The Java code as well as the Java to native interface library for mvIMPACT Acquire is built using the Java SE Development Kit 8.

JDK license

The JDK 8 comes under the Oracle Binary Code License (BCL) and will remain free even with the latest changes (time of writing: Dec. 2019) to the Java license by Oracle (https://www.oracle.com/technetwork/java/javase/overview/faqs-jsp-136696.html). The full Java license text is available here: https://www.oracle.com/downloads/licenses/binary-code-license.html

Oracle Binary Code License Agreement for the Java SE Platform Products and JavaFX

ORACLE AMERICA, INC. ("ORACLE"), FOR AND ON BEHALF OF ITSELF AND ITS SUBSIDIARIES AND AFFILIATES UNDER COMMON CONTROL, IS WILLING TO LICENSE THE SOFTWARE TO YOU ONLY UPON THE CONDITION THAT YOU ACCEPT ALL OF THE TERMS CONTAINED IN THIS BINARY CODE LICENSE AGREEMENT AND SUPPLEMENTAL LICENSE TERMS (COLLECTIVELY "AGREEMENT"). PLEASE READ THE AGREEMENT CAREFULLY. BY SELECTING THE "ACCEPT LICENSE AGREEMENT" (OR THE EQUIVALENT) BUTTON AND/OR BY USING THE SOFTWARE YOU ACKNOWLEDGE THAT YOU HAVE READ THE TERMS AND AGREE TO THEM. IF YOU ARE AGREEING TO THESE TERMS ON BEHALF OF A COMPANY OR OTHER LEGAL ENTITY, YOU REPRESENT THAT YOU HAVE THE LEGAL AUTHORITY TO BIND THE LEGAL ENTITY TO THESE TERMS. IF YOU DO NOT HAVE SUCH AUTHORITY, OR IF YOU DO NOT WISH TO BE BOUND BY THE TERMS, THEN SELECT THE "DECLINE LICENSE AGREEMENT" (OR THE EQUIVALENT) BUTTON AND YOU MUST NOT USE THE SOFTWARE ON THIS SITE OR ANY OTHER MEDIA ON WHICH THE SOFTWARE IS CONTAINED.

    DEFINITIONS. "Software" means the software identified above in binary form that you selected for download, install or use (in the version You selected for download, install or use) from Oracle or its authorized licensees and/or those portions of such software produced by jlink as output using a Program's code, when such output is in unmodified form in combination, and for sole use with, that Program, as well as any other machine readable materials (including, but not limited to, libraries, source files, header files, and data files), any updates or error corrections provided by Oracle, and any user manuals, programming guides and other documentation provided to you by Oracle under this Agreement. The Java Linker (jlink) is available with Java 9 and later versions.  "General Purpose Desktop Computers and Servers" means computers, including desktop and laptop computers, or servers, used for general computing functions under end user control (such as but not specifically limited to email, general purpose Internet browsing, and office suite productivity tools). The use of Software in systems and solutions that provide dedicated functionality (other than as mentioned above) or designed for use in embedded or function-specific software applications, for example but not limited to: Software embedded in or bundled with industrial control systems, wireless mobile telephones, wireless handheld devices, kiosks, TV/STB, Blu-ray Disc devices, telematics and network control switching equipment, printers and storage management systems, and other related systems are excluded from this definition and not licensed under this Agreement. "Programs" means (a) Java technology applets and applications intended to run on the Java Platform, Standard Edition platform on Java-enabled General Purpose Desktop Computers and Servers; and (b) JavaFX technology applications intended to run on the JavaFX Runtime on JavaFX-enabled General Purpose Desktop Computers and Servers. "Java SE LIUM" means the Licensing Information User Manual - Oracle Java SE and Oracle Java Embedded Products Document accessible at http://www.oracle.com/technetwork/java/javase/documentation/index.html. "Commercial Features" means those features that are identified as such in the Java SE LIUM under the "Description of Product Editions and Permitted Features" section.
    LICENSE TO USE. Subject to the terms and conditions of this Agreement including, but not limited to, the Java Technology Restrictions of the Supplemental License Terms, Oracle grants you a non-exclusive, non-transferable, limited license without license fees to reproduce and use internally the Software complete and unmodified for the sole purpose of running Programs. THE LICENSE SET FORTH IN THIS SECTION 2 DOES NOT EXTEND TO THE COMMERCIAL FEATURES. YOUR RIGHTS AND OBLIGATIONS RELATED TO THE COMMERCIAL FEATURES ARE AS SET FORTH IN THE SUPPLEMENTAL TERMS ALONG WITH ADDITIONAL LICENSES FOR DEVELOPERS AND PUBLISHERS.
    RESTRICTIONS. Software is copyrighted. Title to Software and all associated intellectual property rights is retained by Oracle and/or its licensors. Unless enforcement is prohibited by applicable law, you may not modify, decompile, or reverse engineer Software. You acknowledge that the Software is developed for general use in a variety of information management applications; it is not developed or intended for use in any inherently dangerous applications, including applications that may create a risk of personal injury. If you use the Software in dangerous applications, then you shall be responsible to take all appropriate fail-safe, backup, redundancy, and other measures to ensure its safe use. Oracle disclaims any express or implied warranty of fitness for such uses. No right, title or interest in or to any trademark, service mark, logo or trade name of Oracle or its licensors is granted under this Agreement. Additional restrictions for developers and/or publishers licenses are set forth in the Supplemental License Terms.
    DISCLAIMER OF WARRANTY. THE SOFTWARE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. ORACLE FURTHER DISCLAIMS ALL WARRANTIES, EXPRESS AND IMPLIED, INCLUDING WITHOUT LIMITATION, ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
    LIMITATION OF LIABILITY. IN NO EVENT SHALL ORACLE BE LIABLE FOR ANY INDIRECT, INCIDENTAL, SPECIAL, PUNITIVE OR CONSEQUENTIAL DAMAGES, OR DAMAGES FOR LOSS OF PROFITS, REVENUE, DATA OR DATA USE, INCURRED BY YOU OR ANY THIRD PARTY, WHETHER IN AN ACTION IN CONTRACT OR TORT, EVEN IF ORACLE HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. ORACLE'S ENTIRE LIABILITY FOR DAMAGES HEREUNDER SHALL IN NO EVENT EXCEED ONE THOUSAND DOLLARS (U.S. $1,000).
    TERMINATION. This Agreement is effective until terminated. You may terminate this Agreement at any time by destroying all copies of Software. This Agreement will terminate immediately without notice from Oracle if you fail to comply with any provision of this Agreement. Either party may terminate this Agreement immediately should any Software become, or in either party's opinion be likely to become, the subject of a claim of infringement of any intellectual property right. Upon termination, you must destroy all copies of Software.
    EXPORT REGULATIONS. You agree that U.S. export control laws and other applicable export and import laws govern your use of the Software, including technical data; additional information can be found on Oracle's Global Trade Compliance web site (http://www.oracle.com/us/products/export). You agree that neither the Software nor any direct product thereof will be exported, directly, or indirectly, in violation of these laws, or will be used for any purpose prohibited by these laws including, without limitation, nuclear, chemical, or biological weapons proliferation.
    TRADEMARKS AND LOGOS. You acknowledge and agree as between you and Oracle that Oracle owns the ORACLE and JAVA trademarks and all ORACLE- and JAVA-related trademarks, service marks, logos and other brand designations ("Oracle Marks"), and you agree to comply with the Third Party Usage Guidelines for Oracle Trademarks currently located at http://www.oracle.com/us/legal/third-party-trademarks/index.html. Any use you make of the Oracle Marks inures to Oracle's benefit.
    U.S. GOVERNMENT LICENSE RIGHTS. If Software is being acquired by or on behalf of the U.S. Government or by a U.S. Government prime contractor or subcontractor (at any tier), then the Government's rights in Software and accompanying documentation shall be only those set forth in this Agreement.
    GOVERNING LAW. This agreement is governed by the substantive and procedural laws of California. You and Oracle agree to submit to the exclusive jurisdiction of, and venue in, the courts of San Francisco, or Santa Clara counties in California in any dispute arising out of or relating to this agreement.
    SEVERABILITY. If any provision of this Agreement is held to be unenforceable, this Agreement will remain in effect with the provision omitted, unless omission would frustrate the intent of the parties, in which case this Agreement will immediately terminate.
    INTEGRATION. This Agreement is the entire agreement between you and Oracle relating to its subject matter. It supersedes all prior or contemporaneous oral or written communications, proposals, representations and warranties and prevails over any conflicting or additional terms of any quote, order, acknowledgment, or other communication between the parties relating to its subject matter during the term of this Agreement. No modification of this Agreement will be binding, unless in writing and signed by an authorized representative of each party.

SUPPLEMENTAL LICENSE TERMS

These Supplemental License Terms add to or modify the terms of the Binary Code License Agreement. Capitalized terms not defined in these Supplemental Terms shall have the same meanings ascribed to them in the Binary Code License Agreement. These Supplemental Terms shall supersede any inconsistent or conflicting terms in the Binary Code License Agreement, or in any license contained within the Software.

A. COMMERCIAL FEATURES. You may not use the Commercial Features for running Programs, Java applets or applications in your internal business operations or for any commercial or production purpose, or for any purpose other than as set forth in Sections B, C, D and E of these Supplemental Terms. If You want to use the Commercial Features for any purpose other than as permitted in this Agreement, You must obtain a separate license from Oracle.

B. SOFTWARE INTERNAL USE FOR DEVELOPMENT LICENSE GRANT. Subject to the terms and conditions of this Agreement and restrictions and exceptions set forth in the Java SE LIUM incorporated herein by reference, including, but not limited to the Java Technology Restrictions of these Supplemental Terms, Oracle grants you a non-exclusive, non-transferable, limited license without fees to reproduce internally and use internally the Software complete and unmodified for the purpose of designing, developing, and testing your Programs.

C. LICENSE TO DISTRIBUTE SOFTWARE. Subject to the terms and conditions of this Agreement and restrictions and exceptions set forth in the Java SE LIUM, including, but not limited to the Java Technology Restrictions and Limitations on Redistribution of these Supplemental Terms, Oracle grants you a non-exclusive, non-transferable, limited license without fees to reproduce and distribute the Software, provided that (i) you distribute the Software complete and unmodified and only bundled as part of, and for the sole purpose of running, your Programs, (ii) the Programs add significant and primary functionality to the Software, (iii) you do not distribute additional software intended to replace any component(s) of the Software, (iv) you do not remove or alter any proprietary legends or notices contained in the Software, (v) you only distribute the Software subject to a license agreement that: (a) is a complete, unmodified reproduction of this Agreement; or (b) protects Oracle's interests consistent with the terms contained in this Agreement and that includes the notice set forth in Section H, and (vi) you agree to defend and indemnify Oracle and its licensors from and against any damages, costs, liabilities, settlement amounts and/or expenses (including attorneys' fees) incurred in connection with any claim, lawsuit or action by any third party that arises or results from the use or distribution of any and all Programs and/or Software. The license set forth in this Section C does not extend to the Software identified in Section G.

D. LICENSE TO DISTRIBUTE REDISTRIBUTABLES. Subject to the terms and conditions of this Agreement and restrictions and exceptions set forth in the Java SE LIUM, including but not limited to the Java Technology Restrictions and Limitations on Redistribution of these Supplemental Terms, Oracle grants you a non-exclusive, non-transferable, limited license without fees to reproduce and distribute those files specifically identified as redistributable in the Java SE LIUM ("Redistributables") provided that: (i) you distribute the Redistributables complete and unmodified, and only bundled as part of Programs, (ii) the Programs add significant and primary functionality to the Redistributables, (iii) you do not distribute additional software intended to supersede any component(s) of the Redistributables (unless otherwise specified in the applicable Java SE LIUM), (iv) you do not remove or alter any proprietary legends or notices contained in or on the Redistributables, (v) you only distribute the Redistributables pursuant to a license agreement that: (a) is a complete, unmodified reproduction of this Agreement; or (b) protects Oracle's interests consistent with the terms contained in the Agreement and includes the notice set forth in Section H, (vi) you agree to defend and indemnify Oracle and its licensors from and against any damages, costs, liabilities, settlement amounts and/or expenses (including attorneys' fees) incurred in connection with any claim, lawsuit or action by any third party that arises or results from the use or distribution of any and all Programs and/or Software. The license set forth in this Section D does not extend to the Software identified in Section G.

E. DISTRIBUTION BY PUBLISHERS. This section pertains to your distribution of the JavaTM SE Development Kit Software ("JDK") with your printed book or magazine (as those terms are commonly used in the industry) relating to Java technology ("Publication"). Subject to and conditioned upon your compliance with the restrictions and obligations contained in the Agreement, Oracle hereby grants to you a non-exclusive, nontransferable limited right to reproduce complete and unmodified copies of the JDK on electronic media (the "Media") for the sole purpose of inclusion and distribution with your Publication(s), subject to the following terms: (i) You may not distribute the JDK on a stand-alone basis; it must be distributed with your Publication(s); (ii) You are responsible for downloading the JDK from the applicable Oracle web site; (iii) You must refer to the JDK as JavaTM SE Development Kit; (iv) The JDK must be reproduced in its entirety and without any modification whatsoever (including with respect to all proprietary notices) and distributed with your Publication subject to a license agreement that is a complete, unmodified reproduction of this Agreement; (v) The Media label shall include the following information: "Copyright [YEAR], Oracle America, Inc. All rights reserved. Use is subject to license terms. ORACLE and JAVA trademarks and all ORACLE- and JAVA-related trademarks, service marks, logos and other brand designations are trademarks or registered trademarks of Oracle in the U.S. and other countries." [YEAR] is the year of Oracle's release of the Software; the year information can typically be found in the Software's "About" box or screen. This information must be placed on the Media label in such a manner as to only apply to the JDK; (vi) You must clearly identify the JDK as Oracle's product on the Media holder or Media label, and you may not state or imply that Oracle is responsible for any third-party software contained on the Media; (vii) You may not include any third party software on the Media which is intended to be a replacement or substitute for the JDK; (viii) You agree to defend and indemnify Oracle and its licensors from and against any damages, costs, liabilities, settlement amounts and/or expenses (including attorneys' fees) incurred in connection with any claim, lawsuit or action by any third party that arises or results from the use or distribution of the JDK and/or the Publication; ; and (ix) You shall provide Oracle with a written notice for each Publication; such notice shall include the following information: (1) title of Publication, (2) author(s), (3) date of Publication, and (4) ISBN or ISSN numbers. Such notice shall be sent to Oracle America, Inc., 500 Oracle Parkway, Redwood Shores, California 94065 U.S.A , Attention: General Counsel.

F. JAVA TECHNOLOGY RESTRICTIONS. You may not create, modify, or change the behavior of, or authorize your licensees to create, modify, or change the behavior of, classes, interfaces, or subpackages that are in any way identified as "java", "javax", "sun", "oracle" or similar convention as specified by Oracle in any naming convention designation.

G. LIMITATIONS ON REDISTRIBUTION. You may not redistribute or otherwise transfer patches, bug fixes or updates made available by Oracle through Oracle Premier Support, including those made available under Oracle's Java SE Support program.

H. COMMERCIAL FEATURES NOTICE. For purpose of complying with Supplemental Term Section C.(v)(b) and D.(v)(b), your license agreement shall include the following notice, where the notice is displayed in a manner that anyone using the Software will see the notice:

Use of the Commercial Features for any commercial or production purpose requires a separate license from Oracle. "Commercial Features" means those features that are identified as such in the Licensing Information User Manual - Oracle Java SE and Oracle Java Embedded Products Document, accessible at http://www.oracle.com/technetwork/java/javase/documentation/index.html, under the "Description of Product Editions and Permitted Features" section.
 
I. SOURCE CODE. Software may contain source code that, unless expressly licensed for other purposes, is provided solely for reference purposes pursuant to the terms of this Agreement. Source code may not be redistributed unless expressly provided for in this Agreement.

J. THIRD PARTY CODE. Additional copyright notices and license terms applicable to portions of the Software are set forth in the Java SE LIUM accessible at http://www.oracle.com/technetwork/java/javase/documentation/index.html. In addition to any terms and conditions of any third party opensource/freeware license identified in the Java SE LIUM, the disclaimer of warranty and limitation of liability provisions in paragraphs 4 and 5 of the Binary Code License Agreement shall apply to all Software in this distribution.

K. TERMINATION FOR INFRINGEMENT. Either party may terminate this Agreement immediately should any Software become, or in either party's opinion be likely to become, the subject of a claim of infringement of any intellectual property right.

L. INSTALLATION AND AUTO-UPDATE. The Software's installation and auto-update processes transmit a limited amount of data to Oracle (or its service provider) about those specific processes to help Oracle understand and optimize them. Oracle does not associate the data with personally identifiable information. You can find more information about the data Oracle collects as a result of your Software download at http://www.oracle.com/technetwork/java/javase/documentation/index.html.

For inquiries please contact: Oracle America, Inc., 500 Oracle Parkway,

Redwood Shores, California 94065, USA.

Last updated 21 September 2017

Used versions

The following table lists which version of mvIMPACT Acquire was built with which version of the JDK.

mvIMPACT Acquire versionJDK version
since 2.36.08u231 (Oct 15 2019)

JUnit

The Java code is tested using the JUnit (https://junit.org), (https://en.wikipedia.org/wiki/JUnit) framework.

JUnit license

The JUnit framework comes under the following license:

Overview

Typically the licenses listed for the project are that of the project itself, and not of dependencies.
Project License
Eclipse Public License 1.0
[Original text]

Copy of the license follows:
Eclipse Public License - v 1.0

THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT.

1. DEFINITIONS

"Contribution" means:

a) in the case of the initial Contributor, the initial code and documentation distributed under this Agreement, and

b) in the case of each subsequent Contributor:

i) changes to the Program, and

ii) additions to the Program;

where such changes and/or additions to the Program originate from and are distributed by that particular Contributor. A Contribution 'originates' from a Contributor if it was added to the Program by such Contributor itself or anyone acting on such Contributor's behalf. Contributions do not include additions to the Program which: (i) are separate modules of software distributed in conjunction with the Program under their own license agreement, and (ii) are not derivative works of the Program.

"Contributor" means any person or entity that distributes the Program.

"Licensed Patents" mean patent claims licensable by a Contributor which are necessarily infringed by the use or sale of its Contribution alone or when combined with the Program.

"Program" means the Contributions distributed in accordance with this Agreement.

"Recipient" means anyone who receives the Program under this Agreement, including all Contributors.

2. GRANT OF RIGHTS

a) Subject to the terms of this Agreement, each Contributor hereby grants Recipient a non-exclusive, worldwide, royalty-free copyright license to reproduce, prepare derivative works of, publicly display, publicly perform, distribute and sublicense the Contribution of such Contributor, if any, and such derivative works, in source code and object code form.

b) Subject to the terms of this Agreement, each Contributor hereby grants Recipient a non-exclusive, worldwide, royalty-free patent license under Licensed Patents to make, use, sell, offer to sell, import and otherwise transfer the Contribution of such Contributor, if any, in source code and object code form. This patent license shall apply to the combination of the Contribution and the Program if, at the time the Contribution is added by the Contributor, such addition of the Contribution causes such combination to be covered by the Licensed Patents. The patent license shall not apply to any other combinations which include the Contribution. No hardware per se is licensed hereunder.

c) Recipient understands that although each Contributor grants the licenses to its Contributions set forth herein, no assurances are provided by any Contributor that the Program does not infringe the patent or other intellectual property rights of any other entity. Each Contributor disclaims any liability to Recipient for claims brought by any other entity based on infringement of intellectual property rights or otherwise. As a condition to exercising the rights and licenses granted hereunder, each Recipient hereby assumes sole responsibility to secure any other intellectual property rights needed, if any. For example, if a third party patent license is required to allow Recipient to distribute the Program, it is Recipient's responsibility to acquire that license before distributing the Program.

d) Each Contributor represents that to its knowledge it has sufficient copyright rights in its Contribution, if any, to grant the copyright license set forth in this Agreement.

3. REQUIREMENTS

A Contributor may choose to distribute the Program in object code form under its own license agreement, provided that:

a) it complies with the terms and conditions of this Agreement; and

b) its license agreement:

i) effectively disclaims on behalf of all Contributors all warranties and conditions, express and implied, including warranties or conditions of title and non-infringement, and implied warranties or conditions of merchantability and fitness for a particular purpose;

ii) effectively excludes on behalf of all Contributors all liability for damages, including direct, indirect, special, incidental and consequential damages, such as lost profits;

iii) states that any provisions which differ from this Agreement are offered by that Contributor alone and not by any other party; and

iv) states that source code for the Program is available from such Contributor, and informs licensees how to obtain it in a reasonable manner on or through a medium customarily used for software exchange.

When the Program is made available in source code form:

a) it must be made available under this Agreement; and

b) a copy of this Agreement must be included with each copy of the Program.

Contributors may not remove or alter any copyright notices contained within the Program.

Each Contributor must identify itself as the originator of its Contribution, if any, in a manner that reasonably allows subsequent Recipients to identify the originator of the Contribution.

4. COMMERCIAL DISTRIBUTION

Commercial distributors of software may accept certain responsibilities with respect to end users, business partners and the like. While this license is intended to facilitate the commercial use of the Program, the Contributor who includes the Program in a commercial product offering should do so in a manner which does not create potential liability for other Contributors. Therefore, if a Contributor includes the Program in a commercial product offering, such Contributor ("Commercial Contributor") hereby agrees to defend and indemnify every other Contributor ("Indemnified Contributor") against any losses, damages and costs (collectively "Losses") arising from claims, lawsuits and other legal actions brought by a third party against the Indemnified Contributor to the extent caused by the acts or omissions of such Commercial Contributor in connection with its distribution of the Program in a commercial product offering. The obligations in this section do not apply to any claims or Losses relating to any actual or alleged intellectual property infringement. In order to qualify, an Indemnified Contributor must: a) promptly notify the Commercial Contributor in writing of such claim, and b) allow the Commercial Contributor to control, and cooperate with the Commercial Contributor in, the defense and any related settlement negotiations. The Indemnified Contributor may participate in any such claim at its own expense.

For example, a Contributor might include the Program in a commercial product offering, Product X. That Contributor is then a Commercial Contributor. If that Commercial Contributor then makes performance claims, or offers warranties related to Product X, those performance claims and warranties are such Commercial Contributor's responsibility alone. Under this section, the Commercial Contributor would have to defend claims against the other Contributors related to those performance claims and warranties, and if a court requires any other Contributor to pay any damages as a result, the Commercial Contributor must pay those damages.

5. NO WARRANTY

EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely responsible for determining the appropriateness of using and distributing the Program and assumes all risks associated with its exercise of rights under this Agreement , including but not limited to the risks and costs of program errors, compliance with applicable laws, damage to or loss of data, programs or equipment, and unavailability or interruption of operations.

6. DISCLAIMER OF LIABILITY

EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

7. GENERAL

If any provision of this Agreement is invalid or unenforceable under applicable law, it shall not affect the validity or enforceability of the remainder of the terms of this Agreement, and without further action by the parties hereto, such provision shall be reformed to the minimum extent necessary to make such provision valid and enforceable.

If Recipient institutes patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Program itself (excluding combinations of the Program with other software or hardware) infringes such Recipient's patent(s), then such Recipient's rights granted under Section 2(b) shall terminate as of the date such litigation is filed.

All Recipient's rights under this Agreement shall terminate if it fails to comply with any of the material terms or conditions of this Agreement and does not cure such failure in a reasonable period of time after becoming aware of such noncompliance. If all Recipient's rights under this Agreement terminate, Recipient agrees to cease use and distribution of the Program as soon as reasonably practicable. However, Recipient's obligations under this Agreement and any licenses granted by Recipient relating to the Program shall continue and survive.

Everyone is permitted to copy and distribute copies of this Agreement, but in order to avoid inconsistency the Agreement is copyrighted and may only be modified in the following manner. The Agreement Steward reserves the right to publish new versions (including revisions) of this Agreement from time to time. No one other than the Agreement Steward has the right to modify this Agreement. The Eclipse Foundation is the initial Agreement Steward. The Eclipse Foundation may assign the responsibility to serve as the Agreement Steward to a suitable separate entity. Each new version of the Agreement will be given a distinguishing version number. The Program (including Contributions) may always be distributed subject to the version of the Agreement under which it was received. In addition, after a new version of the Agreement is published, Contributor may elect to distribute the Program (including its Contributions) under the new version. Except as expressly stated in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to the intellectual property of any Contributor under this Agreement, whether expressly, by implication, estoppel or otherwise. All rights in the Program not expressly granted under this Agreement are reserved.

This Agreement is governed by the laws of the State of New York and the intellectual property laws of the United States of America. No party to this Agreement will bring a legal action under this Agreement more than one year after the cause of action arose. Each party waives its rights to a jury trial in any resulting litigation.

Used versions

The following table lists which version of mvIMPACT Acquire was built with which version of JUnit.

mvIMPACT Acquire versionJUnit version
since 2.36.04.12 (Nov 25 2018)

libudev

The Linux version of the USB3 Vision implementation of the mvGenTL_Acquire driver package currently makes use of an unmodified version of libudev.

Used versions

The following table lists which version of mvIMPACT Acquire has been linked with which version of libudev.

mvIMPACT Acquire versionlibudev version
Linux x86/x86_64/ARMsf/ARMhf0.13.0
Linux ARM64 < 2.29.01.3.5
Linux ARM64 >= 2.29.01.6.4

libusb

The Linux version of the mvBlueFOX driver package is linked dynamically with a modified version of version 1.0.8 of libusb (http://www.libusb.org/), which comes under LGPL 2.1. The full license text is included in the Linux distribution of the mvBlueFOX driver package. The source code for the modified version of libusb can be obtained by contacting MATRIX VISION GmbH or it can be downloaded from here: http://gpl.matrix-vision.com (navigate to others/libusb). Also a patch to quickly browse through the difference between the original sources and the version used by MATRIX VISION can be obtained from http://gpl.matrix-vision.com. The changes fixed a segmentation fault when disconnecting a device while it was streaming data to a host application.

The Linux version of the USB3 Vision implementation of the mvGenTL_Acquire driver package currently is linked dynamically with an unmodified version of version 1.0.21 of libusb (http://www.libusb.org/), which comes under LGPL 2.1.

Used versions

The following table lists which version of the GenTL producer of mvIMPACT Acquire does use which version of libusb

mvIMPACT Acquire versionlibusb version
since 2.6.01.0.18
since 2.11.51.0.19
since 2.13.81.0.20
since 2.21.01.0.21 (Oct 25 2016)

libusbK

The Windows version of the USB3 Vision implementation of the mvGenTL_Acquire driver package currently makes use of libusbK (http://libusbk.sourceforge.net) written by Travis Lee Robinson who owns all rights for the source code of all modules belonging to the libusbK framework.

libusbK license

APPLICABLE FOR ALL LIBUSBK BINARIES AND SOURCE CODE UNLESS OTHERWISE SPECIFIED. PLEASE SEE INDIVIDUAL COMPONENTS LICENSING TERMS FOR DETAILS.

Note
Portions of dpscat use source code from libwdi which is licensed for LGPL use only. (See dpscat.c)
libusbK-inf-wizard.exe is linked to libwdi which is licensed for LGPL use only.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

  • Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
  • Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
  • Neither the name of Travis Lee Robinson nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL TRAVIS ROBINSON BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Used versions

The following table lists which version of mvIMPACT Acquire does use which version of the libusbK package

mvIMPACT Acquire versionlibusbK version
since 2.3.23.0.5.16
since 2.5.133.0.6.0
since 2.7.23.0.7.0 (Apr 27 2014)

libzip

mvGenTL_Acquire driver package currently makes use of libzip written by Dieter Baron and Thomas Klausner.

libzip License

libzip comes with the following copyright:

libzip is released under a 3-clause BSD license:

Copyright (C) 1999-2019 Dieter Baron and Thomas Klausner

The authors can be contacted at libzip@nih.at

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.

Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

The names of the authors may not be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS’’ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Used versions

The following table lists which version of mvIMPACT Acquire does use which version of the libzip package

mvIMPACT Acquire versionlibzip version
since 2.41.01.7.3 (Jul 15 2020)

NUnit

The .NET code is tested using the NUnit (http://www.nunit.org/) framework.

NUnit License

Copyright © 2002-2014, 2018 Charlie Poole Copyright © 2002-2004 James W. Newkirk, Michael C. Two, Alexei A. Vorontsov Copyright © 2000-2002 Philip A. Craig

This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.

Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:

  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment (see the following) in the product documentation is required. Portions Copyright © 2002-2014, 2018 Charlie Poole or Copyright © 2002-2004 James W. Newkirk, Michael C. Two, Alexei A. Vorontsov or Copyright © 2000-2002 Philip A. Craig
  2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.
  3. This notice may not be removed or altered from any source distribution.

Used versions

The following table lists which version of mvIMPACT Acquire was tested with which version of the NUnit framework

mvIMPACT Acquire versionNUnit framework version
since 1.12.682.5.10
since 2.31.02.7.0 (Aug 10 2018)

Qt

Some example applications of mvIMPACT Acquire make use of the Qt (https://www.qt.io/) framework

Qt license

The Qt framework comes under various licenses beyond the scope of this document. The exact conditions an licenses can be obtained from the Qt Company.

Note
You might need to ship the source code using Qt and mvIMPACT Acquire unless you possess an appropriate Qt license! Get in touch with the Qt guys in case of doubt!

Used versions

The binary versions of the applications shipped with mvIMPACT Acquire on Windows have been built using Qt 5.5.0. The source code to these binaries is shipped as part of the SDK. Linux builds will not contain binaries but source code only. Applications will be compiled using the Qt version available on the target system.

Sarissa

Parts of the log file creation and the log file display make use of Sarissa (Website: https://sarissa.sourceforge.io) which is distributed under the GNU GPL version 2 or higher, GNU LGPL version 2.1 or higher and Apache Software License 2.0 or higher. The Apache Software License 2.0 is part of this driver package.

Used version

Since the beginning mvIMPACT Acquire did use an ancient version released in 2008 of the Sarissa framework.

SHA1 algorithm

Parts of this framework make use of an open source implementation of the SHA1 algorithm written by Dominik Reichl (http://www.dominik-reichl.de).

Used version

mvIMPACT Acquire versionSHA1 algorithm version
since 2.0.112.1 (Jun 19 2012)

SWIG

The Java as well as the Python interface of mvIMPACT Acquire is generated with the help of SWIG (http://www.swig.org).

SWIG license

The source code of SWIG comes under a GPL license. The output generated using SWIG can use any license depending on the need of the user.

More details regarding licenses can be found on the SWIG homepage in the legal department section. At the time of writing this was http://www.swig.org/legal.html.

Used versions

The following table lists which version of mvIMPACT Acquire was built with which version of SWIG.

mvIMPACT Acquire versionSWIG version
since 2.22.02.0.12
since 2.33.03.0.12
since 2.35.04.0.1 (Aug 21 2019)

Visual Studio

The Windows version of mvIMPACT Acquire is built using Visual Studio.

Used versions

The following table lists which version of mvIMPACT Acquire was built with which version of Visual Studio.

mvIMPACT Acquire versionVisual Studio version
since 1.0.06
since 1.6.5 (roughly)2005
since 2.8.02013

WiX

The Windows installation packages of mvIMPACT Acquire have been written using WiX (http://wixtoolset.org/).

WiX license

WiX comes under the Microsoft Reciprocal License (MS-RL).

Copyright (c) .NET Foundation and contributors.
This software is released under the Microsoft Reciprocal License (MS-RL) (the "License"); you may not use the software except in compliance with the License.

The text of the Microsoft Reciprocal License (MS-RL) can be found online at:
 http://opensource.org/licenses/ms-rl


Microsoft Reciprocal License (MS-RL)

This license governs use of the accompanying software. If you use the software, you accept this license. If you do not accept the license, do not use the software.

1. Definitions
 The terms "reproduce," "reproduction," "derivative works," and "distribution" have the same meaning here as under U.S. copyright law.
 A "contribution" is the original software, or any additions or changes to the software.
 A "contributor" is any person that distributes its contribution under this license.
 "Licensed patents" are a contributor's patent claims that read directly on its contribution.

2. Grant of Rights
 (A) Copyright Grant- Subject to the terms of this license, including the license conditions and limitations in section 3, each contributor grants you a non-exclusive, worldwide, royalty-free copyright license to reproduce its contribution, prepare derivative works of its contribution, and distribute its contribution or any derivative works that you create.
 (B) Patent Grant- Subject to the terms of this license, including the license conditions and limitations in section 3, each contributor grants you a non-exclusive, worldwide, royalty-free license under its licensed patents to make, have made, use, sell, offer for sale, import, and/or otherwise dispose of its contribution in the software or derivative works of the contribution in the software.

3. Conditions and Limitations
 (A) Reciprocal Grants- For any file you distribute that contains code from the software (in source code or binary format), you must provide recipients the source code to that file along with a copy of this license, which license will govern that file. You may license other files that are entirely your own work and do not contain code from the software under any terms you choose.
 (B) No Trademark License- This license does not grant you rights to use any contributors' name, logo, or trademarks.
 (C) If you bring a patent claim against any contributor over patents that you claim are infringed by the software, your patent license from such contributor to the software ends automatically.
 (D) If you distribute any portion of the software, you must retain all copyright, patent, trademark, and attribution notices that are present in the software.
 (E) If you distribute any portion of the software in source code form, you may do so only under this license by including a complete copy of this license with your distribution. If you distribute any portion of the software in compiled or object code form, you may only do so under a license that complies with this license.
 (F) The software is licensed "as-is." You bear the risk of using it. The contributors give no express warranties, guarantees or conditions. You may have additional consumer rights under your local laws which this license cannot change. To the extent permitted under your local laws, the contributors exclude the implied warranties of merchantability, fitness for a particular purpose and non-infringement.

Used versions

The following table lists which version of mvIMPACT Acquire was built using which version of the WiX tools.

mvIMPACT Acquire versionWiX version
< 1.12.472.x.x
since 1.12.473.0.5419
since 2.17.13.10.3
since 2.22.13.11.0
since 2.29.13.11.1
since 2.45.03.11.2 (Sep 19 2019)

wxWidgets

Most of the applications offering a graphical user interface have been written using wxWidgets (http://www.wxwidgets.org/).

wxWidgets is a C++ library that lets developers create applications for Windows, OS X, Linux and Unix on 32-bit and 64-bit architectures as well as several mobile platforms including Windows Mobile, iPhone SDK and embedded GTK+. Please refer to the wxWidgets website for detailed license information.

The source code of the applications provided by MATRIX VISION GmbH (http://www.matrix-vision.com) using wxWidgets is either part of the packet this document was taken from or can be obtained by contacting MATRIX VISON GmbH.

The full license text for using wxWidgets can be found here: https://www.wxwidgets.org/about/licence/ and is also part of the Windows installation packages. As on Linux the source code of wxWidgets based applications is shipped without wxWidgets itself your system must have its own version of the wxWidgets dev-packages which then will also contain a matching license file for wxWidgets.

Used versions

The following table lists which version of mvIMPACT Acquire was using which version of wxWidgets for build GUI tools.

Note
This table applies for the Windows build only. On Linux systems the source code of the tools is compiled during the installation of the SDK using the wxWidgets version found on the system!
mvIMPACT Acquire versionwxWidgets version
since 1.5.02.8.0 (this might be wrong)
since 1.12.472.8.12
since 2.17.03.1.0
since 2.26.03.0.4 (Mar 08 2018)

zlib

mvGenTL_Acquire driver package currently makes use of zlib written by Jean-loup Gailly and Mark Adler.

zlib License

zlib comes with the following copyright:

  Copyright (C) 1995-2017 Jean-loup Gailly and Mark Adler

  This software is provided 'as-is', without any express or implied
  warranty.  In no event will the authors be held liable for any damages
  arising from the use of this software.

  Permission is granted to anyone to use this software for any purpose,
  including commercial applications, and to alter it and redistribute it
  freely, subject to the following restrictions:

  1. The origin of this software must not be misrepresented; you must not
     claim that you wrote the original software. If you use this software
     in a product, an acknowledgment in the product documentation would be
     appreciated but is not required.
  2. Altered source versions must be plainly marked as such, and must not be
     misrepresented as being the original software.
  3. This notice may not be removed or altered from any source distribution.

  Jean-loup Gailly        Mark Adler
  jloup@gzip.org          madler@alumni.caltech.edu

Used versions

The following table lists which version of mvIMPACT Acquire does use which version of the zlib package

mvIMPACT Acquire versionzlib version
since 2.41.01.2.11 (15 Jan 2017)



Versioning Scheme

The mvIMPACT Acquire interface (API) uses the semantic versioning scheme based on Semantic Versioning since version 2.0.0:

  • The version format is X.Y.Z (Major.Minor.Patch), e.g. mvIMPACT Acquire 1.12.57.
    • Bug fixes not affecting the API increment the patch version,
    • backwards compatible API additions/changes increment the minor version,
    • and backwards incompatible API changes increment the major version.

For details please refer to http://semver.org/.

In addition to that the version of the mvIMPACT Acquire API can now be evaluated at compile time. This will allow users to write code that can be compiled with different versions of mvIMPACT Acquire in case an interface change was introduced.

For example, to test if the program will be compiled with mvIMPACT Acquire 2.0.0 or higher, the following can be done:

HDISP hDisp = getDisplayHandleFromSomewhere();
#if MVIMPACT_ACQUIRE_CHECK_VERSION(2, 0, 0)
mvDispWindowDestroy( hDisp );
#else // replacement code for old version
mvDestroyImageWindow( hDisp );
#endif