MERLIC 5.5.2 Communicator Reference Documentation

MERLIC Communicator API

The Communicator is an SDK that enables you to implement plug-ins for use with the process integration mode of MERLIC, i.e., MERLIC RTE. It enables you to use any device of your choice for MERLIC RTE.

The Communicator provides an API and libraries with various functions for the implementation of such plug-ins. When the plug-in is started via the MERLIC Communicator executable, the Communicator runs as an independent process from MERLIC. As soon as the Communicator is started, its plug-ins will receive "events" from MERLIC to monitor the vision system and can post "actions" to control MERLIC.

This reference documentation provides a detailed description of the available actions and events as well as documentation of the available data structures and API functions of the MERLIC Communicator. In addition, some further information is provided such as the required specifications, how to get information about the recipe files and how to configure plug-in parameters.

To get more information about the Communicator in general, e.g., how to start the Communicator and a plug-in, take a look at the MERLIC Communicator Manual. Among others, you can get information about the provided example plug-ins that might help you to get familiar with the usage of MERLIC RTE plug-ins.

Implementing a Plug-in

The API itself is based around C functions which are documented in detail in the respective header file references.

For the implementation of a plug-in for MERLIC RTE, any programming language may be used which provides a foreign function interface (FFI) to C and compiles to native machine code. In particular, C++ may be used to take advantage of the platform-independent facilities provided by the C++ standard library, e.g., for multithreading.

The Communicator SDK also includes a support library which provides a higher-level C++ API on top. When using the support library, you do not have to work with the C API directly and writing tests for a plug-in is much easier. The support library translates the handle types of the C API either directly into C++ vocabulary types or into aggregate types which support value semantics. Further, the handling of failures through error codes returned from the C API functions is replaced by exception handling to promote branchless control flow. The example plug-ins provided by MVTec make use of the support library to demonstrate its usage and enhance their readability.

See the following topics for more information:

Prerequisites and Required Specifications

Get information about the prerequisites and the required includes and functions for the implementation of a plug-in. Get also information about the available capabilities of a plug-in.

Life Cycle of a Plug-in Instance

Get information about the life cycle of a plug-in instance.

Building an Example Plug-in

Get information on how to build a Communicator plug-in and how to provide it for the Communicator.

Getting Started with Plug-in Development

Get information on how to get started with developing Communicator plug-ins for use with the process integration mode of MERLIC.

Available Actions

Get information about the available actions that can be posted to control MERLIC.

Available Events

Get information about the available events that can be sent to monitor MERLIC.

Getting Information about the Recipes

Get information about how to query the list of recipe files and the parameters of recipes.

Plug-in Configuration

Get information about how to provide a plug-in configuration interface for the Communicator user.

Results

Get information about the available result formats and result images.

C++ Plug-in Support Library

Get information about the C++ support library that provides reusable abstractions and value wrappers around the C API's primitives to aid in the development of Communicator plug-ins.

Data Structures

Get information about the available data structures of the Communicator API.

Header Files

Get information about the provided header files and C functions of the Communicator API.