Release Notes for MERLIC 2.1.0

Here you can find the release notes for MVTec MERLIC2.1.0, as released in June 2016. MERLIC2.1.0 is a minor release that provides new and improved functionality as well as bug fixes.

Major New Features

MERLIC Engine

In addition to generally improving performance, the MERLIC Engine now also handles externally acquired images: These can be used as input parameters and can be processed within the MERLIC Engine.

64-bit version

MERLIC is now also available in a native 64-bit version. This enables building high-resolution, 64-bit applications that require more memory, for example, when processing images with a high pixel resolution. Further, the MERLIC Engine can now be used in 64-bit projects as well.

Support of additional languages

MERLIC now supports two additional languages, Spanish and Italian. In total, the MERLIC GUI and documentation are now available in nine different languages.

Redesigned user management

The user management has received a complete overhaul to increase usability. Handling of user names (now also allowing spaces and special characters), user groups, and the overall user experience have been significantly improved.

Compatibility

Since the last product version we have been working hard to improve MERLIC in every way. This has, however, resulted in a few of incompatibilities. We apologize for the inconvenience.

  • MERLIC Engine
    • Applications that use the MERLIC Engine and ActiveX Control at the same time are no longer compatible to previous versions. To ensure that the application can still be executed and that the ActiveX Control can connect to the MERLIC Engine, you have to set the new attribute 'SupportFrontendControl' to 'true':
      MeEngineCpp::MeEngineSetAttribute("SupportFrontendControl", true);More information.
    • Existing MERLIC Engine applications that use the MeEngine interface cannot be executed with the new MERLIC version because the PATH environment variable is not modified anymore during the installation of MERLIC. To ensure that existing C++ or C# applications can still be executed, the PATH variable must be extended manually by the path to the binaries of the new MERLIC installation. In case of a C++ application, this can be done directly within the project settings. More information.
    • The MERLIC Engine interface is no longer compatible because the Swap method has been removed from all classes. Therefore, statements that use the Swap methods must be adjusted accordingly:
      Previous Code New C++ Code New C# Code
      x.Swap(y)
      
      std::swap(x, y);
      
      using (var t = x) { x = y; y = t; }
      

      More information.
    • Existing MERLIC Engine C++ applications that contain the constructor MeValueRef(const MeValueConstRef&) or the assignment operator MeValueRef::operator=(const MeValueConstRef&) must be refactored because the constructor and assignment operator have been removed from the interface. More information.

Backend

  • New Features
    • The MERLIC Backend now supports to create and remove connections using the context menu.
  • Enhancements
    • The editing options of tool parameters have been improved. If a parameter with a non-exclusive value list had the semantic type 'any' or a numerical semantic like 'area', only a text editor had been provided for entering a new value. Now, a combo box with the defined value list is opened when clicking on the corresponding connector. For numerical parameters with a defined value range, a slider will be opened instead of the combo box.
  • Improved Usability
    • The usability when dragging connections has been improved. Now, the Tool Workspace can be scrolled by moving the mouse cursor to the upper or lower part of the workspace.
    • The usability of the menu entry 'Open Examples...' has been improved. The dialog now directly opens the sub-folder 'mvapps' that contains the MERLIC Vision App examples instead of the general examples directory.
  • FixedProblems
    • If the MERLIC Backend window was resized, the size of the Tool Board was not adjusted properly and the Tool Workspace was not scrolled to the correct position in some cases. These problems have been fixed.
    • If a training tool was displayed in the run mode, the image thumbnails in the training area were always displayed in gray scale even if color images were used. This problem has been fixed.
    • If an undo operation was performed after deleting the tool 'Acquire Image From File', the tool failed to open the given file. The same problem occurred for the redo operation after inserting the tool. This problem has been fixed.
    • Errors that occurred while training a tool were not always correctly displayed in the Tool Flow. This problem has been fixed.
    • If the MERLIC.ini was configured to connect remote Frontends via pipes although the used license did not support pipe connections, the user was not informed why the Frontend could not be connected. This problem has been fixed. Now, an error message which describes the cause of the problem is written to the MERLIC log file.
    • When double-clicking on the value of a numeric tool parameter, sometimes the text editing dialog was closed instead of selecting the whole text. This problem has been fixed.
    • If more than one ROI was created within a tool, the most recently created ROI did not become the active ROI. This led to problems when deleting ROIs using the DEL key because the active ROI was deleted instead of the most recently created ROI. This problem has been fixed.
    • The MERLIC Backend and Frontend had some memory leaks. This problem has been fixed.
    • Some tooltips were not displayed correctly in Asian languages. This problem has been fixed.
    • If the parameter value of a tool was changed within a combo box during the execution of the MERLIC Vision App, new values were appended to the list of combo box values. This problem has been fixed.
    • If a tool or tool parameter was renamed in MERLIC, the new name was not used in the output console. This problem has been fixed.
    • If a training tool was removed and then re-inserted using the undo operation, the training data was not restored correctly. This problem has been fixed.
    • After clicking on a tool in the Tool Flow area it should be possible to navigate from tool to tool via the 'Cursor Up' and 'Cursor Down' keys. This did not work if a tool with an ROI was activated. This problem has been fixed. Now, it is possible to navigate from tool to tool via the 'Page Up' and 'Page Down' keys.
    • If a wrong entry was defined in the 'Edit Properties' dialog of an interface parameter, the dialog could still be closed. This problem has been fixed. Now, the 'Ok' button is disabled as long as there is a wrong entry in the input field.
    • If a parameter value contained a carriage return ('\n'), the layout within the corresponding connector was broken. The value was displayed over several lines instead of only one line. This problem has been fixed. Now, all carriage returns are replaced by spaces when displaying the parameter value in the connector.
    • If the undo or redo operation was performed after renaming the ID of an interface parameter, the name of the interface parameter was not restored correctly. It has been set to the default ID name instead of the previous name. This problem has been fixed.
    • When clicking into the lower part (last 50 pixels) of the image of a previous tool, this tool was not activated. This problem has been fixed.
    • If a MERLIC Vision App contained more than one 'Branch on Condition' tool, the names of these tools were not unique. This problem has been fixed.
    • If several undo steps were performed followed by a redo step that re-inserted a training tool into the application, the undo/redo stack was not cleared correctly. This problem has been fixed. As a consequence of that fix the behavior of re-inserting a training tool by a redo command has slightly changed. Now, two redo commands are needed for a complete re-insertion of the training tool. The first redo command inserts the tool without the training data set. The second redo command just inserts the training data set. This is analogous to the undo commands where the first undo command removes the training data set and the second one removes the tool.
    • Some tools could not be renamed because the image of the tool blocked the text field of the popup window for renaming the tool. This problem has been fixed.
    • When clicking on a tool parameter that accepts only strings with a defined value list and if this value list had been changed via the tool procedure 'Me_set_value_list', the corresponding combo box was not shown anymore. This problem has been fixed.
    • In the update dialog of the MERLIC Backend, the link to the release notes did not work. This problem has been fixed.
    • Double values were not correctly localized for German. They were displayed with a comma instead of a dot. If the language was set to German and a double value was selected from the combo box of a parameter that also accepts integer numbers or strings, the parameter value became invalid and could not be set to a valid value anymore. This problem has been fixed.
    • If a tool parameter has been modified and afterwards a subsequent tool with references to the modified parameter has been selected via the Tool Flow, the modification was not applied to the selected tool. This problem has been fixed.
    • It was not possible to connect a tool result to a tool parameter with an exclusive value list. This problem has been fixed. Now, also parameters with an exclusive value list can be connected to results of previous tools.
    • If the MERLIC.ini was missing and MERLIC was started, the left panel containing the Tool Flow and Tool Library were displayed with an inconvenient default size. This problem has been fixed. The panel is now set to a third of the window size.
    • If a panel within the MERLIC Backend was closed and then re-opened again by using the arrow icon of the panel, its size was too small. This problem has been fixed.
    • If several MERLIC tools with the same name were found via the tool paths that were set in the MERLIC preferences dialog, it was not deterministic which tool was actually loaded. This problem has been fixed. Now, the first tool is loaded and all other tools with the same name will be ignored. This ensures that MERLIC tools provided by MVTec cannot be hidden by custom tools. In case a tool is not loaded because it is hidden by another tool, a warning is printed to the Output Console.
    • Sometimes display errors occurred during the startup of MERLIC. This problem has been fixed.
    • Sometimes it took a long time to stop a MERLIC Vision App after a long execution time and an increasing amount of memory was consumed. This problem has been fixed.
    • If the image of the active tool in the MERLIC Backend was collapsed or MERLIC was resized to its minimum size, the visualization of the image was erroneous. This problem has been fixed.
    • If a protected MERLIC Vision App was started and modified exclusively in the Frontend, saving the application led to a corrupted password protection. It was not possible anymore to reopen the MERLIC Vision App in the Backend. This problem has been fixed.
    • The backup of a MERLIC Vision App in case of a crash did not save the data of the user management. This problem has been fixed. Now, the user management data will also be saved if it is present.
    • MERLIC chrashed if a custom tool which contained invalid program lines within the tool procedures _Finalize(), _Load(), or _Save() was removed from a MERLIC Vision App or if it was loaded or saved in MERLIC. This problem has been fixed.
    • Sometimes MERLIC did not create a backup copy of the MERLIC Vision App in case MERLIC crashed while saving the application. This problem has been fixed.
    • MERLIC crashed if a MERLIC Vision App with an invalid tool was loaded. This problem has been fixed.
    • If a warning message was displayed in the tools 'Evaluate Expression', 'Branch on Condition', or 'Stop Execution', the message did not disappear when the error has been corrected. This led to the problem that parameter names of previous warning messages are hidden by new warnings. This problem has been fixed.
    • MERLIC sometimes chrashed or generated display errors if it was used with the Windows Basic Theme. This problem has been fixed.
    • Sometimes parameters with a default range could not be edited with a slider in an existing MERLIC Vision App. This problem has been fixed.
    • When loading a MERLIC Vision App that contained the tool 'Branch on Condition' with one or more tools within the corresponding branches, adjusted parameter values were not propagated correctly to subsequent tools. This problem especially occurred in the MERLIC Backend and Frontend in the following cases:
      • If a parameter value was adjusted in a tool that was placed inside a branch of the tool 'Branch on Condition'.
      • If the condition of the 'Branch on Condition' tool was adjusted.
      • If a parameter value was adjusted in a tool inside the inactive branch of the tool 'Branch on Condition'.
      This problem has been fixed.
    • In the splash screen of the MERLIC Trial version the information was missing that only one instance of MERLIC can be used simultaneously and that it is not possible to use the MERLIC Engine with the MERLIC Trial version.
    • Loading MERLIC Vision Apps in MERLIC or via the MERLIC Engine caused a memory leak. This problem has been fixed.

Designer

  • Improved Usability
    • The 'Launch Frontend' button in the MERLIC Designer has been improved. It now provides a tooltip that explains why the Frontend cannot be started if the button is inactive.
  • Fixed Problems
    • The default texts of the widgets 'Check Box', 'Training', and 'Function Plot' were not translated in the MERLIC Designer. This problem has been fixed.
    • Switching between different views with different sizes and many widgets was very slow. This problem has been fixed.
    • If specific Designer widgets were used in the MERLIC Designer and Frontend, the widgets produced warnings in the log file. This problem has been fixed.
    • If many widgets have been selected within the MERLIC Designer, moving them around sometimes led to a very poor performance. The higher the number of the selected widgets, the poorer was the performance. This problem has been fixed.
    • The widget 'Text Box' could not be connected to a parameter of semantic type 'any'. This problem has been fixed.
    • Sometimes the drag&drop of a widget within the MERLIC Designer did not work properly. The widget could not be dropped on the workspace. This problem has been fixed.
    • In the MERLIC Frontend, it was possible to delete the last ROI of a tool even if this tool required at least one ROI. This problem has been fixed.
    • The data of the user management was not saved correctly if the MERLIC Vision App was saved via the warning dialog that appears when the MERLIC Vision App is closed with pending modifications. This problem has been fixed.
    • If multiple ROI parameters have been selected in the ROI property editor within the MERLIC Designer, the ROI modification rights were reset to a default value. This problem has been fixed.
    • If more than 30 widgets were copied and pasted within the MERLIC Designer, subsequent copy and paste action were exponentially slower. This problem has been fixed.
    • Sometimes a MERLIC Vision App could not be saved if it contained the widget 'Picture Box' or if a background image was set for a view within the MERLIC Designer. This problem has been fixed.
    • If the property 'X-Axis Tick Step Size' of the widget 'Function Plot' had been set to an invalid value within the MERLIC Designer and afterwards the property 'X-Axis Tick Labels' had been clicked, MERLIC crashed as soon the displayed message box was confirmed. This problem has been fixed.

Frontend

  • New Features
    • The visualization of decimal numbers within the MERLIC Frontend has been improved. Widgets visualizing decimal numbers have been extended by a new property 'Number of Decimal Places' which allows to configure the number of displayed decimal places.
  • Enhancements
    • The logging of user interactions has been extended. Now, MERLIC writes a corresponding message to the output console and the log file if a user logs into or out from the MERLIC Frontend.
  • Fixed Problems
    • Text messages that were sent by the Frontend to the Output Console were not translated. This problem has been fixed.
    • If the widget 'Training' was used for a tool that provides parameters for the training images, the drop down menu of the corresponding parameter values of the training images was too large in the Frontend according to the number of the contained values. This problem has been fixed.
    • If the widget 'Slider' was connected to a parameter with integer values and if this parameter had been adjusted via the slider in the MERLIC Frontend, the parameter value was written as a double value into the log file instead of an integer. Furthermore, the slider did not move smoothly when adjusting the value. These problems have been fixed.
    • The widgets 'Label' and 'Table' displayed values of the previous iteration of the MERLIC Vision App if the value of the connected parameter was empty or invalid for the current iteration. This problem has been fixed. Now, empty fields are displayed by the widgets if the connected parameter holds an empty or invalid value.
    • Depending on the system's graphics driver it might have taken a long time to restore the MERLIC Frontend after it was minimized. This problem has been fixed.
    • Running an additional installation did register the MERLIC Frontend Control component, which broke the registration done by the main installation. This problem has been fixed. Now, only the main installation registers or unregisters the MERLIC Frontend Control component.
    • The drop down menu of the widget 'Combo Box' could exceed the limits of the surrounding window. This problem has been fixed. Now, the drop down menu opens above the text field of the combo box if the space below is not sufficient.
    • The MERLIC Frontend displayed values from connected tool parameters or results with square brackets even if it was a single value. This problem has been fixed. Now, only an array of values will be displayed in square brackets.
    • The drop down menus of the widgets 'Combo Box' and 'Language Selection' as well as the drop down menu of the toolbar of the widget 'Image Display' did not close correctly if they were closed by a click on the drop down button without modifying the current selection. This problem has been fixed.
    • If the widget 'Image Display' was configured to provide editing of ROIs of more than one tool, the editing of ROIs via this 'Image Display' did not produce useful results in the MERLIC Frontend. Some ROIs were displayed and forwarded to the connected MERLIC Backend in a wrong zooming state and a wrong image position. This problem has been fixed.
    • If an ROI was completely overlayed by another ROI within the MERLIC Frontend, the overlayed ROI could sometimes not be selected anymore. This problem has been fixed.
    • If the widget 'Combo Box' was connected to a parameter that accepts numbers and also text as value, it was not possible to properly apply a new value. This problem has been fixed.
    • Sometimes output ROIs were drawn in black instead of the defined ROI color within the MERLIC Frontend. This problem has been fixed.
    • Zooming and moving an image within the MERLIC Frontend was very slow if easyTouch was activated at the same time. This problem has been fixed.
    • In the MERLIC Backend, it is possible to define a value that lies outside of the suggested value range of a parameter. When using the widgets 'Spinbox' or 'Text Box' in the MERLIC Frontend it was not possible to enter a value that lied outside of the value range of the connected parameter. This problem has been fixed.
    • If a view has been added to a 'Tab View' widget that already contained a different view, the name of the previous view has been deleted. This problem has been fixed.
    • The MERLIC Frontend sometimes crashed when the user management was enabled and a user logged in. This problem has been fixed.
    • If a dialog window was opened within the MERLIC Frontend and afterwards the main window of the MERLIC Frontend was closed, the application did not quit. This problem has been fixed.
    • In the MERLIC Frontend, the 'Change Password' dialog was not correctly localized. This problem has been fixed.

Tools

  • New Features
    • The MERLIC tools have been extended by the functionality to display the image coordinates and the gray value of the pixel at the current mouse position when pressing the Alt button.
  • Enhancements
    • The interfaces USB3 Vision, GigE Vision, and GenICamTL that are supported in the tool 'Acquire Image from Camera' have been improved. They have been updated and are now based on the GenAPI v3.0.0 which is much faster then previous versions.
    • The Tool 'Check Presence with Matching' has been improved. The minimum value of the parameter 'Highest Pyramid Level' has been increased to '2'.
    • The tool 'Detect Scratches' has been improved. Because scratches can also reach a higher contrast, the limit for the parameter 'Scratch Contrast' has been increased from 100 to 255.
    • The reading rate of the tool 'Read Bar Code' has been significantly improved for bar codes that are underexposed, overexposed, or distorted by print growth. Now, all bar code types can be robustly read even if the images are extremely underexposed or overexposed.
    • The tool 'Read QR Code' has been improved. It has been extended by the new parameter 'Encoding' which enables the user to select from a variety of encoding types.
    • The German translation of the following tool names has been improved:
      Previous Translation New Translation
      Von Datei lesen Datei lesen
      Von serieller Schnittstelle lesen Serielle Schnittstelle lesen
      Von Socket lesen Socket lesen
      Region von Datei lesen Region lesen
      Bild auf Datei schreiben Bild-Datei schreiben
      Region auf Datei schreiben Region schreiben
      Auf Datei schreiben Datei schreiben
      Auf serielle Schnittstelle schreiben Serielle Schnittstelle schreiben
      Auf Socket schreiben Socket schreiben
      In addition, the parameter and result names of the tools 'Serielle Schnittstelle lesen/schreiben', 'Socket lesen/schreiben', and 'Datei lesen/schreiben' have been revised:
      Previous Translation New Translation
      Datei Handle Datei-Handle
      Socket Handle Socket-Handle
      Serielles Handle Serielles-Handle
      Furthermore, the German translation of some tool messages has been improved.
  • Fixed Problems
    • When using the GenICamTL or USB3Vision interface in the tool 'Acquire Image from Camera', changing the camera parameter manually using the text input fields did not work in some cases. This problem has been fixed.
    • MERLIC chrashed if the PATH environment variable was empty and the GigEVision interface was used in the tool 'Acquire Image From Camera'. This problem has been fixed.
    • MERLIC Vision Apps that contain the tool 'Acquire Image from Camera' were not loaded correctly if the camera could not be connected. This problem has been fixed. Now, these MERLIC Vision Apps are loaded correctly and the tool displays an error, which mentions the missing camera.
    • The tool 'Acquire Image from File' could not load images from a network folder. This problem has been fixed.
    • If the parameter 'File Name' of the tool 'Acquire Image from File' has been reset, the parameter was not correctly set to the default value. This problem has been fixed.
    • If a parameter was dragged into the text field of the tools 'Branch on Condition' or 'Evaluate Expression', an error occurred because the name of the parameter in the text field and the name of the automatically added connector were not identical. This problem has been fixed.
    • The tool 'Calibrate Camera' returned an error when creating an ROI in an image without a calibration pattern. This problem has been fixed.
    • The tool 'Calibrate Camera' sometimes returned a high 'Calibration Error' although suitable images were used. This problem has been fixed. Now, the tool has an improved accuracy.
    • If an input or output channel has been deactivated from the channel list within the tool 'Communicate via Digital I/O', the corresponding parameter or result connector were not removed from the tool. This problem has been fixed.
    • The 'Time' result of the tool 'Get Execution Info' returned a wrong value for the milliseconds. It always contained the number 0 at the first position. This problem has been fixed.
    • The tool 'Locate with Matching' did not work in case a 'Search ROI' was set. This problem has been fixed.
    • The tool 'Locate with Matching' returned orientation values outside of the allowed value range of -180 to 180 degrees. This problem has been fixed.
    • The following tools from the category 'Combined Measuring' returned no error message if not enough input primitives were provided:
      • 'Measure Circle to Point'
      • 'Measure Circle to Segment'
      • 'Measure Point to Point'
      • 'Measure Segment to Point'
      • 'Measure Segment to Segment'
      This problem has been fixed.
    • If the tool 'Measure Longest Edge Segment' had been inserted and easyTouch+ was used to add further edge segments, the initial edge segment disappeared. This problem has been fixed. Now, the initial edge segment must be clicked to accept it. Otherwise, it disappears with additional mouse clicks on other edge segments.
    • The tool 'Measure Oriented Edge Segment' did not support ROIs of the type 'paraxial rectangle'. This problem has been fixed. Now, this type of ROIs is supported.
    • If an ROI parameter has been connected to the tool 'Measure Segment to Segment', the angle bisector was not drawn correctly. This problem has been fixed.
    • The tool 'Read Bar Code' sometimes produced a warning if the tool tried to decode bar codes in images that did not contain any bar codes and the mouse cursor was moved over the image. This problem has been fixed.
    • The _Save() procedure of the tool 'Read Bar Code' could not be used because it had a wrong signature. This problem has been fixed.
    • If the mouse cursor was moved over the image of the tool 'Read QR Code', a memory leak occurred. This problem has been fixed.
    • In the tool 'Write to File', the values of the parameters 'Mode' and 'Separator' were not translated. This problem has been fixed.
    • If the 'Serial Handle' of the tool 'Write to Serial Interface' was connected to the tool 'Read from Serial Interface', MERLIC froze. This problem has been fixed.
    • If a tool displayed a status information in the Quick Info area, it was not possible to display the Quick Info again. This problem has been fixed.
    • The status information that is displayed in the Quick Info area of some tools were not shown with the same font as other texts in the tool. This problem has been fixed.
    • MERLIC Vision Apps could not be loaded if they contained tools that received valid calibration data but invalid or empty images as input. This problem has been fixed.
    • If tools with matching or training functionality were closed by starting a new MERLIC Vision App or by loading another MERLIC Vision App, an error occurred because the <toolname>_Finalize procedure that is used for these tools was called with an invalid 'ToolHandle'. Thus, it was not possible to use MERLIC interface procedures requiring 'ToolHandle' as input within the <toolname>_Finalize procedure. This problem has been fixed.
    • Calling user-operators such as Me_console_log() with invalid arguments has been handled improperly in MERLIC. It caused MERLIC to crash or return ambiguous error messages. This problem has been fixed.
    • The value range of tool parameters with the semantic type 'condition' could be set to a wrong value. Instead of only '0' and '1', the parameters could be set to any value. This problem has been fixed.
    • The <Toolname>_Load() procedures could not be performed since MERLIC expected them to contain only one input parameter 'SerializedItems'. However, MERLIC Load() procedures contain an additional input parameter: 'ToolHandle'. This problem has been fixed. Load()-Procedures are now executed regardless whether if they expect 'ToolHandle' or not.
    • If a USB3 Vision camera has been connected and the corresponding driver was missing, MERLIC displayed a dialog with a duplicated text message that asks the user if the driver shall be installed. This problem has been fixed.

Examples

  • New Features
    • MERLIC has been extended by the following new example MERLIC Vision Apps:
      • examples/mvapps/adapt_brightness_for_measuring.mvapp
      • examples/mvapps/check_pen_parts.mvapp
      • examples/mvapps/detect_scratches_on_metal.mvapp
      • examples/mvapps/measure_distance_segment_circle_calibrated.mvapp
      • examples/mvapps/measure_distance_to_center_led.mvapp
      Furthermore, the provided example images have been adjusted.
      The following image folder has been removed:
      • examples/images/Processing/Measuring/engine_part
      The following image folders with new sets of new and similar images have been added:
      • examples/images/Processing/Measuring/engine_part_1
      • examples/images/Processing/Measuring/engine_part_2
      The following image folders have been extended by new images for the new example MERLIC Vision Apps:
      • examples\images\Processing\Checking\pen
      • examples\images\Processing\Defect_Detection\Detect_Scratches\scratches_metal

    • MERLIC has been extended by the following new C# example applications:
      • examples\meengine\csharp\ImageDataExample
      • examples\meengine\csharp\ImageDataExampleWPF
      They show the use of the MERLIC Engine with an image parameter in a console application and in a Windows Presentation Foundation application.
  • Fixed Problems
    • In the example tool templates, some procedures used 'tool_id' as semantic type for the parameter 'ToolHandle' instead of 'tool_handle'. This problem has been fixed. Now, always the semantic type 'tool_handle' is used for the parameter 'ToolHandle'.
    • The MERLIC example applications 'check_saw_angles.mvapp' and 'measure_distance_between_corners.mvapp' were erroneous. Executing them could lead to an unexpected program termination. This problem has been fixed.

Documentation

  • Enhancements
    • The 'Tool Development Manual' has been improved. It has been extended by a documentation of the tool procedure flow of MERLIC tools. Furthermore, the structure of the manual has been revised for a better overview.
    • The documentation of the use of the 'Execution Control' widget and the MERLIC Engine has been improved. It now contains the notice that it is not recommended to use the 'Execution Control' widget in MERLIC Vision Apps that are indented for the use via the MERLIC Engine.
    • The description of how to edit the procedure of a custom tool in the 'Tool Development Manual' has been improved. Now, the documentation describes more clearly how to ensure that a custom tool is inserted correctly into a predefined chapter of the MERLIC Tool Library.
  • Fixed Problems
    • The documentation of the standard MERLIC procedures provided for the development of MERLIC tools was not complete. Furthermore, the list of available MERLIC procedures in the 'Tool Development Manual' was not up-to-date. These problems have been fixed.
    • The Thai translation of some GUI texts and part of the documentation were not correct or missing. This problem has been fixed. The translation in Thai has been completely revised.
    • Some translations were erroneous or not clear. This problem has been fixed. Now, the translations have been revised to be more precise and clear.
    • The reference documentation of the tool 'Count with Matching' described a wrong value range for the parameter 'Deformation Tolerance'. It stated that the parameter can be set from '0' to '5' pixel instead of '0' to '10' pixel. This problem has been fixed.

Installation

  • Enhancements
    • The MERLIC installer has been improved. Now, it is possible to choose between an express and a custom installation. The custom installation allows to manually configure some details of the installation process while the express installation automatically chooses the default settings for installation.
    • The MERLIC uninstaller has been improved. It now shows the version of the MERLIC installation that will be uninstalled.
    • The naming of MERLIC's file structure has been improved. The folder 'procs/def' that contains interface and auxiliary procedures in the MERLIC installation directory has been renamed to 'procs/auxiliary'.
    • Now, the GigEVision streaming filter is also installed on the operating system Windows 10.
  • Fixed Problems
    • Some error texts in the installer were only available in English. This problem has been fixed.
    • If the installer of a MERLIC version that had been installed as additional installation was run again, erroneously, the main MERLIC installation was overwritten. This problem has been fixed. Now, instead of overwriting the main installation, the additional installation is repaired.
    • If MERLIC's update functionality is used to update from MERLIC 2.0.1, MERLIC crashes when the update installer is launched. This problem has been fixed for updates from MERLIC 2.0.2 and upcoming versions.
    • The environment variable 'MERLICROOT' was set with slashes instead of backslashes as path separator during the installation of MERLIC. This problem has been fixed.

Licensing

  • Fixed Problems
    • The error message, that was displayed if the Frontend ActiveX Control could not connect to a MERLIC server were not translated. This problem has been fixed.

Tool Development

  • Fixed Problems
    • If a tool has been implemented with a main procedure that contains an output parameter with the same name as an input parameter together with the suffix '_Out', the tool could lead to a deadlock when used in MERLIC. This problem has been fixed. Now, tools with invalid parameter naming are disabled in MERLIC and an error message is printed to the output console.

MERLIC Engine

  • Enhancements
    • The performance of the 'Run Once' execution of MERLIC Engine applications has been improved.
    • To avoid any possibility of confusion with the HALCON library in case HALCON is installed in addition to MERLIC, the PATH environment variable is not modified anymore during the installation of MERLIC. Note that this change affects the compatibility. Read more.
    • The MERLIC Engine interface has been improved. The Swap methods that could be used to exchange the content of two objects of the same type are not needed anymore because copying an MeEngine object became a lightweight operation. Therefore, the Swap methods have been removed from all classes in the MERLIC Engine interface. Note that this change affects the compatibility. Read more.
    • In the MERLIC Engine C++ interface, an MeValueVector element that was referenced by an MeValueConstRef object did not always remain constant because an object of the class MeValueRef could be initialized from an object of the class MeValueConstRef. To ensure that an MeValueVector element remains constant in such a case, the following constructor and assignment operator have been removed from the interface:
      • MeValueRef(const MeValueConstRef&)
      • MeValueRef::operator=(const MeValueConstRef&)
      Additionally, the methods for de-referencing MeValueIterator and MeValueReverseIterator objects, i.e., operator*, operator->, and operator[](int), are now declared as 'const' to make them compatible with the C++ standard. Note that this change affects the compatibility. Read more.
  • Fixed Problems
    • The MERLIC Frontend ActiveX Control could not be used in a Qt C++ application. This problem has been fixed.
    • It was not possible to initialize the MERLIC Frontend Control after the MERLIC Engine. This problem has been fixed. Now, the new attribute 'SupportFrontendControl' defines whether an ActiveX Control is instantiated inside the same application that runs the MERLIC Engine. Note that this change affects the compatibility. Read more.
    • If a MeValue instance was initialized with a floating point number within a MERLIC client application, a compiler warning occurred. If this warning was ignored, the decimal places were truncated. In addition, initializing a MeValue instance with 0 also led to a compile error.
      Furthermore, the method MeValue::GetValueType returned a vector type even if the MeValue instance stored a single value, i.e., eType_LongVector was returned instead of eType_Long. These problems have been fixed. Now, the method returns scalar types if the MeValue instance stores a single value. In contrast, the method MeValueVector::GetVectorType always returns the appropriate vector type.
    • If variables of type MeValue, MeValueScalar, or MeValueVector had been created by copying or a similar method, the created variables were no actual copies of the variables but references to the same internal values. This led to unexpected changes in these object when a new value was assigned to only one of them. This problem has been fixed.
    • In a MERLIC Engine application, it was not possible to use the method 'MeValueVector::SetElement' for assigning a new value to a vector element with a different type than the previous value. This problem has been fixed.
    • A running MERLIC Engine application could be corrupted if, in a loop, a new 'MeMVApp' instance was created and assigned to a 'MeMVApp' variable that already referred to a MERLIC Vision App that was loaded in a prior cycle. By assigning the new MERLIC Vision App to an existing 'MeMVApp' variable, the current program was unloaded. In addition, if 'MeEngineStartup' and 'MeEngineShutdown' was called within the loop, the application could crash. These problems have been fixed.
    • If the MERLIC Engine was started and shut down in a loop, a memory leak occurred. This problem has been fixed.
    • In MERLIC Engine applications, debugging messages like 'Thrift: ... TServerSocket::listen() BIND 9090' were written to the console. This problem has been fixed.
    • The MERLIC Engine attributes 'ToolPath' and 'ProceduresPath' returned internal paths that could also be overwritten. This problem has been fixed. Now, the internal paths are not returned anymore.

Known Issues

The following issues are already known and in development process. They will be fixed for upcoming releases.

  • The individual colors that can be defined for an ROI are not consistent in all MERLIC components. If the color for an ROI is defined within the MERLIC Backend, it is not correctly adopted in the MERLIC Designer or MERLIC Frontend and vice versa.
  • The tool 'Write to File' writes the specified file to different locations depending on how MERLIC has been started. If MERLIC has been started via double-clicking on a MERLIC Vision App, the file is written relative to the location of the corresponding MERLIC Vision App. If MERLIC has been started via the Desktop shortcut or the Windows Start Menu, the file is written to the location of the MERLIC installation directory. We recommend to use an absolute file path to ensure that the file is written to the correct directory.
  • If a parameter contains an array of values, it cannot be edited correctly by clicking on its connector. The corresponding slider does not work and values that were entered into the input field are not adopted. Furthermore, using angle brackets converts the value to a single value. This problem mostly occurs in the tools of the category 'ROI Creation' if more than one ROI is created. We recommend to use the interactive modification within the image instead of modifying the parameters at the connectors.
  • The tool 'Determine Data History' is not executed correctly if the parameter 'Buffer Size' is connected to a previous tool.
  • Parameters of the tool 'Communicate via Digital I/O' cannot be used in the MERLIC Frontend because the parameters are not correctly connected to the Designer widgets.

 

 


Release Notes for MERLIC2.0.2

This document provides the release notes for MVTec MERLIC2.0.2, as released in February 2016. MERLIC2.0.2 is a maintenance release that provides fixes for critical bugs.

Frontend

  • Fixed Problems
    • If the Frontend design of an MVApp contained an 'Image Display' widget that was configured to display an output region, contour, or ROI of a tool, MERLIC crashed in rare cases while running the MVApp continuously. This problem has been fixed.

Tools

  • Fixed Problems
    • An error occurred if tools with matching or training functionality were closed by starting a new MVApp or loading another MVApp. The reason for this was that the <toolname>_Finalize procedure that is used for these tools was called with an invalid ToolHandle. Thus it was not possible to use MERLIC interface procedures requiring ToolHandle as input within the <toolname>_Finalize procedure. This problem has been fixed.

Documentation

  • Fixed Problems
    • The internal links in the release notes were not unique. This led to the problem that clicking on, e.g., the link 'Compatibility' in the release note section for MERLIC 2.0 showed you the compatibility information in the section for MERLIC 2.0.1. This problem has been fixed.

Installation

  • Fixed Problems
    • If MERLIC's update functionality is used to update from MERLIC 2.0.1, MERLIC crashes when the update installer is launched. This problem has been fixed for updates from MERLIC 2.0.2 and upcoming versions.

 

 


Release Notes for MERLIC2.0.1

This document provides the release notes for MVTec MERLIC2.0.1, as released in January 2016. MERLIC2.0.1 is primarily a maintenance release that provides bug fixes and some improved functionality.

Compatibility

Since the last product version we have been working hard to improve MERLIC in every way. This has, however, resulted in a few of incompatibilities. We apologize for the inconvenience.

  • Frontend
    • Due to changes of the protocol, the MERLIC Frontend, in particular the MERLIC Frontend Control-Component is no longer compatible with previous versions of MERLIC and vice versa, i.e., for a proper connection both MERLIC Frontend and MERLIC must be updated to MERLIC 2.0.1. More information.

Backend

  • FixedProblems
    • If a connector had two incoming connections and one of them was removed, the value of the connector was not updated. This problem has been fixed.
    • The path of the currently loaded MVApp, which is shown in the MERLIC main window title, was shortened too much in some cases. This problem has been fixed.
    • MERLIC sometimes crashed during closing when a MERLIC Frontend was running. This problem has been fixed.
    • Some tooltips were not displayed correctly in Asian languages. This problem has been fixed.
    • If a tool that contained training data was removed and then re-inserted by 'Undo', the training data was not restored correctly. This problem has been fixed.
    • On some computers, the scrolling between tool boards was very slow. This problem has been fixed.

Designer

  • Fixed Problems
    • Switching between different views with different sizes and many widgets was very slow. This problem has been fixed.

Frontend

  • Enhancements
    • The logging of user interactions has been extended. Now MERLIC writes a corresponding message to the output console and to the log file if a user logs into the MERLIC Frontend and if a user logs out from the MERLIC Frontend.
    • The behavior of the MERLIC Frontend when connecting to an incompatible version of MERLIC has been improved. Now an appropriate message is displayed if the client is not supported by the server. Note that this change affects the compatibility. Read more.
    • The widgets that allow to edit a numerical parameter value (like the Combo Box and Spin Box) have been improved. Now it is possible to enter decimal numbers with a precision of up to 8 decimal places.
  • Fixed Problems
    • The widget 'Label' formatted and displayed integer values with decimal places. This problem has been fixed. Integer values are now displayed without decimal places.
    • The widget 'Label' displayed decimal numbers with a different number of decimal places than other widgets. This problem has been fixed. Now the (default) number of displayed decimal places is consistent for all widgets.
    • The widgets 'Label' and 'Table' displayed values of the previous iteration of the MVApp if the current value of the connected parameter set for the property 'Connected Parameter' was empty or invalid for the current iteration. This problem has been fixed. Now empty fields are displayed by the widgets if the connected parameter holds an empty or invalid value.
    • If the widget 'Dialog Button' was used to open a dialog, select an element in a drop-down list, and close the dialog again, the MERLIC Frontend crashed. This problem has been fixed.
    • If the currently selected language of the MERLIC Frontend was not supported by a loaded MVApp, the language was switched to the first supported language instead of to the default language defined for the MVApp. This problem has been fixed. Now the Frontend switches to the default language if the currently selected language is not supported.
    • Running an additional installation did register the MERLIC Frontend Control component, which broke the registration done by the main installation. This problem has been fixed. Now only the main installation registers or unregisters the MERLIC Frontend Control component.

Tools

  • Fixed Problems
    • MVApps containing the tool 'Acquire Image from Camera' were not loaded correctly if the camera could not be connected. This problem has been fixed. Now these MVApps are loaded correctly and the tool displays an error, which mentions the missing camera.
    • The information message about missing sample types within the Quick Info area of the tool 'Check Presence with Gray Features' did not disappear after the missing sample was provided. This problem has been fixed. Now the Quick Info displays the tool documentation as soon as the missing sample type has been provided.
    • If an MVApp containing the tool 'Determine Data History' was loaded, this tool was not correctly initialized. It received values, but its output was empty. This problem has been fixed.
    • MVApps could not be loaded if they contained tools that received valid calibration data but invalid or empty images as input. This problem has been fixed.

Documentation

  • Fixed Problems
    • The 'Tool Development Manual' did not describe precisely that the Quick Info supports only HTML formatting. This problem has been fixed.
    • The translations of some user interface texts into French were incomplete or incorrect. This problem has now been fixed.
    • The reference documentation of the tool 'Check Presence with Matching' was incorrect. The parameter 'Failed Processing' was listed as a standard parameter although it is an advanced parameter. This problem has been fixed.
    • The German reference documentation of the parameter 'Mode' of the tool 'Write to File' was incorrect. It stated that an image was written to file instead of the input data. This problem has been fixed.
    • The name of the interface 'Interface' had been translated into several languages by mistake. This problem has been fixed.

Installation

  • Fixed Problems
    • A few texts that appeared during the installation and referred to the CodeMeter runtime and the firewall were only available in English. This problem has been fixed.
    • Some error texts in the installer were only available in English. This problem has been fixed.
    • If the installer of a MERLIC version that has been installed as additional installation was run again, erroneously, the main MERLIC installation was overwritten. This problem has been fixed. Now, instead of overwriting the main installation, the additional installation is repaired.

Tool Development

  • Fixed Problems
    • In the example tool templates, some procedures used 'tool_id' as semantic type for the parameter ToolHandle instead of 'tool_handle'. This problem has been fixed. Now always the semantic type 'tool_handle' is used for the parameter ToolHandle.

 

 


Release Notes for MERLIC2.0

This document provides the release notes for MVTec MERLIC2.0, as released in December 2015. MERLIC2.0 provides new and improved functionality as well as fixed bugs.

Major New Features

MERLIC Engine (available with the MERLIC Engine license)

With this new interface, you can directly load, parametrize, and execute MERLIC Vision Apps within your C++ or C# application or framework. Create MERLIC applications within the user-friendly MERLIC Backend and then directly start them within a separate application or framework. Use an ActiveX Control to display the Frontend you have created with the MERLIC Designer.

Protection of Know-How

Now, you can protect the content of MERLIC Vision Apps (MVApps) with a password against non-authorized access from third parties or unwanted customer changes. The password protection can be enabled for each MVApp. Thus, when loading an MVApp in the MERLIC Backend, the password must be entered in order to change the MVApp.

Training within the MERLIC Frontend

With a new widget, MERLIC 2 allows you to train your machine vision application directly in the MERLIC Frontend. You can now teach the system new sample parts or regions of interest (ROIs) with just a few clicks. Additionally, the appearance of the ROIs (e.g., its color) can be adapted to improve their visibility in your application.

Image Acquisition

The tool ‘Acquire Image from Camera’ has been revised to improve speed and robustness. Additionally, MERLIC now also supports the GenICam standard.

Compatibility

Since the last product version we have been working hard to improve MERLIC in every way. This has, however, resulted in a number of incompatibilities. Therefore it is impossible to load MERLIC Vision Apps that were created with previous versions. We apologize for the inconvenience. In future versions of MERLIC, compatibility will be maintained as far as possible.

  • Designer
    • The user management data that was saved within previous MERLIC versions is no longer compatible since the user management has been changed. When loading a MERLIC Vision App with user management data of previous versions, the user has the possibility to automatically convert the user management data to the new format. If the conversion is neglected, the user management and Frontend of the corresponding MVApp cannot be used. Converting the database has the following consequences:
      • The group memberships of users will be deleted.
      • The start view assignment of users will be deleted.
      • The start view assignment of users will be set to 'main'.
      • Users, passwords, and groups will remain intact.
      More information.
  • Tools
    • All MVApps created with previous versions are incompatible with the current version of MERLIC because the internal structure of MERLIC tools has changed . More information.
  • Tool Development
    • All tools developed with previous MERLIC versions are no longer compatible since the internal tool structure has changed. The tools do not support global variables any more, now they have tool member variables with setter and getter functions. A new obligatory control parameter called 'ToolHandle' has been introduced for callback functionality with MERLIC. MERLIC_* procedures have been renamed to Me_* and extended with the new parameter 'ToolHandle'. For more details see the 'Tool Development Manual'. More information.

Backend

  • New Features
    • The MERLIC Backend has been extended by an MVApp protection. Now it is possible to assign a password to an MVApp which protects it against unauthorized access. That means, that the MVApp's content cannot be modified or displayed in the MERLIC Backend without providing the password. In addition, the .mvapp file is encrypted. However, protected MVApps can be executed via the MERLIC Engine.
  • Enhancements
    • The tooltip of connectors has been improved to display statistical values. It now displays the number of values and their semantic type as well as the minimum and maximum value for numbers.
  • Improved Usability
    • The examples MVApps can now be accessed more easily since the 'File' menu of the MERLIC Backend has been extended by an entry 'Open Examples...'. This provides a direct access to the standard folder where the example MVApps are stored.
    • The usability of changing parameter names has been improved. Previously, if the name of a parameter was changed to an already existing name, MERLIC added a number to the name to distinguish the parameters. This behavior may have been confusing. Now the user is asked to change the name in a pop-up dialog if the selected name already exists.
  • FixedProblems
    • If the line width was changed via 'Edit' -> 'Preferences', the new width was only applied to tools that were inserted into the tool flow after the setting had been changed. This problem has been fixed. Now the new line width is applied to all tools in the MERLIC Vision App as soon as the 'Save' button is pressed in the 'Preferences' dialog.
    • When resizing the MERLIC main window to a very small size, tool connectors became invisible. This problem has been fixed.
    • The tooltips that are displayed at the connectors for the parameter values were not translated. This problem has been fixed.
    • If the 'Type' of a parameter was changed via the 'Edit Properties' dialog in the tool 'Evaluate Expression' or 'Branch on Condition', the range was not always adapted accordingly. This problem has been fixed.
    • The execution of a MERLIC Vision App was not stopped when a new additional parameter was added. This problem has been fixed. Now the execution is stopped when adding or removing an additional parameter.
    • In case MERLIC terminated abnormally, all data which had not previously been saved, was lost. This problem has been fixed. Now MERLIC tries to save a backup of the current MERLIC Vision App.
    • The title bar of a newly created MERLIC Vision App in the Backend was 'unnamed - MERLIC'. In the Designer it was 'New MERLIC Vision App'. This problem has been fixed. Now both titles display the text 'New MERLIC Vision App'.
    • The reference to additional copyright notices and license terms in the MERLIC 'About' dialog was only available in English since the corresponding translations were missing. This problem has been fixed. Now, it is displayed correctly for each language.
    • If an ROI was changed in a tool, it was not re-executed if it received 'Alignment Data' from a previous tool. This problem has been fixed.
    • If an MVApp was loaded that contained a tool with multiple connections attached to one parameter, the parameter value was sometimes restored incorrectly. This problem has been fixed.
    • The position of result connections was not updated if another connection was added before the connection was changed or if the window size was changed. Therefore the connection appeared to be attached to the wrong result. This problem has been fixed.
    • If the MERLIC window was not completely maximized or was only partially visible on the screen, clicking on an inactive tool in the tool workspace may have resulted in uncontrolled scrolling. This problem has been fixed. Now the workspace scrolls correctly to the clicked tool.
    • It was not possible to connect results with exclusive value lists to any other parameter. This problem has been fixed. Results can now be connected to parameters if both have equivalent values lists.
    • Previously, it was possible the change the values of a tool parameter in a way that did not correspond to the semantic type or to the value range of this connector. This problem has been fixed.
    • If a parameter value was edited via the property editor (e.g. available for the tool 'Evaluate Expression') and the dialog was closed via the 'X' button, the changes were applied to the parameter, provided the values were valid. This problem has been fixed. Now the 'X' button has the same meaning as a 'Cancel' button which was also added to the dialog. Both buttons close the dialog without applying changes.
    • If only certain values were allowed for a parameter, it was still possible to step through different values using the buttons for step-wise adaption of values ('<' and '>'). This problem has been fixed.
    • In some cases the active training ROI stayed active for an indefinite time as did all ROIs that were subsequently added. This problem has been fixed.
    • If an MVApp with input regions was loaded, the initial drawing properties of the regions were set to 'filled', instead of 'margin'. This problem has been fixed.
    • For tool parameters that support mixed types, discrete values could not be selected in the drop-down list of the connector. This problem has been fixed.
    • If a tool was added that displayed a message of the type 'remark', the message button on the left showed an 'error' icon. This problem has been fixed. Now the 'remark' icon is displayed.
    • In certain tools like 'Evaluate Expression' or 'Branch on Condition' the connector dialog that is used to enter the range of a parameter did not use the country-specific formatting conventions that are normally used for displaying numerical values in MERLIC. This problem has been fixed.
    • After changing the GUI language to a language different from the system language, e.g., to Japanese on an English system, the messages written to the log file contained invalid characters since the log file used the system's encoding. This problem has been fixed. Now the log file is always encoded in UTF-8.
    • If too many connectors were added to the tool board, their names overlapped and were not readable any more. This problem has been fixed. Connector texts are now shortened such that they do not overlap. A tooltip shows the complete name of the parameter or result.
    • Tooltips were missing for some tools if they were accessed via the + Button in the workspace of the Backend. This problem has been fixed. All tool icons and tooltips are displayed now.
    • Messages displayed within the graphics window of a tool may have been difficult to read depending on the background. Furthermore, the text was not visible if the mouse was too far to the right. These problems have been fixed. Now the text is shown in a tooltip-like widget and stays visible.
    • Messages in the log file and in the Output Console contained double entries of the message type and due to their format they could not easily be exported. These problems have been fixed. The messages are now returned in a csv-like format to enable an import to Excel.

Designer

  • Enhancements
    • The user management of MERLIC has been changed to a new format. The changes have the following effects:
      • A user can be assigned to only one user group.
      • The start view can be selected for a user group.
      Note that this change affects the compatibility. Read more.
  • Improved Usability
    • The usability of widgets in the MERLIC Designer has been improved. Previously, the only way to connect a widget to a parameter was via the properties editor. Now, a context menu has been added for all widgets in order to connect them to parameters more easily.
  • Fixed Problems
    • The MERLIC Designer did not work properly when viewed via Windows Remote Desktop. This problem has been fixed.
    • If a view that was part of another tab view was deleted, no warning message with this information was displayed. This problem has been fixed.
    • If a view that was referenced by the widget 'Dialog Button' was deleted, the referencing 'Dialog Button' was not highlighted as incorrectly configured. Furthermore, if the 'Dialog Button' was selected while the referenced view was deleted, the view was still available within the property 'Action' of the 'Dialog Button Properties' panel. These problems have been fixed.
    • If there was an error in the Designer, e.g., if a widget was not connected, the Frontend could still be launched via the corresponding menu item in the MERLIC Backend. Furthermore, the 'Launch Frontend' button was not disabled while a Frontend was running. These problems have been fixed.
    • If the widget 'Image Display' was added to a view, its properties 'Display Regions', 'Display Contours', and 'Display ROI' were wrongly highlighted in red as mandatory parameters. This problem has been fixed. Now these parameters appear non-highlighted, showing that they are optional parameters.
    • The widget 'Function Plot' allowed the configuration of a minimum value that was higher than the maximum value for the property pairs 'Minimum Y-Range' and 'Maximum Y-Range' as well as for 'Lower Bound' and 'Upper Bound'. This problem has been fixed.
    • When a newly created MERLIC Vision App was saved for the first time within the Designer, the file name was not updated in the MERLIC Backend. This problem has been fixed.
    • If an MVApp containing unsaved changes was open and a new MVApp was created via 'File' -> 'New', a message dialog appeared, allowing the user to save the changes of the previous MVApp. If the changes were saved, the following problems occurred:
      • The title bar of the MERLIC Designer in the new MVApp still referenced the MVApp that was created before.
      • The user management database file of the previous MVApp was either not stored correctly or was incorrectly used by the new MVApp.
      These problems have been fixed.
    • If a view in the MERLIC Designer was deleted, it was not checked whether the view was set as a start view for one or multiple user groups. This problem has been fixed. Now an appropriate warning message is displayed allowing the user to cancel the deletion if necessary.
    • Widgets that enable the user to modify values of a tool parameter in an MVApp like a 'Slider' or 'Text Box' could erroneously be connected to parameters that should not be edited since their value was an input from a previous tool. This problem has been fixed. Parameters that are connected to the result of a previous tool can no longer be selected as 'Connected Parameter' for widgets that enable the modification of values.
    • The Designer widget 'Function Plot' offered the wrong parameter 'DataIndex' as a connected parameter if a tool with training mode was connected. This problem has been fixed.
    • If a backslash was used within a 'Label' widget in the MERLIC Designer, the MERLIC Frontend could not be started. This bug has been fixed.
    • If the selection of available languages for the localization of the MERLIC Frontend within the MERLIC Designer was changed, the loaded MVApp was not marked as modified although the changes were lost if the MVApp was not saved again. This problem has been fixed.

Frontend

  • New Features
    • The MERLIC Frontend is now available as an ActiveX Control via the MERLIC Engine interface. Please see the 'MERLIC Engine Manual' for more information.
    • The MERLIC Frontend has been extended with new functionality to edit ROIs. It is now possible to display and edit every type of ROI using the 'Image Display' widget.
    • The MERLIC Designer has been extended by a 'Training' widget. It enables the user to configure and control the training of a tool via a connected MERLIC Frontend.
  • Enhancements
    • The performance of the TCP/IP connection between MERLIC Frontend and MERLIC Backend has been improved.
    • The text that appeared when opening a MERLIC Frontend was misleading for the user. It was therefore changed.
  • Improved Usability
    • The usability of the error message that was displayed if an MVApp could not be saved via the MERLIC Frontend has been improved. Previously, it was not helpful, now an improved error message is displayed.
  • Fixed Problems
    • If the MERLIC Frontend was started via the command line, the tool 'Check Presence with Matching' did not display its results correctly. This problem has been fixed.
    • If easyTouch was used in the MERLIC Frontend, no execution of subsequent tools was triggered. This problem has been fixed. If easyTouch is used in the Frontend, all subsequent tools in the tool flow are updated.
    • 'Image Display' widgets were not updated properly if they were used within a 'Tab View' or referenced by a 'Dialog Button'. Sometimes no image was displayed when the views were initially opened. This problem has been fixed.
    • The menu bar of the MERLIC Frontend was initially visible when the Frontend was started even if it was deactivated in the properties menu of the Frontend. This problem has been fixed. The menu bar is now no longer visible when the MERLIC Frontend is started. The menu bar only becomes visible if it is selected in the properties menu.
    • The widgets 'Table' and 'Text Box' did not show a translation for parameters of the type 'string'. This problem has been fixed.
    • When viewing the MERLIC Designer and the MERLIC Frontend via Windows Remote Desktop, the colors were sometimes displayed incorrectly. This problem has been fixed.
    • If an incorrectly configured widget, that was highlighted in red, was removed via Ctrl + X, it was still impossible to start the MERLIC Frontend. This problem has been fixed. Now it is possible to start the MERLIC Frontend after removing incorrectly configured widgets via Ctrl + X.
    • If a new value was entered into the input field of the widget 'Spin Box', the changes were not applied reliably to the connected parameter.
      Furthermore, if the focus was in the input field of the 'Spin Box', the up-down buttons for incrementing and decrementing the value had no effect. These problems have been fixed.
    • The language settings of the MERLIC Frontend did not work. Changes in the language settings in the menu bar of the MERLIC Frontend had no effect. This problem has been fixed.
    • The scroll bar of the 'Language Selection' widget could not be scrolled by dragging it with the mouse cursor. This problem has been fixed.
    • If the MERLIC Frontend was opened with a remote connection using Windows Pipe and a large 'Image Display' widget was used in the MVApp, the image was not displayed and the Frontend could not be closed correctly. This problem has been fixed.
    • If the start view was deleted in the MERLIC Designer, the MERLIC Frontend simply showed a white background if a user logged in. This problem has been fixed. If the start view of a user does not exist, the main view is displayed when that user logs in. In case the user has no access to the main view, the login mask displays a message saying that the user has no access to the requested view.
    • In the MERLIC Frontend, the 'Language Selection' widget was not updated properly if the language was changed via the menu. In this case, the 'Language Selection' widget still displayed the previously selected language. This problem has been fixed.
    • If multiple instances of the engine were running on the same machine and a MERLIC Frontend was opened for an associated engine but no appropriate MERLIC.ini file was passed, the MERLIC Frontend did not connect to the associated engine but to the instance of the engine that was first started. This problem has been fixed. Now the Frontend automatically connects to an associated engine instance. Please refer to the 'MERLIC Frontend Manual' for configuring the connection settings via 'auto_adapt_port' and 'auto_adapt_pipe_name'. Furthermore the executable 'merlic_frontend.exe' has been extended by new command line options, offering the possibility to directly pass specific connection setttings.
    • If the MERLIC Frontend was started via the command line option, it was not checked, whether the file name or directory of the MVApp existed. This problem has been fixed. Now the completeness of the command line option is checked as well as whether the specified file or directory exists. If it does not exist, an error message is shown and the application is closed.
    • If a view of the MERLIC Frontend was opened, closed and re-opened with the 'Dialog Button' widget, it was displayed below the view from which it was opened. This problem has been fixed. A new view now always opens at top level.
    • When starting the MERLIC Frontend via command line with the option '--frontend', it was not checked if the MVApp file actually contains a MERLIC Frontend that can be started. This problem has been fixed. Now the log file contains an entry if a user tries to open an MVApp without a MERLIC Frontend that can be started.

Tools

Please note that for the tool 'Acquire Image from Camera', the current filter driver of the GigEVision interface does not work, the GigEVision interface can only be used in combination with the socket driver.

  • New Features
    • The tool 'Acquire Image from Camera' now supports the GenICam GenTL interface.
    • MERLIC has been extended by the I/O interface 'Interface'. The tool 'Communicate via Digital I/O' now supports the use of the new interface.
  • Enhancements
    • The tool 'Read Bar Code' has been improved.
      • It is now more robust against print growth, print loss, and overexposure for 2/5 Interleaved codes.
      • It is now more robust against interfering edges outside the bar code region.
      • It is now able to read bar codes of the types EAN-13, EAN-8, UPC-A, UPC-E, and EAN/UPC Add-On in highly blurred images. This also applies if the image shows moderate effects of overexposure or print growth in addition to the blur.
    • The internal structure of MERLIC tools has been improved. Note that this change affects the compatibility. Read more.
    • The error handling in MERLIC tools has been improved. Now error messages are not only logged, but the 'Tool State' result also returns the error code.
  • Improved Usability
    • The usability of the tool 'Acquire Image from Camera' has been improved. It now provides the 'Use first available camera' entry in the camera selector, which enables the tool to automatically connect to the first available camera at a computer.
    • The usability of the tool 'Check Presence with Matching' has been improved. There is a new entry in the drop-down menu, called 'not used'. This entry has been added for images that may be interesting but are currently not used in the training.
    • The usability of the tool 'Communicate via OPC UA' has been improved. Previously, the tool contained a combo box to select whether a node was used as input or output for the device. The nodes were then automatically added as parameters or results. Now a separate dialog opens that allows to directly add nodes either as parameters ('Digital Output') or Results ('Digital Input') of the tool.
  • Fixed Problems
    • If camera parameters were changed in the tool "Acquire Image from Camera", sometimes an error occurred because no image could be grabbed. This problem has been fixed.
    • If several values of camera parameters were changed in the tool 'Acquire Image from Camera' while the camera was disconnected and reconnected again, previous changes in the parameter values were sometimes lost. This problem has been fixed.
    • If camera parameters were manually changed in the tool 'Acquire Image from Camera', they were not restored correctly when the MVApp was saved and reloaded. This problem has been fixed.
    • If the selected camera in 'Acquire Image from Camera' had been changed and the MVApp was saved, it could not be loaded completely in case the previous camera was not available anymore. This problem has been fixed.
    • If the image acquisition in the tool 'Acquire Image from Camera' failed, the last successfully grabbed images were still displayed. This problem has been fixed. Now, a black image is displayed instead.
    • In the German version of MERLIC, the tool 'Ausrichtungsdaten mittels geradem Rand bestimmen' was located in the sub-category 'Messen' within the tool category 'Verarbeitung' whereas it should have been in the category 'Ausrichtung'. This problem has been fixed.
    • In the tool 'Branch on Condition', it was possible to create a connection from a tool in the 'true' branch to a tool in the 'false' branch. This problem has been fixed. Now, such connections cannot be created anymore.
    • In some cases, the tools 'Calibrate Camera', 'Check Presence with Matching', 'Determine Alignment with Matching', 'Measure Circle', 'Read Text and Numbers', and 'Read Bar Code' may have had a memory leak if an exception occurred. This problem has been fixed.
    • In the tool 'Check Presence with Gray Features', defined ROIs have sometimes been reshaped to be square after saving and reloading. This problem has been fixed.
    • If a search region was created in the tool 'Check Presence with Matching' and no model instances were found within this search region, already existing reference positions, which were determined automatically by the tool, were not deleted. This problem has been fixed.
    • The alignment did not work correctly if the selected alignment tool used a different training image than the tool 'Check Presence with Matching'. This problem has been fixed. Now it is possible to use different training images for these tools.
    • In the tool 'Count Objects with Similar Gray Values', the parameter 'Maximum Gray Value' could be set to a smaller value than 'Minimum Gray Value'. Furthermore, the value for the parameter 'Maximum Area' could be selected smaller than the value for 'Minimum Area'. These problems have been fixed.
    • The tool 'Determine Alignment with Matching' initialized the result 'Score' with a value of 0. This problem has been fixed. Now it is initialized with an empty tuple: [].
    • In the tool 'Determine Alignment with Straight Border', an unhandled exception occurred if ROIs were created with easyTouch+. This problem has been fixed.
    • In the tool 'Determine Alignment with Straight Border', the default height of the measure window was too small. This problem has been fixed. Now the value has been adapted accordingly.
    • If the tool 'Evaluate Expression' was used and a pop-up information box warning about a wrong input expression was open, MERLIC crashed after closing the tool. This problem has been fixed.
    • In the tool 'Evaluate Expression' it was difficult to work with long expressions since the 'Result' field displayed only one line. This problem has been fixed. Now the result field automatically expands to up to four lines before the scrolling mechanism is enabled.
    • The tools 'Get Circle Properties', 'Get Point Properties', 'Get Paraxial Rectangle Properties', 'Get Rectangle Properties', and 'Get Segment Properties' did not return an error, if incoming ROIs were of a wrong type. This problem has been fixed. Now the result 'Tool State' shows an error, if all incoming ROIs are of wrong type.
    • The tool 'Measure Circle' was inaccurate for small circles. This problem has been fixed. Now the radius correction has been improved.
    • The tools 'Measure Outliers', 'Measure Parallel Edges', and 'Measure Row Spacing' have had a memory leak in the easyTouch functionality. This problem has been fixed.
    • The tool 'Merge Image' returned tool state '[0;ok]' even if an error message was given saying that color and single channel images cannot be mixed. This problem has been fixed. The tool state now correctly signals an error state.
    • The tools 'Read Bar Code', 'Read PDF 417', and 'Read QR Code' have had a memory leak. This problem has been fixed.
    • The tool 'Read from File' may have falsely returned the error 'Parameter 'Text' does not support mixed types!' in the Output Console. This problem has been fixed.
    • When changing the parameters of the tool 'Read from Serial Interface', an error occurred. This problem has been fixed.
    • The tool 'Read Text and Numbers' did not return special characters like € as a result although they were recognized. This problem has been fixed. The tool has been extended by the new parameter 'Encoding' which allows to read fonts with different encodings.
    • The tool 'Stop Execution' did not return an error if the expression was empty. This problem has been fixed.
    • MERLIC tools did not check whether the provided calibration data was consistent with the size of input images. This problem has been fixed. Now, the user is informed via a warning if the calibration data is inconsistent with the image size.
    • It was not possible to enter a double value as parameter into a tool parameter using more than two decimal digits. This problem has been fixed. Now it is possible to enter 15-digit numbers and the connector extends and shrinks automatically according to the size of the number.
    • If a tool continuously returned errors and the tool message window was opened, MERLIC may have frozen in some cases. This problem has been fixed. Now the errors are collected and written into the tool message window once every 3 seconds.
    • If ROIs were manipulated several times while performing a training, these actions could not be undone. This problem has been fixed.
    • Some tools did not handle images correctly if they were no byte images.This problem has been fixed. Now, tools return an error if they receive an image with a non-supported pixel type.
    • If a tool with easyTouch was used and parameters were suggested while the mouse hovered over an object within the image, a subsequent tool was updated with the new values. This problem has been fixed. The subsequent tool is now only updated when a user clicks on the object and therefore confirms the selection.
    • If a value of the type 'double' was entered for a parameter that expected a value of the type 'integer', the floating point was simply removed and instead of e.g. 5.5 the value was set to 55. This problem has been fixed. Now the value is rounded to the nearest integer value.
    • If several tools from the category 'Filter' were used and the filter was applied to a previously selected ROI, the resulting image shows some undesired (white) artifacts at the border of the filtered area. This problem has been fixed.
    • In rare cases it could have happened that an inserted tool that supports a training was never executed. Then it was also no longer possible to switch the visualization between the processing image and the stored training images. This problem has been fixed.
    • If the content of a combo box or a text box of a tool parameter was selected for editing and the mouse cursor was moved outside of the editing box, the box closed in some tools. This problem has been fixed. Now the editing box stays open even if the cursor is outside of the box after selecting the text.

Examples

  • New Features
    • MERLIC has been extended by two C# example applications which show how to use the MERLIC Frontend ActiveX Control as a building block in Windows Forms applications.

Documentation

  • Enhancements
    • The documentation of the Frontend and server configuration has been improved. Now, it is described more clearly how the configuration settings can be defined and which properties can be used for the configuration of a specific channel type.
    • The documentation of the write lock for multiple Frontends has been improved. Now, the description of the write lock is placed in a new section and the write lock is described in more detail.
  • Fixed Problems
    • The documentation of the Designer widget 'OK/NOK' was unclear and did not contain the information that a 'good' signal is returned if the connected result value is not 0 and a 'bad' signal is returned in case the result value is 0. This problem has been fixed.
    • The reference documentation of the tools 'Read from Socket' and 'Write to Socket' contained the wrong information that socket handles are automatically connected. This problem has been fixed.
    • The documentation of the tool 'Evaluate Expression' contained some errors. This problem has been fixed.
    • The documentation of the tool 'Acquire Image from Camera' did not contain information that it is necessary to install a driver when using USB3 Vision cameras with a computer for the first time. This problem has been fixed.
    • The Quick Info for the tool 'Measure Point to Point' contained the wrong information that the measurement is only possible for exactly two points. This problem has been fixed.
    • The labels 'Condition not fulfilled' and 'End of Branch' in the tool 'Branch on Condition' were displayed in English if the language of MERLIC was set to Japanese. This problem has been fixed.

Installation

  • Enhancements
    • The MERLIC Installer has been improved. All installation options have been revised which led to following changes:
      • There is no longer a 'principle' or 'side-by-side' installation. These have been replaced by a 'main' and an 'additional' installation
      • The 'main' installation is always the highest version of MERLIC
      • Any other installation must be an 'additional' installation
      • Only the highest version of a major series can be updated (e.g. if you have installed a MERLIC 2.1 and MERLIC 2.2 version, only the version 2.2 can be updated.)
  • Fixed Problems
    • If MERLIC's update functionality was used, MERLIC crashed when the update installer was launched. This problem has been fixed.
    • If the Windows PATH variable became too long by adding the new path for MERLIC during the installation, a problem occurred since Windows requires a restart for such a situation. This problem has been fixed. The MERLIC installation now correctly suggests a restart.
    • After the installation, the 'Read Me' was not displayed correctly. This problem has been fixed.

Tool Development

  • Enhancements
    • The version information specified by the '_Info' procedures has been improved. Formerly only one entry for 'Compatibility' was possible. Now tools can also specify the entries 'ToolVersion', 'HALCONVersion', and 'MERLICVersion'. These entries are evaluated by MERLIC and will be used in future releases to decide about the compatibility of tools.
    • The framework for creating custom tools has changed. Tools do no longer use global variables to store their internal state. They now do this via new operators that allow to set tool member variables. The example tool templates have been adapted accordingly. Details about the new operators and procedures can be found in the 'Tool Development Manual'. Note that this change affects the compatibility. Read more.
    • The icon for new custom tools has been improved. Previously, a question mark was used, now custom tools can be identified by a toolbox icon.
  • Fixed Problems
    • If an MVApp containing a custom tool was loaded with a trial license, the error message did not contain the information which tool caused the problem and that a MERLIC Advanced Edition or Professional Edition was required to load it. This problem has been fixed.
    • If an existing category name was chosen for a custom tool and another language than English was selected, the tool did not always appear in the selected category. This problem has been fixed.
    • Custom tools with a training mode always returned a message for certain missing procedures (* _Train_Optimize, *_Train_MouseMoved, *_Train_MouseClicked). This problem has been fixed.
    • If a custom tool had a parameter with the semantic type (SemType) 'io_device', MERLIC crashed if the corresponding connector was clicked. This problem has been fixed.

MERLIC Engine

  • New Features
    • MERLIC has been extended by the MERLIC Engine:
      • It provides a .NET and C++ programming API to execute MVApps, set parameters, and read results in client software applications.
      • The MERLIC Backend has been extended by the ability to add parameters and results of an MVApp to the interface using the context menu. These disclosed parameters can be used by the MERLIC Engine.
      • There are examples regarding the usage of the MERLIC Engine. The examples demonstrate how to use the MERLIC Engine in a C++ or C# environment.
      Please refer to the MERLIC Engine Manual for more information.

Miscellaneous

  • The archiver which saves and loads the MVApps has been improved. When saving, it creates a root directory which has the same name as the MVApp and zips this directory. Within this directory all the files and folders needed by the application are stored. When unzipping the MVApp those files and folders are not individually placed in the current folder the MVApp is stored but neatly in the root directory.
  • If an error occurred, the MERLIC log file did not contain details of the error even though these were available and could be viewed in the Output Console. This problem has been fixed.
  • If the MERLIC help dialog was opened with incorrect arguments via the command line, the dialog opened but it would not close if the 'Close' button was clicked. This problem has been fixed. It is now possible to close the dialog and in addition the text on the button was changed from 'Close' to 'OK'.
  • Tool connectors having value ranges editable with help of a slider did not use the full sliding range for small ranges. Also, sliders for large negative ranges exhibited unintuitive behavior. These problems have been fixed.
  • The executables and dynamic link libraries of MERLIC were not digitally signed. This problem has been fixed. They are now signed with a certificate of MVTec Software GmbH issued by GlobalSign CodeSigning CA - G2 which is valid till 6.2.2016.
  • If the 'Minimum log level' was set to 'Information' in the 'Preferences' dialog, an 'Ok' message was written to the log file for every successful tool execution. This problem has been fixed. Now 'Tool State' messages are only written to the file if an error occurred. Additionally, the name of the tool in which the error occurred is written to the log file.
  • Messages in the log file and in the Output Console displayed time and date in a format that was too long and inconsistent with the selected locale. This problem has been fixed. Now the output in the log file is formatted in the following way:
    date;severity level;originator;"message";"details (if available)" where the date is formatted as follows: [YYYY-MM-DD hh:mm:ss.sss]

Known Issues

The following issues are already known and in development process. They will be fixed for upcoming releases.

  • If the widget 'Training' is opened in the Frontend via the widget 'Dialog' and the window of the dialog is closed, MERLIC crashes.
  • In rare cases, MERLIC may crash if the Frontend is loaded and MERLIC is closed.