Impact Acquire SDK C++
macOS
Since
Version 2.50.0 of this SDK

Impact Acquire is available as a dmg (Apple disk image) for macOS 12 (Monterey) on ARM architectures like the Mac mini. This disk image contains files for working with Balluff GigE Vision™ devices, but does not contain a full installer. These files can be used if you also have a file-based installation.

Note
The Impact Acquire package on macOS only supports Balluff GigE Vision™ devices! For further information please see Device And Operating System Support Across Released Versions.

Package Contents

Files below the following folders might be interesting for deployment

  • lib
  • runtime

Contents of the following folders might only be interesting if packaging with parts of Balluff provided software:

  • apps
  • bin
  • CMake
  • common
  • doc
  • DriverBase
  • FirmwareUpdates
  • mvDeviceManager
  • mvIMPACT_CPP
  • mvPropHandling
  • Toolkits

Locating Runtime Libraries

The following table shows where to find files belonging to the Impact Acquire framework on a target machine where the framework has been installed.

Note
The variable MVIMPACT_ACQUIRE_DIR here refers to the root directory of the original dmg file.
Library ARM64
libmvDeviceManager.dylib.3.5.0 "$MVIMPACT_ACQUIRE_DIR/lib/arm64-cross"
libmvGenTLConsumer.dylib.3.5.0 "$MVIMPACT_ACQUIRE_DIR/lib/arm64-cross"
libmvGenTLProducer.dylib.3.5.0 "$MVIMPACT_ACQUIRE_DIR/lib/arm64-cross"
libmvImageProcessing.dylib.3.5.0 "$MVIMPACT_ACQUIRE_DIR/lib/arm64-cross"
libmvPropHandling.dylib.3.5.0 "$MVIMPACT_ACQUIRE_DIR/lib/arm64-cross"
libmvVirtualDevice.dylib.3.5.0 "$MVIMPACT_ACQUIRE_DIR/lib/arm64-cross"
Note
  • The version number of the files in the list might differ as this table lists the latest version available.
  • Various symbolic links might be required on the target system as well pointing from
    • libXYZ.dylib.3 to libXYZ.dylib.3.5.0
    • libXYZ.dylib to libXYZ.dylib.3
    • mvGenTLProducer.cti to libmvGenTLProducer.dylib

GenICam™ Runtime

For operating GenICam™ compliant devices the GenICam™ runtime libraries are required as well. These can be found in the runtime folder of the original dmg file.

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

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

Dependencies

For the libraries, libexpat is necessary which is available on homebrew. Additionally, for using the GUI-based tools, wxWidgets 3.x might have to be installed.

Linking

For using Impact Acquire within your software, you may already have set the install path of the used Impact Acquire libraries. This is also necessary on the target system, so you may have to adapt your installation scripts.

Optimization Of Network Parameters

To improve performance, some system parameters may have to be adapted on the target system. For some of them, you may need to have administrator privileges.

  • An MTU of 9000 (at least 8000 should be used)
  • Via sysctl, some more optimizations could be made:
    sudo sysctl -w kern.ipc.maxsockbuf=8388608 // or more if possible
    sudo sysctl -w net.inet.udp.maxdgram=9216
    sudo sysctl -w net.inet.raw.recvspace=16777216 // or more if possible
    sudo sysctl -w net.inet.udp.recvspace=7454720 // or more if possible
    Note
    These changes are only valid for the running session and have to be set after each start of the system