GenTL producers configuration

The eGrabber configuration files allow to configure the internal behavior of some functionalities. There is one configuration file per GenTL producer: coaxlink.ini, grablink.ini, gigelink.ini and playlink.ini. For Playlink, there is also a file playlink.cfg, which serves to define its data streams from eGrabber Recorder containers.

The configuration files are located in:

Windows: %PUBLIC%\Documents\Euresys\eGrabber (C:\Users\Public\Documents\Euresys\eGrabber)
Linux: /etc/opt/euresys/egrabber
macOS: /usr/local/etc/opt/euresys/egrabber

These files follow the INI format of key=value pairs inside a [Section]. Depending on the producer, different sections and parameters are available.

The values read from the configuration files can be consulted in the System module, under the ConfigurationFile category.

coaxlink.ini and grablink.ini

[Genapi]/MathParserMode: Configure the behavior of GenApi SwissKnife parser
Standard: permissive mode that operates like the GenICam reference implementation (left associativity)
Strict: evaluation of the formulas must be non ambiguous, using parentheses is required when several logical operators are used at the same level
Auto: same as Strict
[System]/InterfaceOrder: Sort the discovered interfaces according to a specific ordering. Possible values are:
Ascending: sort interfaces based on the card ID, in ascending order
Descending: sort interfaces based on the card ID, in descending order
PciPosition: sort interfaces based on the PCI position value
PciSlot: sort interfaces based on the slot ID (if available, Windows only, and subject to drivers and hardware limitations)
System: do not sort interfaces, use the default ordering obtained during discovery

Notes:

the card ID is defined as the card full name concatenated with its serial number: ProductCode - Name (Variant) - SerialNumber
the PCI position is an internal numeric value calculated from the bus and slot information

Sample coaxlink.ini

[System]
InterfaceOrder=Ascending

[Genapi]
MathParserMode=Auto

gigelink.ini

[Genapi]/MathParserMode:
Standard: permissive mode that operates like the GenICam reference implementation (left associativity)
Strict: evaluation of the formulas must be non ambiguous, using parentheses is required when several logical operators are used at the same level
Auto: same as Standard
[Interface]/CameraSubnet: restrict discovery to cameras whose IPv4 address matches the given IPv4 subnet, e.g. 192.168.100.0/24 for cameras ranging from 192.168.100.1 to 192.168.100.254.
[Interface]/DiscoveryTimeout: define how long to wait for a discovery reply (value in milliseconds)
[Interface]/AllowBroadcastAck: devices are allowed to send discovery replies in IPv4 broadcast packets. This helps the discovery of cameras with misconfigured network (y/Y or n/N)
[Stream]/UseFilterDriver: enable the use of gigelink.sys filter driver for GVSP protocol processing (y/Y or n/N)
[Stream]/PacketResend: enable packet retransmission with the given maximum number of requests per block (n/N for disabled, an integer value otherwise)
[Stream]/GenDCExtraPackets: extra packets to use in GenDC container transmission (integer value)
[Stream]/RdmaConnectionTimeout: define how long to wait for device acknowledge during NetworkDirect+InfiniBand connection establishment (value in milliseconds)
[Stream]/ForceRdma: try to create a RDMA stream in the given list of IP addresses (a comma-separated list of IP addresses)

Sample gigelink.ini

[Genapi]
MathParserMode=Auto

[Interface]
CameraSubnet=169.254.0.0/16
DiscoveryTimeout=2500
AllowBroadcastAck=n

[Stream]
UseFilterDriver=y
PacketResend=5
GenDCExtraPackets=2
RdmaConnectionTimeout=3500
ForceRdma=169.254.0.3,169.254.0.4

playlink.ini

[Genapi]/MathParserMode: Configure the behavior of GenApi SwissKnife parser
Standard: permissive mode that operates like the GenICam reference implementation (left associativity)
Strict: evaluation of the formulas must be non ambiguous, using parentheses is required when several logical operators are used at the same level
Auto: same as Strict

Sample playlink.ini

[Genapi]
MathParserMode=Auto

playlink.cfg

# Playlink configuration file
# ---------------------------
#
# Playlink (playlink.cti) is a Euresys GenTL producer that turns Euresys Recorder
# containers into GenTL data streams.
#
# This config file allows you to configure playlink.cti.
# Each line starting with an '#' is a comment line and is ignored.
# Blank lines are ignored too.
# Otherwise, each line maps a GenTL data stream to a Euresys Recorder container
# path.
# The GenTL hierarchy of the data stream is explicitly defined by the Interface,
# Device and Stream module IDs.
# The next line shows the syntax used to declare and configure the GenTL modules:

# /{Interface name}/Device{id}/Stream0 = {Path to Euresys Recorder container}

# - {Interface name} is to be replaced with the desired name.
#   Valid characters for the name of the interface are:
#   + Latin letters (no diacritics)
#   + Digits
#   + The following special characters: '+', '-', '(', ')', ' '
# - {id} is to be replaced with the id of the device (only digits are allowed)
# - {Path to Euresys Recorder container} is to be replaced with the actual path 
#   to the Euresys Recorder container. 
#   The path may contain any character except these ones:
#   + Question mark: '?'
#   + Carriage return: '\r'
#   + Line feed: '\n'
#   An absolute path is expected.
# - Since the stream name is fixed, there can only be one stream per device.

# For example:
# /My Interface/Device0/Stream0 = E:\Containers\foo

# Will create an interface named "My Interface", a device named "Device0" and
# a datastream named "Stream0". The created stream will output buffers from
# the Euresys Recorder container at "E:\Containers\foo"

# An interface can contain one or more devices, e.g.:

# /My (Interface)/Device42/Stream0=/mnt/containers/bar
# /My (Interface)/Device666/Stream0 = /mnt/containers/baz

# Each configuration line can also declare key-value attributes that further configure
# the device.
# Attributes are introduced by a '?' right after the path.
# Each attribute is a key-value pair of the form {key}={value}.
# Attributes are separated by a '&'.
# Here is an example:

# /Iface/Device0/Stream0 = C:/con/te/partiro?PlaybackLoop=true&PlaybackFrameRateMode=auto&PlaybackFrameRateMultiplier=2

# There exists many attributes and they expect values of different types:
# "PlaybackLoop": {true, false}
# "PlaybackMode": {container, chapter}
# "PlaybackFrameRateMode": {auto, fixed}
# "PlaybackFixedFrameRate": float
# "PlaybackFrameRateMultiplier": float
# "RewindOnStop": {true, false}