EGrabber.NETFramework Helper functions to build Euresys GenApi actions Create an action to declare a virtual user feature of type Integer on a GenApi Module Example: create a virtual user feature size of type Integer on the Device module grabber.Device.Set(Action.DeclareInteger, "size"); grabber.Device.Set("$size", 1024); grabber.RunScript(pathToScriptUsingTheUserFeaturesize); long size = grabber.Device.Get<long>("$size"); A declared virtual user feature is used as a GenApi feature by prefixing its name with a dollar sign ($) See also Create an action to declare a virtual user feature of type Float on a GenApi Module See also Create an action to declare a virtual user feature of type String on a GenApi Module See also Create an action to undeclare (delete) a virtual user feature on a GenApi Module Example: delete a virtual user feature size on the Device module grabber.Device.Set(Action.Undeclare, "size"); See also Buffer object encapsulating a GenTL buffer Create a Buffer object encapsulating the next delivered GenTL buffer The grabber managing the underlying GenTL buffer Timeout value If there is no new buffer event when called, the method waits for at most the specified Either the timeout expires and a is thrown Or GenTL buffer is delivered and a Buffer object is created Create a Buffer object encapsulating the next delivered GenTL buffer The grabber managing the underlying GenTL buffer Timeout value in milliseconds If there is no new buffer event when called, the method waits for at most the specified Either the timeout expires and a is thrown Or GenTL buffer is delivered and a Buffer object is created Create a Buffer object encapsulating the GenTL buffer specified in a The grabber managing the underlying GenTL buffer New buffer data A new buffer data can be obtained from The argument of a callback registered with , where T is Release the resources associated with the object Push the GenTL buffer back to the data stream input fifo Convert a buffer Output pixel format Convert output configuration Convert output operation Quality for jpeg format, from 1 (lowest) to 100 (highest), 0 selects the default encoder quality value Converted buffer Convert a buffer to a specified output buffer Output pixel format Output buffer pointer Output buffer size Convert output configuration Convert output operation Quality for jpeg format, from 1 (lowest) to 100 (highest), 0 selects the default encoder quality value Converted data size Convert a buffer Output pixel format Convert output configuration Convert output operation Quality for jpeg format, from 1 (lowest) to 100 (highest), 0 selects the default encoder quality value Region of interest to be converted Converted buffer Convert a buffer to a specified output buffer Output pixel format Output buffer pointer Output buffer size Convert output configuration Convert output operation Quality for jpeg format, from 1 (lowest) to 100 (highest), 0 selects the default encoder quality value Region of interest to be converted Converted data size Save the buffer content to disk Path to the file or path pattern path of the new image file, the file extension determines the file format path pattern where a group of characters N is replaced by the value of index: if index is 5, N becomes 5 if index is 9, NN becomes 09 if index is 10, NN becomes 10 Control pattern substitution if index >= 0, enable pattern substitution with given index value if index < 0, disable pattern substitution Notes: The parent directory must exist Buffer information (address, width, height, format) are automatically queried No buffer conversion will be applied before writing the image file, please use Buffer.Convert[To] if needed Save the buffer content to disk Path to the file or path pattern path of the new image file, the file extension determines the file format path pattern where a group of characters N is replaced by the value of index: if index is 5, N becomes 5 if index is 9, NN becomes 09 if index is 10, NN becomes 10 Control pattern substitution if index >= 0, enable pattern substitution with given index value if index < 0, disable pattern substitution Image saving parameters Notes: The parent directory must exist Buffer information (address, width, height, format) are automatically queried No buffer conversion will be applied before writing the image file, please use Buffer.Convert[To] if needed Get buffer information Type of the return value Buffer info command Buffer information Please note that and are closely related Wrong combinations of and will lead to or exceptions Using an unsupported type will throw an Get useful buffer information Buffer information Get the user object provided when the GenTL buffer was announced (if any) Get the base address of the buffer memory (cf. ) Converted buffer returned by Buffer.Convert Release the resources associated with the object Finalize method releasing unmanaged resources Convert a buffer Output pixel format Convert output configuration Convert output operation Quality for jpeg format, from 1 (lowest) to 100 (highest), 0 selects the default encoder quality value Converted buffer Convert a buffer to a specified output buffer Output pixel format Output buffer pointer Output buffer size Convert output configuration Convert output operation Quality for jpeg format, from 1 (lowest) to 100 (highest), 0 selects the default encoder quality value Converted data size Convert a buffer Output pixel format Convert output configuration Convert output operation Quality for jpeg format, from 1 (lowest) to 100 (highest), 0 selects the default encoder quality value Region of interest to be converted Converted buffer Convert a buffer to a specified output buffer Output pixel format Output buffer pointer Output buffer size Convert output configuration Convert output operation Quality for jpeg format, from 1 (lowest) to 100 (highest), 0 selects the default encoder quality value Region of interest to be converted Converted data size Save the buffer content to disk Path to the file or path pattern path of the new image file, the file extension determines the file format path pattern where a group of characters N is replaced by the value of index: if index is 5, N becomes 5 if index is 9, NN becomes 09 if index is 10, NN becomes 10 Control pattern substitution if index >= 0, enable pattern substitution with given index value if index < 0, disable pattern substitution Notes: The parent directory must exist Buffer information (address, width, height, format) are automatically queried Save the buffer content to disk Path to the file or path pattern path of the new image file, the file extension determines the file format path pattern where a group of characters N is replaced by the value of index: if index is 5, N becomes 5 if index is 9, NN becomes 09 if index is 10, NN becomes 10 Control pattern substitution if index >= 0, enable pattern substitution with given index value if index < 0, disable pattern substitution Image saving parameters Notes: The parent directory must exist Buffer information (address, width, height, format) are automatically queried Get useful buffer information Buffer information Size of the buffer in bytes Image width in pixels Image height in pixels Line pitch in bytes Buffer address Buffer pixel format Range of buffer indexes returned by the EGrabber methods announcing buffers Create an empty range of buffer indexes Create a range of buffer indexes Index of the first buffer in range Index of the end of the range, the end is not included in the range Flag is true to indicate buffers have been (or will be) queued in the reverse order Create a range of buffer indexes Index of the first buffer in range Index of the end of the range, the end is not included in the range Create a range of buffer indexes Range to clone Convert a Zero-based index in the range to an absolute buffer index Zero-based index of a buffer in the range Absolute buffer index Size of the range (count) Index of the first buffer of the range Index of the end of the range, the end is not included in the range Flag is true if the buffers have been (or will be) queued in the reverse order Release the resources associated with the object Useful buffer information Base address of the buffer memory Size of the buffer in bytes Line pitch Width of the data in the buffer in number of pixels Number of delivered lines in the buffer Pixelformat of the data Number of bits per pixel collection enumerator Build an enumerator for the collection Strongly typed enumerator Build an enumerator for the collection Non-generic enumerator Non-generic version of CIC event data In order to get CIC events, the CIC event data type needs to be enabled by calling with the event type CIC event data can be received as event callback argument or using Event timestamp Custom event data identifier Value of EventNotificationContext1 for this event (latched at the time the event occurred) Value of EventNotificationContext2 for this event (latched at the time the event occurred) Value of EventNotificationContext3 for this event (latched at the time the event occurred) Helpers to get the paths of different producers (CTI) Return the path of the Coaxlink producer Example: initialize a GenTL instance with the Coaxlink producer var gentl = new EGenTL(CtiPath.Coaxlink); See also Return the path of the Grablink producer Example: initialize a GenTL instance with the Grablink producer var gentl = new EGenTL(CtiPath.Grablink); See also Return the path of the Gigelink producer Example: initialize a GenTL instance with the Gigelink producer var gentl = new EGenTL(CtiPath.Gigelink); See also Return the path of the default producer The default producer is derived from the environment variable EURESYS_DEFAULT_GENTL_PRODUCER See also CoaXPress device event data In order to get CoaXPress device events, the CoaXPress device event data type needs to be enabled by calling with the event type CoaXPress device event data can be received as event callback argument or using Event timestamp Custom event data identifier Value of EventNotificationContext1 for this event (latched at the time the event occurred) Value of EventNotificationContext2 for this event (latched at the time the event occurred) Value of EventNotificationContext3 for this event (latched at the time the event occurred) CoaXPress event data on the Interface module In order to get CoaXPress events of the Interface module, the CoaXPress event data type needs to be enabled by calling with the event type CoaXPress event data can be received as event callback argument or using Event timestamp Custom event data identifier Value of EventNotificationContext1 for this event (latched at the time the event occurred) Value of EventNotificationContext2 for this event (latched at the time the event occurred) Value of EventNotificationContext3 for this event (latched at the time the event occurred) Data stream event data In order to get data stream events, the data stream event data type needs to be enabled by calling with the event type Data stream event data can be received as event callback argument or using Event timestamp Custom event data identifier Value of EventNotificationContext1 for this event (latched at the time the event occurred) Value of EventNotificationContext2 for this event (latched at the time the event occurred) Value of EventNotificationContext3 for this event (latched at the time the event occurred) Device error event data In order to get device error events, the device error event data type needs to be enabled by calling with the event type Device error event data can be received as event callback argument or using Event timestamp Custom event data identifier Value of EventNotificationContext1 for this event (latched at the time the event occurred) Value of EventNotificationContext2 for this event (latched at the time the event occurred) Value of EventNotificationContext3 for this event (latched at the time the event occurred) Diagnostic utilities Check that all boxes have been correctly released When there are unreleased boxes An EGenTL object is a wrapper around EGenTL C++ API Create an EGenTL object and initialize the EGenTL library The default producer is used Create an EGenTL object and initialize the EGenTL library Path of the producer to use See also Return the number of bytes per pixel for the specified pixel format Pixel format (PFNC 32-bit or 16-bit namespaces) Size in bytes Return the number of bytes per pixel for the specified pixel format Pixel format numerical value (PFNC 32-bit or 16-bit namespaces) Size in bytes Return the number of bits per pixel for the specified pixel format Pixel format (PFNC 32-bit or 16-bit namespaces) Size in bits Return the number of bits per pixel for the specified pixel format Pixel format numerical value (PFNC 32-bit or 16-bit namespaces) Size in bits Convert a pixel format numerical value into the pixel format name Pixel format numerical value (PFNC 32-bit or 16-bit namespaces) Pixel format name Preallocate buffers in the pool to improve conversion performance The size of the buffers to preallocate in the converter pool The number of buffers to preallocate This function improves the performance of subsequent image conversions that need one or more buffers of size Warning: a conversion requiring a buffer of a different size (for which there is no preallocated or unused buffer in the pool) will automatically allocate a new buffer prior to applying the conversion Reclaim unused buffers managed by the converter to free memory Get System module information Type of the return value TL info command TL information Please note that and are closely related Wrong combinations of and will lead to or exceptions Using an unsupported type will throw an Convert a pixel format name into the PFNC 32-bit numerical value Pixel format (PFNC 32-bit or 16-bit namespaces) Pixel format numerical value Convert an image Input image details Output image details Convert a region of interest Input image details Output image details Region of interest Save an image to disk Input image details Path to file or path pattern path of the new image file, the file extension determines the file format path pattern where a group characters N is replaced by the value of index: if index is 5, N becomes 5 if index is 9, NN becomes 09 if index is 10, NN becomes 10 Control pattern substitution if index >= 0, enable pattern substitution with given index value if index < 0, disable pattern substitution Note: the parent directory must exist Save an image to disk Input image details Path to file or path pattern path of the new image file, the file extension determines the file format path pattern where a group characters N is replaced by the value of index: if index is 5, N becomes 5 if index is 9, NN becomes 09 if index is 10, NN becomes 10 Control pattern substitution if index >= 0, enable pattern substitution with given index value if index < 0, disable pattern substitution Image saving parameters Note: the parent directory must exist Release the resources associated with the object Region of interest (ROI) details for image conversion (optional) Width of ROI in pixels (default=0 selects buffer parameter width) Height of ROI in pixels (default=0 selects buffer parameter height) X offset (in pixels) in the input buffer Y offset (in pixels) in the input buffer X offset (in pixels) in the output buffer Y offset (in pixels) in the output buffer Image Save to Disk parameters (optional) Convert configuration Quality for jpeg format, from 1 (lowest) to 100 (highest), 0 selects the default encoder quality value An EGrabber object encapsulates a set of related GenTL modules (an interface, a device, a data stream, a remote device, and a number of buffers) An InterfaceModule that represents global (shared) frame grabber settings and features. This includes digital I/O control, PCIe and firmware status... A DeviceModule (or local device, as opposed to remote device) that contains the frame grabber settings and features relating to the camera This consists mainly of camera and illumination control features: strobes, triggers... StreamModule that handles image buffers A RemoteModule that is the CoaXPress camera A number of buffers Note: EGrabber is only available as CallbackOnDemand model Create an EGrabber object from GenTL module indexes Create a grabber from GenTL module indexes Index of the InterfaceModule to use Index of the DeviceModule to use Index of the StreamModule to use How the device is to be opened Whether the remote device is required to create the grabber Note: the created EGrabber object is based on the CallbackOnDemand model Create an EGrabber object from a discovered grabber Create a grabber from a discovered grabber (see ) How the device is to be opened Whether the remote device is required to create the grabber Example: create a grabber using the discovery var gentl = new EGenTL(); var discovery = new EGrabberDiscovery(gentl) discovery.Discover(); var grabber = new EGrabber(discovery.EGrabbers[0]); Note: the created EGrabber object is based on the CallbackOnDemand model Create an EGrabber object from a discovered camera Create a grabber from a discovered camera How the device is to be opened Example: create a grabber using the discovery var gentl = new EGenTL(); var discovery = new EGrabberDiscovery(gentl) discovery.Discover(); var grabber = new EGrabber(discovery.Cameras[0]); Note: the created EGrabber object is based on the CallbackOnDemand model Finalize method releasing unmanaged resources Return a string that represents the current grabber A string that represents the current grabber Shutdown the grabber and release the associated resources Reallocate the buffers Performs the following operations: revoke current buffers, if any allocate buffers (if is zero, the size is determined automatically) announce the new buffers to the data stream queue the new buffers to the data stream input fifo Number of buffers to allocate Size of a buffer; when 0, the size is determined automatically Range of announced buffer indexes Announce and queue a memory buffer object Object describing the memory buffer to announce and queue Range of announced buffer indexes The object can be one of the following types: (memory allocated by the GenTL producer) (memory allocated by the user) (UserMemory split into an array of contiguous buffers) (bus addressable memory) (NVIDIA Device memory) Allocate, announce and queue one or more buffer objects Object describing the memory buffer to allocate, announce and queue Number of buffers to allocate, announce and queue Range of announced buffer indexes Announce and queue (in a reverse order) an array of contiguous buffer objects defined by a Object describing the memory array to announce and queue Announce and queue the buffers in reverse (true) order or not (false) Range of announced buffer indexes Move buffers from/to specific data stream buffer queues Flush operation Reset and queue a range of announced buffers Performs the following operations: discard pending buffers (if any) queue the buffers of the given range to the data stream input fifo Note: the data stream must be idle when calling this method Range of buffer indexes to queue to the data stream input fifo When null, all the buffers are queued to the data stream input fifo in the initial order (i.e. the order in which they were announced with ReallocBuffers or AnnounceAndQueue) Queue a range of announced buffers Range of buffer indexes to queue Revoke a range of announced buffers Note: Revoke does not invalidate other buffer indexes Range of buffer indexes to revoke Start acquisitions Start performs the following operations: start the data stream for buffers if is true, start the remote device by executing AcquisitionStart for Coaxlink and Grablink Duo, start the Camera and Illumination Controller by executing ActivateCic Notes: The data stream must be idle when calling this function When buffers have been filled, the data stream automatically goes idle, but the remote device is not stopped If is true, AcquisitionStop will be executed in a subsequent call to Stop (or ultimately by ) By default NewBufferData event will be enabled, unless explicitly disabled beforehand The number of buffers to fill Defines whether or not to start and stop the remote device by automatically executing AcquisitionStart and AcquisitionStop commands Stop acquisitions Stop performs the following operations: for Coaxlink and Grablink Duo, stop the Camera and Illumination Controller by executing DeactivateCic stop the remote device (unless Start was called with controlRemoteDevice = false stop the data stream This function will block until the data stream is idle Get the width (in pixels) of images produced by the grabber Get the height (in lines) of images produced by the grabber Get the payload size of images produced by the grabber Get the pixel format of images produced by the grabber Both the camera and the data stream influence this Get information of buffer at index Type of the return value Index of the buffer to query (cf. ) Buffer info command Buffer information Please note that and are closely related Wrong combinations of and will lead to or exceptions Using an unsupported type will throw an Get handle details of buffer at index Index of the buffer to query (cf. ) New buffer data exposing both data stream and buffer handles Run a Euresys GenApi script Euresys GenApi script to run This can be either a location (path) or some actual script statements Interactions with the script are possible via the user interface callback Interrupt the execution of a running Euresys GenApi script Identifier of the script to interrupt. It is returned by the user interface callback with operation "scriptid" and parameter name "id" Please note that this function cannot be called from the user interface callback Output text to Memento with specified verbosity and user kind String to output One of the following values: User kind identifier, from 0 to 15 0 to output trace under the Kind "User0" 1 to output trace under the Kind "User1" ... 10 (0xA) to output trace under the Kind "UserA" 11 (0xB) to output trace under the Kind "UserB" 12 (0xC) to output trace under the Kind "UserC" 13 (0xD) to output trace under the Kind "UserD" 14 (0xE) to output trace under the Kind "UserE" 15 (0xF) to output trace under the Kind "UserF" Inject a user analyzer event UP into the memento logging system UP has a "+1" semantic on the user wave form of the analyzer event specified by id The id values from 0 to 15 are mapped onto "UserWave0" to "UserWaveF" The display name of these 15 user analyzer events can be changed in the Analyzer Configurator panel of the Memento application using the Alias property found in the Advanced tab of the Analyzer Configurator panel User analyzer event identifier, from 0 to 15, mapped onto "UserWave0" to "UserWaveF" User kind identifier, from 0 to 15, mapped onto "User0" to "UserF" Inject a user analyzer event DOWN into the memento logging system DOWN has a "-1" semantic on the user wave form of the analyzer event specified by id The id values from 0 to 15 are mapped onto "UserWave0" to "UserWaveF" The display name of these 15 user analyzer events can be changed in the Analyzer Configurator panel of the Memento application using the Alias property found in the Advanced tab of the Analyzer Configurator panel User analyzer event identifier, from 0 to 15, mapped onto "UserWave0" to "UserWaveF" User kind identifier, from 0 to 15, mapped onto "User0" to "UserF" Inject a user analyzer event RESET into the memento logging system RESET has a "reset to 0" semantic on the user wave form of the analyzer event specified by id The id values from 0 to 15 are mapped onto "UserWave0" to "UserWaveF" The display name of these 15 user analyzer events can be changed in the Analyzer Configurator panel of the Memento application using the Alias property found in the Advanced tab of the Analyzer Configurator panel User analyzer event identifier, from 0 to 15, mapped onto "UserWave0" to "UserWaveF" User kind identifier, from 0 to 15, mapped onto "User0" to "UserF" Inject a user analyzer event VALUE into the memento logging system VALUE has a "set to value" semantic on the user wave form of the analyzer event specified by id The id values from 0 to 15 are mapped onto "UserWave0" to "UserWaveF" The display name of these 15 user analyzer events can be changed in the Analyzer Configurator panel of the Memento application using the Alias property found in the Advanced tab of the Analyzer Configurator panel User analyzer event identifier, from 0 to 15, mapped onto "UserWave0" to "UserWaveF" Value of the analyzer event User kind identifier, from 0 to 15, mapped onto "User0" to "UserF" Inject a user analyzer event NOVALUE into the memento logging system NOVALUE has a "disable value" semantic on the user wave form of the analyzer event specified by id The id values from 0 to 15 are mapped onto "UserWave0" to "UserWaveF" The display name of these 15 user analyzer events can be changed in the Analyzer Configurator panel of the Memento application using the Alias property found in the Advanced tab of the Analyzer Configurator panel User analyzer event identifier, from 0 to 15, mapped onto "UserWave0" to "UserWaveF" User kind identifier, from 0 to 15, mapped onto "User0" to "UserF" Wait for a new buffer and return a NewBufferData object (to be given to or ) Timeout in milliseconds New buffer data If no new buffer event is available before the timeout expires, a (GC_ERR_TIMEOUT>) exception is thrown Cancel a waiting pop Any waiting pop will be aborted by throwing a (GC_ERR_ABORT) exception CancelPop is equivalent to CancelEvent(EventType.NewBufferData) Enable event handling for the specified events Event(s) to enable Disable event handling for the specified events Event(s) to disable Flush the event queue for the specified events Event(s) to flush Wait for at most an event and invoke its corresponding event callback Event type(s) to wait for and deliver via a callback Timeout in milliseconds Number of pending events (in the event queues identified by ) If no event is available before the timeout expires, a (GC_ERR_TIMEOUT>) exception is thrown Process events asynchronously (by calling repeatedly ProcessEvent in a dedicated task) Event type(s) to process Cancellation token to stop the event processing task Work item Example: to cancel the task var task = grabber.ProcessEventsAsync(EventType.All, tokenSource.Token); ... // stop the task tokenSource.Cancel(); task.Wait(); Cancel any waiting function on some event types Event type(s) to cancel Waiting functions are for example Some or constructors Get the number of pending events in the different queues Event type(s) to query The number of pending events in the different queues identified by Register a callback for the specified event type Type of event Method to invoke or null to unregister any previously registered method Supported event types are: Using an unsupported event type will throw an Return result of PopOneOf Event data Can be one of the following objects: Number of pending events in the requested event type(s) Return the oldest event from a series of requested events as well as the number of pending events Type of event(s) to request Timeout in milliseconds Event data and the number of pending events of the requested type(s) Notes: Requested events must be enabled If no new buffer event is available before the timeout expires, a (GC_ERR_TIMEOUT>) exception is thrown Grabber index of the last event received on the current thread Get an indication about the need to reconfigure internal resources like the DMA In this case the already announced buffers need to be revoked and announced again otherwise some changes in the stream configuration like StripeArrangement would not be taken into account Get an indication about the need to reallocate buffers because the payload size or the alignment changed In this case the already announced buffers need to be revoked and reallocated Access the GenICam interface of a specific underlying grabber This is useful when the EGrabber instance is managing a camera composed by several remote devices and a remote device needs to be queried or configured independently An object that needs to be indexed (by the index of an underlying grabber) to get access to an instance wrapping the requested grabber The EGenTL instance of the grabber object The system module associated with the grabber (if any) The stream module associated with the grabber (if any) The device module associated with the grabber (if any) The remote module associated with the grabber (if any) The interface module associated with the grabber (if any) Type of events New buffer event IO toolbox event CIC event Data stream event CoaXPress interface event Device error event CoaXPress device event Remote device event All available events Any of the available events Discovered camera information (cf. ) Results of the , can be passed to to create a grabber object Create an enumerator Return the number of underlying grabbers composing this camera Indexer accessing the of an underlying grabber composing this camera Zero-based grabber index Grabber information Release the resources associated with the object Euresys EGrabber and camera discovery Discover available grabbers and cameras in the system Create an EGrabberDiscovery object EGenTL instance Please note that it's not recommended to create more than one EGrabberDiscovery object for the same system (EGenTL object) Perform the discovery Enable or disable the camera-oriented discovery in addition to the grabber-oriented discovery (default is true) The camera-oriented discovery (i.e. the default behavior of discover) takes more time to complete because it inspects all the grabbers of the system to present a list of available cameras; A multi-bank camera that exposes several CoaXPress devices (each device providing a part of the acquired images) can be detected by the camera-oriented discovery as a single camera; indeed the discovery is able to identify which devices go together and how to reorder them so the master device is always in the first position Return information to create an object from a discovered grabber Index of the grabber, must be smaller than EGrabberInfo, information to create an object from the discovered grabber Example: create a grabber object for the first discovered grabber var gentl = new EGenTL(); var discovery = new EGrabberDiscovery(gentl) discovery.Discover(); var grabber = new EGrabber(discovery.GetGrabber(0)); Note: the returned value reflects the result of the last grabber-oriented discovery (performed by ) Return the result of the last grabber-oriented discovery as a collection Example: create a grabber object for the first discovered grabber var gentl = new EGenTL(); var discovery = new EGrabberDiscovery(gentl) discovery.Discover(); var grabber = new EGrabber(discovery.EGrabbers[0]); Note: the returned collection reflects the result of the last grabber-oriented discovery (performed by ) Get the number of discovered grabbers > Return information to create an object from a discovered camera Index of the camera, must be smaller than Optional index of the data stream to select (default = 0) EGrabberCameraInfo, information to create an object from the discovered camera Example: create a grabber object for the first discovered camera var gentl = new EGenTL(); var discovery = new EGrabberDiscovery(gentl) discovery.Discover(); var grabber = new EGrabber(discovery.GetCamera(0)); Note: the returned value reflects the result of the last camera-oriented discovery (performed by ) Return information to create an object from a discovered camera identified by user-defined name User-defined name of the camera Optional index of the data stream to select (default = 0) EGrabberCameraInfo, information to create an object from the discovered camera Note: the returned value reflects the result of the last camera-oriented discovery (performed by ) Return the result of the last camera-oriented discovery as a collection Example: create a grabber object for the first discovered camera var gentl = new EGenTL(); var discovery = new EGrabberDiscovery(gentl) discovery.Discover(); var grabber = new EGrabber(discovery.Cameras[0]); Note: the returned collection reflects the result of the last camera-oriented discovery (performed by ) Get the number of discovered cameras Return information about an interface found in the system by the last discovery Index of the interface, must be smaller than EGrabberInfo, information to create a partial object Note: the returned value reflects the result of the last discovery (performed by ) Get the number of interfaces found in the system by the last discovery Return information about a device found in an interface by the last discovery Index of the interface, must be smaller than Index of the device, must be smaller than EGrabberInfo, information to create a partial object Note: the returned value reflects the result of the last discovery (performed by ) Get the number of devices found in an interface by the last discovery Index of the interface, must be smaller than Number of devices found in the specified interface Return information about a stream found in a device by the last discovery Index of the interface, must be smaller than Index of the device, must be smaller than Index of the stream, must be smaller than EGrabberInfo, information to create an object Note: the returned value reflects the result of the last discovery (performed by ) Get the number of streams found in a device by the last discovery Index of the interface, must be smaller than Index of the device, must be smaller than Number of streams found in the specified device The EGenTL instance used by the discovery object > Release the resources associated with the object An object that encapsulates a set of related GenTL modules (an interface, a device, a data stream, a remote device) An InterfaceModule that represents global (shared) frame grabber settings and features. This includes digital I/O control, PCIe and firmware status... A DeviceModule (or local device, as opposed to remote device) that contains the frame grabber settings and features relating to the camera This consists mainly of camera and illumination control features: strobes, triggers... StreamModule that handles image buffers A RemoteModule that is the CoaXPress camera Run a Euresys GenApi script Euresys GenApi script to run This can be either a location (path) or some actual script statements Interactions with the script are possible via the user interface callback Return a string that represents the current grabber A string that represents the current grabber The system module The interface module The device module The remote module The stream module An intermediate array of objects returned by Indexer Index of the grabber to access The requested grabber object Discovered grabber information (cf. ) Results of the , can be passed to to create a grabber object Interface index of the grabber Device index of the grabber Stream index of the grabber Interface identifier of the grabber Device identifier of the grabber Stream identifier of the grabber Vendor name of the device associated with the grabber (cf. ) Device model name of the device associated with the grabber (cf. ) Device description of the device associated with the grabber Stream description of the stream associated with the grabber User identifier of the device associated with the grabber (cf. ) Indicate whether a remote device is associated with the grabber Indicate whether the device associated with the grabber is read-only TL Type (cf. ) Firmware status of the grabber device (when applicable, e.g. Coaxlink or Grablink Duo) Fan status of the grabber device (when applicable, e.g. Coaxlink or Grablink Duo) License status of the grabber device (when applicable, e.g. Gigelink) object associated with the grabber Release the resources associated with the object EGrabber library error This error is not thrown under normal conditions It may occur when an unexpected internal error occurs or when a library function returns an unknown error code Internal library error code CTI library loading error Path to the CTI library that could not be loaded Missing GenTL symbol error Path to the GenTL library Missing symbol Unexpected data type error This error occurs when an info command value type does not match the destination type T for the various GetInfo<T> methods Actual data type of the queried info command Unexpected data size error This error occurs when an info command value size does not match the size of the destination type T for the various GetInfo<T> methods Expected data size (size of the destination type) Actual data size of the queried info command Client error This error generally occurs because of an error in the client code, please check the description for further details GenTL error GenTL error code GenTL error description GenApi error A specialization of that provides GenApi error details GenApi error code Additional error data Thread error Internal error This error is not thrown under normal conditions It may occur when an unexpected internal state is detected inside the underlying EGrabber C++ classes Operation not allowed error This error indicates an operation is currently not allowed Runtime error This error occurs when the underlying EGrabber C++ code throws a std::runtime_error exception Logic error This error occurs when the underlying EGrabber C++ code throws a std::logic_error exception Standard exception This error occurs when the underlying EGrabber C++ code throws a std::exception collection Number of grabbers in the collection Indexer Zero-based index of the grabber in the collection, must be smaller than Grabber information Collection of EGrabberCameraInfo Number of cameras in the collection Indexer Zero-based index of the camera in the collection, must be smaller than Camera information Indexer Zero-based index of the camera in the collection, must be smaller than Zero-based index of the stream Camera information Indexer User-defined name of the camera Camera information Indexer User-defined name of the camera Zero-based index of the stream Camera information collection enumerator Build an enumerator for the collection Strongly typed enumerator Build an enumerator for the collection Non-generic enumerator Non-generic version of Input details for image conversion Create an input object for Input buffer width in pixels Input buffer height in pixels Input pixel format Input buffer address Input buffer size Input line pitch Input buffer width in pixels Input buffer height in pixels Address of input buffer Input pixel format . Input buffer size (optional) Input line pitch (optional, mandatory for packed formats) Output details for image conversion Create an output object for Output buffer width in pixels Output buffer height in pixels Output pixel format Output buffer address Output buffer size Convert configuration Convert operation Output quality if relevant JPEG encoding quality from 1 (lowest) to 100 (highest), 0 selects the default encoder quality value Output buffer width in pixels Output buffer height in pixels Output buffer address (or address of new image id if config is IMAGE_CONVERT_OUTPUT_CONFIG_IMAGE_ID Output pixel format Convert configuration Convert operation Jpeg encoding quality form 1 (lowest) to 100 (highest), 0 selects the default encoder quality Maximum data size Converted data size (size of the converted data that was written to the buffer) The value is only available after the conversion was done Special type to query info command details without getting the data Data size (bytes) of the queried info command Data type of the queried info command IO toolbox event data In order to get IO toolbox events, the IO toolbox event data type needs to be enabled by calling with the event type IO toolbox event data can be received as event callback argument or using Event timestamp Custom event data identifier Value of EventNotificationContext1 for this event (latched at the time the event occurred) Value of EventNotificationContext2 for this event (latched at the time the event occurred) Value of EventNotificationContext3 for this event (latched at the time the event occurred) Base class of the various memory objects describing a buffer to announce and queue Memory allocated by the GenTL producer Create a GenTLMemory object describing a memory buffer to allocate, announce and queue Size of the memory buffer to create. When 0, a suitable size is evaluated Optional user data (available in ) Size of the memory buffer in bytes Optional user data (available in ) Bus addressable memory Create a BusMemory object describing a Bus addressable memory buffer to announce and queue Bus buffer address on the PCIe bus Size of the buffer allocated by the user Optional user data (available in ) Bus buffer address on the PCIe bus Size of the buffer allocated by the user Optional user data (available in ) NVIDIA Device memory to be translated to bus addressable memory Create a NvidiaRdmaMemory object describing an NVIDIA Device memory buffer to announce and queue NVIDIA Device memory buffer address Size of the buffer allocated by the user Optional user data (available in ) NVIDIA Device memory buffer address Size of the buffer allocated by the user Optional user data (available in ) Memory allocated by the user Create a UserMemory object describing a user allocated memory buffer to announce and queue User-provided mutable buffer of bytes Optional user data (available in ) Create a UserMemory object describing a user allocated memory buffer to announce and queue User-provided mutable Stream object Optional user data (available in ) User provided array of bytes (if any) User provided Stream object (if any) Optional user data (available in ) Unmanaged memory address Buffer size in bytes UserMemory split into an array of contiguous buffers Create an UserMemoryArray object describing a user allocated memory buffer to announce and queue as an array of contiguous buffers Memory allocated by the user to split into an array of contiguous buffers Size of buffers Notes: Announcing and queuing a UserMemoryArray results in announcing and queuing multiple buffers Depending on the size of the user memory and the requested buffer size, the size of the last buffer of the array can be smaller than , therefore we recommend to make sure that is a multiple of Memory allocated by the user to split into an array of contiguous buffers Size of buffers (except for the last buffer if the is not a multiple of ) GenICam GenTL port base class Read bytes from the port at the given Byte address to read from Number of bytes to read Received data Write to the port at the given Byte address to write to Input buffer containing the data to write Read bytes as null-terminated string from the port at the given Byte address to read from Number of bytes to read Received string Read a single value from the port at the given The type of the value to read Byte address to read from Received value The type determines the number of bytes (Marshal.SizeOf<T>()) to read from the port Write a single value to the port at the given The type of the value to write Byte address to write to Value to write as a sequence of bytes The type determines the number of bytes (Marshal.SizeOf<T>()) to write to the port Get the value of a GenApi feature Type of the value to return Name of feature to read Feature value The type determines the GenICam feature interface to use to get the value: IInteger interface is used for bool, byte, sbyte, short, ushort, int, uint, long, ulong IFloat interface is used for float, double IString interface is used for string, string[] IRegister interface is used for byte[] Get the value of a GenApi register feature Name of feature to read Number of bytes to read from the register feature Feature value Set the value of a GenApi feature Type of the value to set Name of feature to modify Value to write The type determines the GenICam feature interface to use to set the value: IInteger interface is used for bool, byte, sbyte, short, ushort, int, uint, long, ulong IFloat interface is used for float, double IString interface is used for string IRegister interface is used for byte[] Set the value of GenApi register feature Name of feature to modify Byte array to write to the register feature Execute a GenApi command feature Name of feature to execute Attach a GenApi event GenApi event identifier Data associated to the event Invalidate the cache of a GenApi feature (and its dependencies) Name of the feature to invalidate This only invalidates the cache (the feature itself will not be changed) Get the list of attributes exposed by the GenApi Module Get the list of available features exposed by the GenApi Module Get the list of all features exposed by the GenApi Module Get the list of features exposed by the GenApi Module If true: the query will be configured to only include features available at "query" time If false: the query will be configured to include all the exposed features A list of features Get the list of features of a category exposed by the GenApi Module Name of the category If true: the query will be configured to only include features of the category available at "query" time If false: the query will be configured to include all the exposed features of the category A list of features Get the list of available categories exposed by the GenApi Module Get the list of all categories exposed by the GenApi Module Get the list of categories exposed by the GenApi Module If true: the query will be configured to only include categories available at "query" time If false: the query will be configured to include all the exposed categories A list of categories Get the list of categories of a category exposed by the GenApi Module Name of the category If true: the query will be configured to only include categories of the category available at "query" time If false: the query will be configured to include all the exposed categories of the category A list of categories Get the list of entries of a GenApi enumeration Name of enumeration feature to query If true: the query will be configured to only include enumeration entries available at "query" time If false: the query will be configured to include all enumeration entries of the given feature A list of enumeration entries Check if a feature is available Name of the feature to query Check if a feature is readable Name of the feature to query Check if a feature is writeable Name of the feature to query Check if a feature is implemented Name of the feature to query Check if a feature is a command Name of the feature to query Check if the execution of a command is done Name of the command to query Get the list of interfaces of a feature Name of the command to query A list of GenICam interfaces Possible return values are: IInteger IFloat IString IEnumeration IBoolean ICommand IPort IRegister Get the XML source of a feature Name of the feature to query An XML string Get the register description document of the GenApi Module Get XML information of a feature node Name of the feature to query Name of the XML child to query A string Get the list of declared virtual user features on the GenApi Module Declare a virtual user feature of type Integer Name of the virtual feature to declare Declare a virtual user feature of type Float Name of the virtual feature to declare Declare a virtual user feature of type String Name of the virtual feature to declare Undeclare (delete) a virtual user feature Name of the virtual feature to delete GenTL module base class Module info command type Get GenTL module information Type of the return value Module info command Module information Please note that and are closely related Wrong combinations of and will lead to or exceptions Using an unsupported type will throw an System module Interface module Device module Stream module Remote module New buffer event data The new buffer event data type is automatically enabled when calling unless the event has been explicitely enabled or disabled The new buffer event data type can be explicitely enabled by calling with the event type New buffer event data can be received as event callback argument or using (or ) Data stream handle associated to buffer Buffer handle Optional user data object (if provided when announced) Timestamp associated to new buffer event Helper functions to build Euresys GenApi queries Create a query to get the list of attributes exposed by a GenApi Module Create a query to get the list of features exposed by a GenApi Module If true: the query will be configured to only include features available at "query" time If false: the query will be configured to include all the exposed features A query Create a query to get the list of features of a category exposed by a GenApi Module Name of the category If true: the query will be configured to only include features of the category available at "query" time If false: the query will be configured to include all the exposed features of the category A query Create a query to get the list of categories exposed by a GenApi Module If true: the query will be configured to only include categories available at "query" time If false: the query will be configured to include all the exposed categories A query Create a query to get the list of categories of a category exposed by a GenApi Module Name of the category If true: the query will be configured to only include categories of the category available at "query" time If false: the query will be configured to include all the exposed categories of the category A query Create a query to get the list of entries of a GenApi enumeration Name of enumeration feature to query If true: the query will be configured to only include enumeration entries available at "query" time If false: the query will be configured to include all enumeration entries of the given feature A query Create a query to check if a feature is available Name of the feature to query A query Create a query to check if a feature is readable Name of the feature to query A query Create a query to check if a feature is writeable Name of the feature to query A query Create a query to check if a feature is implemented Name of the feature to query A query Create a query to check if a feature is a command Name of the feature to query A query Create a query to check if execution of a command is done Name of the feature to query A query Create a query to get the list of interfaces of a feature Name of the feature to query A query Create a query to get the XML source of a feature Name of the feature to query A query Create a query to get the register description document of a GenApi Module A query Create a query to get XML information of a feature node Name of the feature to query Name of the XML child to query A query Create a query to get the list of declared virtual user features Remote device event data In order to get remote device events, the remote device event data type needs to be enabled by calling with the event type Remote device event data can be received as event callback argument or using The remote device event is configured by default to deliver GenICam remote device events, which can be attached to the GenApi remote module with , for example grabber.Remote.AttachEvent(data.EventId, data.Data) Note: in order to get other remote device events (CoaXPress or device-specific events), the Device module feature RemoteDeviceEventEnable must be configured Event timestamp Event namespace EventID of GenApi event Size of addressable data Addressable data through the GenApi event port ScopedBuffer object encapsulating a GenTL buffer that is automatically pushed when disposed This object is designed to be declared in a using statement using (var buffer = new ScopedBuffer(grabber)) { ... } When the control leaves the block of the using statement, the GenTL buffer associated to the ScopedBuffer instance is automatically pushed to the back of the data stream input fifo IDisposable.Dispose The buffer is pushed back to the data stream input fifo Create a ScopedBuffer object encapsulating the next delivered GenTL buffer The grabber managing the underlying GenTL buffer Timeout value in milliseconds If there is no new buffer event when called, the method waits for at most the specified Either the timeout expires and a is thrown Or GenTL buffer is delivered and a ScopedBuffer object is created Create a ScopedBuffer object encapsulating the next delivered GenTL buffer The grabber managing the underlying GenTL buffer Timeout value in milliseconds If there is no new buffer event when called, the method waits for at most the specified Either the timeout expires and a is thrown Or GenTL buffer is delivered and a ScopedBuffer object is created Create a ScopedBuffer object from a object Buffer to scope Create a ScopedBuffer object encapsulating the GenTL buffer specified in a The grabber managing the underlying GenTL buffer New buffer data A new buffer data can be obtained from The argument of a callback registered with , where T is Get buffer information Type of the return value Buffer info command Buffer information Please note that and are closely related Wrong combinations of and will lead to or exceptions Using an unsupported type will throw an Get useful buffer information Buffer information Convert a buffer Output pixel format Convert output configuration Convert output operation Quality for jpeg format, from 1 (lowest) to 100 (highest), 0 selects the default encoder quality value Converted buffer Convert a buffer to a specified output buffer Output pixel format Output buffer pointer Output buffer size Convert output configuration Convert output operation Quality for jpeg format, from 1 (lowest) to 100 (highest), 0 selects the default encoder quality value Converted data size Convert a buffer Output pixel format Convert output configuration Convert output operation Quality for jpeg format, from 1 (lowest) to 100 (highest), 0 selects the default encoder quality value Region of interest to be converted Converted buffer Convert a buffer to a specified output buffer Output pixel format Output buffer pointer Output buffer size Convert output configuration Convert output operation Quality for jpeg format, from 1 (lowest) to 100 (highest), 0 selects the default encoder quality value Region of interest to be converted Converted data size Save the buffer content to disk Path to the file or path pattern path of the new image file, the file extension determines the file format path pattern where a group of characters N is replaced by the value of index: if index is 5, N becomes 5 if index is 9, NN becomes 09 if index is 10, NN becomes 10 Control pattern substitution if index >= 0, enable pattern substitution with given index value if index < 0, disable pattern substitution Notes: The parent directory must exist Buffer information (address, width, height, format) are automatically queried No buffer conversion will be applied before writing the image file, please use Buffer.Convert[To] if needed Save the buffer content to disk Path to the file or path pattern path of the new image file, the file extension determines the file format path pattern where a group of characters N is replaced by the value of index: if index is 5, N becomes 5 if index is 9, NN becomes 09 if index is 10, NN becomes 10 Control pattern substitution if index >= 0, enable pattern substitution with given index value if index < 0, disable pattern substitution Image saving parameters Notes: The parent directory must exist Buffer information (address, width, height, format) are automatically queried No buffer conversion will be applied before writing the image file, please use Buffer.Convert[To] if needed Get the user object provided when the GenTL buffer was announced (if any) Get the base address of the buffer memory (cf. ) Constants Event data numid custom base Image save to disk default quality Memento verbosity critical Memento verbosity error Memento verbosity warning Memento verbosity notice Memento verbosity info Memento verbosity debug Memento verbosity verbose Gentl infinite This enumeration defines GenTL standard and Euresys custom errors () No Error Unspecified runtime error Module or resource is not initialized Requested operation is not implemented Requested resource is already in use Requested operation is not allowed Given handle does not support the operation ID could not be connected to a resource The function has no data to work on One of the parameters given was not valid Communication error has occurred Timeout expired before the operation could be completed An operation has been aborted before it could be completed The GenTL Consumer has not announced enough buffers Resource or information is not available A given address is out of range or invalid A provided buffer is too small to receive the expected amount of data A provided index referencing a Producer internal object is out of bounds An error occurred parsing a buffer containing chunk data A register write function was trying to write an invalid value A requested resource is exhausted The system ran out of memory Requested operation cannot be performed (module or resource is busy) Custom id Different handles to the same object were found Handles associated to a closed object were found No handle associated to an opened object was found A lock issue has been detected Some silent errors occurred Library path cannot be retrieved Failed to access the driver A driver error has occurred Buffer revoke error (No longer used) Caught a C++ std::exception An alignment error occurred while accessing a module port A wait operation failed unexpectedly A wait operation has been interrupted Cannot create notification object Cannot access notification object state An external module could not be loaded A required symbol was not found A string is too long Data type mismatch Too many GenApi contexts Key doesn't match programmed OEM safety key GEV Driver could not communicate with the camera A GenApi feature could not be found A buffer address does not match any announced buffer address An internal assertion failed Subnet mismatch, invalid IP address and the like Unexpected values in connection data Remote device requires a protocol version that is not supported Connection doesn't have the expected state at the time of the call The underlying NetworkDirect adapter was removed from the system The specified buffer length exceeds the capabilities of the underlying NetworkDirect hardware The remote system refused the connection request The remote system aborted the connection The local system terminated the connection A GenApi error has occurred An error occurred while processing an image An error occurred in the License Manager No license was found A CL error occurred Custom ioctl base Driver could not write to PCI configuration space of device Driver could not read from PCI configuration space of device Driver could not find a DMA engine Driver has no IRQ handler Driver could not register notification object while creating the data stream Custom ioctl ds get info failed Driver could not open DataStream module Driver could not start the acquisition engine Custom ioctl ds stop failed Custom ioctl dev get info failed Driver error while getting remote device URL information Driver could not not write to remote device CoaXPress register Driver could not not read remote device CoaXPress register Custom ioctl cxp master connection not found Custom ioctl cxp host library cmd failed Driver was not able to announce a buffer Driver could not stop the acquisition engine in a timely fashion Driver I2C error Driver detected a flash bank select inconsistency Driver could not read from onboard memory Driver could not write to onboard memory Driver could not write Flat Field Correction coefficient data Driver could not register serial notification object Custom gev base Custom os rdma base Defines the data type possible for the various Info functions Unknown data type NULL-terminated C string (ASCII encoded) Concatenated INFO_DATATYPE_STRING list. End of list is signaled with an additional NULL Signed 16 bit integer Unsigned 16 bit integer Signed 32 bit integer Unsigned 32 bit integer Signed 64 bit integer Unsigned 64 bit integer Signed 64 bit floating point number Pointer type (void*). Size is platform dependent (32 bit on 32 bit platforms) Boolean value occupying 8 bit. 0 for false and anything for true Platform dependent unsigned integer (32 bit on 32 bit platforms) Like a INFO_DATATYPE_STRING but with arbitrary data and no NULL termination Platform dependent signed integer (32 bit on 32 bit platforms). GenTL v1.3 Starting value for custom IDs Defines char encoding schemes used by the producer, GenTL v1.4 Tl char encoding ascii Tl char encoding utf8 System module information commands for the EGrabber.System.GetInfo<T>() and functions STRING Transport layer ID STRING Transport layer vendor name STRING Transport layer model name STRING Transport layer version STRING Transport layer technology that is supported STRING File name including extension of the library STRING Full path including file name and extension of the library STRING User readable name of the device. If this is not defined in the device this should be VENDOR MODEL (ID) INT32 Reporting the char encoding used by this Producer, GenTL v1.4 UINT32 Major number of the GenTL spec this producer complies with, GenTL v1.5 UINT32 Minor number of the GenTL spec this producer complies with, GenTL v1.5 Starting value for custom IDs This enumeration defines commands to retrieve information with the EGrabber.Interface.GetInfo<T>() function from the Interface module STRING Unique ID of the interface STRING User readable name of the interface STRING Transport layer technology that is supported Starting value for GenTL Producer custom IDs This enumeration defines GenTL standard and Euresys custom flags of how a device is to be opened with the constructor Not used in a command. Can be used to initialize a variable to query that information This either means that the device is not open because it was not opened before or the access to it was denied Open the device read only. All Port functions can only read from the device Open the device in a way that other hosts/processes can have read only access to the device. Device access level is read/write for this process Open the device in a way that only this host/process can have access to the device. Device access level is read/write for this process Starting value for GenTL Producer custom IDs Open both the device and child data stream read only Open the device for serial communication This enumeration defines values for the accessibility of the device, see The device accessibility is not known The device is available for read/write access The device is available for read only access The device is not accessible The device has already been opened by another process/host. GenTL v1.5 The device has already been opened by this process. GenTL v1.5 The device has already been opened by this process. GenTL v1.5 Starting value for custom IDs This enumeration defines GenTL standard and Euresys custom commands to retrieve information with the EGrabber.Device.GetInfo<T>() function STRING Unique ID of the device STRING Device vendor name STRING Device model name STRING Transport layer technology that is supported STRING String containing a display name for the device ( including a unique id ) INT32 Gets the access mode the GenTL Producer has on the opened device. ( enumeration value) STRING String containing the user defined name, GenTL v1.4 STRING String containing the device's serial number, GenTL v1.4 STRING String containing the device version, GenTL v1.4 UINT64 Tick-frequency of the time stamp clock, GenTL v1.4 Starting value for GenTL Producer custom IDs STRING Description of the device This enumeration defines special stop flags for the acquisition engine Stop the acquisition engine when the currently running tasks like filling a buffer are completed (default behavior) Stop the acquisition engine immediately and leave buffers currently being filled in the Input Buffer Pool Starting value for GenTL Producer custom IDs This enumeration defines GenTL standard and Euresys custom flags for how the acquisition engine must be started Default behavior Starting value for GenTL Producer custom IDs Start the data stream but leave the CIC sequencer idle This enumeration commands from which to which queue/pool buffers are flushed with the function Flushes the input pool to the output queue and if necessary adds entries in the New Buffer event data queue Discards all buffers in the output queue and if necessary remove the entries from the event data queue Puts all buffers in the input pool. Even those in the output queue and discard entries in the event data queue Puts all buffers that are not in the input pool or the output queue in the input pool Discards all buffers in the input pool and output queue Starting value for GenTL Producer custom IDs This enumeration defines GenTL standard and Euresys custom commands to retrieve information with the EGrabber.Stream.GetInfo<T>() function STRING Unique ID of the data stream UINT64 Number of delivered buffers since last acquisition start UINT64 Number of lost buffers due to queue underrun SIZET Number of announced buffers SIZET Number of buffers in the input pool SIZET Number of buffers in the output queue UINT64 Number of buffers started in the acquisition engine SIZET Size of the expected data in bytes BOOL8 Flag indicating whether the acquisition engine is started or not BOOL8 Flag that indicated that this data stream defines a payload size independent from the remote device STRING Transport layer technology that is supported SIZET Max number of chunks in a buffer, if known. GenTL v1.3 SIZET Min number of buffers to announce before acq can start, if known. GenTL v1.3 SIZET Buffer alignment in bytes. GenTL v1.3 Starting value for GenTL Producer custom IDs STRING Description of the stream BOOL8 Flag to indicate that internal resources (like the DMA) need to be reconfigured and thus buffers need to be revoked and announced again BOOL8 Flag to indicate that buffers need to be revoked and reallocated again because the payload size or alignment constraints have changed This enumeration defines GenTL standard and Euresys custom commands to retrieve information with the function on a buffer PTR Base address of the buffer memory SIZET Size of the buffer in bytes PTR Private data pointer of the GenTL Consumer UINT64 Timestamp the buffer was acquired BOOL8 Flag to indicate that the buffer contains new data since the last call BOOL8 Flag to indicate if the buffer is in the input pool or output queue BOOL8 Flag to indicate that the buffer is currently being filled with data BOOL8 Flag to indicate that a buffer was filled but an error occurred during that process STRING Transport layer technology that is supported SIZET Number of bytes written into the buffer last time it has been filled. This value is reset to 0 when the buffer is placed into the Input Buffer Pool SIZET GenTL v1.2 SIZET GenTL v1.2 SIZET GenTL v1.2 SIZET GenTL v1.2 SIZET GenTL v1.2 SIZET GenTL v1.2 UINT64 GenTL v1.2 BOOL8 GenTL v1.2 SIZET GenTL v1.2 SIZET GenTL v1.2 UINT64 GenTL v1.2 UINT64 GenTL v1.2 SIZET GenTL v1.2 SIZET GenTL v1.2 UINT64 GenTL v1.2 STRING GenTL v1.2 INT32 GenTL v1.4 SIZET GenTL v1.4 UINT64 GenTL v1.4 BOOL8 GenTL v1.4 BOOL8 GenTL v1.4 Starting value for GenTL Producer custom IDs BOOL8 Flag to indicate that the buffer is the first of a scan BOOL8 Flag to indicate that the buffer is the last of a scan UINT64 Timestamp of the new buffer event UINT16 Stream ID (word 3 in the CoaXPress rectangular image header) UINT16 Tap geometry (words 23-24 in the CoaXPress rectangular image header) UINT16 Image flags (word 25 in the CoaXPress rectangular image header) SIZET Line pitch (or 1 for buffers containing JPEG data) SIZET Value of data stream LineWidth when the buffer was announced SIZET Value of data stream LinePitch when the buffer was announced SIZET Value of data stream StripeHeight when the buffer was announced SIZET Value of data stream StripePitch when the buffer was announced UINT64 Value of data stream StripeArrangement when the buffer was announced UINT32 CustomLogic Status associated to the buffer SIZET Value of data stream StripeOffset when the buffer was announced SIZET Value of data stream BlockHeight when the buffer was announced SIZET Number of LLE extracted lines per acquired image SIZET Alignment of buffer allocated by DSAllocAndAnnounceBuffer SIZET Size of each buffer part SIZET Maximum number of parts in the buffer (value of data stream BufferPartCount when the buffer was announced) SIZET Number of parts available in the buffer BUFFER Array of 64-bit unsigned integers containing the timestamps of each buffer part UINT32 32-bit inserted buffer metadata at offset 0 UINT32 32-bit inserted buffer metadata at offset 1 UINT32 32-bit inserted buffer metadata at offset 2 UINT32 32-bit inserted buffer metadata at offset 3 BOOL8 Flag to indicate that the buffer has inserted buffer metadata BOOL8 Flag to indicate that the buffer has inserted line metadata PTR Base address of the inserted line metadata UINT16 Content ID of the 32-bit inserted metadata at offset 0 UINT16 Content ID of the 32-bit inserted metadata at offset 1 UINT16 Content ID of the 32-bit inserted metadata at offset 2 UINT16 Content ID of the 32-bit inserted metadata at offset 3 This enumeration defines commands to retrieve information about individual data parts in a multi-part buffer. Introduced in GenTL v1.5 PTR Base address of the buffer part memory SIZET Size of the buffer part in bytes SIZET Type of the data in given part (PARTDATATYPE_ID enumeration value) UINT64 Format of individual items (such as pixels) in the buffer part UINT64 Allows interpretation of BUFFER_PART_INFO_DATA_FORMAT ( enumeration value) SIZET Width of data in the buffer part in pixels SIZET Expected height of data in the buffer part in pixels SIZET Horizontal offset of data in the buffer part in pixels SIZET Vertical offset of data in the buffer part in pixels SIZET Horizontal padding of data in the buffer part in pixels UINT64 Identifier allowing to group data parts belonging to the same source SIZET Height of the data currently in the buffer part in pixels Starting value for GenTL Producer custom IDs Enumeration of TLType dependent payload types. Introduced in GenTL v1.2 Payload type unknown Payload type image Payload type raw data Payload type file Payload type chunk data Payload type jpeg Payload type jpeg2000 Payload type h264 Payload type chunk only Payload type device specific Payload type multi part Starting value for GenTL Producer custom IDs Enumeration of TLType dependent pixel format namespaces introduced GenTL v1.2 Pixelformat namespace unknown Pixelformat namespace gev Pixelformat namespace iidc Pixelformat namespace pfnc 16bit Pixelformat namespace pfnc 32bit Starting value for GenTL Producer custom IDs Enumeration of pixel endianness values. Introduced in GenTL v1.4 Unknown pixel endianness. GenTL v1.4 Little endian pixel data. GenTL v1.4 Big endian pixel data. GenTL v1.4 Enumeration describing which data type is present in given buffer part. Introduced in GenTL v1.5 Unknown data type Color or monochrome 2D image Single color plane of a planar 2D image consisting of 2 planes Single color plane of a planar 2D image consisting of 3 planes Single color plane of a planar 2D image consisting of 4 planes 3D image (pixel coordinates) Single plane of a planar 3D image consisting of 2 planes Single plane of a planar 3D image consisting of 3 planes Single plane of a planar 3D image consisting of 4 planes Confidence of the individual pixel values Starting value for GenTL Producer custom IDs This enumeration defines commands to retrieve information on a module or remote device handle STRING Unique ID of the port STRING Port vendor name STRING Port model name STRING Transport layer technology that is supported STRING GenTL Module the port refers to BOOL8 Flag indicating that the port data is little endian BOOL8 Flag indicating that the port data is big endian BOOL8 Port has read access BOOL8 Port has write access BOOL8 Port is not accessible BOOL8 Port is not implemented STRING Version of the port STRING Name of the port as referenced in the XML description Starting value for GenTL Producer custom IDs This enumeration defines enum values returned by the URL_INFO_SCHEME command. introduced in GenTL v1.5 The XML can be read from the local register map The XML can be downloaded from a http server The XML can be read from the local hard drive Starting value for custom scheme locations This enumeration defines commands to retrieve URL information on a module or remote device handle. Introduced in GenTL v1.1 STRING URL as defined in chapter 4.1.2 GenTL v1.1 INT32 Major version of the schema this URL refers to. GenTL v1.1 INT32 Minor version of the schema this URL refers to. GenTL v1.1 INT32 Major version of the XML-file this URL refers to. GenTL v1.1 INT32 Minor version of the XML-file this URL refers to. GenTL v1.1 INT32 Subminor version of the XML-file this URL refers to. GenTL v1.1 BUFFER 160-bit SHA1 Hash code of XML-file. GenTL v1.4 UINT64 Register address in the device's register map. GenTL v1.5 UINT64 File size in bytes. GenTL v1.5 INT32 Scheme of the URL as defined in URL_SCHEME_IDS. GenTL v1.5 STRING File name if the scheme of the URL is file. GenTL v1.5 Starting value for GenTL Producer custom IDs This enumeration defines GenTL standard and Euresys custom events Notification on module errors Notification on newly filled buffers Notification if a feature was changed by the GenTL Producer library and thus needs to be invalidated in the GenICam GenApi instance using the module Notification if the GenTL Producer library wants to manually set a feature in the GenICam GenApi instance using the module Notification if the GenTL Producer wants to inform the GenICam GenApi instance of the remote device that a GenApi compatible event was fired Notification if the GenTL Producer wants to inform the GenICam GenApi instance of the module that a GenApi compatible event was fired. GenTL v1.4 Starting value for GenTL Producer custom IDs Notification of IO Toolbox events (on Interface module) Notification of CIC events (on Device module) Notification of data stream events (on DataStream module) Notification of CoaXPress events (on Interface module) Notification of device error events (on Device module) Notification of CoaXPress device events (on Device module) Event info command INT32 The event type of the event handle (EVENT_TYPE enum value) SIZET Number of events in the event data queue UINT64 Number of events that were fired since the creation of the module SIZET Max size of data carried with an event in bytes. GenTL v1.2 SIZET Max size of data provided through EventGetDataInfo in bytes. GenTL v1.2 Starting value for GenTL Producer custom IDs This enumeration defines GenTL standard and Euresys custom commands to retrieve event information Event specific Unique Event ID (String or Number) Event specific Data UINT64 Numeric representation of the unique Event ID, GenTL v1.3 Starting value for GenTL Producer custom IDs UINT64 Timestamp of the event UINT32 Value of EventNotificationContext1 for this event (latched at the time the event occurred) UINT32 Value of EventNotificationContext2 for this event (latched at the time the event occurred) UINT32 Value of EventNotificationContext3 for this event (latched at the time the event occurred) This enumeration defines how to interpret the for Euresys custom events Event data numid custom base Line Input Tool 1 Line Input Tool 2 Line Input Tool 3 Line Input Tool 4 Line Input Tool 5 Line Input Tool 6 Line Input Tool 7 Line Input Tool 8 Quadrature Decoder Tool 1 Quadrature Decoder Tool 1 Changed Direction Quadrature Decoder Tool 2 Quadrature Decoder Tool 2 Changed Direction Quadrature Decoder Tool 3 Quadrature Decoder Tool 3 Changed Direction Quadrature Decoder Tool 4 Quadrature Decoder Tool 4 Changed Direction Divider Tool 1 Divider Tool 2 Divider Tool 3 Divider Tool 4 Multiplier/Divider Tool 1 Multiplier/Divider Tool 2 Multiplier/Divider Tool 3 Multiplier/Divider Tool 4 Delay Tool 1 Output 1 Delay Tool 1 Output 2 Delay Tool 2 Output 1 Delay Tool 2 Output 2 Delay Tool 3 Output 1 Delay Tool 3 Output 2 Delay Tool 4 Output 1 Delay Tool 4 Output 2 User Event 1 User Event 2 User Event 3 User Event 4 C2C-Link Synchronization Tool 1 C2C-Link Synchronization Tool 2 C2C-Link Synchronization Tool 3 Event Input Tool 1 Event Input Tool 2 Device Link Trigger Tool 1 Device Link Trigger Tool 2 Device Link Trigger Tool 3 Device Link Trigger Tool 4 Device Link Trigger Tool 5 Device Link Trigger Tool 6 Device Link Trigger Tool 7 Device Link Trigger Tool 8 Device Link Trigger Tool 9 Device Link Trigger Tool 10 Device Link Trigger Tool 11 Device Link Trigger Tool 12 Device Link Trigger Tool 13 Device Link Trigger Tool 14 Device Link Trigger Tool 15 Device Link Trigger Tool 16 Detected CRC error on CXP connector A Detected CRC error on CXP connector B Detected CRC error on CXP connector C Detected CRC error on CXP connector D Detected CRC error on CXP connector E Detected CRC error on CXP connector F Detected CRC error on CXP connector G Detected CRC error on CXP connector H Low level connection lock achieved on CXP connector A Low level connection lock achieved on CXP connector B Low level connection lock achieved on CXP connector C Low level connection lock achieved on CXP connector D Low level connection lock achieved on CXP connector E Low level connection lock achieved on CXP connector F Low level connection lock achieved on CXP connector G Low level connection lock achieved on CXP connector H Low level connection lock lost on CXP connector A Low level connection lock lost on CXP connector B Low level connection lock lost on CXP connector C Low level connection lock lost on CXP connector D Low level connection lock lost on CXP connector E Low level connection lock lost on CXP connector F Low level connection lock lost on CXP connector G Low level connection lock lost on CXP connector H CoaXPress link configuration done for Device 0 CoaXPress link configuration done for Device 1 CoaXPress link configuration done for Device 2 CoaXPress link configuration done for Device 3 CoaXPress link configuration done for Device 4 CoaXPress link configuration done for Device 5 CoaXPress link configuration done for Device 6 CoaXPress link configuration done for Device 7 Device 0 disconnected Device 1 disconnected Device 2 disconnected Device 3 disconnected Device 4 disconnected Device 5 disconnected Device 6 disconnected Device 7 disconnected CoaXPress link configuration in progress for Device 0 CoaXPress link configuration in progress for Device 1 CoaXPress link configuration in progress for Device 2 CoaXPress link configuration in progress for Device 3 CoaXPress link configuration in progress for Device 4 CoaXPress link configuration in progress for Device 5 CoaXPress link configuration in progress for Device 6 CoaXPress link configuration in progress for Device 7 Start of camera trigger End of camera trigger Start of light strobe End of light strobe CIC is ready for next camera cycle Ignored CIC trigger because CIC is not ready for next camera cycle Delayed CIC trigger until CIC is ready for next camera cycle Received acknowledgement for previous CXP trigger message Resent CXP trigger message (acknowledgement to previous CXP trigger message not received) CIC trigger LinkTrigger<N> received from CoaXPress device Starts acquiring data of a new image frame (area-scan only) Stops acquiring data of an image frame (area-scan only) Starts acquiring data of a new image scan (line-scan only ) Stops acquiring data of an image scan (line-scan only) Dropped image frame data (area-scan only) Dropped image scan data (line-scan only) Trigger to camera readout timeout Camera readout timeout Broken frame due to frame store overflow (area-scan only) Frames never received. Cause unknown Frames never sent by the camera Frames delivered while there are still missing packets Fatal error that terminated acquisition Stream packet size error Stream packet FIFO overflow New trigger sent to remote device even though readout of previous frame has not started yet Trigger ignored because ACK to previous trigger has not been received yet Trigger packet resend not successful Input stream FIFO half full Input stream FIFO full Image header error MIG AXI write error MIG AXI read error Received a CXP packet with unexpected tag Start of scan skipped (caused by internal exception: frame store almost full) End of scan (caused by internal exception: frame store almost full) External trigger requests too close together Stream packet arbiter error Value of EventSpecific for is a bitfield that can be interpreted according to the following definitions. Undocumented bits must be ignored Cf. EVENT_SPECIFIC_CIC_DISCARDED_CIC_TRIGGER_FRAME_STORE_FULL Cause: frame store is full Cause: camera cycle not complete Cause: maximum number of pending triggers already reached Cause: data stream is not active Value of EventSpecific for is a bitfield that can be interpreted according to the following definitions. Undocumented bits must be ignored Cf. EVENT_SPECIFIC_CIC_PENDING_CIC_TRIGGER_FRAME_STORE_FULL Cause: frame store is full Cause: camera cycle not complete Value of EventSpecific for is a bitfield that can be interpreted according to the following definitions. Undocumented bits must be ignored Cause: software trigger Cause: hardware trigger Cause: DSStartAcquisition or end of previous scan Value of EventSpecific for is a bitfield that can be interpreted according to the following definitions. Undocumented bits must be ignored Cause: software trigger Cause: hardware trigger Cause: reached scan length Cause: DSStopAcquisition Cf. EVENT_SPECIFIC_DATASTREAM_END_OF_SCAN_FRAME_STORE_ALMOST_FULL Cause: internal exception (frame store almost full) Value of EventSpecific for is a bitfield that can be interpreted according to the following definitions. Undocumented bits must be ignored Cf. EVENT_SPECIFIC_DATASTREAM_REJECTED_FRAME_FRAME_STORE_FULL Cause: frame store is full Cause: data stream is not active Cause: frame store underwent overflow Namespace of remote device events (EVENT_REMOTE_DEVICE) Event custom remote device namespace genicam Event custom remote device namespace coaxpress Event custom remote device namespace device specific This enumeration defines Euresys custom type of announced memory Bus address is already mapped and translated Default host memory Device memory allocated for RDMA on a NVIDIA card Euresys Image low-level C API output pixels points to a ImageId disable CPU optimizations such as SSSE3 select bayer decoding method 1 (3x3 interpolation, a.k.a. legacy method) select bayer decoding method 2 (3x3 median-based interpolation, a.k.a. advanced method) select bayer decoding method 3 (5x5 gradient-based interpolation) select bayer decoding method 5 (2x2 average-based interpolation) Image convert output config default Image convert output config bayer advanced Image convert output operation default conversion output mode apply 1X2YE line reordering operation Image convert input extra extra[0] optional pointer to input buffer size (size_t) extra[1] optional pointer to input line pitch, mandatory for packed formats (size_t) extra[2] reserved for future use, precondition: must be 0 extra[3] reserved for future use, precondition: must be 0 Genapi error code No error An unknown error occurred <node> not found <node> has no <interface> interface <node> is read-only <node> is write-only <node> is not available <node> is not implemented <node> is locked XML element <element> not found (<node>) XML attribute <attribute> not found (<node>) Port <port> not found (<node>) Port <port> error (<node>: <message>) Register too small (<node>) Register length mismatch (<node>) Invalid XML Register description not found Node type <nodeType> not implemented (<node>) XML element <element> not supported (<node>) Entry <enumEntry> not found (<node>) Invalid boolean value <value> (<node>) Invalid enumeration integer value <value> (<node>) Invalid enumeration value <value> (<node>) Entry <value> is not available (<node>) Invalid node name (<name>) Invalid selector (<node>) Unknown property <property> (<node>) Property <property> not defined (<node>) Error while evaluating <node> (<message>) Could not parse <value> (<node>) Unknown value <value> while parsing <name> (<node>) Cannot coerce <node> to integer Cannot coerce <node> to float Cannot coerce <node> to string Cannot coerce <node> to boolean Cannot coerce <node> to command Cannot coerce <node> to enumeration Cannot coerce <node> from integer Cannot coerce <node> from float Cannot coerce <node> from string Cannot coerce <node> from boolean Cannot coerce <node> from command Cannot coerce <node> from enumeration An unknown error occurred (<node>) Invalid match syntax (<node>) Invalid argument (<node>) Unknown configuration (<name>) Bad configuration type (<name>) <node> cannot be smaller than <value> <node> cannot be greater than <value> <node> has invalid increment value <value> <node> cannot be smaller than <value> <node> cannot be greater than <value> <node> not in line with increment value <value> Variable already exists (<variable>) Invalid variable name (<variable>) Overflow in float-to-integer conversion of <value> (<node>) An internal exception occurred (<message>) An internal exception occurred (<node>: <message>) <message> (<node>) Maximum recursion depth exceeded Genapi error parameter type Genapi error parameter type string Genapi error parameter type integer Genapi error parameter type float Genapi ui callback ret code The host (user) completed the current UI operation successfully The host (user) canceled the current UI operation The UI operation is not implemented by the host The host operation failed and the script should terminate A Recorder object that encapsulates a recorder handle (cf. RECORDER_HANDLE of the C/C++ interface) and exposes higher level recorder functions; the destructor takes care of closing the recorder when the object goes out of scope Finalizer Close the recorder using the given close mode Recorder close mode Close the recorder using the mode defined when the recorder was created Set a recorder object parameter string value The identifier of the parameter to set The new string value of the parameter Get a recorder object parameter string value The identifier of the parameter to get The parameter value Set a recorder object parameter integer value The identifier of the parameter to set The new integer value of the parameter Get a recorder object parameter integer value The identifier of the parameter to get The current integer value of the parameter Set a recorder object parameter value The parameter value type if T is an integer type or the bool type: the value will be converted to a long and the parameter will be set if T is the string type: the string parameter value will be set The identifier of the parameter to set The new value of the parameter Using an unsupported type will throw an Get a recorder object parameter value The return value type if T is an integer type or the bool type: the long parameter value will be queried and converted to the return type if T is the string type: the string parameter value will be queried and returned The identifier of the parameter to get The current value of the parameter Using an unsupported type will throw an Read the record at the current RECORD_INDEX position from a recorder container opened in read mode The function reads the buffer info and data of the record at the position defined by the parameter RECORD_INDEX When buffer is null: the recorder index is not changed When buffer is not null: the recorder index is automatically set to the next record after a successful read Optional output buffer where record buffer data will be written Size of output buffer Record buffer info When buffer is null: record buffer size (cf. ) When buffer is not null: size of read data Read the record at the current RECORD_INDEX position from a recorder container opened in read mode Note: the recorder index is automatically set to the next record after a successful read Record buffer info Record buffer data Read metadata of the record at the current RECORD_INDEX position from a recorder container opened in read mode Note: the recorder index is NOT automatically set to the next record after a successful read. Record buffer metadata Write buffer info and data to a recorder container opened in write or append mode Note: the buffer info and data are written to the container at the current RECORD_INDEX position; the recorder index is automatically incremented by one after a write and the RECORD_COUNT is also adapted accordingly The buffer info to write to the container The buffer data to write to the container Write buffer info and data to a recorder container opened in write or append mode Note: the buffer info and data are written to the container at the current RECORD_INDEX position; the recorder index is automatically incremented by one after a write and the RECORD_COUNT is also adapted accordingly The buffer info to write to the container The buffer data to write to the container; if the length is smaller than .size, an will be thrown Write an EGrabber buffer to a recorder container opened in write or append mode The buffer info and data are written to the container at the current RECORD_INDEX position; the recorder index is automatically incremented by one after a write and the RECORD_COUNT is also adapted accordingly The buffer to write to the container (info commands will be queried to prepare the RecorderBufferInfo entry and to get the data pointer) Optional user data (that will be set to RecorderBufferInfo.userdata) Optional UTC timestamp (that will be set to RecorderBufferInfo.utc) if 0, read will return buffer timestamp converted to UTC using the synchronized timestamps of the buffer chapter if not 0, read will return the written value The buffer info written to the container Write an EGrabber scoped buffer to a recorder container opened in write or append mode The buffer info and data are written to the container at the current RECORD_INDEX position; the recorder index is automatically incremented by one after a write and the RECORD_COUNT is also adapted accordingly The buffer to write to the container (info commands will be queried to prepare the RecorderBufferInfo entry and to get the data pointer) Optional user data (that will be set to RecorderBufferInfo.userdata) Optional UTC timestamp (that will be set to RecorderBufferInfo.utc) if 0, read will return buffer timestamp converted to UTC using the synchronized timestamps of the buffer chapter if not 0, read will return the written value The buffer info written to the container Export a range of recorded images to files. The container must be opened in read mode Export starts at the current RECORD_INDEX in the container and goes on until records have been exported or the end of the container is reached, the RECORD_INDEX is updated accordingly.
The destination can be either an actual path or a template path containing place holder characters (please see the parameter description for details).
The output file format is automatically derived from the file extenion, which can be .tiff or .tif for the TIFF file format .mkv for the Matroska MKV file format (using the V_UNCOMPRESSED codec) If the path does not have an extension, an exception is thrown.

For TIFF files:
If is greater than 1 and path does not contain any @ pattern, we add .@n before the file extension;
If a record contains more than one part and the path does not contain the @p pattern, we add .@p before the file extension.

For MKV files:
The export operation creates one MKV file per chapter; if the export operation spans several chapters, we add @.n automatically before the file extension.
The image width, height and pixel format must be constant for the entire file. The first exported image is used to define these values.
A subsequent image with a different format will be simply skipped and the returned count will not be updated.
Timestamps increase monotonically; when a backward discontinuity is detected (i.e. the relative time from the beginning of the file of the image to be
written is less than the relative time of the latest image written), a new time reference is taken.

Records containing Bayer formats are converted using the decoding method defined by the parameter BAYER_DECODING_METHOD.

The following example will output 10 files (image0.tif, ..., image9.tif) if the container contains at least 10 records (one part per record) from the current index: recorder.Export("image@n.tif", 10);
The path template of the exported files. It can contain decorations starting with the character @, used as a place holders with the following meanings: @i for the index relative to the first record in the container (number of digits used is defined by the number of records in the container) @n for the index relative to the current record written (number of digits used is defined by the count parameter) @p for the part index relative to the record (number of digits used is defined by the buffer part count of the record) @t for the timestamp value in of the exported record @c for the chapter index @C for the chapter name @@ for the literal @ All other @ patterns are invalid and will raise an InvalidArgument exception. The number of records to export The pixel format of the exported file; or 0 to disable image conversions and keep the original pixel format. The allowed values depend on the file type TIFF file format: Mono8, Mono16, RGB8, RGB16 MKV file format: Mono8, RGB8 The number of exported records. Most of the times, a record contains one image (one buffer part) so the number of exported images matches the number of exported records; but, if a record contains more than one part, each part is exported as a separate image so the number of exported images will be greater than the returned value.
Export a range of recorded images to files with progress information. The container must be opened in read mode Please refer to the documentation of the method Export for the details. The path template of the exported files The number of records to export The pixel format of the exported file The progress callback that is called before exporting each buffer to inform about the progress if the callback returns true, the export continues with the next buffer; if the callback returns false, the export stops and raises the Aborted exception Please note that the return value of the callback in the C++ API is an integer (the export continues as long as the callback returns 0); In the .NET API, using a bool with the value true is more conventional to report a success or to continue an operation. progress context passed to progress callback The number of exported records Start a new chapter. The container must be in write mode. A chapter helps grouping recordings and provides a synchronization point between system and UTC timestamps.

A chapter is automatically created if needed on the first write after opening the container if this function has not been called.
The name of the automatically created chapter is Chapter<xx> where <xx> is the index of the new chapter.

It is allowed to call this method at any time to signal a time discontinuity or start a new group of recordings.
The newly created chapter becomes the current chapter and the RECORDER_CHAPTER_XXXX parameters are updated accordingly.

When a chapter is created, a synchronized pair of system/UTC timestamps is captured and stored in the storage as
CHAPTER_TIMESTAMP and CHAPTER_UTC; the system time timestamp is expressed in nanoseconds since the computer booted.

When reading back from a container, the pair of synchronized timestamps of the corresponding chapter is used internally
to compute the value of the (non-zero) utc field of a record from the value of the (system) timestamp field.
Optional name of the new chapter. The name must comply with the following rules: It must match the regular expression [A-Za-z_][-A-Za-z0-9_ ]* Its length cannot exceed 255 characters It must be unique within the container It cannot be like a default chapter name (i.e. Chapter[0-9]+) unless it matches the default name it would get automatically Optional chapter user information
Close the recorder if needed The container format version (cf. DATABASE_VERSION) Buffer information for read and write operations buffer size (in bytes) buffer pitch in bytes (size of a line including padding) buffer width (number of pixels in a line) delivered height (e.g. BUFFER_INFO_DELIVERED_IMAGEHEIGHT) buffer pixel format (GenICam PFNC 32-bit value) fixed maximum number of parts in the buffer buffer timestamp, expressed in nanoseconds since the computer booted (e.g. BUFFER_INFO_TIMESTAMP_NS) any buffer specific user data UTC timestamp (if 0 when written, read will return buffer timestamp converted to UTC using the synchronized timestamps of the buffer chapter) chapter index; Chapter0 always exists for legacy recordings (set by the library) size of each buffer part (if 0 when written, read will return (size / partCount) The recorder library cannot be loaded due to a missing dependency RecorderError base Get the error status code (cf. ) The recorder library is not initialized An unknown error has occurred The recorder parameter is unknown The recorder parameter type is invalid The recorder parameter value is invalid The destination buffer is too small The recorder parameter is read-only A system error has occurred The specified container path is invalid The container data file is full The operation is not allowed by the recorder open mode The RECORD_INDEX value is out of range The internal meta-data of the current record is invalid (partial read) The internal meta-data size of the container is invalid (partial read or invalid meta-data file size) The given container is not supported by the recorder library The internal meta-data header of the container is invalid Some data was not completely written to disk (partial write) The record handle is invalid The resource is already in use There is no more record to read in the container The path does not contain a container and read-only access is required A given argument is invalid An error occurred in the license manager, please contact Euresys support There is no valid license for this library, please contact Euresys support An image conversion error has occurred The image format is not supported by the export file The current operation has been aborted by the user A read operation returned an invalid size (partial read or invalid data file size) The chapter name has an invalid character The chapter name conflicts with a reserved name The chapter name is already used The chapter name is too long A Recorder library object that loads and unloads the Recorder Library Initialize the recorder library Finalizer Close the recorder library Create a Recorder object path to the recorder container to open the operation mode of the recorder specifies how the recorder container is closed if mode is TRIM, the recorder container is reduced to the smallest size that fits the container contents if mode is KEEP, the recorder container size is unchanged if the flag DONT_TRIM_CHAPTERS is added to the mode, the trailing chapters will be kept even if they are empty; by default, trailing empty chapters are removed The created object EGrabber Recorder error codes The operation completed successfully The recorder library is not initialized An unknown error has occurred The recorder parameter is unknown The recorder parameter type is invalid The recorder parameter value is invalid The destination buffer is too small The recorder parameter is read-only A system error has occurred The specified container path is invalid The container data file is full The operation is not allowed by the recorder open mode The RECORD_INDEX value is out of range The internal meta-data of the current record is invalid (partial read) The internal meta-data size of the container is invalid (partial read or invalid meta-data file size) The given container is not supported by the recorder library The internal meta-data header of the container is invalid Some data was not completely written to disk (partial write) The record handle is invalid The resource is already in use There is no more record to read in the container The path does not contain a container and read only access is required A given argument is invalid An error occurred in the license manager, please contact Euresys support There is no valid license for this library, please contact Euresys support An image conversion error has occurred The image format is not supported by the export file The current operation has been aborted by the user A read operation returned an invalid size (partial read or invalid data file size) The chapter name has an invalid character The chapter name conflicts with a reserved name The chapter name is already used The chapter name is too long EGrabber Recorder parameters Recorder library version Recorder container size Current recorder index position Number of records in the recorder container Space left on the same disk as the recorder container Buffer alignment recommended for best write performance on recorder storage disk, changing the value should be done with extreme caution (set 0 for default value) Format version of recorder container Space left in the recorder container Number of chapters in the container (read only) Chapter selector Index of record in the current chapter Number of records in the current chapter (read only) Chapter UTC time (UTC value of synchronized pair of timestamps for the current chapter, cf. RecorderStartChapter) (read only) Chapter timestamp (system value of synchronized pair of timestamps for the current chapter, cf. Recorder.StartChapter) (read only) Chapter name Chapter user info Decoding method to use when Bayer format is converted (default is METHOD_1) Recorder library license status, cf. Number of retries for partial I/O operations (read/write) before raising invalid data length errors (default is 1) EGrabber Recorder open modes (cf. RecorderLibrary.OpenRecorder) Open a new or an existing (to overwrite) recorder in write mode (record index set to 0) Open an existing recorder in read mode (record index set to 0) Open an existing recorder in append mode (record index set to record count) EGrabber Recorder close modes (cf. Recorder.Close, RecorderLibrary.OpenRecorder) Trim the recorder container size when closing the recorder Keep the current recorder container size when closing the recorder Keep the trailing chapters even if they are empty (can be combined with trim or keep) EGrabber Recorder progress callback states An operation is starting, index and count are not set An operation is ongoing, index and count are set according to the current progress An operation is ending (successfully or not), index and count are not set EGrabber Recorder Bayer decoding methods Bayer decoding disabled, content is interpreted as Mono Bayer decoding method 1 (3x3 interpolation, a.k.a. legacy method) Bayer decoding method 2 (3x3 median-based interpolation, a.k.a. advanced method) Bayer decoding method 3 (5x5 gradient-based interpolation) Bayer decoding method 5 (2x2 average-based interpolation) GenICam PFNC 32-bit values (including Euresys Custom values) Monochrome 1-bit packed Monochrome 2-bit packed Monochrome 4-bit packed Monochrome 8-bit Monochrome 8-bit signed Monochrome 10-bit unpacked Monochrome 10-bit packed Monochrome 12-bit unpacked Monochrome 12-bit packed Monochrome 14-bit unpacked Monochrome 14-bit packed Monochrome 16-bit Monochrome 32-bit Bayer Blue-Green 4-bit packed Bayer Blue-Green 8-bit Bayer Blue-Green 10-bit unpacked Bayer Blue-Green 10-bit packed Bayer Blue-Green 12-bit unpacked Bayer Blue-Green 12-bit packed Bayer Blue-Green 14-bit Bayer Blue-Green 14-bit packed Bayer Blue-Green 16-bit Bayer Green-Blue 4-bit packed Bayer Green-Blue 8-bit Bayer Green-Blue 10-bit unpacked Bayer Green-Blue 10-bit packed Bayer Green-Blue 12-bit unpacked Bayer Green-Blue 12-bit packed Bayer Green-Blue 14-bit Bayer Green-Blue 14-bit packed Bayer Green-Blue 16-bit Bayer Green-Red 4-bit packed Bayer Green-Red 8-bit Bayer Green-Red 10-bit unpacked Bayer Green-Red 10-bit packed Bayer Green-Red 12-bit unpacked Bayer Green-Red 12-bit packed Bayer Green-Red 14-bit Bayer Green-Red 14-bit packed Bayer Green-Red 16-bit Bayer Red-Green 4-bit packed Bayer Red-Green 8-bit Bayer Red-Green 10-bit unpacked Bayer Red-Green 10-bit packed Bayer Red-Green 12-bit unpacked Bayer Red-Green 12-bit packed Bayer Red-Green 14-bit Bayer Red-Green 14-bit packed Bayer Red-Green 16-bit Red-Green-Blue-alpha 8-bit Red-Green-Blue-alpha 10-bit unpacked Red-Green-Blue-alpha 10-bit packed Red-Green-Blue-alpha 12-bit unpacked Red-Green-Blue-alpha 12-bit packed Red-Green-Blue-alpha 14-bit unpacked Red-Green-Blue-alpha 16-bit Red-Green-Blue 8-bit Red-Green-Blue 8-bit planar Red-Green-Blue 10-bit unpacked Red-Green-Blue 10-bit unpacked planar Red-Green-Blue 10-bit packed Red-Green-Blue 10-bit packed into 32-bit Red-Green-Blue 12-bit unpacked Red-Green-Blue 12-bit unpacked planar Red-Green-Blue 12-bit packed Red-Green-Blue 14-bit unpacked Red-Green-Blue 16-bit Red-Green-Blue 16-bit planar Red-Green-Blue 5/6/5-bit packed Blue-Green-Red-alpha 8-bit Blue-Green-Red-alpha 10-bit unpacked Blue-Green-Red-alpha 10-bit packed Blue-Green-Red-alpha 12-bit unpacked Blue-Green-Red-alpha 12-bit packed Blue-Green-Red-alpha 14-bit unpacked Blue-Green-Red-alpha 16-bit Blue-Green-Red 8-bit Blue-Green-Red 10-bit unpacked Blue-Green-Red 10-bit packed Blue-Green-Red 12-bit unpacked Blue-Green-Red 12-bit packed Blue-Green-Red 14-bit unpacked Blue-Green-Red 16-bit Blue-Green-Red 5/6/5-bit packed Red 8-bit Red 10-bit Red 12-bit Red 16-bit Green 8-bit Green 10-bit Green 12-bit Green 16-bit Blue 8-bit Blue 10-bit Blue 12-bit Blue 16-bit 3D coordinate A-B-C 8-bit 3D coordinate A-B-C 8-bit planar 3D coordinate A-B-C 10-bit packed 3D coordinate A-B-C 10-bit packed planar 3D coordinate A-B-C 12-bit packed 3D coordinate A-B-C 12-bit packed planar 3D coordinate A-B-C 16-bit 3D coordinate A-B-C 16-bit planar 3D coordinate A-B-C 32-bit floating point 3D coordinate A-B-C 32-bit floating point planar 3D coordinate A-C 8-bit 3D coordinate A-C 8-bit planar 3D coordinate A-C 10-bit packed 3D coordinate A-C 10-bit packed planar 3D coordinate A-C 12-bit packed 3D coordinate A-C 12-bit packed planar 3D coordinate A-C 16-bit 3D coordinate A-C 16-bit planar 3D coordinate A-C 32-bit floating point 3D coordinate A-C 32-bit floating point planar 3D coordinate A 8-bit 3D coordinate A 10-bit packed 3D coordinate A 12-bit packed 3D coordinate A 16-bit 3D coordinate A 32-bit floating point 3D coordinate B 8-bit 3D coordinate B 10-bit packed 3D coordinate B 12-bit packed 3D coordinate B 16-bit 3D coordinate B 32-bit floating point 3D coordinate C 8-bit 3D coordinate C 10-bit packed 3D coordinate C 12-bit packed 3D coordinate C 16-bit 3D coordinate C 32-bit floating point Confidence 1-bit unpacked Confidence 1-bit packed Confidence 8-bit Confidence 16-bit Confidence 32-bit floating point Bi-color Blue/Green - Red/Green 8-bit Bi-color Blue/Green - Red/Green 10-bit unpacked Bi-color Blue/Green - Red/Green 10-bit packed Bi-color Blue/Green - Red/Green 12-bit unpacked Bi-color Blue/Green - Red/Green 12-bit packed Bi-color Red/Green - Blue/Green 8-bit Bi-color Red/Green - Blue/Green 10-bit unpacked Bi-color Red/Green - Blue/Green 10-bit packed Bi-color Red/Green - Blue/Green 12-bit unpacked Bi-color Red/Green - Blue/Green 12-bit packed Sparse Color Filter #1 White-Blue-White-Green 8-bit Sparse Color Filter #1 White-Blue-White-Green 10-bit unpacked Sparse Color Filter #1 White-Blue-White-Green 10-bit packed Sparse Color Filter #1 White-Blue-White-Green 12-bit unpacked Sparse Color Filter #1 White-Blue-White-Green 12-bit packed Sparse Color Filter #1 White-Blue-White-Green 14-bit unpacked Sparse Color Filter #1 White-Blue-White-Green 16-bit unpacked Sparse Color Filter #1 White-Green-White-Blue 8-bit Sparse Color Filter #1 White-Green-White-Blue 10-bit unpacked Sparse Color Filter #1 White-Green-White-Blue 10-bit packed Sparse Color Filter #1 White-Green-White-Blue 12-bit unpacked Sparse Color Filter #1 White-Green-White-Blue 12-bit packed Sparse Color Filter #1 White-Green-White-Blue 14-bit unpacked Sparse Color Filter #1 White-Green-White-Blue 16-bit Sparse Color Filter #1 White-Green-White-Red 8-bit Sparse Color Filter #1 White-Green-White-Red 10-bit unpacked Sparse Color Filter #1 White-Green-White-Red 10-bit packed Sparse Color Filter #1 White-Green-White-Red 12-bit unpacked Sparse Color Filter #1 White-Green-White-Red 12-bit packed Sparse Color Filter #1 White-Green-White-Red 14-bit unpacked Sparse Color Filter #1 White-Green-White-Red 16-bit Sparse Color Filter #1 White-Red-White-Green 8-bit Sparse Color Filter #1 White-Red-White-Green 10-bit unpacked Sparse Color Filter #1 White-Red-White-Green 10-bit packed Sparse Color Filter #1 White-Red-White-Green 12-bit unpacked Sparse Color Filter #1 White-Red-White-Green 12-bit packed Sparse Color Filter #1 White-Red-White-Green 14-bit unpacked Sparse Color Filter #1 White-Red-White-Green 16-bit YCbCr 4:4:4 8-bit YCbCr 4:4:4 8-bit YCbCr 4:4:4 10-bit unpacked YCbCr 4:4:4 10-bit packed YCbCr 4:4:4 12-bit unpacked YCbCr 4:4:4 12-bit packed YCbCr 4:1:1 8-bit YCbCr 4:1:1 8-bit YCbCr 4:2:0 8-bit YY/CbCr Semiplanar YCbCr 4:2:0 8-bit YY/CrCb Semiplanar YCbCr 4:2:2 8-bit YCbCr 4:2:2 8-bit YCbCr 4:2:2 8-bit YY/CbCr Semiplanar YCbCr 4:2:2 8-bit YY/CrCb Semiplanar YCbCr 4:2:2 10-bit unpacked YCbCr 4:2:2 10-bit unpacked YCbCr 4:2:2 10-bit packed YCbCr 4:2:2 10-bit packed YCbCr 4:2:2 12-bit unpacked YCbCr 4:2:2 12-bit unpacked YCbCr 4:2:2 12-bit packed YCbCr 4:2:2 12-bit packed YCbCr 4:4:4 8-bit BT.601 YCbCr 4:4:4 10-bit unpacked BT.601 YCbCr 4:4:4 10-bit packed BT.601 YCbCr 4:4:4 12-bit unpacked BT.601 YCbCr 4:4:4 12-bit packed BT.601 YCbCr 4:1:1 8-bit BT.601 YCbCr 4:2:2 8-bit BT.601 YCbCr 4:2:2 8-bit BT.601 YCbCr 4:2:2 10-bit unpacked BT.601 YCbCr 4:2:2 10-bit unpacked BT.601 YCbCr 4:2:2 10-bit packed BT.601 YCbCr 4:2:2 10-bit packed BT.601 YCbCr 4:2:2 12-bit unpacked BT.601 YCbCr 4:2:2 12-bit unpacked BT.601 YCbCr 4:2:2 12-bit packed BT.601 YCbCr 4:2:2 12-bit packed BT.601 YCbCr 4:4:4 8-bit BT.709 YCbCr 4:4:4 10-bit unpacked BT.709 YCbCr 4:4:4 10-bit packed BT.709 YCbCr 4:4:4 12-bit unpacked BT.709 YCbCr 4:4:4 12-bit packed BT.709 YCbCr 4:1:1 8-bit BT.709 YCbCr 4:2:2 8-bit BT.709 YCbCr 4:2:2 8-bit BT.709 YCbCr 4:2:2 10-bit unpacked BT.709 YCbCr 4:2:2 10-bit unpacked BT.709 YCbCr 4:2:2 10-bit packed BT.709 YCbCr 4:2:2 10-bit packed BT.709 YCbCr 4:2:2 12-bit unpacked BT.709 YCbCr 4:2:2 12-bit unpacked BT.709 YCbCr 4:2:2 12-bit packed BT.709 YCbCr 4:2:2 12-bit packed BT.709 YCbCr 4:4:4 8-bit BT.2020 YCbCr 4:4:4 10-bit unpacked BT.2020 YCbCr 4:4:4 10-bit packed BT.2020 YCbCr 4:4:4 12-bit unpacked BT.2020 YCbCr 4:4:4 12-bit packed BT.2020 YCbCr 4:1:1 8-bit BT.2020 YCbCr 4:2:2 8-bit BT.2020 YCbCr 4:2:2 8-bit BT.2020 YCbCr 4:2:2 10-bit unpacked BT.2020 YCbCr 4:2:2 10-bit unpacked BT.2020 YCbCr 4:2:2 10-bit packed BT.2020 YCbCr 4:2:2 10-bit packed BT.2020 YCbCr 4:2:2 12-bit unpacked BT.2020 YCbCr 4:2:2 12-bit unpacked BT.2020 YCbCr 4:2:2 12-bit packed BT.2020 YCbCr 4:2:2 12-bit packed BT.2020 YUV 4:4:4 8-bit YUV 4:1:1 8-bit YUV 4:2:2 8-bit YUV 4:2:2 8-bit Bayer Green-Red 14-bit unpacked Bayer Red-Green 14-bit unpacked Bayer Green-Blue 14-bit unpacked Bayer Blue-Green 14-bit unpacked Red-Green-Blue 8-bit unpacked aligned to 32-bit Blue-Green-Red 8-bit unpacked aligned to 32-bit JPEG file interchange format YUV 422 8 bit (Deprecated, use YUV422_8_UYVY) CoaXPress PixelF 16-bit values Bayer Blue-Green 8-bit Bayer Blue-Green 10-bit msb packed Bayer Blue-Green 12-bit msb packed Bayer Blue-Green 14-bit msb packed Bayer Blue-Green 16-bit Bayer Green-Blue 8-bit Bayer Green-Blue 10-bit msb packed Bayer Green-Blue 12-bit msb packed Bayer Green-Blue 14-bit msb packed Bayer Green-Blue 16-bit Bayer Green-Red 8-bit Bayer Green-Red 10-bit msb packed Bayer Green-Red 12-bit msb packed Bayer Green-Red 14-bit msb packed Bayer Green-Red 16-bit Bayer Red-Green 8-bit Bayer Red-Green 10-bit msb packed Bayer Red-Green 12-bit msb packed Bayer Red-Green 14-bit msb packed Bayer Red-Green 16-bit Monochrome 8-bit Monochrome 10-bit msb packed Monochrome 12-bit msb packed Monochrome 14-bit msb packed Monochrome 16-bit Red-Green-Blue 8-bit Red-Green-Blue 10-bit msb packed Red-Green-Blue 12-bit msb packed Red-Green-Blue 14-bit msb packed Red-Green-Blue 16-bit Red-Green-Blue-alpha 8-bit Red-Green-Blue-alpha 10-bit msb packed Red-Green-Blue-alpha 12-bit msb packed Red-Green-Blue-alpha 14-bit msb packed Red-Green-Blue-alpha 16-bit YCbCr 4:1:1 8-bit BT.601 YCbCr 4:1:1 10-bit msb packed BT.601 YCbCr 4:1:1 12-bit msb packed BT.601 YCbCr 4:1:1 14-bit msb packed BT.601 YCbCr 4:1:1 16-bit BT.601 YCbCr 4:2:2 8-bit BT.601 YCbCr 4:2:2 10-bit msb packed BT.601 YCbCr 4:2:2 12-bit msb packed BT.601 YCbCr 4:2:2 14-bit msb packed BT.601 YCbCr 4:2:2 16-bit BT.601 YCbCr 4:4:4 8-bit BT.601 YCbCr 4:4:4 10-bit msb packed BT.601 YCbCr 4:4:4 12-bit msb packed BT.601 YCbCr 4:4:4 14-bit msb packed BT.601 YCbCr 4:4:4 16-bit BT.601 YCbCr 4:1:1 8-bit BT.709 YCbCr 4:1:1 10-bit msb packed BT.709 YCbCr 4:1:1 12-bit msb packed BT.709 YCbCr 4:1:1 14-bit msb packed BT.709 YCbCr 4:1:1 16-bit BT.709 YCbCr 4:2:2 8-bit BT.709 YCbCr 4:2:2 10-bit msb packed BT.709 YCbCr 4:2:2 12-bit msb packed BT.709 YCbCr 4:2:2 14-bit msb packed BT.709 YCbCr 4:2:2 16-bit BT.709 YCbCr 4:4:4 8-bit BT.709 YCbCr 4:4:4 10-bit msb packed BT.709 YCbCr 4:4:4 12-bit msb packed BT.709 YCbCr 4:4:4 14-bit msb packed BT.709 YCbCr 4:4:4 16-bit BT.709 YUV 4:1:1 8-bit YUV 4:1:1 10-bit msb packed YUV 4:1:1 12-bit msb packed YUV 4:1:1 14-bit msb packed YUV 4:1:1 16-bit YUV 4:2:2 8-bit YUV 4:2:2 10-bit msb packed YUV 4:2:2 12-bit msb packed YUV 4:2:2 14-bit msb packed YUV 4:2:2 16-bit YUV 4:4:4 8-bit YUV 4:4:4 10-bit msb packed YUV 4:4:4 12-bit msb packed YUV 4:4:4 14-bit msb packed YUV 4:4:4 16-bit