-------------------------------------------------------------------------------
                       Matrox Imaging Library (MIL) 10.0
                           Release Notes (milirisgt)
                                 December, 2013
            (c) Copyright Matrox Electronic Systems Ltd., 1992-2013.
-------------------------------------------------------------------------------

This document explains the current limitations and particularities when using
MIL with Matrox Iris GT.

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

Contents

1. MIL 10 implementation changes

2. Known limitations

===============================================================================

1. MIL 10 implementation changes


    MdigControl/MdigInquire                                 

        Old control/inquire type                New control/inquire type

        ----------------------------------------------------+------------------
        M_GRAB_EXPOSURE_TIME                    M_EXPOSURE_TIME
        M_GRAB_EXPOSURE_TIME + M_TIMER1
        ----------------------------------------------------+------------------
        M_GRAB_EXPOSURE_TIME_DELAY              M_EXPOSURE_DELAY
        M_GRAB_EXPOSURE_TIME_DELAY + M_TIMER1
        ----------------------------------------------------+------------------
        M_GRAB_EXPOSURE + M_TIMER2              M_TIMER_STATE + M_TIMER2                            

                                                Possible value
                                                     M_DEFAULT or M_DISABLE
                                                     M_ENABLE
        ----------------------------------------------------+------------------
        M_GRAB_EXPOSURE_TIME + M_TIMER2         M_TIMER_DURATION + M_TIMER2 

                                                Possible value
                                                     Value or M_INFINITE 
        ----------------------------------------------------+------------------
        M_GRAB_EXPOSURE_TIME_DELAY + M_TIMER2   M_TIMER_DELAY + M_TIMER2
        ----------------------------------------------------+------------------
        M_GRAB_EXPOSURE_SOURCE                  M_TIMER_TRIGGER_SOURCE
           + M_TIMER2                              + M_TIMER2
                                                Possible value
                                                     M_DEFAULT or 
                                                        M_EXPOSURE_START
                                                     M_GRAB_TRIGGER

          Value M_TIMER1 changed into M_DEFAULT or M_EXPOSURE_START
        ----------------------------------------------------+------------------
        M_GRAB_EXPOSURE_MODE                    M_EXPOSURE_OUTPUT_INVERTER
        M_GRAB_EXPOSURE_MODE + M_TIMER1                                                                            
                                                Possible value
                                                     M_DEFAULT or M_DISABLE
                                                     M_ENABLE

          Value M_LEVEL_HIGH changed into M_DISABLE
          Value M_LEVEL_LOW changed into M_ENABLE
        ----------------------------------------------------+------------------
        M_GRAB_EXPOSURE_MODE                    M_TIMER_OUTPUT_INVERTER
           + M_TIMER2                              + M_TIMER2
                                                Possible value
                                                     M_DEFAULT or M_DISABLE
                                                     M_ENABLE

          Value M_LEVEL_HIGH changed into M_DISABLE
          Value M_LEVEL_LOW changed into M_ENABLE
        ----------------------------------------------------+------------------
        M_GRAB_EXPOSURE_TRIGGER_MISSED          M_GRAB_TRIGGER_MISSED

                                                Possible value
                                                     M_DEFAULT or M_DISABLE
                                                     M_ENABLE
        ----------------------------------------------------+------------------
        M_GRAB_TRIGGER                          M_GRAB_TRIGGER_STATE                                                                                         

                                                Possible value
                                                     M_DEFAULT or M_DISABLE
                                                     M_ENABLE
        ----------------------------------------------------+------------------
        M_GRAB_TRIGGER_MODE                     M_GRAB_TRIGGER_ACTIVATION

                                                Possible value
                                                     M_DEFAULT or M_EDGE_RISING
                                                     M_EDGE_FALLING
        ----------------------------------------------------+------------------
        M_GRAB_TRIGGER_SOURCE                   M_GRAB_TRIGGER_SOURCE

                                                Possible value
                                                     M_SOFTWARE
                                                     M_AUX_IO8

          Value M_HARDWARE_PORT0 changed into M_AUX_IO8
        ----------------------------------------------------+------------------


    MdigInquire                                 

        Old inquire type                        New inquire type

        ----------------------------------------------------+------------------
        M_GRAB_EXPOSURE_TIME_MIN                M_EXPOSURE_TIME + M_MIN_VALUE
        ----------------------------------------------------+------------------
        M_GRAB_EXPOSURE_TIME_MAN                M_EXPOSURE_TIME + M_MAX_VALUE
        ----------------------------------------------------+------------------
        M_GRAB_EXPOSURE_TIME_MIN                M_TIMER_DURATION
           + M_TIMER2                              + M_TIMER2 + M_MIN_VALUE
        ----------------------------------------------------+------------------
        M_GRAB_EXPOSURE_TIME_MAX                M_TIMER_DURATION
           + M_TIMER2                              + M_TIMER2 + M_MAX_VALUE
        ----------------------------------------------------+------------------


    MsysControl/MsysInquire                                 

        Old control/inquire type                New control/inquire type

        ----------------------------------------------------+------------------
        Control of an output                    Control of an output 
        M_USER_BIT_VALUE                        M_USER_BIT_STATE
           + [4...7]                               + M_USER_BIT[4...7]
           
        M_USER_BIT_VALUE +                      M_USER_BIT_STATE_ALL
           M_BIT_MASK(bit encoded value)

        Inquire of an output                    Inquire of an output
        M_USER_BIT_VALUE                        M_USER_BIT_STATE
           + [4...7]                               + M_USER_BIT[4...7]
                                                M_IO_STATUS + M_AUX_IO[4...7]
       
       M_USER_BIT_VALUE                         M_USER_BIT_STATE_ALL
          + M_BIT_MASK(bit encoded value)        Returns MIL_INT64

                                                Possible value
                                                     M_OFF
                                                     M_ON
                                                     M_UNKNOWN
        ----------------------------------------------------+------------------
        M_USER_BIT_INTERRUPT_MODE               M_IO_INTERRUPT_ACTIVATION
           + [0...3]                               + M_AUX_IO[0...3]
                                                Possible value
                                                     M_DEFAULT or M_EDGE_RISING
                                                     M_EDGE_FALLING
        ----------------------------------------------------+------------------
        M_USER_BIT_INTERRUPT_STATE              M_IO_INTERRUPT_STATE
           + [0...3]                               + M_AUX_IO[0...3]
                                                Possible value
                                                     M_DEFAULT or M_DISABLE
                                                     M_ENABLE
        ----------------------------------------------------+------------------
        M_AUX_SIGNAL_SOURCE + [4...7]           M_IO_SOURCE + M_AUX_IO[4...7]

                                                Possible value
                                                     M_USER_BIT[4...7]
                                                     M_DEFAULT
                                                     M_EXPOSURE
                                                     M_GRAB_TRIGGER
                                                     M_TIMER2

          Value M_USER_BIT changed to M_USER_BIT[4...7]
          Value M_GRAB_EXPOSURE changed to M_EXPOSURE
          Value M_GRAB_EXPOSURE + M_TIMER1 changed to M_EXPOSURE
          Value M_GRAB_EXPOSURE + M_TIMER2 changed to M_TIMER2
        ----------------------------------------------------+------------------
        M_AUX_SIGNAL_DEBOUNCE_TIME              M_IO_DEBOUNCE_TIME 
           + [0-1-2-3-8]                           + M_AUX_IO[0-1-2-3-8]
                                                Possible value
                                                     250
                                                     1000
                                                     5000
                                                     10000
                                                     1000000
                                                     10000000
                                                     25000000
        ----------------------------------------------------+------------------


    MsysInquire                                 

        Old inquire type                        New inquire type

        ----------------------------------------------------+------------------
        Inquire of an input                     Inquire of an input
        M_USER_BIT_VALUE                        M_IO_STATUS
           + [0...3]                               + M_AUX_IO[0...3]
        M_USER_BIT_VALUE                        M_IO_STATUS_ALL
           + M_BIT_MASK(bit encoded value)       Returns MIL_INT64
        ----------------------------------------------------+------------------
        M_USER_BIT_COUNT                        M_AUX_IO_COUNT
        M_USER_BIT_COUNT_IN                     M_AUX_IO_COUNT_IN
        M_USER_BIT_COUNT_OUT                    M_AUX_IO_COUNT_OUT
        ----------------------------------------------------+------------------


    Other changes

        ----------------------------------------------------+------------------

        MsysHookFunction(SysId, Type, M_USER_BIT_CHANGE, HPtr, DPtr)

        Replaced by 

        MsysHookFunction(SysId, Type, M_IO_CHANGE, HPtr, DPtr)

        ----------------------------------------------------+------------------

        MsysGetHookInfo(SysId, EvId, M_USER_BIT, UPtr)

        Replaced by

        MsysGetHookInfo(SysId, EvId, M_IO_INTERRUPT_SOURCE, UPtr)

         Value 0 return changed into M_AUX_IO0
         Value 1 return changed into M_AUX_IO1
         Value 2 return changed into M_AUX_IO2
         Value 3 return changed into M_AUX_IO3

        ----------------------------------------------------+------------------

        MsysGetHookInfo(SysId, EvId, M_USER_BIT_STATE, UPtr)

        Replaced by

        MsysGetHookInfo(SysId, EvId, M_IO_STATUS, UPtr)

        ----------------------------------------------------+------------------

        MsysGetHookInfo(SysId, EvId, M_GRAB_EXPOSURE_TRIGGER_MISSED, UPtr)

        Replaced by

        MsysGetHookInfo(SysId, EvId, M_GRAB_TRIGGER_MISSED, UPtr)

        ----------------------------------------------------+------------------

        MdigControl(DigId, M_GRAB_TRIGGER, M_ACTIVATE)

        Replaced by

        MdigControl(DigId, M_GRAB_TRIGGER_SOFTWARE, M_ACTIVATE)

        ----------------------------------------------------+------------------

        MdigLut(DigId, LutId)

        Replaced by

        MdigControl(DigId, M_LUT_ID, LutId)

        ----------------------------------------------------+------------------

        MdigReference(DigId, M_BLACK_REF, Value)

        Replaced by

        MdigControl(DigId, M_BLACK_REF, Value)

        ----------------------------------------------------+------------------


    Addition 

        ----------------------------------------------------+------------------
        MdigInquire               M_EXPOSURE_DELAY + M_MIN_VALUE
        ----------------------------------------------------+------------------
        MdigInquire               M_EXPOSURE_DELAY + M_MAX_VALUE
        ----------------------------------------------------+------------------
        MdigInquire               M_TIMER_DELAY + M_TIMER2 + M_MIN_VALUE
        ----------------------------------------------------+------------------
        MdigInquire               M_TIMER_DELAY + M_TIMER2 + M_MAX_VALUE
        ----------------------------------------------------+------------------
        MsysControl/MsysInquire   M_IO_MODE + M_AUX_IO[n] 

                                       Possible value
                                            M_INPUT  for n=0,1,2,3,8
                                            M_OUTPUT for n=4,5,6,7,9
        ----------------------------------------------------+------------------
        MsysControl/MsysInquire   M_IO_FORMAT + M_AUX_IO[n]

                                       Possible value
                                            M_OPTO           for n=0,1,2,3,8
                                            M_OPEN_DRAIN     for n=4,5,6,7
                                            M_CURRENT_SOURCE for n=9

        ----------------------------------------------------+------------------
        MsysInquire               M_CC_IO_COUNT
        MsysInquire               M_TL_IO_COUNT
        MsysInquire               M_TL_TRIGGER_COUNT 
        ----------------------------------------------------+------------------



2. Known limitations

      - MdigControl with M_GRAB_INPUT_GAIN can allow the user to program a gain 
        value that is not optimal according to the type of camera. On the Iris 
        GT1200, any input gain value set below 64 does not allow for the 
        complete CCD pixel saturation to acquire a value of 255. On the Iris 
        GT1900, any input gain value set below 20 does not allow for the 
        complete CCD pixel saturation to acquire a value of 255. On the Iris 
        GT300, there is no such limitation. On the Iris GT5000, the low gain 
        limitation is present and must still be determined.

      - On the GT5000, using MdigControl with M_GRAB_INPUT_GAIN and a high 
        control value might lead to the amplification of a non-uniform video 
        frame acquisition issue. The non-uniformity can be observed on the 
        left and right sides of the image.

      - The GT5000 camera is a dual tap CCD sensor which is a combination of 
        two analog outputs. This means that the image is reconstructed from a 
        left side CCD sensor image and a right side CCD sensor image. The 
        images are captured with two analog to digital conversion paths. When 
        using the GT5000, MdigControl with M_GRAB_INPUT_GAIN will be programmed 
        with a software calibration algorithm that will ensure the two regions 
        of the CCD will return a uniform image without any stitch visible in 
        the center of the image. The calibration algorithm might not lead to 
        acceptable results when using a low or high M_GRAB_INPUT_GAIN control 
        value. To avoid this, the MIL IrisGT driver might take into account 
        these limits in a future release by clipping the setting of 
        M_GRAB_INPUT_GAIN at the mid-point of the range. The acceptable 
        mid-point of the range must still be determined.