Spinnaker GenTL Producer is a software driver that implements the GenICamâ„¢ GenTL 1.5 standard (https://www.emva.org/). 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 (https://www.mathworks.com) 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.
In order to use a Spinnaker GenTL producer, it needs to be properly registered and installed on the system. 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, dynamic 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 32bit GenTL consumer application will require a 32-bit GenTL producer and a 64-bit application will require a 64-bit producer library.
Spinnaker GenTL Logging can be enabled if a configuration file with the name "log4cpp.gentl.property" resides in the path of where the consumer application executes from. For MATLAB, this is where the working directory is set and may default to the "Downloads" folder on Windows.
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
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 about image tearing causes and solutions, please refer to: https://www.flir.com/support-center/iis/machine-vision/application-note/image-tearing-causes-and-solutions/