Matrox Imaging Library (MIL) 10 Update 25
Release Notes (milGigEVision)
August 2015
(c) Copyright Matrox Electronic Systems
Ltd., 1992-2015.
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.
1.
GigE Vision with MIL
1.1
Differences between MIL 10 Update 25 and MIL 10.00
1.2
Differences between MIL 10.0 and MIL 9.00 Update 52
1.3
Differences between MIL 9 Update 52 and MIL 9 Update 34
1.4
Differences between MIL 9 Update 34 and MIL 9 Update 9
1.5
Differences between MIL 9 Update 9 and MIL 9 Update 8:
1.6
What's new in MIL 10 Update 25
1.6.1
Standards compliance
1.6.2
New features summary
1.6.3
Additions to the command reference
1.6.4
Improvements
1.6.5
Behavioral changes
1.6.6
Bug fixes
1.7
What's new in MIL 10.00
1.7.1
Standards compliance
1.7.2
New features summary
1.7.3
Additions to the command reference
1.7.4
Improvements
1.7.5
Behavioral changes
1.7.6
Bug fixes
1.7.7
Define name changes
1.8
What's new in MIL 9.00 Update 52
1.8.1
Standards compliance.
1.8.2
New features summary.
1.8.3
Additions to command reference.
1.8.4
GigE Vision utilities.
1.8.5
Improvements.
1.8.6
Behavioral changes
1.8.7
Bug fixes
1.9
What's new in MIL 9.00 Update 34
1.9.1
Standards compliance.
1.9.2
New features summary.
1.9.3
Additions to command reference.
1.9.4
GigE Vision utilities.
1.9.5
Improvements.
1.9.6
Behavioral change.
1.9.7
Bug fixes.
1.10
What's new in MIL 9.00 Update 9
1.10.1
Standards compliance.
1.10.2
New features summary.
1.10.3
Additions to command reference.
1.10.4
GigE Vision utilities.
1.10.5
Improvements.
1.10.6
Behavioral change.
1.10.7
Bug fixes.
1.11
Limitations and particularities.
2.
Supported operating systems.
3.
Location of examples (in the help file)
- Support for GigE Vision 2.0 devices.
- Support for GigE Vision Action and Scheduled
Action command.
- Support for GenICam feature change
notification.
- Capture Assistant re-design to support USB3
Vision and GigE Vision 2.0 devices.
- Support for Microsoft® Windows® 8.
- Support for GigE Vision multicast mode in
MIL.
- Support for GigE Vision multicast mode in the
GigE Vision Configuration Assistant.
- Support for Microsoft® Network Driver
Interface Specification 6.20.
- Additions to MdigControlFeature and
MdigInquireFeature.
- Support of GenICam 2.3.1.
- Support of GenICam chunk mode.
- Support of new pixel formats.
- New modes for
MdigControlFeature/MdigInquireFeature.
- New InitFlags for MdigAlloc().
- GenICam features present in a DCF can now be
marked as optional.
- Seamless support for Link Aggregated
devices.
- Improved automatic packet size
negotiation.
- Re-engineered the GigE Vision Configuration
Assistant.
- Performance optimizations in the Matrox GigE
Vision filter driver.
- Updated device feature browser's
interface.
- Support of GenICam 2.1.1
- Performance optimizations done to the Matrox
GigE Vision filter driver.
- Support of more than 16 GigE Vision cameras.
The default is now 32, the maximum is 128.
- Support of non-streaming GigE Vision devices
(must use empty DCF file).
- The tool used to install Matrox Imaging
Library drivers under 32-bit Microsoft Windows XP (DrvInst.exe) has
been updated to fix two issues:
-
- Registry key corruption
- MtxGigeFilter.sys installation that could
lead to an error pop-up at MsysAlloc(): "System allocation error:
Could not open handle to filter driver."
- Resolves compatibility issues with
MdigControlFeature and MdigInquireFeature when MIL 9 Processing
Pack 2 is installed.
·
Support for GigE Vision 2.0.
·
Support for GenICam 2.3.1.
·
Support for Standard Feature Naming Convention (SFNC) version
2.0.
·
Support for Microsoft® Network Driver Interface Specification
6.20.
- Matrox GigE Vision driver:
-
- Support for GigE Vision 2.0 features:
-
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.
- Support for GigE Vision 1.2 features:
-
Action command.
- Support for GigE Vision 1.1 features:
-
PENDING_ACK message.
- Support for GenICam feature change
notification.
- Support for GenICam command type features in
DCFs.
- Board-specific examples
-
- Modified the milgige GigE Vision specific
example, located in examples\board-specific\milgige\c++. The
example now prints the camera's various capabilities.
- Modified the chunkmode GenICam specific
example, located in examples\board-specific\chunkmode\c++. The
example no longer hard-codes the chunks used. Instead the example
enumerates the available chunks and lets the user select the chunks
to use.
- Modified the enumfeatures GenICam specific
example, located in examples\board-specific\enumfeatures\c++. The
example now uses MdigHookFunction(M_GC_FEATURE_CHANGE) and
MdigGetHookInfo(M_GC_FEATURE_CHANGE_NAME) to receive notifications
of GenICam feature changes.
- New actiontrigger.cpp example, located in
examples\board-specific\actiontrigger\c++. This example uses the
GigE Vision Action command to trigger multiple devices using a
single broadcast action packet. The example then continues and uses
the GigE Vision Scheduled Action command to trigger multiple
devices using a single broadcast scheduled action packet. The
Scheduled Action command relies on IEEE-1588 PTP (Precision Time
Protocol) to allow for finer precision of trigger events sent to
multiple devices.
- CaptureAssistant
-
- Redesigned to support USB3 Vision
devices.
- Added support of GigE Vision 2.0
devices.
- Improved support for GigE Vision multicast
modes.
- Capture Assistant no longer requires
administrative privileges at start-up.
- Capture Assistant is now DPI aware. This
allows for sharper user interface rendering in large fonts.
- Can now select DCF file to use for device
allocation.
- Additions to
MsysControl()/MsysInquire():
-
- Action and Scheduled Action command (see
actiontrigger.cpp board-specific example):
-
Support for M_GC_ACTION_DEVICE_KEY+N
·
MsysControl()/MsysInquire(). Adds an action device key to action
context N. N can range from M_ACTION0 to M_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_ACTION0 to M_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_ACTION0 to M_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_ACTION0
to M_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_ACTION0 to M_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_ACTION0 to M_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_ACTION0 to M_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_ACTION0 to M_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_ACTION0 to M_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.
- Additions to MdigControl()/MdigInquire()
-
- Inquiring GigE Vision camera capabilities
(see actiontrigger.cpp board-specific example):
-
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
- Additions to
MdigInquireFeature()/MdigControlFeature()
-
- M_FEATURE_ENUM_ENTRY_DISPLAY_NAME can now be
used to inquire possible enumeration string entry to use for
display purposes. See M_FEATURE_ENUM_ENTRY_NAME in the MIL
documentation.
- M_STRING_ARRAY_SIZE() can now be used with
MdigInquireFeature when the data type returned is a string. The
M_STRING_ARRAY_SIZE() macro is used to pass the size of the
user-allocated buffer passed to MdigInquireFeature's UserVarPtr
parameter. M_STRING_ARRAY_SIZE() is passed using the FeatureType
parameter. See MilGige board specific example for sample
usage.
- Additions to MdigHookFunction()
-
- Hooking to a GenICam feature change event
(see enumfeatures.cpp board-specific example):
-
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.
- Additions to MdigGetHookInfo()
-
- Hooking to a GenICam feature change event
(see enumfeatures.cpp board-specific
example):
-
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.
- Fixed M_GC_MANIFEST_ENTRY() macro; it could
not receive a variable as a parameter. Only integer literals were
working.
- Intellicam now accepts adding GenICam
commands to DCF in recording mode.
- A loop of MdigGrab() called in
M_SYNCHRONOUS mode resulted in unnecessary packet resend requests.
This has been fixed in MIL 10 Update 25.
- The MtxGigeService.exe is now set to
automatically restart after a crash.
- CaptureAssistant no longer requires
administrative privileges at start-up.
- CaptureAssistant is now aware of trigger mode
changes done through the Feature Browser.
- Camera features are no longer written when
calling MdigAlloc() with an empty DCF.
- Calling MdigGetHookInfo(M_GC_FRAME_BLOCK_ID)
with a GigE Vision 2.0 will return the camera's 64-bit frame id
counter. GigE Vision 1.x devices still return the 16-bit frame id
counter.
- Fixed issue in Intellicam where some DCF
files were not saved to disk when the file did not end with
expected characters.
- Boolean features were not correctly saved
with DCF set in recording mode.
- Fixed blue-screen when low memory resource
conditions occurred.
- Fixed deadlock that occurred when
MdigProcess(M_STOP) was called from the MdigProcess callback
function.
- Fixed blue-screen that occurred when changing
Ethernet controller parameters while grabbing (under Window 7 and
Windows 8).
- Fixed issue in Intellicam when dumping all
camera features to DCF (32-bit version only). The resulting DCF was
not valid.
- Fixed GPF that occurred with
MdigControlFeature and MdigInquireFeature with NULL feature
names.
- Fixed issue with
MdigControl(M_GC_PACKET_SIZE); the internal GenICam feature
associated was not updated, resulting in an invalid value returned
by MdigInquireFeature with the "GevSCPSPacketSize" feature.
- Fixed handle leak when
MsysHookFunction(M_CAMERA_PRESENT) was not unhooked.
- Fixed MsysGetHookInfo that returns strings
(MIL_TEXT_PTR) when used with DMIL.
- Fixed packet size negotiation when
MdigAlloc() was called with M_GC_MULTICAST_MASTER.
- Support for GenICam 2.3.1.
- Support for Standard Feature Naming
Convention (SFNC) version 1.3.
- Support for Microsoft® Network Driver
Interface Specification 6.20.
- Matrox GigE Vision driver
-
- Support for GigE Vision multicast mode in
MIL.
- Support for GigE Vision multicast mode in the
Matrox Capture Assistant.
- Accelerated MdigAlloc() by avoiding the XML
description file download, when possible.
- Overhaul of the MdigControlFeature() and
MdigInquireFeature(). See the MIL Online help for details.
- The Matrox GigE Vision filter driver now
complies with the Microsoft® NDIS 6.20 specification when installed
on Windows 7 and Windows 8.
- Implemented MIL's new I/O specification.
- New gigevision_multicast_monitor.dcf
-
- The gigevision_multicast_monitor.dcf can be
used to allocate a digitizer in M_GC_MULTICAST_MONITOR mode. This
DCF includes stream and message channel parameters that must be set
to the multicast IP address and UDP port number for each of the
stream and (optionally) the message channel. It also includes
parameters for specifying the expected image Width, and image
Height, as well as the expected PixelFormat that will be
transmitted by the GigE Vision device operating in Multicast
mode.
- Board-specific examples
-
- New multicastmaster.cpp example, located in
examples\board-specific\gigevision\C++\multicastmaster. This
can be used to allocate a GigE Vision device in multicast mode with
control access.
- New multicastslave.cpp example, located in
examples\board-specific\gigevision\C++\multicastslave. This
can be used to allocate a GigE Vision device in multicast mode
without control (read only access mode). The example also adapts to
changes made by the master process.
- New multicastmonitor.cpp example, located in
examples\board-specific\gigevision\C++\multicastmonitor. The
multicast monitor mode can be used in cases where the multicast
master allocates the GigE Vision device in exclusive mode. When a
GigE Vision device is allocated in exclusive mode, secondary
applications will no longer have read access to the device, making
the multicastslave example unusable. In this case, the
multicastmonitor example can be used. Manual configuration is
required for the multicast IP address and UDP port used.
- New enumfeatures.cpp example, located in
examples\board-specific\gigevision\C++\enumfeatures. This can be
used to enumerate all features present in your GenICam compliant
camera. It can also be used to query various feature
properties.
- New chunkmode.cpp example, located in
examples\board-specific\gigevision\C++\chunkmode. This can be used
to enable chunk mode. With chunk mode enabled, additionnal data
will get streamed along with the image to the host. MIL will
automatically extract the chunk information and update the
corresponding chunk features and extract the image data.
- Additions to MdigAlloc()
-
- The InitFlag parameter now supports the
following settings:
-
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.
- Additions to MdigControl()/MdigInquire()
-
- Support for
M_GC_STREAM_CHANNEL_MULTICAST_ADDRESS_STRING
-
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.
- Support for
M_GC_MESSAGE_CHANNEL_MULTICAST_ADDRESS_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.
- Support for
M_GC_MULTICAST_MASTER_CONNECTED
-
MdigInquire(). Inquire returns a MIL_INT. Returns M_TRUE if a
master digitizer is connected to the device.
- Support for Support for
M_GC_STREAM_PORT.
-
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.
- Support for M_GC_MESSAGE_PORT.
-
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.
- Support for
M_GC_NUMBER_OF_STREAM_CHANNELS.
-
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.
- Support for M_GC_PIXEL_FORMAT.
-
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.
- Resolved issue where missing the data leader
packet lead to a missed frame.
- Calling MdigAlloc() on a device that supports
the GigE Vision manifest table no longer downloads the device's XML
description file every time. Instead the cached version, if present
in the MIL XML repository, is used. If the device does not support
the GigE Vision manifest table, then the XML description file is
downloaded every time. To force the download, use
M_GC_XML_FORCE_DOWNLOAD with MdigAlloc().
- Missing the first packet of a frame caused a
missed frame to be reported even if all other packets of the frame
were grabbed. This has been fixed by changing the default behavior
of the driver's packet resend engine. The driver is now allowed, by
default, to issue packet resend requests for the first 5 packets of
a frame (if missed).
- Fixed a blue-screen that occurred when
MdigAlloc() was called with M_GC_MULTICAST_SLAVE and the master
digitizer had not yet been allocated (reproducible only with
DriverVerifier enabled on the mtxgige.sys driver).
- Fixed GPF that occurred with non standard
devices that had UserDefinedNames greater than 16 characters.
- Fixed a blue-screen that occurred on an Intel
10 Gbps NIC.
- Fixed bad image reconstruction when the
Microsoft NDIS_PACKET was split into multiple MDLs. Occurred on 10
Gbps NICs.
- An internal GenICam error has been fixed when
using the GigE Vision message channel.
- A GPF has been fixed at MdigFree() with some
specific cameras.
- Fixed issue when using MdigControl/Inquire()
with M_GC_CAMERA_TIME_STAMP.
- Fixed issue when using MdigGetHookInfo() with
M_MODIFIED_BUFFER+M_BUFFER_ID this always returned 0 when called
from M_GRAB_XXX hooks. The MdigProcess() hook callback was not
affected by this issue.
- Fixed issue with MtxGigeService on systems
with more than 16 NICs installed.
- M_GC_SLAVE is now M_GC_MULTICAST_SLAVE.
- M_GC_PIXELFORMAT_SWITCHING is now
M_GC_PIXEL_FORMAT_SWITCHING.
- M_SOURCE_BUFFER_FORMAT is now
M_SOURCE_DATA_FORMAT.
- M_GC_IP_ADDRESS is now
M_GC_IP_ADDRESS_STRING
- M_GC_NIC_IP_ADDRESS is now
M_GC_NIC_IP_ADDRESS_STRING
- M_GC_MAC_ADDRESS is now
M_GC_MAC_ADDRESS_STRING
- M_GC_NIC_MAC_ADDRESS is now
M_GC_NIC_MAC_ADDRESS_STRING
- Support for GenICam 2.3.1.
- Support for Standard Feature Naming
Convention (SFNC) version 1.3.
- Matrox Capture Assistant
(for GigE Vision devices)
-
- Added acquisition section.
- Added a control section.
- Added new views.
- Added statistics for NICs.
- Added new set of DCFs.
- Matrox Intellicam
-
- The device feature browser is now in its own
window.
- Can now mark features in a DCF as optional.
Will not generate an error at MdigAlloc() if feature does not exist
in the target GigE Vision device.
- The Direct Feature Control tab now includes
several drop-down list boxes to more robustly specify the value and
data type of the feature entry selected.
- Matrox device feature browser
-
- Can view real-time chunk data.
- Added polling support for GenICam features
that support polling.
- New combo box allows filtering of features
according to user level (beginner, expert, guru).
- Added feature search menu.
- Matrox GigE Vision driver
-
- Support for GigE Vision Chunk mode.
- Improved acquisition robustness through the
addition of a packet cache. System conditions could cause missed
frames when packet resend requests were not received in time. This
caused one or more subsequent frames to be missed. These frames now
get stored temporarily in a packet cache before being delivered to
the user's grab buffer.
- Tweaked use case where packet resend requests
transmitted by the driver were delayed.
- Added new pixel format support:
-
YUV411Packed
-
YUV444Packed
-
RGB10Packed
-
RGB12Packed
-
- Packet resend parameters are now
automatically adjusted for link aggregated devices. When the
detected link speed is greater than 1 Gbps, the MIL driver assumes
the attached device is link aggregated and adjusts packet resend
parameters automatically at MdigAlloc().
- The default maximum negotiated packet size is
now 9014 bytes; this has been increased from 6144 bytes.
- The automatic packet size negotiation process
now takes into account GenICam's minimum, maximum and increment
values for the packet size register (GevSCPSPacketSize feature).
This allows for successful packet size negotiation on devices which
restrict accepted packet size values.
- The M_SYSTEM_GIGE_VISION system type can now
use the SoliosGigE NICs by default. This was blocked in previous
releases.
- New InitFlags supported for MdigAlloc().
- New modes for
MdigControlFeature/MdigInquireFeature().
- Added gigevision_max_sensor_size.dcf. This
DCF allows a digitizer to be allocated using the device's largest
possible width and height values, while keeping the ROI values to a
minimum.
- Added new set of DCFs. DCFs that have the
_continuous suffix in the file name will force the GigE Vision
device in continuous mode, disabling triggers if any.
- GigE Vision-specific examples
-
- mtxgige.cpp now reads and prints LUT
information if present in a GigE Vision device.
- Additions to MdigAlloc
-
- The InitFlag parameter can now have the
following flags set:
-
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.
- Support for
M_GC_PACKET_SIZE_NEGOTIATION_SKIP.
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.
- Additions to MdigControl/MdigInquire
-
- Support for M_GC_FEATURE_POLLING.
-
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.
- Support for
M_DIGITIZER_INTERNAL_BUFFERS_NUM.
-
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.
- Support for M_SOURCE_BUFFER_FORMAT.
-
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...
- Support for
M_GC_TOTAL_PACKET_CACHE_HITS.
-
MdigInquire. Inquire returns a MIL_INT. Represents the total number
of packets that passed through the packet cache.
- Support for M_GC_TOTAL_FRAME_CACHE_HITS.
-
MdigInquire. Inquire returns a MIL_INT. Represents the total number
of partial or complete frames that passed through the packet
cache.
- Support for M_GC_NIC_FRIENDLY_NAME.
- MdigInquire. Inquire returns a MIL_TEXT_CHAR string. Returns the
network adapter's friendly name connected to your GigE Vision
device.
- Support for M_GC_FRAME_STATUS_CODE.
- 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.
- Additions to
MdigControlFeature/MdigInquireFeature
-
- Support for M_TYPE_REGISTER_FROM_STRING.
-
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.
- Support for M_TYPE_VALUE_FROM_STRING.
-
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.
- Additions to MdigGetHookInfo
-
- Support for M_GC_FRAME_STATUS_CODE.
-
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.
- Matrox Capture
Assistant
-
- Added acquisition
section.
-
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.
-
- Added statistics for NICs.
- Icon overlays graphically indicate device
status information.
- Owner process of device is displayed as a
tooltip.
- Matrox device feature browser
-
- Made performance optimizations.
- Can view real-time chunk data.
- Added polling support for GenICam features
that support polling.
- Added combo box that allows filtering of
features according to user level.
- Added check box for feature polling
support.
- Added tooltips on all nodes.
- Fixed tooltips when used in Intellicam.
- Added feature search menu.
- A packet cache is now maintained by the MIL
driver to alleviate missed frame issues.
- The packet resend engine has been optimized
in use cases where packet resend requests were delayed.
- The packet resend engine's parameters are now
automatically adjusted for link aggregated GigE Vision devices.
Adjustment occurs when the detected Ethernet link speed is greater
than 1 Gbps. Ethernet link speed detection under Windows XP
requires the MtxGigeService to be running.
- Automatic packet size negotiation now takes
into account the GigE Vision device's limitations regarding
Minimum, Maximum and Increment values.
- Optimized the device feature browser.
- Added new pixel format support.
- GenICam's chunk mode is now supported.
- The Matrox Capture Assistant now has an
acquisition section.
- The trigger mode of GigE Vision devices are
no longer reset at MdigAlloc(). If you wish to force your
GigE Vision device to continuous mode at MdigAlloc() use the DCFs
with the _continuous suffix.
- Five internal buffers are now allocated per
digitizer up from three to resolve missed frame issues. These are
used when the MIL driver cannot grab directly in the user's
buffers.
- When internal buffers run out and the MIL
driver cannot grab directly in the user's buffers because of format
conversion issues (e.g. chunk mode is used or the camera's
PixelFormat is not compatible with the buffer's format), then, if
conditions permit, the buffers passed to MdigProcess can be used by
the MIL driver as a temporary storage location for raw image data.
This raw data will then be converted to the proper format in a
subsequent operation. It is guaranteed that the data in the buffer
signaled as grabbed in the MdigProcess callback has been correctly
formatted and is available for use by the application.
- Fixed handle leak related to the MdigProcess
grab monitor when called in a loop with high frame rate
cameras.
- Fixed UI bugs in feature browser.
- Fixed memory and handle leaks in feature
browser.
- Fixed handle leak that occurred during
MdigProcess M_START or M_SEQUENCE / M_STOP cycles.
- Fixed GPF in Matrox Capture Assistant that
occurs right after logon on Windows XP Embedded systems.
- Fixed issue with MtxGigeService that occurs
during uninstallation/installation cycles. Sometimes the
uninstallation does not complete normally (requires a reboot) and
prevents the new installation from completing properly.
- Fixed unreported errors at MdigAlloc() when
loading from a DCF containing invalid features.
- Fixed issue with MdigGetHookInfo called from
an M_GRAB_END hook.
- Missing installation of XMLLite is now
reported through Matrox Capture Assistant or through a MIL error at
MsysAlloc().
- Fixed GPF that occurred when GenICam was not
properly installed.
- Fixed bug with
MdigInquire(M_GC_NIC_MAC_ADDRESS). It did not report the correct
address if the GigE Vision device is reconnected to another host
NIC port.
- Fixed issue at MdigAlloc() where the wrong
error message is reported. Occurs when a GigE Vision device is
unplugged and MdigAlloc() is called before the mtxgigeservice has
time to update its cache. The error reported was "The camera has
denied the application access to its configuration registers"; it
should have been "GigE Vision device not found".
- Fixed issue at MdigAlloc() on systems with
less than 512 MB of RAM and no page file (virtual memory).
- Fixed GPF that occurs during an internal
GenICam exception that is mishandled.
- Fixed issue with MdigInquire(M_TYPE). Inquire
returned 16 for Mono10 and Mono12 pixel formats. It now returns 10
and 12 respectively. MdigInquire(M_SIZE_BIT) will return 16 for
these pixel types.
- Fixed issue in mtxgigefilter.sys. GigE Vision
stream packets were not filtered out when no grabs were pending and
the camera was streaming images. This resulted in CPU spikes.
- Fixed issue in Matrox Capture Assistant.
ToolStrip buttons did not respond to mouse clicks if the Matrox
Capture Assistant did not have input focus.
- Fixed exception in mtxgigeservice that occurs
at boot up right after the login on Windows XP Embedded
systems.
- Fixed handle leak seen during
MdigAlloc()/MdigFree() cycles.
- Support for GenICam 2.1.1.
- Support for Standard Feature Naming
Convention (SFNC) version 1.3.
- Matrox GigE Vision and Configuration
Assistant:
-
- Added option in System Configuration page to
prevent the driver from automatically resolving IP configurations
conflicts.
- Added option in System Configuration page to
change the maximum number of devices that can be used, default has
been increased from 16 to 32.
- Added a reset checkbox to Persistent IP
Configuration section. Forces device to reboot and use the newly
written IP settings.
- Added button to spawn device feature
browser.
- Added option to allow the
M_SYSTEM_GIGE_VISION system to acquire from cameras connected to a
SoliosGigE.
- Matrox Intellicam
-
- Simplified DCF dialog.
- Overview page now lists all cameras with more
descriptive information.
- Direct Feature Control now guarantees that
all selectors are written to the DCF when a selectee feature is
written through the feature browser.
- New option that allows writing all streamable
features to the DCF with a single button click. The camera needs to
support streamable features for this option to work.
- Added check-box in the System Preferences
dialog (Options -> Preferences menu) to disable the digitizer
controller dialog. Avoids bug in Toshiba TELI GiantDragon family of
cameras.
- Matrox Device Feature Browser
-
- Value column now prints the "Display Name" of
a feature value.
- GigE Vision-specific examples
-
- New cameraevents GigE Vision-specific
example. Demonstrates the use of GigE Vision message channel events
with MIL.
- Updated milgige GigE Vision-specific example.
Now prints important camera features; support for the different
triggering schemes supported by the Standard Features Naming
Convention.
- Updated packetdelay GigE Vision-specific
example. Resolved issue about algorithm not converging. Algorithm
now runs faster and has the option to compute inter-packet delay
for all PixelFormats supported by the camera.
- Updated multicamera GigE Vision-specific
example. Added per NIC statistics. Fixed race condition between
initial digitizer allocation and camera present hook.
- Support of more that 16 GigE Vision devices.
The total number of devices that can be used can now be controlled
through GigE Assistant's "System Configuration" page.
- Implemented new mechanism in mtxgigefilter to
solve missing packets in SingleFrame or MultiFrame AcquisitionMode
when packets are missing on the last frame of the stream.
- Multiple versions of GenICam can now be
supported simultaneously.
- MdigHalt now automatically issues an
M_GC_STREAMING_STOP (AcquisitionStop) command to the camera.
- Enhanced error reporting when
MdigControlFeature is called with the wrong FeatureName and
FeatureDataType combination.
- Additions to MdigControl/MdigInquire
-
- Support for M_GC_STREAMING_MODE.
-
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.
- Support for M_GC_STREAM_START
-
MdigControl. Starts the camera's image stream. M_GC_STREAMING_MODE
must be set to M_MANUAL. Supported control values are:
·
M_DEFAULT.
- Support for M_GC_STREAM_STOP
-
MdigControl. Stops the camera's image stream. Supported control
values are:
·
M_DEFAULT.
- Support for
M_GC_NUMBER_OF_STREAM_CHANNELS
-
MdigInquire. Inquire returns a MIL_INT. Returns the number of
stream channels supported by the GigE Vision device.
- Additions to
MdigControlFeature/MdigInquireFeature
-
- MdigControlFeature now accepts a new
ControlFlag parameter. Supported ControlFlags are:
-
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.
- MdigInquireFeature now accepts new
ControlFlag parameters. Supported control flags are:
-
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.
- Implemented a timer object in the packet
resend mechanism. Useful when the camera's AcquisitionMode is not
Continuous.
- Fixed performance issue in packet resend
mechanism when the last packets of a frame were missed.
- Performance optimizations done to the GigE
Vision stream filter engine (mtxgigefilter).
- Clarified error messages when
MdigControlFeature/MdigInquireFeature is used with the wrong
FeatureDataType parameter.
- Support for non-streaming GigE Vision
devices.
- A discovery is now performed at MsysAlloc
when the MtxGigeService device cache is empty.
- MdigInquire(M_PROCESS_FRAME_RATE) is now much
more precise.
- The MtxGigeService no longer waits 120
seconds before performing the first discovery after the OS
boot.
- It is now possible to grab with
M_SYSTEM_GIGE_VISION through the SoliosGigE to support packet
resend.
- The MtxGigeService no longer performs
MdigAlloc calls upon initial device discovery. Avoids side effect
when multiple MtxGigeServices are running on the same
sub-network.
- A discovery command is sent at MsysAlloc when
the MtxGigeService's camera cache is empty.
- Fixed issues with
MdigControlFeature/MdigInquireFeature that control string based
features when used with distributed MIL.
- Fixed issue with MdigProcess which would not
stop under certain conditions.
- Fixed issue where an internal error was not
reported to the user.
- Fixed issue with MdigProcess when camera's
AcquisitionMode is set to MultiFrame. The camera's stream was
started too soon resulting in the possibility of missing the first
frame of the sequence.
- Fixed issue with MtxGigeService where it
prevented the OS from performing a shutdown operation.
- Fixed issue with MtxGigeService where an
extra discovery command was sent.
- Fixed issue with MtxGigeService that would
fail to start promptly at OS boot-up.
- Fixed memory leak in MtxGigeService.
- Fixed issue with Matrox GigE Vision and
Configuration Assistant where persistent data was written to the
wrong device.
- Fixed bug related to
MdigControl(M_GRAB_EXPOSURE_...) controls.
- Fixed blue-screen that occurred in the kernel
socket library. Occurred on a failed socket allocation.
- Fixed MdigProcess frame counter issue upon
camera disconnection.
- Fixed issue in feature browser where some
features were not being displayed. Occurred if feature was marked
as not implemented during initial node tree walkthrough.
- Fixed blue-screen that occurred when calling
MdigGrabContinuous with a buffer not selected to the display.
Blue-screen occurred when the camera was disconnected while
grabbing.
- Fixed camera bandwidth statistics issue in
multicamera GigE Vision specific example.
- Fixed issue with Basler Ace in
YUV422_YUYV_Packed pixel format.
- Fixed heap corruption issue in
MdigInquireFeature when FeatureDataType was set to M_TYPE_STRING or
M_TYPE_STRING_ENUMERATION.
- Fixed issue in Matrox GigE Vision and
Configuration Assistant where camera list is sometimes not
displayed at application startup (need to click on the Perform
Discovery button).
- Fixed issue with SVS-VISTEK Link Aggregated
cameras. Camera streams its image top down on one interface and
bottom up on the other; we were only capturing half of the
image.
- Fixed issue in feature browser where some
features were not being displayed when they are initially tagged as
"Not Implemented".
- Support for new GigE Vision 1.1
features.
-
- Firewall traversal (if supported by
camera).
- New pixel formats: Mono14, Bayerxx10Packed,
Bayerxx12Packed, Bayerxx16 and YUYVPacked.
- Manifest table.
- Support for GenICam 2.0.1.
- Support for Standard Feature Naming
Convention (SFNC) version 1.3.
- Matrox GigE Vision and Configuration
Assistant:
-
- Added GigE Vision device IP configuration
tool. Allows to control Persistent IP and DHCP settings in the
camera.
- Added detection of firewall presence. Note
that firewalls can prevent device discovery as well as prevent
host-camera packet size negotiation from taking place.
- Added ability to change camera
PacketSize.
- Added ability to change inter-packet
delay.
- Added GigE Vision capabilities window. This
lists the selected camera's supported GigE Vision features.
- Added GigE Vision statistics window. This
lists various statistics (e.g. bandwidth, missed packets, recovered
packets, missed frames, corrupted frames...) for a given GigE
Vision camera.
- Added System Configuration tab. This controls
various GigE Vision driver parameters.
- Added Troubleshooting tab. This allows for
the recovery of inaccessible GigE Vision cameras.
- Re-engineered the packet re-transmission
algorithm in the driver. This removes limitations in the previous
algorithm.
- Support of camera connect / disconnect events
(see multicamera.cpp example for more details).
-
- Newly attached cameras can now be allocated
post MsysAlloc.
- Allocated digitizers are seamlessly
re-initialized when an allocated camera is disconnected /
re-connected.
- New multicamera.cpp example, located in
examples\board-specific\gigevision\multicamera\. This can be used
to detect and handle camera connection / disconnection events.
- Updated example since last release of this
update to reflect changes in mtxgigeservice device persistence
modifications (see the mtxgigeservice section in this
document).
- Support of GigE Vision message channel
through MdigHookFunction with M_GC_EVENT hook types.
- Support of MIL User-bits on GigE Vision
devices through SFNC compliant feature names.
- Support of link aggregated cameras. See
M_GC_TOTAL_PACKETS_RECEIVED_OUT_OF_ORDER and
M_GC_MAX_NBR_PACKETS_OUT_OF_ORDER in this document.
- Added licensing support of Matrox GatorEye
GigE Vision Cameras. Important note: In order to use the Matrox
GatorEye camera with no other Matrox hardware, the Camera Discovery
Service must be running otherwise a licensing error will be
reported. The Service can be activated using the GigE page in
MilConfig.
- New packetdelay.cpp example, located in:
examples\board-specific\gigevision\packetdelay\. This can be used
to determine inter-packet delay values to be programmed in the
camera, which is required for its reliable operation.
- Additions to MsysHookFunction:
-
- Can now hook a callback to M_CAMERA_PRESENT.
Note that M_CAMERA_PRESENT hook support requires the use of the
mtxgigeservice process. If the service is not started, a MIL error
will be generated when calling MsysHookFunction with
M_CAMERA_PRESENT.
- Additions to MsysGetHookInfo:
-
- Support for M_CAMERA_PRESENT.
-
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.
- Support for M_TIME_STAMP.
-
Returns a MIL_DOUBLE. Returns the operating system's time stamp of
the event that generates a service request, in secs. The time stamp
is generated by the operating system's performance counter.
- Support for M_GC_USER_NAME_LENGTH.
-
Returns a MIL_INT. Returns the maximum number of characters in the
camera's user-defined name string.
- Support for M_GC_USER_NAME.
-
Returns a MIL_INT. Returns the user-defined name string for the
camera.
- Support for M_GC_IP_ADDRESS.
-
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.
- Support for M_GC_MAC_ADDRESS.
-
Returns a MIL_INT. Returns the system assigned digitizer device
number associated with the camera that generated an
M_CAMERA_PRESENT event.
- Additions to MdigAlloc:
-
- M_GC_CAMERA_ID(MT("")) can now be used with
the DigNum parameter (MdigAlloc), in conjunction with the following
InitFlag parameter settings: M_GC_DEVICE_IP_ADDRESS or
M_GC_DEVICE_USER_NAME. For example, the following 2 calls to
MdigAlloc will allocate a camera whose IP address is 169.254.23.237
and whose user-defined name is MyCameraName, respectively.
-
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, ...);
- Created M_DEV_NUMBER InitFlag to properly
support customary allocation using device numbers.
- Additions to MdigControl/MdigInquire():
-
- Support for M_GC_STREAMING_STOP.
-
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.
- Support for
M_GC_STREAMING_STOP_CHECK_PERIOD.
-
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.
- Support for M_GC_STREAMING_STOP_DELAY.
-
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.
- Support for
M_GC_ACQUISITION_MODE.
-
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.
- Support for M_GC_FRAME_TIMESTAMP.
-
MdigInquire. Inquire returns a MIL_DOUBLE. Inquires the timestamp,
in seconds, of the last frame grabbed.
- Support for M_GC_COUNTER_TICK_FREQUENCY.
-
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.
- Support for M_GC_HEARTBEAT_STATE (if
supported by the camera).
-
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.
- Support for M_GC_NIC_IP_ADDRESS.
-
MdigInquire. Inquire returns a MIL_INT64. Returns the host NIC's IP
address used with the camera.
- Support for M_GC_NIC_MAC_ADDRESS.
-
MdigInquire. Inquire returns a MIL_INT64. Returns the host NIC's
MAC address used with the camera.
- Support for M_GC_FIREWALL_PRESENT.
-
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.
- Support for M_GC_PACKET_TIMEOUT.
-
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.
- Support for M_GC_FRAME_TIMEOUT.
-
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.
- Support for M_GC_PACKET_MAX_RETRIES.
-
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.
- Support for M_GC_FRAME_MAX_RETRIES.
-
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.
- Support for M_GC_TOTAL_PACKETS_MISSED.
-
MdigInquire. Inquire returns a MIL_INT. This is the total number of
packets that are missing. Does not include recovered packets.
- Support for M_GC_TOTAL_PACKETS_RECEIVED.
-
MdigInquire. Inquire returns a MIL_INT. This is the total number of
packets received.
- Support for
M_GC_TOTAL_PACKETS_RESENDS_NUM.
-
MdigInquire. Inquire returns a MIL_INT. This is the total number of
emitted PACKETRESEND commands. One resend command can contain
multiple consecutive packets.
- Support for
M_GC_TOTAL_PACKETS_RECOVERED.
-
MdigInquire. Inquire returns a MIL_INT. This is the total number of
packets recovered.
- Support for M_GC_TOTAL_FRAMES_GRABBED.
-
MdigInquire. Inquire returns a MIL_INT. This is the total number of
frames grabbed.
- Support for M_GC_TOTAL_FRAMES_CORRUPTED.
-
MdigInquire. Inquire returns a MIL_INT. Returns the number of
corrupted frames.
- Support for
M_GC_TOTAL_PACKETS_RECEIVED_OUT_OF_ORDER.
-
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.
- Support for M_GC_STATISTICS_RESET.
-
MdigControl. Control value must be M_DEFAULT. This resets the
statistics.
- Support for
M_GC_MAX_NBR_PACKETS_OUT_OF_ORDER.
-
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.
- Support for M_PROCESS_PENDING_GRAB_NUM.
-
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.
- Support for M_USER_BIT_FORMAT+Number
-
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.
- Support for M_USER_BIT_MODE+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.
- Support for M_AUX_SIGNAL_SOURCE+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.
- Support for M_USER_BIT_VALUE+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.
- Support for M_GC_FEATURE_BROWSER
-
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.
- Additions to MdigHookFunction
-
-
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.
- Support for
M_GC_EVENT+M_ACQUISITION_TRIGGER.
-
Hooks a MIL function callback to the GenICam "AcquisitionTrigger"
camera event.
- Support for
M_GC_EVENT+M_ACQUISITION_START.
-
Hooks a MIL function callback to the GenICam "AcquisitionStart"
camera event.
- Support for
M_GC_EVENT+M_ACQUISITION_END.
-
Hooks a MIL function callback to the GenICam "AcquisitionEnd"
camera event.
- Support for
M_GC_EVENT+M_ACQUISITION_TRANSFER_START.
-
Hooks a MIL function callback to the GenICam
"AcquisitionTransferStart" camera event.
- Support for
M_GC_EVENT+M_ACQUISITION_TRANSFER_END.
-
Hooks a MIL function callback to the GenICam
"AcquisitionTransferEnd" camera event.
- Support for
M_GC_EVENT+M_ACQUISITION_ERROR.
-
Hooks a MIL function callback to the GenICam "AcquisitionError"
camera event.
- Support for M_GC_EVENT+M_FRAME_TRIGGER.
-
Hooks a MIL function callback to the GenICam "FrameTrigger"
camera event.
- Support for M_GC_EVENT+M_FRAME_START.
-
Hooks a MIL function callback to the GenICam "FrameStart" camera
event.
- Support for M_GC_EVENT+M_FRAME_END.
-
Hooks a MIL function callback to the GenICam "FrameEnd" camera
event.
- Support for
M_GC_EVENT+M_FRAME_TRANSFER_START.
-
Hooks a MIL function callback to the GenICam "FrameTransferStart"
camera event.
- Support for
M_GC_EVENT+M_FRAME_TRANSFER_END.
-
Hooks a MIL function callback to the GenICam "FrameTransferEnd"
camera event.
- Support for M_GC_EVENT+M_EXPOSURE_START.
-
Hooks a MIL function callback to the GenICam "ExposureStart" camera
event.
- Support for M_GC_EVENT+M_EXPOSURE_END.
-
Hooks a MIL function callback to the GenICam "ExposureEnd" camera
event.
- Support for
M_GC_EVENT+M_COUNTER_START+Number.
-
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.
- Support for
M_GC_EVENT+M_COUNTER_END+Number.
-
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.
- Support for
M_GC_EVENT+M_TIMER_START+Number.
-
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.
- Support for
M_GC_EVENT+M_TIMER_END+Number.
-
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.
- Support for
M_GC_EVENT+M_LINE_RISING_EDGE+Number.
-
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.
- Support for
M_GC_EVENT+M_LINE_FALLING_EDGE+Number.
-
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.
- Support for
M_GC_EVENT+M_LINE_ANY_EDGE+Number.
-
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.
- Additions to MdigGetHookInfo
-
- Support for M_GC_PACKETS_MISSED.
-
Returns a MIL_INT. Returns the number of missing packets in the
corrupted frame. If 0, the frame is not corrupted.
- Support for M_GC_PACKETS_RECEIVED.
-
Returns a MIL_INT. This is the number of packets in the frame.
- Support for M_GC_PACKETS_RESENDS_NUM.
-
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.
- Support for M_GC_PACKETS_RECOVERED.
-
Returns a MIL_INT. This is the number of packets recovered in the
frame.
- Support for M_GC_FRAME_ERROR_CODE.
-
Returns a MIL_INT. This is the error code returned by the camera
for a frame.
- Support for M_GC_FRAME_LINE_COUNT.
-
Returns a MIL_INT. This is the number of lines in the frame.
- Support for M_GC_FRAME_BLOCK_ID.
-
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.
- Support for M_GC_FRAME_TIMESTAMP.
-
Returns a MIL_DOUBLE in seconds. This is the frame timestamp from
the camera.
- Support for M_COUNTER_INDEX.
-
Returns a MIL_INT. This is the index of the counter that generated
the event.
- Support for M_TIMER_INDEX.
-
Returns a MIL_INT. This is the index of the timer that generated
the event.
- Support for M_LINE_INDEX.
-
Returns a MIL_INT. This is the index of the line that generated the
event.
- Support for M_GC_EVENT_TYPE.
-
Returns a MIL_INT. This is the raw GigE Vision event sent by the
camera.
- Additions to MdigInquireFeature():
-
- Support for M_INCREMENT (InquireFlag) when
using M_TYPE_MIL_INT64 (FeatureDataType). Returns a MIL_INT64,
representing the feature's increment value.
- Support for M_INCREMENT (InquireFlag) when
using M_TYPE_MIL_INT32 (FeatureDataType). Returns a MIL_INT32,
representing the feature's increment value.
- Support for M_INCREMENT (InquireFlag) when
using M_TYPE_DOUBLE (FeatureDataType). Returns a MIL_DOUBLE,
representing the feature's increment value.
- Matrox GigE Vision Feature Browser.
-
- Features below a selector feature are now
grouped as such in the tree control.
- Features that are read-only or become
read-only at run-time are now painted in a lighter color.
- Feature changes that affect other features
now trigger a refresh of the dependent features.
- Fixed MFC control paint issues.
- Standalone feature browser can now be
re-sized.
- Fixed integer value representation issues in
UI.
- Support for the slider control on Float
features.
- Camera model and name are now clearly
identified.
- Fixed issues when large fonts are used.
- Matrox GigE Vision and Configuration
Assistant.
-
- Supports discovery of GigE Vision
devices.
- Supports camera packet size change.
- Supports camera inter-packet delay
change.
- Supports camera user-defined name
change.
- Supports camera IP configuration change.
- Detection of firewalls.
- Camera GigE Vision Capability window.
-
Lists GigE Vision features supported by the camera.
- Camera Statistics window. This lists:
-
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.
- New System Configuration tab to control
various GigE Vision driver parameters:
-
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.
- Matrox GigE Vision service
(mtxgigeservice.exe)
-
- Accelerated camera discovery and
configuration.
- Mtxgigeservice is now in automatic start
mode.
- Removed device persistence from service.
Cameras that are removed from the system will get their device
numbers recycled upon the next discovery cycle.
- GenICam exceptions now wrapped through MIL
errors.
- Now validating packet size passed to
MdigControl(..., M_GC_PACKET_SIZE, ...) through GenICam if the
camera supports the SFNC's standard name for PacketSize
(GevSCPSPacketSize). This avoids programming an invalid packet size
in the camera.
- Improved camera discovery performance.
- Support for RGB48 packed and planar buffer
formats for grab (for use with 16 bit Bayer pixel formats).
- Maximum packet size negotiated by the driver
is now 6KB by default. This improves acquisition reliability when
multiple cameras are connected to the same NIC. Smaller packet
sizes reduce the occurrence of packet collisions that occur in
thernet switches thus reducing the frequency of corrupted frames.
This parameter can be changed from the GigE Assistant's System
configuration tab. See theMatrox GigE Vision and Configuration
Assistant section of this document.
- MIL User bits and hardware ports now follow
the camera's numbering scheme. If the camera implements "Line"
numbers in a zero based scheme, then M_USET_BIT+0 and
M_HARDWARE_PORT_0 can be used to address the first Line of the
camera (Line0). If the camera implements "Line" numbers in a one
based scheme, then M_USET_BIT+0 and M_HARDWARE_PORT_0 cannot be
used: M_USET_BIT+1 and M_HARDWARE_PORT_1 must be used instead to
address the first Line of the camera (Line1).
- Fixed issue with mtxgigeservice where the
service did not stop properly.
- Fixed issue with mtxgigeservice where it
caused latencies in MIL hooks.
- Fixed digitizer device ordering issues when
mtxgigeservice was used. Some cameras could become unusable.
- Fixed issue with User-defined Name in Matrox
GigE Vision Assistant. User-defined names could not be written on
some camera models.
- Fixed exception in Matrox GigE Vision
Assistant when certain types of network devices are present on the
system.
- Fixed issue when starting Matrox GigE Vision
Assistant and mtxgigeservice was not started.
- Fixed memory and handle leak in mtxgige
driver under special conditions.
- Fixed Windows stop error when the grab
buffer's physical address is located above 2GB on 32 bit
systems.
- Fixed issue with certain camera models where
the first frame output by the device after the stream was started
was being lost.
- Fixed issue with automatic Bayer conversion
that was not working in the mtxgige driver.
- Fixed Windows stop error that occurred on
fast systems (Core i7) grabbing simultaneously from multiple high
frame rate cameras.
- Fixed issue with MdigGrab in M_ASYNCHRONOUS
mode when digitizer format compensation was used. The wrong image
could be transferred to the user's buffer.
- Fixed issue related to host UDP port numbers
used during device discovery and digitizer allocation. There were
instances where, on some systems, the port numbers selected were
already allocated by third party applications. This resulted in
failed camera discovery and/or failed digitizer allocations.
- Fixed issue related to driver issuing a GigE
Vision WRITEMEM_CMD to the camera. The length parameter was
sometimes not properly, set resulting in the command being ignored
by the device.
- Fixed issue related to Mono10Packed and
Mono12Packed pixel formats. There were instances where the image
was not completely unpacked.
- Fixed issue related to triggered grabs with
cameras that do not support the FrameStart TriggerSelector.
- Fixed Windows stop error that occurred at
MsysAlloc when certain third party drivers were installed on the
system.
- Fixed GPF in milgigevision.dll that occurred
with certain xml files.
- Fixed issue related to the IP address
generated for a camera. Under certain circumstances, the address
generated was invalid.
- The following GigE Vision 2.0 features are
not supported:
-
- All-in transmission mode.
- Raw data payload type.
- File payload type.
- JPEG payload type.
- JPEG 2000 payload type.
- H.264 payload type.
- Multi-zone image payload
type.
- Device specific payload type.
- Zeroconf device discovery.
- Multiple links configuration.
- The following GigE Vision 1.2 features are
not supported:
-
- Pending ack.
- Primary application switchover.
- Note that, some GigE Vision-compatible
cameras include libraries that, when installed, override your
network interface card's native driver. While these third-party
libraries have their own benefits, we cannot guarantee their
compatibility with MIL. For best results, the computer being used
to communicate with your GigE Vision-compatible camera should
always use your network interface card's native driver (for
example, an Intel driver for an Intel network interface card).
This section lists all the
supported operating systems.
- 32-bit Windows® XP
- 32-bit Windows® 7
- 64-bit Windows® 7
- 32-bit Windows® 8
- 64-bit Windows® 8
- In the help file, the location information
written at the top of examples might not be up-to-date. Use MIL
Example Launcher to find an example on disk.