Impact Acquire SDK Python
GenTLDriverConfigurator Class Reference

A class that contains items to configure the behaviour of the GenICam GenTL driver stack. More...

Inheritance diagram for GenTLDriverConfigurator:
[legend]

Public Member Functions

 __init__ (self, *args)
 Constructs a new mvIMPACT.acquire.GenTLDriverConfigurator object.
 
 createProducerConfiguration (self, *args)
 Creates a new mvIMPACT.acquire.GenTLProducerConfiguration object for the desired interface reported by the specified producer.
 
 deleteAllProducerConfigurations (self)
 Deletes all mvIMPACT.acquire.GenTLProducerConfiguration objects.
 
 deleteProducerConfiguration (self, producerName)
 Deletes a mvIMPACT.acquire.GenTLProducerConfiguration objects.
 
 getProducerConfiguration (self, producerName)
 Returns the mvIMPACT.acquire.GenTLProducerConfiguration associated with the referenced producer library.
 
 getProducerConfigurations (self)
 Returns a vector containing all mvIMPACT.acquire.GenTLProducerConfiguration objects currently defined.
 
 hasProducerConfiguration (self, producerName)
 Checks if a certain producer library has been associated with a mvIMPACT.acquire.GenTLProducerConfiguration.
 

Properties

 masterEnumerationBehaviour = property(lib_mvIMPACT_acquire.GenTLDriverConfigurator_masterEnumerationBehaviour_get, doc=)
 An enumerated integer property defining the master enumeration mode for all GenTL producer detected in the current session.
 
 thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
 

Detailed Description

A class that contains items to configure the behaviour of the GenICam GenTL driver stack.

This class contains items e.g. to configure the enumeration behaviour of third party GenTL producer libraries.

Since version 2.32.0 Impact Acquire has built-in support for third party GenTL producer libraries. The latest version of the GenTL specification can be found here: https://www.emva.org/standards-technology/genicam/.

Detection of GenTL producer libraries works by evaluating the GENICAM_GENTL32_PATH environment variable within a 32-bit process or the GENICAM_GENTL64_PATH variable in a 64-bit process. This variable contains a list of directories that might potentially contain GenTL producer libraries. These libraries use a the file extension .cti and export a defined interface.

All libraries that fulfill these requirements will be loaded into the Impact Acquire process. By default all these libraries will then also be enumerated for connected/bound devices. The only exception will be if a third party producer is found that reports an interface supporting the same technology as one delivered by Impact Acquire (e.g. for the GigE Vision or USB3 Vision standard). These interfaces by default will not be enumerated.

The purpose of this class now is to allow an application to modify this behaviour. This might be beneficial for several reasons:

  • a certain third party library on the system has negative impact on the overall stability of the process
  • there are so many third party libraries on the system that enumeration takes a very long time but the application does not want to access devices reported by these third party libraries
  • multiple producers support the same device resulting in very long and confusing device lists
  • etc.

To exclude a certain producer from enumeration first an mvIMPACT.acquire.GenTLProducerConfiguration entry for that producer must be created and then the mvIMPACT.acquire.GenTLProducerConfiguration.enumerationEnable property for this producer must be set to mvIMPACT.acquire.bFalse.

# Assuming a certain 'ACME.producer.cti' producer has been found somewhere in the GENICAM_GENTLXY_PATH.
driverConfigurator = acquire.GenTLDriverConfigurator()
if driverConfigurator.hasProducerConfiguration("ACME.producer.cti") == False:
driverConfigurator.createProducerConfiguration("ACME.producer.cti") # the 'enumerationEnable' will be false by default!
else:
driverConfigurator.getProducerConfiguration("ACME.producer.cti").enumerationEnable.write(acquire.bFalse)

To exclude a certain interface from a producer from enumeration an mvIMPACT.acquire.GenTLProducerConfiguration.enumerationEnable property for this producer can be set to mvIMPACT.acquire.bFalse and the interface enumeration behaviour should be set to mvIMPACT.acquire.iebForceEnumerate.

# Assuming a certain 'ACME.producer.cti' producer has been found somewhere in the GENICAM_GENTLXY_PATH.
driverConfigurator = acquire.GenTLDriverConfigurator()
GenTLProducerConfiguration configuration = None
if driverConfigurator.hasProducerConfiguration("ACME.producer.cti"):
configuration = driverConfigurator.getProducerConfiguration("ACME.producer.cti")
else:
configuration = driverConfigurator.createProducerConfiguration("ACME.producer.cti")
configuration.enumerationEnable.write(acquire.bTrue) # switch on ALL interfaces...
configuration.createProducerInterfaceConfigurationEntry("ACME.interface0.ID").write(acquire.iebForceIgnore) # ... except this one

The same thing can be done the other way round:

# Assuming a certain 'ACME.producer.cti' producer has been found somewhere in the GENICAM_GENTLXY_PATH.
driverConfigurator = acquire.GenTLDriverConfigurator()
GenTLProducerConfiguration configuration = None
if driverConfigurator.hasProducerConfiguration("ACME.producer.cti"):
configuration = driverConfigurator.getProducerConfiguration("ACME.producer.cti")
else:
configuration = driverConfigurator.createProducerConfiguration("ACME.producer.cti")
configuration.enumerationEnable.write(acquire.bFalse) # switch on ALL interfaces...
configuration.createProducerInterfaceConfigurationEntry("ACME.interface0.ID").write(acquire.iebForceEnumerate) # ... except this one
See also
Setting Up The Framework For Third Party GenTL Producer Usage
Since
2.34.0

Constructor & Destructor Documentation

◆ __init__()

__init__ ( self,
* args )

Constructs a new mvIMPACT.acquire.GenTLDriverConfigurator object.

OVERLOAD 1:

OVERLOAD 2: Constructs a new mvIMPACT.acquire.GenTLDriverConfigurator from an existing one.

Parameters
src[in] A constant reference to the mvIMPACT.acquire.GenTLDriverConfigurator object, this object shall be created from

Reimplemented from ComponentCollection.

Member Function Documentation

◆ createProducerConfiguration()

createProducerConfiguration ( self,
* args )

Creates a new mvIMPACT.acquire.GenTLProducerConfiguration object for the desired interface reported by the specified producer.

Calling this function will creates a new mvIMPACT.acquire.GenTLProducerConfiguration object for the desired interface reported by the specified producer.

Note
If a configuration entry for the specified interface does already exist an exception will be thrown.
Parameters
producerName[in] The exact name of the producer library without the path to create the entry for.
interfaceID[in] The interface ID to create the configuration entry for.

◆ deleteAllProducerConfigurations()

deleteAllProducerConfigurations ( self)

Deletes all mvIMPACT.acquire.GenTLProducerConfiguration objects.

Calling this function will result in all mvIMPACT.acquire.GenTLProducerConfiguration objects to be deleted. When the next Impact Acquire process will be started after shutting down the current one all producer libraries found on the system will be processed. By default only interfaces reporting types/technologies (e.g. GigE Vision) also supported by Balluff will be ignored (will not enumerate devices) then.

◆ deleteProducerConfiguration()

deleteProducerConfiguration ( self,
producerName )

Deletes a mvIMPACT.acquire.GenTLProducerConfiguration objects.

Calling this function will delete the mvIMPACT.acquire.GenTLProducerConfiguration object for the referenced producer.

Note
If no entry for the specified producer can be found an exception will be thrown.
Parameters
producerName[in] The exact name of the producer library without the path to delete the entry from.

◆ getProducerConfiguration()

getProducerConfiguration ( self,
producerName )

Returns the mvIMPACT.acquire.GenTLProducerConfiguration associated with the referenced producer library.

Note
If no entry for the specified producer can be found an exception will be thrown.
Returns
The mvIMPACT.acquire.GenTLProducerConfiguration associated with the referenced producer library.
Parameters
producerName[in] The exact name of the producer library without the path.

◆ getProducerConfigurations()

getProducerConfigurations ( self)

Returns a vector containing all mvIMPACT.acquire.GenTLProducerConfiguration objects currently defined.

Returns
A vector containing all mvIMPACT.acquire.GenTLProducerConfiguration objects currently defined.

◆ hasProducerConfiguration()

hasProducerConfiguration ( self,
producerName )

Checks if a certain producer library has been associated with a mvIMPACT.acquire.GenTLProducerConfiguration.

Returns
Parameters
producerName[in] The exact name of the producer library without the path.

Property Documentation

◆ masterEnumerationBehaviour

masterEnumerationBehaviour = property(lib_mvIMPACT_acquire.GenTLDriverConfigurator_masterEnumerationBehaviour_get, doc=)
static

An enumerated integer property defining the master enumeration mode for all GenTL producer detected in the current session.

Valid values for this property may be: mvIMPACT.acquire.iebNotConfigured, mvIMPACT.acquire.iebForceIgnore, mvIMPACT.acquire.iebForceEnumerate.

◆ thisown

thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
static