Working with GenICam GenTL Devices¶
GenTL Overview¶
Spinnaker GenTL Producer is a software driver that implements the GenICam™ GenTL 1.5 standard (EMVA). It allows users to enumerate, communicate, and stream from Teledyne GigE Vision and USB3 Vision devices in a generic way independent from the underlying transport technology.
This allows third-party software such as MATLAB and other software libraries to work with Teledyne devices in a transport-layer-agnostic way. These applications are referred to as "GenTL Consumers," which directly use one or more GenTL Producers.
Note
Consumer applications must be aware of differences in device capabilities and be prepared to handle specific device models differently.
Installation¶
The Spinnaker Producer comes packaged with the full Spinnaker SDK installer as of 2.x or newer.
The GenTL Producer is provided as a platform-dependent, dynamically loadable
library file with the .cti ("Common Transport Interface") extension.
The Spinnaker SDK installer stores the folder paths for 32-bit and 64-bit GenTL
Producers (.cti files) in environment variables named GENICAM_GENTL32_PATH
and GENICAM_GENTL64_PATH, respectively. If there are multiple GenTL Producers
installed on the system, path entries must be separated by ; on Windows and :
on UNIX-like systems.
Note
A 32-bit GenTL consumer application requires a 32-bit GenTL producer, and a 64-bit application requires a 64-bit producer library.
Troubleshooting¶
Enable Spinnaker GenTL Logging¶
Spinnaker GenTL Logging can be enabled if a configuration file named
log4cpp.gentl.property resides in the path of where the consumer application
executes from. For MATLAB, this is where the working directory is set.
Sample log4cpp.gentl.property configuration file:
# Spinnaker GenTL Property Configuration file
log4cpp.rootCategory=ERROR, rootAppender
log4cpp.category.GenTLCategory=ERROR, GenTLCategory
log4cpp.appender.rootAppender=ConsoleAppender
log4cpp.appender.rootAppender.layout=PatternLayout
log4cpp.appender.rootAppender.layout.ConversionPattern=[%p] %d [%t] %m%n
log4cpp.appender.GenTLCategory=RollingFileAppender
log4cpp.appender.GenTLCategory.fileName=$(ALLUSERSPROFILE)\Spinnaker\Logs\GenTL.log
log4cpp.appender.GenTLCategory.append=true
log4cpp.appender.GenTLCategory.maxFileSize=1000000
log4cpp.appender.GenTLCategory.maxBackupIndex=5
log4cpp.appender.GenTLCategory.layout=PatternLayout
log4cpp.appender.GenTLCategory.layout.ConversionPattern=[%p] %d [%t] %m%n
USB3 Device Image Tearing¶
Image tearing could occur with certain USB3 host controllers when streaming with a GenTL producer. To work around the issue, make sure the size of each buffer announced to the Spinnaker GenTL producer is 1024 bytes aligned.
The size of each buffer should be:
((bufferSize + 1024 - 1) / 1024) * 1024
where 1024 is the USB3 packet transfer size.
For more information, see: Image Tearing Causes and Solutions