Impact Acquire SDK .NET
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

GenTLProducerConfiguration createProducerConfiguration (String producerName)
 Creates a new mv.impact.acquire.GenICam.GenTLProducerConfiguration object for the desired interface reported by the specified producer.
 
GenTLProducerConfiguration createProducerConfiguration (String producerName, String interfaceID)
 Creates a new mv.impact.acquire.GenICam.GenTLProducerConfiguration object for the desired interface reported by the specified producer.
 
void deleteAllProducerConfigurations ()
 Deletes all mv.impact.acquire.GenICam.GenTLProducerConfiguration objects.
 
void deleteProducerConfiguration (String producerName)
 Deletes a mv.impact.acquire.GenICam.GenTLProducerConfiguration objects.
 
 GenTLDriverConfigurator ()
 Constructs a new mv.impact.acquire.GenICam.GenTLDriverConfigurator object.
 
IEnumerable< TgetEnumerable< T > ()
 Returns an enumerator of a certain type that iterates through the collection.
 
IEnumerator< intGetEnumerator ()
 Returns an enumerator that iterates through the collection.
 
GenTLProducerConfiguration getProducerConfiguration (String producerName)
 Returns the mv.impact.acquire.GenICam.GenTLProducerConfiguration associated with the referenced producer library.
 
bool hasProducerConfiguration (String producerName)
 Checks if a certain producer library has been associated with a mv.impact.acquire.GenICam.GenTLProducerConfiguration.
 
void restoreDefault ()
 Restores the default for every component of this collection.
 

Public Attributes

EnumPropertyI< TInterfaceEnumerationBehaviourmasterEnumerationBehaviour = new EnumPropertyI<TInterfaceEnumerationBehaviour>()
 An enumerated integer property defining the master enumeration mode for all GenTL producer detected in the current session.
 

Properties

IEnumerable< ComponentcomponentEnumerable [get]
 Returns an enumerator that iterates through the collection.
 
IEnumerable< ComponentListcomponentListEnumerable [get]
 Returns an enumerator that iterates through all the mv.impact.acquire.ComponentList elements in the collection.
 
int hObj [get]
 Returns a unique identifier for the component collection referenced by this object.
 
List< GenTLProducerConfigurationproducerConfigurations [get]
 Returns a vector containing all mv.impact.acquire.GenICam.GenTLProducerConfiguration objects currently defined.
 

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 a mv.impact.acquire.GenICam.GenTLProducerConfiguration entry for that producer must be created and then the mv.impact.acquire.GenICam.GenTLProducerConfiguration.enumerationEnable property for this producer must be set to mv.impact.acquire.TBoolean.bFalse.

EXAMPLE:

// Assuming a certain 'ACME.producer.cti' producer has been found somewhere in the GENICAM_GENTLXY_PATH.
if( !driverConfigurator.hasProducerConfiguration( "ACME.producer.cti" ) )
{
driverConfigurator.createProducerConfiguration( "ACME.producer.cti" ); // the 'enumerationEnable' will be false by default!
}
else
{
driverConfigurator.getProducerConfiguration( "ACME.producer.cti" ).enumerationEnable.write( TBoolean.bFalse );
}
A template class to represent 32 bit integer properties and 32 bit enumerated integer properties.
Definition EnumPropertyI.cs:61
EnumPropertyI< T > write(T value)
Writes one value to the property.
Definition EnumPropertyI.cs:449
A class that contains items to configure the behaviour of the GenICam GenTL driver stack.
Definition GenTLDriverConfigurator.cs:88
TBoolean
Defines a Boolean value type.
Definition mvDriverBaseEnums.cs:481
This namespace contains classes and functions belonging to the GenICam specific part of the image acq...
Definition GenTLDriverConfigurator.cs:6
This namespace contains classes and functions belonging to the image acquisition module of this SDK.
Definition Enumerations.cs:2
Definition Enumerations.cs:2
Definition Enumerations.cs:2

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

EXAMPLE:

// Assuming a certain 'ACME.producer.cti' producer has been found somewhere in the GENICAM_GENTLXY_PATH.
GenTLProducerConfiguration configuration( driverConfigurator.hasProducerConfiguration( "ACME.producer.cti" ) ? driverConfigurator.getProducerConfiguration( "ACME.producer.cti" ) : driverConfigurator.createProducerConfiguration( "ACME.producer.cti" ) );
configuration.enumerationEnable.write( bTrue ); // switch on ALL interfaces...
configuration.createProducerInterfaceConfigurationEntry( "ACME.interface0.ID" ).write( iebForceIgnore ); // ... except this one
A class that contains items to configure the behaviour of the GenICam GenTL driver stack.
Definition GenTLProducerConfiguration.cs:28

The same thing can be done the other way round:

EXAMPLE:

// Assuming a certain 'ACME.producer.cti' producer has been found somewhere in the GENICAM_GENTLXY_PATH and only a certain interface shall be enumerated.
GenTLProducerConfiguration configuration( driverConfigurator.hasProducerConfiguration( "ACME.producer.cti" ) ? driverConfigurator.getProducerConfiguration( "ACME.producer.cti" ) : driverConfigurator.createProducerConfiguration( "ACME.producer.cti" ) );
configuration.enumerationEnable.write( bFalse ); // switch off ALL interfaces...
configuration.createProducerInterfaceConfigurationEntry( "ACME.interface0.ID" ).write( iebForceEnumerate ); // ... except this one
See also
Setting Up The Framework For Third Party GenTL Producer Usage
Since
2.34.0

Constructor & Destructor Documentation

◆ GenTLDriverConfigurator()

Member Function Documentation

◆ createProducerConfiguration() [1/2]

GenTLProducerConfiguration createProducerConfiguration ( String producerName)
inline

Creates a new mv.impact.acquire.GenICam.GenTLProducerConfiguration object for the desired interface reported by the specified producer.

Calling this function will creates a new mv.impact.acquire.GenICam.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
[in]producerNameThe exact name of the producer library without the path to create the entry for.

◆ createProducerConfiguration() [2/2]

GenTLProducerConfiguration createProducerConfiguration ( String producerName,
String interfaceID )
inline

Creates a new mv.impact.acquire.GenICam.GenTLProducerConfiguration object for the desired interface reported by the specified producer.

Calling this function will creates a new mv.impact.acquire.GenICam.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
[in]producerNameThe exact name of the producer library without the path to create the entry for.
[in]interfaceIDThe interface ID to create the configuration entry for.

◆ deleteAllProducerConfigurations()

void deleteAllProducerConfigurations ( )
inline

Deletes all mv.impact.acquire.GenICam.GenTLProducerConfiguration objects.

Calling this function will result in all mv.impact.acquire.GenICam.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()

void deleteProducerConfiguration ( String producerName)
inline

Deletes a mv.impact.acquire.GenICam.GenTLProducerConfiguration objects.

Calling this function will delete the mv.impact.acquire.GenICam.GenTLProducerConfiguration object for the referenced producer.

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

◆ getEnumerable< T >()

IEnumerable< T > getEnumerable< T > ( )
inlineinherited

Returns an enumerator of a certain type that iterates through the collection.

This interface will allow to e.g. write code like this:

Info info = new Info(pDev);
foreach (Property c in info.getEnumerable<Property>())
{
}
A class to query various general information about the device, its driver and other information.
Definition Info.cs:10
A base class for properties.
Definition Property.cs:109

See the frameworks documentation about the System.Collections.IEnumerable interface for more information.

Returns
An enumerator that iterates through the collection

◆ GetEnumerator()

IEnumerator< int > GetEnumerator ( )
inlineinherited

Returns an enumerator that iterates through the collection.

See the frameworks documentation about the System.Collections.IEnumerable interface for more information.

Returns
An enumerator that iterates through the collection

◆ getProducerConfiguration()

GenTLProducerConfiguration getProducerConfiguration ( String producerName)
inline

Returns the mv.impact.acquire.GenICam.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 mv.impact.acquire.GenICam.GenTLProducerConfiguration associated with the referenced producer library.
Parameters
[in]producerNameThe exact name of the producer library without the path.

◆ hasProducerConfiguration()

bool hasProducerConfiguration ( String producerName)
inline

Checks if a certain producer library has been associated with a mv.impact.acquire.GenICam.GenTLProducerConfiguration.

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

◆ restoreDefault()

void restoreDefault ( )
inlineinherited

Restores the default for every component of this collection.

Calling this function will restore the default value for every component belonging to this collection.

Note
The caller must have the right to modify the component. Otherwise an exception will be thrown.

Member Data Documentation

◆ masterEnumerationBehaviour

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

Valid values for this property are defined by the enumeration mv.impact.acquire.TInterfaceEnumerationBehaviour.

Property Documentation

◆ componentEnumerable

IEnumerable<Component> componentEnumerable
getinherited

Returns an enumerator that iterates through the collection.

This interface will allow to e.g. write code like this:

Info info = new Info(pDev);
foreach (Component c in info.componentEnumerable)
{
Console.WriteLine("{0}", c.name);
}
String name
Returns the name of the component referenced by this object.
Definition ComponentAccess.cs:167
A base class to implement access to internal driver components.
Definition Component.cs:133

See the frameworks documentation about the System.Collections.IEnumerable interface for more information.

Returns
An enumerator that iterates through the collection

◆ componentListEnumerable

IEnumerable<ComponentList> componentListEnumerable
getinherited

Returns an enumerator that iterates through all the mv.impact.acquire.ComponentList elements in the collection.

This interface will allow to e.g. write code like this:

Info info = new Info(pDev);
foreach (ComponentList cl in info.componentListEnumerable)
{
Console.WriteLine("{0}", cl.name);
}
A class to provide access to component lists.
Definition ComponentList.cs:14

See the frameworks documentation about the System.Collections.IEnumerable interface for more information.

Returns
An enumerator that iterates through the collection

◆ hObj

int hObj
getinherited

Returns a unique identifier for the component collection referenced by this object.

This handle will always reference an object of type mv.impact.acquire.ComponentList.

Returns
A unique identifier for the component referenced by this object.

◆ producerConfigurations

List<GenTLProducerConfiguration> producerConfigurations
get

Returns a vector containing all mv.impact.acquire.GenICam.GenTLProducerConfiguration objects currently defined.

Returns
A vector containing all mv.impact.acquire.GenICam.GenTLProducerConfiguration objects currently defined.