Matrox Imaging Library (MIL) 10 Update 82

Matrox Concord PoE release notes

March 2019

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

 

This document outlines what is new with the MIL 10 driver for Matrox Concord PoE and explains the current limitations and particularities.

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.         MIL 10 Driver for Matrox Concord PoE

1.1    What’s new in MIL 10 Update 82 for Concord PoE

1.1.1      Summary of features

1.1.2      API enhancements

1.1.3      I/O Signals

1.1.4      Timers

1.1.5      Rotary decoders

1.1.6      I/O command list

1.1.7      Known limitations and particularities

1.2    What’s new in MIL 10 Update 54 for Concord PoE

1.2.1      Summary of features

1.2.2      API enhancements

1.2.3      Known limitations and particularities

2.         Ethernet controller drivers

3.         Supported operating systems

1.    MIL 10 Driver for Matrox Concord PoE

1.1        What’s new in MIL 10 Update 82 for Concord PoE

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

1.1.1       Summary of features

·         Added support for the Matrox Concord PoE with the trigger over Ethernet (ToE) option.

o        Support for trigger over Ethernet

o        Support of I/O signals

o        Support for timers

o        Support for rotary decoders

o        Support for I/O command list

·         Board-specific examples

o        New TriggerOverEthernet examples, located in examples\board-specific\triggeroverethernet\c++. This examples demonstrates the use of the Matrox Concord PoE trigger over Ethernet capability.

1.1.2       API enhancements

1.1.2.1     Additions to MsysAlloc():

SystemDescriptor

Specifies the type of system to allocate. This parameter can be set to one of the following:

 

M_SYSTEM_CONCORD_POE

Allocates a MIL Concord PoE system.

SystemNum

Specifies the number (or rank) of the target board of the specified system type. This parameter can be set to one of the following:

 

M_DEFAULT

Specifies the default board.

M_DEVn

Specifies the nth board of the specified system type. You can set n to one of the following values 0 <= n <= 15.

M_PTR_TO_MIL_INT(MIL_TEXT("BoardIdentifierString"))

[ optionally, in C++ MIL_TEXT("BoardIdentifierString") ]

Specifies the name of the board of the specified system type.

Note: When allocating the board with a name the InitFlag is must be set to M_DEVICE_NAME. The name must have been previously written using MsysControl and M_DEVICE_NAME.

InitFlag

Specifies the type of initialization to perform on the selected system. This parameter can be set to one of the following.

 

M_DEFAULT

Specifies the default value.

M_DEVICE_NAME

Specifies to allocate the system with a name.

 

 

1.1.2.2     Additions to MsysControl() / MsysInquire():

M_BOARD_TYPE

Inquires the type of system board.

To return only the main board type and not the sub-board types (for example, to get M_CONCORD_POE without M_DCH, M_QCH, M_TOE), mask the return value with M_BOARD_TYPE_MASK.

 

M_CONCORD_POE + M_DCH

Specifies the Matrox Concord PoE dual channel board.

M_CONCORD_POE + M_QCH

Specifies the Matrox Concord PoE quad channel board.

M_CONCORD_POE + M_DCH + M_TOE

Specifies the Matrox Concord PoE dual channel board with trigger over Ethernet.

M_CONCORD_POE + M_QCH + M_TOE

Specifies the Matrox Concord PoE quad channel board with trigger over Ethernet.

 

For specifying a trigger over Ethernet (ToE) context

M_GC_ACTION_DEVICE_KEY +

Sets the action device key for the specified ToE context. The action device key identifies the cameras on which the action should be performed. For the camera to accept and perform the action, the device key on your camera and the device key of the action command must match. If they do not match, the camera ignores the action command. To configure the device key on your camera, use MdigControlFeature() with the appropriate GenICam SFNC feature (for example, ActionDeviceKey).

 

Value

Specifies the action device key.

M_GC_ACTION_GROUP_KEY +

Sets the action group key for the specified ToE context. The action group key identifies the action you want to perform on the camera. For the camera to know which action to perform, the group key of the action command must match the group key on your camera. If they do not match, the camera ignores the action command. To configure the group key of the action command on your camera, use MdigControlFeature() with the appropriate GenICam SFNC feature (for example, ActionGroupKey).

 

Value

Specifies the action group key.

M_GC_ACTION_GROUP_MASK +

Sets the action group mask for the specified ToE context. In the case where you need one (or more) cameras to temporarily ignore an action command, you can mask out the action command for the camera by changing the action group mask. For the camera to know which action to perform, the action group mask and the action command of the camera, when combined in a bitwise AND operation, must result in a non-zero value. If the result is a zero, the camera ignores the action command.

 

Value

Specifies the action group mask.

M_ADD_DESTINATION +

Adds a GigE Vision device to the specified ToE context by specifying the device's corresponding MIL digitizer.

 

MIL digitizer identifier

Specifies the digitizer identifier allocated for the GigE Vision device to add. Note that the digitizer should be allocated using MdigAlloc() on the M_SYSTEM_GIGE_VISION system.

M_REMOVE_DESTINATION +

Removes a GigE Vision device from the specified ToE context by specifying the device's corresponding MIL digitizer.

 

MIL digitizer identifier

Specifies the digitizer identifier allocated for the GigE Vision device to add. Note that the digitizer should be allocated using MdigAlloc() on the M_SYSTEM_GIGE_VISION system.

M_CLEAR_DESTINATIONS +

Removes all devices associated to the specified ToE context.

 

M_DEFAULT

Specifies the default behaviour.

M_TRIGGER_COMMAND +

Issues a software trigger that will prompt the transmission of the specified ToE context.

 

M_ACTIVATE

Specifies the default behavior.

M_GC_TRIGGER_SELECTOR +

Specifies the name of the active TriggerSelector used for the specified ToE context.

 

Name

Specifies the name of the GigE Vision device’s TriggerSelector used for software trigger.

M_GC_TRIGGER_SELECTOR_SIZE +

Inquires the size of the TriggerSelector’s name used for the specified ToE context.

 

Value

Specifies the number of characters in the name of the TriggerSelector value.

M_TRIGGER_SOURCE +

Sets the signal source of the specified ToE context.

 

M_AUX_IOn

Specifies to use auxiliary input signal n as the trigger source, where n is the number of the auxiliary signal. In this case n can be a value from 2 to 7.

 

M_TIMERn

Specifies to use the output signal of the specified timer as the trigger source, where n can be a value from 1 to 16.

 

M_ROTARY_ENCODERn

Specifies to use rotary decoder n as the trigger source, where n is a number between 1 and 2.

 

M_IO_COMMAND_LISTn +

Specifies to use the I/O command list n, where n is the number of the I/O command list from 1 to 2.

 

M_SOFTWAREn

Specifies to use a software trigger as the trigger source where n is a number between 1 and 4.

M_TRIGGER_STATE +

Sets the state of the specified ToE context.

 

M_ENABLE

Specifies the ToE context is enabled.

 

M_DISABLE

Specifies the ToE context is disabled.

 

ToE context combination values

M_GC_ACTIONn

Specifies the ToE context to be an action command n, where n is a value from 0 to 31. Cannot be used with the following control types:

M_GC_TRIGGER_SELECTOR, M_GC_TRIGGER_SELECTOR_NAME

M_GC_TRIGGER_SOFTWAREn

Specifies the ToE context to be a software trigger command n, where n is a value from 0 to 31. Cannot be used with the following control types:

M_GC_ACTION_DEVICE_KEY, M_GC_ACTION_GROUP_KEY, M_GC_ACTION_GROUP_MASK

 

I/O command list combination values

M_IO_COMMAND_BITn

Specifies I/O command register bit n, where n represents the bit number from 0 to 7.

 

1.1.2.3     Additions to MsysHookFunction()

See the system module documentation for the Matrox Indio in MIL command reference for details regarding the supported API.

The Matrox Concord PoE without trigger over Ethernet does not support MsysHookFunction().

1.1.2.4     Additions to MsysGetHookInfo()

See the system module documentation for the Matrox Indio in MIL command reference for details regarding the supported API.

The Matrox Concord PoE without trigger over Ethernet does not support MsysGetHookInfo().

1.1.3       I/O Signals

The Matrox Concord PoE with trigger over Ethernet features 6 input pins and 2 output pins. See the system module (Msys…) documentation for the Matrox Indio in MIL command reference for details regarding the supported API.

The Matrox Concord PoE without trigger over Ethernet does not feature any IO signals.

1.1.4       Timers

The Matrox Concord PoE with trigger over Ethernet features 16 timers. See the system module (Msys…) documentation for the Matrox Indio in MIL command reference for details regarding the supported API.

The Matrox Concord PoE without trigger over Ethernet does not feature any timers.

1.1.5       Rotary decoders

The Matrox Concord PoE with trigger over Ethernet features 2 rotary decoders. See the system module (Msys…) documentation for the Matrox Indio in MIL command reference for details regarding the supported API.

The Matrox Concord PoE without trigger over Ethernet does not feature any rotary decoders.

1.1.6       I/O command list

The Matrox Concord PoE with trigger over Ethernet features 2 I/O command lists. See the system IO (MsysIo…) module documentation for the Matrox Indio in MIL command reference for details regarding the supported API.

The Matrox Concord PoE without trigger over Ethernet does not feature any I/O command list.

1.1.7       Known limitations and particularities

The trigger over Ethernet feature of the Matrox Concord PoE allows for ToE packets in one of two forms:

  1. Action commands;
  2. Software trigger commands.

GigE Vision devices, such as a GigE Vision camera, usually have dedicated hardware to offload reception and handling of the action command. This offload allows for trigger over Ethernet with very little latency and jitter when using the action command. This might not be the case when using software trigger commands which can result in greater latency and increased jitter.

1.2        What’s new in MIL 10 Update 54 for Concord PoE

Note: refer to the milGigEVision readme file when used with GigE Vision devices.

1.2.1       Summary of features

·         Added support for the Matrox Concord PoE board. See M_SYSTEM_CONCORD_POE below.

·         Added support for control of the Power over Ethernet feature. See M_POWER_OVER_CABLE below.

·         Added support for setting a persistent device name to the Matrox Concord PoE board. See M_DEVICE_NAME in MsysControl() / MsysInquire() sections below.

1.2.2       API enhancements

1.2.2.1     Additions to MsysAlloc():

SystemDescriptor

Specifies the type of system to allocate. This parameter can be set to one of the following:

 

M_SYSTEM_CONCORD_POE

Allocates a MIL Concord PoE system.

 

 

1.2.2.2     Additions to MsysControl() / MsysInquire():

M_BOARD_TYPE

Inquires the type of system board.

To return only the main board type and not the sub-board types (for example, to get M_CONCORD_POE without M_DCH, M_QCH), mask the return value with M_BOARD_TYPE_MASK.

 

M_CONCORD_POE + M_DCH

Specifies the Matrox Concord PoE dual channel board.

M_CONCORD_POE + M_QCH

Specifies the Matrox Concord PoE quad channel board.

M_SYSTEM_TYPE

Inquires the type of system allocated.

 

M_SYSTEM_CONCORD_POE_TYPE

Specifies a MIL Concord PoE system.

M_SERIAL_NUMBER

Inquires the serial number of the Matrox Imaging board, as a string.

 

Data type: array of type MIL_TEXT_CHAR

[ optionally, in C++ MIL_STRING]

 

M_SERIAL_NUMBER_SIZE

Inquires the length of the string returned by M_SERIAL_NUMBER.

 

Data type: address of a MIL_INT

 

M_DEVICE_NAME

Inquires the device name. This can be inquired or set.

 

M_PTR_TO_DOUBLE(MIL_TEXT(“DeviceName”))

[ optionally, in C++ MIL_TEXT(“DeviceName) ]

Specifies the name of the board. Note that this must be a unique name with a string that can be up to M_DEVICE_NAME_MAX_SIZE characters.

M_DEVICE_NAME_SIZE

Inquires the length of the string returned by M_DEVICE_NAME.

 

Data type: address of a MIL_INT

 

M_DEVICE_NAME_MAX_SIZE

Inquires the maximum length of the string that can be set with M_DEVICE_NAME.

 

Data type: address of a MIL_INT

 

M_POWER_OVER_CABLE

Sets whether to enable PoE (power over Ethernet). This can be inquired or set.

 

M_DEFAULT

Same as M_ON.

M_OFF

Specifies to disable PoE on all ports.

M_ON

Specifies to enable PoE on all ports.

1.2.3       Known limitations and particularities

 

2.    Ethernet controller drivers

Intel® I210 Ethernet controller drivers can be downloaded from Intel’s website if not automatically installed by the operating system.

Adjust the following network adapter settings for more reliable acquisition performance:

·         Receive buffers. Gigabit Ethernet network adapters use receive buffers, also known as receive descriptors, to store received packets. If the number of packets sent by your camera exceeds the number of available receive buffers, the additional packets will be dropped. The number of receive buffers assigned to your network adapter therefore impacts the reliability of your camera's image transmission. Typical bandwidth usage of GigE Vision cameras requires that a large number of receive buffers be assigned to your network adapter. Matrox recommends adjusting this setting to its maximum value (typically 2048 for Intel Gigabit Ethernet network adapters).

·         Packet size. Traffic across the network travels in packets. The maximum packet size is preset (typically at 1.5 Kbytes). When packets larger than 1.5 Kbytes make up the majority of the network traffic, as is the case with typical GigE Vision image streams, increasing the packet size can reduce CPU utilization and improve efficiency. In these cases, enabling jumbo packets (typically 9014 bytes) is recommended. Note that, if you want to use jumbo packets and you use an Ethernet switch in your network, you should also enable jumbo packets on your switch, since jumbo packet support is typically disabled by default.

·         Interrupt moderation. Interrupt moderation controls the rate at which interrupts are received and processed. Typically, setting the interrupt moderation to a low value is best when dealing with light traffic, while constant heavy traffic requires a higher interrupt moderation value. Controlling the rate at which interrupts are received and processed introduces latency in the communication between your camera and your network adapter, but can improve CPU utilization. You must determine the best tradeoff between these for your application's specific needs.

See “Configuring your GigE Vision camera and Gigabit Ethernet network adapter” section in the MIL help for more details.

Adapter teaming (for link aggregation) requires the Intel® Advanced Network Services (ANS) driver. This driver can also be downloaded from Intel’s website.

Note that MIL 10 Update 54 was tested, for the Matrox Concord PoE, using the Intel® Network Adapter driver release 23.2.

3.    Supported operating systems

This section lists all the operating systems that the Matrox Concord PoE MIL 10 driver supports.

·         32-bit and 64-bit Windows® 7.

·         32-bit and 64-bit Windows® 10.