IDS peak


INSTALLATION INSTRUCTIONS
===============================================================================

  Linux Installation Instructions
  ------------------------------------------------------------------------------
  1. Install the following libraries for the IDS peak Cockpit:

     - QtCore, QtGui and QtWidgets with a minimal version of 5.2 and libusb

     Debian based distributions:

       sudo apt-get install libqt5core5a libqt5gui5 libqt5widgets5 libusb-1.0-0       
       
     For running the Qt samples you will further require:
     
       QtQuick, QtQuick.Window
     
     For building the Qt samples you will further require:
     
       QtBase-dev, Qt 5 declarative development files
     
     Debian based distributions:
      
       sudo apt-get install libqt5quick5 qml-module-qtquick-window2 qml-module-qtquick2 qml-module-qtquick-dialogs qml-module-qtquick-controls qml-module-qtquick-layouts

     And for development:

       sudo apt-get install qtbase5-dev qtdeclarative5-dev

  2. Vision cameras

    * [GigE Vision cameras]

      a. Automatic configuration of the IP address of a camera:
      
         Add a link-local profile to the NetworkManager and assign it to the
         network interface where your camera is connected.
      
         When running a Debian based distribution you need to install the
         following package beforehand for the link-local profile to work:
      
           sudo apt-get install avahi-autoipd
      
      b. Manual configuration of the IP address of a camera:
      
           To configure the IP address of a camera either the ids_ipconfig tool or
           ids_peak_cockpit can be used. When the camera is in a different subnet it is
           is only visible when using root privileges and can't be configured without root privileges for the default configuration. The Debian package enables the possibility to do this without root privileges. 
           For the archive installation in order to configure the camera in this case the ids_ipconfig tool or ids_peak_cockpit 
           need to be run with root privileges e.g. sudo:
      
           For archive installation:
       
           From archive root folder run:
           IDS peak Cockpit:   sudo ./bin/ids_peak_cockpit
           IP Config:      sudo ./bin/ids_ipconfig
        
      c. Optimizing network stack buffer sizes:
       
           The default Linux network stack is not optimized for transferring large amounts of data. Therefore it is recommended to increase the internal buffer size of the UDP network stack to improve camera performance 
           and avoid package loss. But keep in mind that this increases the buffer sizes only at the endpoints if you are you using switches or other network infrastructure this might not have an effect:
      
           To increase the network stack buffer size for UDP edit the file /etc/sysctl.conf. If not present add the following lines:
      
               net.core.rmem_max=26214400
               net.core.rmem_default=26214400
      
           This sets the maximum buffer size to ~25 MB, whereas the default buffer size is usually 128 KB. 
           In the folder local/scripts respectively /usr/local/scripts for the installed Debian package you will find a script which is capable of adding the rmem sizes automatically run it with sudo:
          
           For the Debian package: 
            sudo /usr/local/scripts/set_receive_buffer_size.sh
           
           For archive installation from archive root folder:
             sudo ./local/scripts/set_receive_buffer_size.sh
             
           Note that the script will not change the values if the entries are already present but it will tell you to check your values manually since they might already be higher when the 26214400 bytes.
           For the changes to become effective you have to reboot the system.

    * [USB Vision cameras]
      
      To use the USB Vision cameras you will need to setup a udev rule. The Debian package does this already but 
      for manual installation you can find a udev rule file in the installation folder under local/scripts. Also you may use the install script in the same folder.

  3. Environment variables

      The IDS peak packages uses the environment variable GENICAM_GENTL32_PATH / GENICAM_GENTL64_PATH to find the GenTL producer libraries.
      The shipped executables in the bin folder are actually shell scripts which export the variables for the current session and call the actual executables. For the source code of the samples CMake 
      will generate a starter script and copy it to the output folder which you should use to run the built samples. If you want to build your own application you can either set the variables for your user 
      account manually or build your own shell script the same way CMake does for the shipped samples (see CMakeLists.txt for the samples).  
  
  4. The applications are started with their corresponding shell script files:
  
       From archive root folder run:
       IDS peak Cockpit:    ./bin/ids_peak_cockpit
       Vision Cockpit: ./bin/ids_visioncockpit
       IP Config:       ./bin/ids_ipconfig
       Device Command:  ./bin/ids_devicecommand
       Device Update:   ./bin/ids_deviceupdate

       For the package installation run in a terminal:
       IDS peak Cockpit:    ids_peak_cockpit
       Vision Cockpit: ids_visioncockpit
       IP Config:       ids_ipconfig
       Device Command:  ids_devicecommand
       Device Update:   ids_deviceupdate

  5. Building samples and own programs with CMake
  
       When installed by Debian package the samples are copied to /usr/local/src/ids where you should have no writing permissions. 
       Please copy the samples to a folder with write permissions e.g. your home folder, otherwise CMake will fail building them. 
       The installation ships with a CMake config file for the shipped libraries. If you use the Debian package you can simply use find_package since it will automatically find the config.cmake files. 
       For the tar.gz installation file you have to set the CMAKE_PREFIX_PATH to the folder with the config files or the library root with -DCMAKE_PREFIX_PATH="lib/".

  6. Documentation for shipped libraries

       The HTML documentation for the shipped libraries can be found in /share/doc/ids-peak/LibraryName-Version/doc for the tar archive and for the 
       Debian package installation under /usr/share/doc/ids-peak/LibraryName-Version/doc.
   
  7. Note on installed and created files
  
       The shipped programs may create config files in the .config directory of your home folder under the subdirectory "IDS Imaging Development Systems GmbH".


UNINSTALLATION INSTRUCTIONS
===============================================================================

  Linux Uninstallation Instructions
  ------------------------------------------------------------------------------
  For Archive installation: 
  
    First uninstall the udev rule by running the uninstall script in /local/scripts/. 
    To uninstall the IDS peak delete the folder which was extracted from the tar archive. 
    Check your .config directory in your home folder and delete the folder "IDS Imaging Development Systems GmbH" if you do not want to reuse the configurations.
  
  For Debian package:
  
    run "sudo apt-get purge ids-peak"


CURRENTLY KNOWN ISSUES
===============================================================================

  - Running the Vision Cockpit with QtWayland may cause flickering in combination with specific gnome-shell versions. 
    This is a known bug of gnome-shell and should only occur on old gnome-shell versions < 3.32.
  - On current Raspbian Buster versions there seems to be an issue with the DHCP daemon. If you use the GUI of Raspbian to set the network configuration there is an option
    to partially set options manually and let the system detect the other parts of the configuration. This option is called "Automatically configure empty options". 
    If you do not have a DHCP server running, e.g. when you are directly connected to the camera this option may prevent you from using a GEV camera under Linux. The camera device will be detected
    but can not be used. The source of the issue is that the DHCP daemon does not set all network configurations properly, if it does not detect a DHCP server. Especially Kernel IP Routes will be 
    wrong and will cause the described problem. If you experience these issues uncheck the option and reboot your Raspberry Pi to make sure all options are set properly.
  - The network performance on the Raspberry Pi may be extremely bad and can cause incomplete images. This is an issue with the network design of the Raspberry Pi which is actually connected via 
    the USB controller. This may be especially prominent on the Raspberry Pi 3 B+ which has a Gigabit Ethernet controller. To avoid these issues set the GEV SCPS Packet Size of your camera to 1500.
    Additionally reduce the DeviceLinkThroughPutLimit to a lower value e.g. 5301360.
