Matrox Imaging Library (MIL) X Update 85

Release Notes (GigE Vision with MIL)

September 2020

 (c) Copyright Matrox Electronic Systems Ltd., 1992-2020.

 

This document outlines what is new with MIL for GigE Vision and explains the current limitations and particularities when using MIL with GigE Vision devices.

It also presents last-minute information that did not make it into the manual or on-line help. Note that this help file serves to complement your manual. The information found in this file overrides your formally documented material.

Contents

1.     GigE Vision with MIL

1.1         Differences between MIL X Update 85 and MIL 10 Update 82

1.2         Differences between MIL 10 Update 82 and MIL 10 Update 54

1.3         Differences between MIL 10 Update 54 and MIL 10 Update 25

1.4         Differences between MIL 10 Update 25 and MIL 10

1.5         Differences between MIL 10 and MIL 9 Update 52

1.6         Differences between MIL 9 Update 52 and MIL 9 Update 34

1.7         Differences between MIL 9 Update 34 and MIL 9 Update 9

1.8         Differences between MIL 9 Update 9 and MIL 9 Update 8

1.9         What’s new in MIL X Update 85 for GigE Vision

1.9.1      Standards compliance

1.9.2      New features summary

1.9.3      Matrox Capture Works

1.9.4      Working with a 3D device

1.9.5      Additions to the command reference.

1.9.6      Improvements

1.9.7      Behavioral changes

1.9.8      Bug fixes

1.10       What’s new in MIL 10 Update 82 for GigE Vision

1.10.1        Standards compliance

1.10.2        New features summary

1.10.3        Additions to the command reference

1.10.4        Improvements

1.10.5        Behavioral changes

1.10.6        Bug fixes

1.10.7        Known limitations and particularities

1.11       What’s new in MIL 10 Update 54 for GigE Vision

1.11.1        Standards compliance

1.11.2        New features summary

1.11.3        Additions to the command reference

1.11.4        Improvements

1.11.5        Behavioral changes

1.11.6        Bug fixes

1.11.7        Known limitations and particularities

1.12       What's new in MIL 10 Update 25

1.12.1        Standards compliance

1.12.2        New features summary

1.12.3        Additions to the command reference

1.12.4        Improvements

1.12.5        Behavioral changes

1.12.6        Bug fixes

1.13       What's new in MIL 10

1.13.1        Standards compliance

1.13.2        New features summary

1.13.3        Additions to the command reference

1.13.4        Improvements

1.13.5        Behavioral changes

1.13.6        Bug fixes

1.13.7        Define name changes

1.14       What's new in MIL 9 Update 52

1.14.1        Standards compliance

1.14.2        New features summary

1.14.3        Additions to command reference

1.14.4        GigE Vision utilities

1.14.5        Improvements

1.14.6        Behavioral changes

1.14.7        Bug fixes

1.15       What's new in MIL 9  Update 34

1.15.1        Standards compliance

1.15.2        New features summary

1.15.3        Additions to command reference

1.15.4        GigE Vision utilities

1.15.5        Improvements

1.15.6        Behavioral change

1.15.7        Bug fixes

1.16       What's new in MIL 9 Update 9

1.16.1        Standards compliance

1.16.2        New features summary

1.16.3        Additions to command reference

1.16.4        GigE Vision utilities

1.16.5        Improvements

1.16.6        Behavioral change

1.16.7        Bug fixes

1.17       Limitations and particularities

2.     Supported operating systems

3.     Location of examples (in the help file)

 

1.   GigE Vision with MIL

1.1      Differences between MIL X Update 85 and MIL 10 Update 82

1.2      Differences between MIL 10 Update 82 and MIL 10 Update 54

1.3      Differences between MIL 10 Update 54 and MIL 10 Update 25

·         MIL's GigE Vision system does not require MIL’s non-paged memory for image acquisition.

1.4      Differences between MIL 10 Update 25 and MIL 10

1.5      Differences between MIL 10 and MIL 9 Update 52

1.6      Differences between MIL 9 Update 52 and MIL 9 Update 34

1.7      Differences between MIL 9 Update 34 and MIL 9 Update 9

1.8      Differences between MIL 9 Update 9 and MIL 9 Update 8

1.9      What’s new in MIL X Update 85 for GigE Vision

Note that MIL X Update 85 (U85) is a cumulative update, including all content from MIL 10 Update 82 (U82). MIL X Update 85 (U85) requires MIL X Service Pack 4.

For MIL X Update 85, information has either been integrated into the actual MILHelp, or is contained in these release notes.

1.9.1    Standards compliance

1.9.2    New features summary

1.9.3    Matrox Capture Works

Matrox Capture Works is a new interactive utility to configure and test devices that make use of a GenICam-based interface standard. The version included in this update is Early Access (i.e., a preview) and only supports the GigE Vision interface standard. Matrox Capture Works will completely replace the Matrox Capture Assistant interactive utility in time and is available for Windows and eventually Linux. Matrox Capture Works adds, in particular, support for container payload types from the GenICam GenDC and multi-part additions to interface standards, support for 3D display, and specific support for the Matrox AltiZ 3D profile sensors.

1.9.4    Working with a 3D device

Grabbing from a 3D device

Data from a 3D device is grabbed using functions from the Digitizer module such as MdigGrabContinuous(), MdigGrab() and MdigProcess(). In most respects, grabbing data from a 3D device is similar to grabbing images from a 2D camera. However, to work with 3D data in MIL, you need to use a container. The reason is that 3D devices can transmit multiple components (range, confidence, etc.) during a grab.

If your 3D device transmits data using the GenICam GenDC or the GigE Vision multi-part payload types, you can grab directly into a container that was previously allocated using MbufAllocContainer().

For demonstrations on how to grab from such a 3D device with MIL, see the MdigProcess3D and MultiComponentGrab examples. These examples make extensive use of containers for grabbing and show the great flexibility they provide.

Grabbing into a MIL container

When grabbing into a container for the first time, MIL will free all existing components and allocate the components required to store the current frame of data. MIL will typically reuse these automatically allocated components during subsequent grabs, unless you add or remove components from the container. If the latter is the case, all components will be freed and new components will again be allocated for the grabbed data.

MIL will not grab into components of the container that you have allocated manually using MbufAllocComponent(), MbufCopyComponent(), or MbufCreateComponent(). Rather, MIL will create components, as required.

Grabbing into a MIL buffer

If you grab into a traditional buffer from a device that outputs data in a format suitable for a container, the first intensity component (i.e., a standard image) in the frame of data will be grabbed. If there is no intensity component, the first component that is not metadata will be grabbed.

Grabbing using older utilities and certain examples

Limitations are to be expected when using older utilities (such as Matrox Intellicam and Matrox Capture Assistant), and certain MIL examples (such as MdigGrab, MdigGrabSequence and MdigProcess), to grab from particular 3D devices. These utilities and examples do not support grabbing multiple components. That is, they are not able to grab all of the components at once. If present, the first intensity component is always used. Otherwise, the first component that can be stored into a MIL image buffer is used.

1.9.5    Additions to the command reference.

1.9.6    Improvements

1.9.7    Behavioral changes

1.9.8    Bug fixes

1.10   What’s new in MIL 10 Update 82 for GigE Vision

Note that MIL 10 Update 82 (U82) is a cumulative update, including all content from MIL 10 Update 54 (U54).

For MIL 10 Update 82, information has either been integrated into the actual MILHelp, or is contained in this release note. MIL 10 Update 82 updates the official documentation in the MIL Reference for the dig and sys modules.

1.10.1 Standards compliance

1.10.2 New features summary

1.10.3 Additions to the command reference

1.10.4 Improvements

1.10.5 Behavioral changes

1.10.6 Bug fixes

1.10.7 Known limitations and particularities

1.11   What’s new in MIL 10 Update 54 for GigE Vision

Note that MIL 10 Update 54 (U54) is a cumulative update, including all content from MIL 10 Update 25 (U25).

For MIL 10 Update 54, information has either been integrated into the actual MILHelp, or is contained in this release note. MIL 10 Update 54 updates the official documentation in the MIL Reference for the dig and sys modules.

1.11.1 Standards compliance

1.11.2 New features summary

1.11.3 Additions to the command reference

1.11.4 Improvements

1.11.5 Behavioral changes

1.11.6 Bug fixes

1.11.7 Known limitations and particularities

1.12   What's new in MIL 10 Update 25

1.12.1 Standards compliance

·        Support for GigE Vision 2.0.

·        Support for GenICam 3.0.

·        Support for Standard Feature Naming Convention (SFNC) version 2.0.

·        Support for Microsoft® Network Driver Interface Specification 6.20.

 

1.12.2 New features summary

-       Image data payload type.

-       Image data + chunk mode payload type.

-       IEEE 1588 PTP (Precision Time Protocol).

-       Scheduled action command.

-       Single link configuration.

-       Static link aggregation group configuration.

-       Dynamic link aggregation group configuration.

-       Action command.

-       PENDING_ACK message.

 

 

        

1.12.3 Additions to the command reference

     

-       Support for M_GC_ACTION_DEVICE_KEY+N

·         MsysControl()/MsysInquire(). Adds an action device key to action context N. N can range from M_GC_ACTION0 to M_GC_ACTION31. Inquire returns a MIL_INT.

-       Support for M_GC_ACTION_GROUP_KEY+N

·         MsysControl()/MsysInquire(). Adds an action group key to action context N. N can range from M_GC_ACTION0 to M_GC_ACTION31. Inquire returns a MIL_INT.

-       Support for M_GC_ACTION_GROUP_MASK+N

·         MsysControl()/MsysInquire(). Adds an action group mask to action context N. N can range from M_GC_ACTION0 to M_GC_ACTION31. Inquire returns a MIL_INT.

-       Support for M_GC_ACTION_ACKNOWLEDGE_NUMBER+N

·         MsysControl()/MsysInquire(). Lets the GigE Vision driver know how many action command acknowledge packets will be received for action context N. If not specified, the number of calls to M_GC_ACTION_ADD_DEVICE for this action context will be used as the number of acknowledge packets expected. N can range from M_GC_ACTION0 to M_GC_ACTION31. Inquire returns a MIL_INT.

-       Support for M_GC_ACTION_EXECUTE+N

·         MsysControl(). Broadcast a GigE Vision Action command packet or scheduled action command packet containing the device key, group key, and group mask associated to action context N. N can range from M_GC_ACTION0 to M_GC_ACTION31. Control value must be M_DEFAULT. Note that the device key, group key, and group mask must have previously been programmed in each GigE Vision device associated to this action context using MdigControlFeature with "ActionDeviceKey", "ActionSelector", "ActionGroupKey", and "ActionGroupMask". See SFNC (Standard Feature Naming Convention) for details.

-       Support for M_GC_ACTION_ADD_DEVICE+N

·         MsysControl()/MsysInquire(). Associates a GigE Vision device with action context N. N can range from M_GC_ACTION0 to M_GC_ACTION31. The control value must be a valid MIL Digitizer ID. Inquire returns a MIL_ID.

-       Support for M_GC_ACTION_REMOVE_DEVICE+N

·         MsysControl()/MsysInquire(). Removes a GigE Vision device from action context N. N can range from M_GC_ACTION0 to M_GC_ACTION31. The control value must be a valid MIL Digitizer ID. Inquire returns a MIL_ID.

-       Support for M_GC_ACTION_CLEAR_DEVICES+N

·         MsysControl(). Removes all GigE Vision devices associated to action context N. N can range from M_GC_ACTION0 to M_GC_ACTION31. The control value must M_DEFAULT.

-       Support for M_GC_ACTION_TIME+N

·         MsysControl()/MsysInquire(). Associates an action time to action context N. N can range from M_GC_ACTION0 to M_GC_ACTION31. This control must be used only if it is intended to send a scheduled action command. The time specified must be a time in the future. Inquire returns a MIL_DOUBLE. The GigE Vision devices associated to this action context must have IEEE 1588 PTP enabled using MdigControlFeature() with "GevIEEE1588", "GevIEEE1588ClockAccuracy", and "GevIEEE1588Status". See SFNC (Standard Feature Naming Convention) for details. The current time can be inquired with MdigInquire(M_GC_CAMERA_TIME_STAMP) or MdigGetHookInfo(M_GC_CAMERA_TIME_STAMP). The current time is valid only if IEEE 1588 PTP is enabled on all devices when the inquire is made.

-       Support for M_GC_CONTROL_PROTOCOL_CAPABILITY

·         MdigInquire(). Returns a MIL_INT that represents the control channel capabilities of the GigE Vision device. Capability bits returned can be any combination of the following:

o    M_GC_USER_DEFINED_NAME_SUPPORT

o    M_GC_SERIAL_NUMBER_SUPPORT

o    M_GC_HEARTBEAT_DISABLE_SUPPORT

o    M_GC_LINK_SPEED_REGISTER_SUPPORT

o    M_GC_PORT_AND_IP_REGISTER_SUPPORT

o    M_GC_MANIFEST_TABLE_SUPPORT

o    M_GC_TEST_DATA_SUPPORT

o    M_GC_DISCOVERY_ACK_DELAY_SUPPORT

o    M_GC_WRITABLE_DISCOVERY_ACK_DELAY_SUPPORT

o    M_GC_EXTENDED_STATUS_CODES_1_SUPPORT

o    M_GC_PRIMARY_APP_SWITCHOVER_SUPPORT

o    M_GC_UNCONDITIONAL_ACTION_SUPPORT

o    M_GC_IEEE_1588_SUPPORT

o    M_GC_EXTENDED_STATUS_CODES_2_SUPPORT

o    M_GC_SCHEDULED_ACTION_SUPPORT

o    M_GC_ACTION_SUPPORT

o    M_GC_PENDING_ACK_SUPPORT

o    M_GC_EVENT_DATA_SUPPORT

o    M_GC_EVENT_SUPPORT

o    M_GC_PACKET_RESEND_SUPPORT

o    M_GC_WRITE_MEM_SUPPORT

o    M_GC_CONCATENATION_SUPPORT

-       Support for M_GC_STREAM_PROTOCOL_CAPABILITY

·         MdigInquire(). Returns a MIL_INT that represents the stream protocol capabilities of the GigE Vision device. Capability bits returned can be any combination of the following:

o    M_GC_FIREWALL_TRAVERSAL_SUPPORT

o    M_GC_LEGACY_16BIT_BLOCK_SUPPORT

-       Support for M_GC_MESSAGE_PROTOCOL_CAPABILITY

·         MdigInquire(). Returns a MIL_INT that represents the message protocol capabilities of the GigE Vision device. Capability bits returned can be any combination of the following:

o    M_GC_FIREWALL_TRAVERSAL_SUPPORT

-       Support for M_GC_NETWORK_INTERFACE_CAPABILITY

·         MdigInquire(). Returns a MIL_INT that represents the GigE Vision device networking interface capabilities. Capability bits returned are can be any combination of the following:

o    M_GC_PAUSE_RECEPTION_SUPPORT

o    M_GC_PAUSE_GENERATION_SUPPORT

o    M_GC_LINK_LOCAL_ADDRESS_SUPPORT

o    M_GC_DHCP_SUPPORT

o    M_GC_PERSISTENT_IP_SUPPORT

-       Support for M_GC_NETWORK_INTERFACE_CONFIGURATION

·         MdigControl()/MdigInquire(). Controls the GigE Vision device's persistent network interface configuration. The Inquire returns a MIL_INT which represents the currently enabled configuration. The configuration bits that can be used can be any of the following:

o    M_GC_PAUSE_RECEPTION_SUPPORT

o    M_GC_PAUSE_GENERATION_SUPPORT

o    M_GC_LINK_LOCAL_ADDRESS_SUPPORT

o    M_GC_DHCP_SUPPORT

o    M_GC_PERSISTENT_IP_SUPPORT

-       Support for M_GC_PHYSICAL_LINK_CONFIGURATION_CAPABILITY

·         MdigInquire(). Returns a MIL_INT that represents the GigE Vision device physical link configuration capabilities. Capability bits returned can be any combination of the following:

o    M_GC_SINGLE_LINK_SUPPORT

o    M_GC_MULTIPLE_LINK_SUPPORT

o    M_GC_STATIC_LINK_AGGREGATION_SUPPORT

o    M_GC_DYNAMIC_LINK_AGGREGATION_SUPPORT

-       Support for M_GC_STREAM_CHANNEL_CAPABILITY

·         MdigInquire(). Returns a MIL_INT that represents the stream channel capabilities of the GigE Vision device. Capability bits returned can be any combination of the following:

o    M_GC_BIG_AND_LITTLE_ENDIAN_SUPPORT

o    M_GC_IP_REASSEMBLY_SUPPORT

o    M_GC_MULTI_ZONE_SUPPORT

o    M_GC_PACKET_RESEND_OPTION_SUPPORT

o    M_GC_ALL_IN_SUPPORT

o    M_GC_UNCONDITIONAL_STREAMING_SUPPORT

o    M_GC_EXTENDED_CHUNK_DATA_SUPPORT

The following is a list of example calls using the new UserVatType:

-       MdigControlFeature(MilDigitizer, M_FEATURE_VALUE, MIL_TEXT(“Width”), M_TYPE_INT64, &Int64Var)

-       MdigControlFeature(MilDigitizer, M_FEATURE_VALUE, MIL_TEXT(“Gain”), M_TYPE_DOUBLE, &DoubleVar)

-       MdigControlFeature(MilDigitizer, M_FEATURE_VALUE, MIL_TEXT(“ReverseX”), M_TYPE_BOOLEAN, &BoolVar)

-       MdigControlFeature(MilDigitizer, M_FEATURE_VALUE, MIL_TEXT(“PixelFormat”), M_TYPE_STRING, MIL_TEXT(“Mono8”))

-       MdigControlFeature(MilDigitizer, M_FEATURE_VALUE, MIL_TEXT(“LUTValueAll”), M_TYPE_UINT8, Uint8Array)

-       MdigControlFeature(MilDigitizer, M_FEATURE_VALUE, MIL_TEXT(“AcquisitionStart”), M_DEFAULT, M_NULL)

-       MdigInquireFeature(MilDigitizer, M_FEATURE_VALUE, MIL_TEXT(“Width”), M_TYPE_INT64, &Int64Var)

-       MdigInquireFeature(MilDigitizer, M_FEATURE_VALUE, MIL_TEXT(“Gain”), M_TYPE_DOUBLE, &DoubleVar)

-       MdigInquireFeature(MilDigitizer, M_FEATURE_VALUE, MIL_TEXT(“ReverseX”), M_TYPE_BOOLEAN, &BoolVar)

-       MdigInquireFeature(MilDigitizer, M_FEATURE_VALUE + M_STRING_SIZE, MIL_TEXT(“PixelFormat”), M_TYPE_MIL_INT, &MilIntVar)

-       MdigInquireFeature(MilDigitizer, M_FEATURE_VALUE, MIL_TEXT(“PixelFormat”), M_TYPE_STRING, MilTextCharArray)

-       MdigInquireFeature(MilDigitizer, M_FEATURE_VALUE, MIL_TEXT(“LUTValueAll”), M_TYPE_UINT8, Uint8Array)

The following is a list of example calls using M_FEATURE_USER_ARRAY_SIZE():

-       MdigInquireFeature(MilDigitizer, M_FEATURE_VALUE, MIL_TEXT(“PixelFormat”), M_TYPE_STRING + M_FEATURE_USER_ARRAY_SIZE(N), MilTextCharArray); N being equal to the number of MIL_TEXT_CHAR in the MilTextCharArray.

-       MdigInquireFeature(MilDigitizer, M_FEATURE_VALUE, MIL_TEXT(“LUTValueAll”), M_TYPE_UINT8 + M_FEATURE_USER_ARRAY_SIZE(N), Uint8Array); N being equal to the number of Uint8 in the Uint8Array.

-       To read a feature’s value as a string and get the required string length use:

·         MdigInquireFeature(MilDigitizer, M_FEATURE_VALUE + M_STRING_SIZE, MIL_TEXT(“Width”), M_TYPE_MIL_INT, &MilIntVar);

-       To read a feature’s value as a string use:

·         MdigInquireFeature(MilDigitizer, M_FEATURE_VALUE, MIL_TEXT(“Width”), M_TYPE_STRING+M_FEATURE_USER_ARRAY_SIZE(ArraySize), MilTextCharArray);

-       To write a feature’s value from a string use:

·         MdigControlFeature(MilDigitizer, M_FEATURE_VALUE, MIL_TEXT(“Width”), M_TYPE_STRING, MIL_TEXT(“1024”));

-       M_GC_FEATURE_CHANGE can be used as a hook type. The hook is triggered when a GenICam feature gets invalidated. This usually occurs when a feature or a dependent feature is written.

-       M_GC_FEATURE_CHANGE_NAME can be used from a M_GC_FEATURE_CHANGE hook function. The function returns the name of the GenICam feature that triggered the hook. UserVarPtr must point to a user allocated array of type MIL_TEXT_CHAR.

-       M_GC_FEATURE_CHANGE_NAME_SIZE can be used from a M_GC_FEATURE_CHANGE hook function. The function returns the number of characters in the string returned by M_GC_FEATURE_CHANGE_NAME. UserVarPtr must point to a MIL_INT.

1.12.4 Improvements

1.12.5 Behavioral changes

1.12.6 Bug fixes

1.13   What's new in MIL 10

1.13.1 Standards compliance

1.13.2 New features summary

1.13.3 Additions to the command reference

-       Support for M_GC_XML_FORCE_DOWNLOAD.

Forces the MIL driver to download the GigE Vision device's XML description file at MdigAlloc(). If this setting is omitted, the cached version present in the MIL XML repository is used instead.              

-       Support for M_GC_MULTICAST_MASTER   

Specifies that the allocated device will be the master digitizer in a multicasting master-slave relationship. When this setting is used, the GigE Vision device's stream and message channel (if present) will be programmed to use a destination IPv4 address in the multicast address range (from 224.0.0.0 to 239.255.255.255). By default, MIL chooses an administratively scoped IP multicast address in the range 239.0.0.0 to 239.255.255.255. IP multicast also requires a network designed to deliver a multicast service. See the IP multicast section of the Matrox Capture Assistant help for more details.

-       Support for M_GC_MULTICAST_SLAVE

Specifies that the allocated device will be a slave digitizer in a multicasting master-slave relationship. See the IP multicast section of the Matrox Capture Assistant help for more details.

-       Support for M_GC_MULTICAST_MONITOR

Specifies that the allocated device will be a monitor digitizer in a multicasting master-slave relationship.

-       MdigControl()/MdigInquire(). Controls the multicast address used by the device to stream image data. The device must have been allocated with the M_GC_MULTICAST_MASTER InitFlag. Supported control values are any valid IPv4 multicast address in the range 224.0.0.0 to 239.255.255.255. The inquire returns a MIL_TEXT_CHAR string.

-       MdigControl()/MdigInquire(). Controls the multicast address used by the device to send message channel event data. The device must have been allocated with th M_GC_MULTICAST_MASTER InitFlag. Supported control values are any valid IPv4 multicast address in the range 224.0.0.0 to 239.255.255.255. The inquire returns a MIL_TEXT_CHAR string.

-       MdigInquire(). Inquire returns a MIL_INT. Returns M_TRUE if a master digitizer is connected to the device.

-       MdigControl()/MdigInquire(). Controls the multicast UDP port number used for the stream channel. The device must have been allocated with the M_GC_MULTICAST_MASTER InitFlag. The inquire returns a MIL_INT.

-       MdigControl()/MdigInquire(). Controls the multicast UDP port number used for the message channel. The device must have been allocated with the M_GC_MULTICAST_MASTER InitFlag. The inquire returns a MIL_INT.

-       MdigControl()/MdigInquire(). Specifies the number of stream channels on the GigE Vision device. This control can only be used when the digitizer is allocated with the M_GC_MULTICAST_MONITOR InitFlag. The inquire can be used to query the number of stream channels. The inquire can always be used. The inquire returns a MIL_INT.

-       MdigControl()/MdigInquire(). Controls the camera's pixel format. The pixel format value must be a valid GigE Vision pixel format. See GVSP_Pixel_Formats.h for a list of supported values. The inquire returns a MIL_INT.

1.13.4 Improvements

1.13.5 Behavioral changes

1.13.6 Bug fixes

1.13.7 Define name changes

1.14   What's new in MIL 9 Update 52

1.14.1 Standards compliance

1.14.2 New features summary

-       YUV411Packed

-       YUV444Packed

-       RGB10Packed

-       RGB12Packed

1.14.3 Additions to command reference

-       Support for M_GC_XML_DOWNLOAD_SKIP. Prevents the MIL driver from downloading the GigE Vision  device's XML description file at MdigAlloc(). The cached version present in the MIL XML repository is used instead. The M_GC_XML_DOWNLOAD_SKIP flag is ignored if:

·         The XML description file is not present in the MIL XML repository.

·         The XML description file name and/or file size, as reported by the GigE Vision device, has changed.

Prevents the MIL driver from negotiating a packet size with the GigE Vision device at MdigAlloc(). Instead, the GigE Vision device's packet size register is read and this value is used by the MIL driver. If the read packet size is too small, acquisition reliability will suffer. Using this scheme, the packet size can be forced by storing it in the DCF or by using MdigControl with M_GC_PACKET_SIZE. In either case, acquisition reliability will be affected if the forced packet size is too small or if the packet size is not supported by the network infrastructure.

-       MdigControl/Inquire. Inquire returns a MIL_INT. Controls the feature browser's polling thread. Your GigE Vision device can define polling values for features that can change without the user's input. An example of this is the "DeviceTemperature" feature. The polling thread can be used when the device's feature browser is displayed. Its role is to poll features that specify a polling period. Supported control values are:

·         M_DEFAULT: Same as M_ENABLE.

·         M_ENABLE:  Enables the polling thread. Camera features that report polling support will be read periodically.

·         M_DISABLE: Disables the polling thread.

-       MdigControl/Inquire. Inquire returns a MIL_INT. Controls the number of internal grab buffers allocated and used when the MIL driver cannot directly grab into the user's buffer. Internal grab buffers are needed when the GenICam chunk mode is active. They are also needed when the grab buffer's format is not compatible with the camera's current pixel format. Supported control values are:

·         M_DEFAULT: Five internal grab buffers will be allocated.

·         A positive integer between 2 and 1024 representing the number of internal grab buffers to use. An error will get generated if the amount of non paged memory available is insufficient to allocate the buffers.

-       MdigInquire. Inquire returns a MIL_INT64. Returns a value representing the MIL buffer format that is compatible with the camera's current PixelFormat. Useful for allocating grab buffers and avoiding costly color space conversions, Ex:

·         Mono8 PixelFormat will return M_MONO8+M_PLANAR

·         Mono10 PixelFormat will return M_MONO16+M_PLANAR

·         BayerBG8 PixelFormat will return M_YUV16_YUYV+M_PACKED

·         BayerBG12Packed PixelFormat will return M_RGB48+M_PACKED

·         YUYVPacked PixelFormat will return M_YUV16_YUYV+M_PACKED...

-       MdigInquire. Inquire returns a MIL_INT. Represents the total number of packets that passed through the packet cache.

-       MdigInquire. Inquire returns a MIL_INT. Represents the total number of partial or complete frames that passed through the packet cache.

               - MdigInquire. Inquire returns a MIL_TEXT_CHAR string. Returns the network adapter's friendly name connected to your GigE Vision device.

               - MdigInquire. Inquire returns a MIL_INT. Returns the status code from the last image acquired. The status code is extracted from the GigE Vision device's stream packets.

-       MdigControlFeature/MdigInquireFeature. Supports reading from and writing to IRegister feature types. FeatureValuePtr must be a MIL_TEXT_PTR.

-       MdigInquireFeature supports the M_LENGTH inquire flag. When used, it returns a MIL_INT representing the string length required to read the IRegister value.

-       MdigControlFeature/MdigInquireFeature. Supports reading from and writing to any feature type using strings. FeatureValuePtr must be a MIL_TEXT_PTR.

-       MdigInquireFeature supports the M_LENGTH inquire flag. When used, it returns a MIL_INT representing the sting length required to read the feature value as a string.

-       Returns a MIL_INT. Returns the status code from the last image acquired. The status code is extracted from the GigE Vision device's stream packets.

1.14.4 GigE Vision utilities

-       Monoshot acquisition.

-       Continuous acquisition.

-       Buffering control (specify among 5, 10, 20, 50 or 100 buffers to reduce missed frames).

-       Inter-packet delay calculator.

-       Save image to file.

-       MIL display controls.

-       Support of live plug/unplug of GigE Vision devices.

-       Can display the device's feature browser.

-       Can control MIL digitizer properties.

-       Bayer conversion.

-       White balance.

-       Triggers.

-       Packet-resend parameters.

-       A details view.

-       A tree view that shows the relationship between a Gige Vision device and its parent NIC.

1.14.5 Improvements

1.14.6 Behavioral changes

1.14.7 Bug fixes

1.15   What's new in MIL 9  Update 34

1.15.1 Standards compliance

1.15.2 New features summary

1.15.3 Additions to command reference

-       MdigControl/Inquire. Inquire returns a MIL_INT. Controls the camera's image stream activation mechanism. Supported control values are:

·         M_DEFAULT: Lets the MIL driver be in control when the camera's image stream is started/stopped.

·         M_AUTOMATIC: Same as M_DEFAULT.

·         M_MANUAL: Lets the user be in control when the camera's image stream is started/stopped.

-       MdigControl. Starts the camera's image stream. M_GC_STREAMING_MODE must be set to M_MANUAL. Supported control values are:

·         M_DEFAULT.

-       MdigControl. Stops the camera's image stream. Supported control values are:

·         M_DEFAULT.

-       MdigInquire. Inquire returns a MIL_INT. Returns the number of stream channels supported by the GigE Vision device.

-       M_DEFAULT: When a feature is written the driver will block the call until the camera acknowledges the operation as complete.

-       M_SYNCHRONOUS: Same as M_DEFAULT.

-       M_ASYNCHRONOUS: When a feature is written, the driver will not request an acknowledgment from the camera and will return control to the user immediately. Can be used to speed-up programming of the device. This option effectively disables the flow control between the camera and the driver. Care must be taken to not "overflow" the device with data.

-       M_ELEMENT_COUNT: Returns a MIL_INT. When used with M_TYPE_STRING_ENUMERATION or M_TYPE_INTEGER_ENUMERATION FeatureDataType, returns the number of enumeration entries in the enumeration.

-       M_ELEMENT+M_LENGTH+N: Returns a MIL_INT. When used with M_TYPE_STRING_ENUMERATION FeatureDataType, returns the number of characters of the Nth enumeration entry.

-       M_ELEMENT+N: Returns a MIL_TEXT_CHAR string. When used with M_TYPE_STRING_ENUMERATION FeatureDataType, returns the name of the Nth enumeration entry.

-       M_ELEMENT+N: Returns a MIL_INT64. When used with M_TYPE_INTEGER_ENUMERATION FeatureDataType, returns the numerical value of the Nth element.

1.15.4 GigE Vision utilities

1.15.5 Improvements

1.15.6 Behavioral change

1.15.7 Bug fixes

1.16   What's new in MIL 9 Update 9

1.16.1 Standards compliance

1.16.2 New features summary

1.16.3 Additions to command reference

-       Returns a MIL_INT. Returns M_TRUE if a camera has been added or re-connected to the system. Returns M_FALSE if a camera has been removed from the system.

-       Returns a MIL_INT. Returns the system assigned digitizer device number associated with the camera that generated an M_CAMERA_PRESENT event.

·         Returns a MIL_DOUBLE. Returns the operating system's time stamp of the event that generates a service request, in sec. The time stamp is generated by the operating system's performance counter.

-       Returns a MIL_INT. Returns the maximum number of characters in the camera's user-defined name string.

-       Returns a MIL_INT. Returns the user-defined name string for the camera.

-       Returns a MIL_INT64. Returns the 32-bit internet protocol (IPv4) address of the GigE Vision device. Note that these addresses are returned in a 64-bit variable.

-       Returns a MIL_INT. Returns the system assigned digitizer device number associated with the camera that generated an M_CAMERA_PRESENT event.

-       MdigAlloc(..., M_GC_CAMERA_ID(MT("169.254.23.237")), ..., M_GC_DEVICE_IP_ADDRESS, ...);

-       MdigAlloc(..., M_GC_CAMERA_ID(MT("MyCameraName")), ..., M_GC_DEVICE_USER_NAME, ...);

-       MdigControl. Control value: M_DEFAULT. Stops the camera's image stream. Note that MIL will automatically stop the camera's image stream if no grab commands are queued. However for tighter control of the stream this control can be used.

-       MdigControl. Control value: MIL_INT. Represents the time period in milliseconds (ms), or M_DEFAULT. Default is 1000 ms. This is the period at which the driver checks if the camera's image stream should be stopped.

-       MdigControl. Control value: MIL_INT. Represents the delay, in ms, before stopping the camera's image stream. Default is 0 ms. When the M_GC_STREAMING_STOP_CHECK_PERIOD time elapses, this delay is applied before a check is made to stop the stream.

-       MdigControl/Inquire. Inquire returns a MIL_INT. Controls the camera's AcquisitionMode feature. Can be set to M_CONTINUOUS/M_DEFAULT or M_SINGLE_FRAME.

-       MdigInquire. Inquire returns a MIL_DOUBLE. Inquires the timestamp, in seconds, of the last frame grabbed.

-       MdigInquire. Inquire returns a MIL_INT64. Inquires the camera's tick frequency register. A value of 0 Hz indicates the camera does not support time stamps.

-       MdigControl/Inquire. Inquire returns a MIL_INT. Supported values: M_ENABLE, M_DISABLE, M_DEFAULT (same as M_ENABLE). Controls or inquires if the heartbeat mechanism is used to keep the GigE Vision Control channel open. Can only be used with GigE Vision cameras that support the heartbeat disable feature.

-       MdigInquire. Inquire returns a MIL_INT64. Returns the host NIC's IP address used with the camera.

-       MdigInquire. Inquire returns a MIL_INT64. Returns the host NIC's MAC address used with the camera.

-       MdigInquire. Inquire returns a MIL_INT set to M_TRUE or M_FALSE, depending on whether a firewall was detected. Note that if the camera associated to the digitizer supports firewall traversal, this inquire will always return M_FALSE.

-       MdigControl/Inquire. Inquire returns a MIL_INT. Value is in ms. Default is 10 ms. This is the maximum amount of time to wait before flagging a packet as dropped.

-       MdigControl/Inquire. Inquire returns a MIL_INT. Value is in ms. Default is 100 ms. This is the maximum amount of time to wait for the remaining packets of a frame after the trailer packet is received. If packets are missing, the frame is flagged as corrupted.

-       MdigControl/Inquire. Inquire returns a MIL_INT. Default is 3. This is the maximum number of retries for a packet. If reached, the frame is corrupted.

-       MdigControl/Inquire. Inquire returns a MIL_INT. Default is 30. This is the maximum number of packet retries per frame. If reached, the frame is corrupted.

-       MdigInquire. Inquire returns a MIL_INT. This is the total number of packets that are missing. Does not include recovered packets.

-       MdigInquire. Inquire returns a MIL_INT. This is the total number of packets received.

-       MdigInquire. Inquire returns a MIL_INT. This is the total number of emitted PACKETRESEND commands. One resend command can contain multiple consecutive packets.

-       MdigInquire. Inquire returns a MIL_INT. This is the total number of packets recovered.

-       MdigInquire. Inquire returns a MIL_INT. This is the total number of frames grabbed.

-       MdigInquire. Inquire returns a MIL_INT. Returns the number of corrupted frames.

-       MdigInquire. Inquire returns a MIL_INT. This is the total number of packets that were received out of order, which usually happens with link aggregated cameras. If this number is high, increase the value of M_GC_MAX_NBR_PACKETS_OUT_OF_ORDER.

-       MdigControl. Control value must be M_DEFAULT. This resets the statistics.

-       MdigControl/Inquire. Inquire returns a MIL_INT. Default value is 0. Controls the number of packets to wait before asking for a retransmission. This is useful when using link aggregated cameras where packets are received out of order.

-       MdigInquire. Inquire returns a MIL_INT. Returns the number of  buffers remaining in the list of buffers used by MdigProcess(). Note that this number includes the buffer used by the grab in progress. When dealing with round-robin grabbing, this number will typically be relatively close to the total number of allocated grab buffers.

-       MdigControl/Inquire. Inquire returns a MIL_INT. Controls the current electrical format of the specified physical input or output Line. Number can range from 0 or 1 up to the maximum number of Lines in the camera. Supported ControlValues are:

·         M_NO_CONNECT: The line is not connected.

·         M_TRI_STATE: The Line is currently in Tri-State mode (Not driven).

·         M_TTL: The Line is currently accepting or sending TTL level signals.

·         M_RS422: The Line is currently accepting or sending RS422 level signals.

·         M_LVDS: The Line is currently accepting or sending LVDS level signals.

·         M_OPTO: The Line is Opto-Coupled.

-       A MIL error will be generated for this control type if the specified Line number does not exist in the camera or if the Line format cannot be changed by the camera.

-       A MIL error will be generated for any of the previous ControlValues if the specified format does not exist for the specified Line number.

-       MdigControl/Inquire. Inquire returns a MIL_INT. Controls if the physical Line is used to input or output a signal. Number can range from 0 or 1 up to the maximum number of Lines in the camera. Supported ControlValues are:

·         M_INPUT:  The selected physical line is used to input an electrical signal.

·         M_OUTPUT: The selected physical line is used to output an electrical signal.

-       A MIL error will be generated for this control type if the specified Line number does not exist in the camera or if the Line mode cannot be changed by the camera.

-       A MIL error will be generated for any of the previous ControlValues if the specified mode does not exist for the specified Line number.

-       MdigControl/Inquire. Inquire returns a MIL_INT. Selects which internal signal to output on the selected Line. The corresponding M_USER_BIT_MODE must be M_OUTPUT. Number can range from 0 or 1 up to the maximum number of Lines in the camera. Supported ControlValues are:

·         M_USER_BIT: The line will output a user-bit signal.

·         M_TIMER1: The line will output if the chosen timer is in an active state.

·         M_TIMER2: The line will output if the chosen timer is in an active state.

-       A MIL error will be generated for this control type if the specified Line number does not exist in the camera or if the Line mode is set to M_INPUT.

-       A MIL error will be generated for any of the previous ControlValues if the specified signal source does not exist for the specified Line number.

-       MdigControl/Inquire. Inquire returns a MIL_INT. For a control, this sets the value of the specified user bit. For an inquire, this returns the current status of the selected input or output Line. Number can range from 0 or 1 up to the maximum number of user-defined signals in the camera. Supported ControlValues are:

·         M_ON:  The selected physical line is used to input an electrical signal.

·         M_OFF: The selected physical line is used to output an electrical signal.

-       A MIL error will be generated for this control type if the specified Line number does not exist in the camera.

-       MdigControl. Creates the device feature browser dialog from a MIL console application. Supported control values are:

·         M_DEFAULT: Opens the feature browser dialog. The calling thread is blocked.

·         M_OPEN+M_SYNCHRONOUS: same as M_DEFAULT.

·         M_OPEN+M_ASYNCHRONOUS: Opens the feature browser dialog. The calling thread returns as soon as the feature browser is created.

·         M_CLOSE: Closes the feature browser dialog.

-       Hooks a MIL function callback to a generic GigE Vision camera event. Note that the underlying event must be enabled in the camera with MdigControlFeature.

-       Hooks a MIL function callback to the GenICam "AcquisitionTrigger" camera event.

-       Hooks a MIL function callback to the GenICam "AcquisitionStart" camera event.

-       Hooks a MIL function callback to the GenICam "AcquisitionEnd" camera event.

-       Hooks a MIL function callback to the GenICam "AcquisitionTransferStart" camera event.

-       Hooks a MIL function callback to the GenICam "AcquisitionTransferEnd" camera event.

-       Hooks a MIL function callback to the GenICam "AcquisitionError" camera event.

-       Hooks a MIL function callback to the GenICam "FrameTrigger"  camera event.

-       Hooks a MIL function callback to the GenICam "FrameStart" camera event.

-       Hooks a MIL function callback to the GenICam "FrameEnd" camera event.

-       Hooks a MIL function callback to the GenICam "FrameTransferStart" camera event.

-       Hooks a MIL function callback to the GenICam "FrameTransferEnd" camera event.

-       Hooks a MIL function callback to the GenICam "ExposureStart" camera event.

-       Hooks a MIL function callback to the GenICam "ExposureEnd" camera event.

-       Hooks a MIL function callback to the GenICam "CounterXStart" camera event. Number determines the index of the Counter used to generate the event. Number can range from 0 to 8.

-       Hooks a MIL function callback to the GenICam "CounterXEnd" camera event. Number determines the index of the Counter used to generate the event. Number can range from 0 to 8.

-       Hooks a MIL function callback to the GenICam "TimerXStart" camera event. Number determines the index of the Timer used to generate the event. Number can range from 0 to 8.

-       Hooks a MIL function callback to the GenICam "TimerXEnd" camera event. Number determines the index of the Timer used to generate the event. Number can range from 0 to 8.

-       Hooks a MIL function callback to the GenICam "LineXRisingEdge" camera event. Number determines the index of the Line used to generate the event. Number can range from 0 to 32.

-       Hooks a MIL function callback to the GenICam "LineXFallingEdge" camera event. Number determines the index of the Line used to generate the event. Number can range from 0 to 32.

-       Hooks a MIL function callback to the GenICam "LineXRisingEdge" and "LineXFallingEdge" camera events. Number determines the index of the Line used to generate the event. Number can range from 0 to 32.

-       M_UNHOOK can be used with all of the above M_GC_EVENT events to disable the underlying event in the camera.

-       The above message channel events must be implemented in the GigE Vision camera, otherwise calling MdigHookFunction with M_GC_EVENT+... will generate a MIL error message.

-       Returns a MIL_INT. Returns the number of missing packets in the corrupted frame. If 0, the frame is not corrupted.

-       Returns a MIL_INT. This is the number of packets in the frame.

-       Returns a MIL_INT. This is the number of resend commands sent to the camera for a frame. One resend command can contain multiple consecutive packets.

-       Returns a MIL_INT. This is the number of packets recovered in the frame.

-       Returns a MIL_INT. This is the error code returned by the camera for a frame.

-       Returns a MIL_INT. This is the number of lines in the frame.

-       Returns a MIL_INT. This is the frame BlockID value from the camera. The BlockID in the camera is implemented as a 16-bit running counter.

-       Returns a MIL_DOUBLE in seconds. This is the frame timestamp from the camera.

-       Returns a MIL_INT. This is the index of the counter that generated the event.

-       Returns a MIL_INT. This is the index of the timer that generated the event.

-       Returns a MIL_INT. This is the index of the line that generated the event.

-       Returns a MIL_INT. This is the raw GigE Vision event sent by the camera.

1.16.4 GigE Vision utilities

-       Lists GigE Vision features supported by the camera.

-       Total Frames grabbed.

-       Total Data received.

-       Camera Ethernet bandwidth.

-       Camera frame rate.

-       Total packets received.

-       Total frames missed or corrupted.

-       Total packets recovered.

-       Total packets resent.

-       Total packets missed.

-       Total packets that timed out.

-       Camera discovery timeout.

-       Camera IP config timeout.

-       Discovery mode.

-       Packed size search mode.

-       Packet size search timeout.

-       Maximum Packet size.

·         Limits the maximum packet size assigned by the driver to the camera. Useful in multi camera to single NIC scenarios as it reduces packet collisions.

-       Camera heartbeat timeout.

-       Camera acknowledge timeout.

-       Camera stream stop delay.

-       Camera manifest table use.

-       Control of automatic Bayer conversion.

-       Control of format compensation.

-       Discovery service settings.

·         Discovery period.

·         Action on Ethernet link status change event.

·         First discovery delay after OS boot.

·         Controllable GigE Vision device cache.

1.16.5 Improvements

1.16.6 Behavioral change

1.16.7 Bug fixes

1.17   Limitations and particularities

2.   Supported operating systems

 

This section lists all the supported operating systems.

3.   Location of examples (in the help file)