Communication between Plug-ins and MERLIC

The communication between plug-ins inside the Communicator and the vision system (i.e., MERLIC) mainly utilizes two FIFO First in, first out. queues, one for either direction:

Actions

Actions are commands from a plug-in to MERLIC which affect the state of the vision system, e.g., triggering execution, loading recipes, and so on.

These actions are queued by the various plug-ins and dealt with in sequence by the vision system. No immediate feedback is provided other than that an action was enqueued correctly. However, each action is assigned an "actionId" upon being queued which may be used to keep track of the events that are sent while the action is being processed. Actions can hold parameters, e.g., to specify the ID of the desired recipe in the "PrepareRecipe" action.

See the topic Available Actions in the Communicator API reference for a list of available actions and their respective parameters.

Events

Events notify the plug-ins of any changes of the active state of the vision state machine, available results, or alert the plug-in that an action could not be processed because it was invalid or because it is not applicable to the current state of MERLIC.

Most events are the result of an action, in which case they carry the respective "actionId". The Communicator holds a separate event queue for each plug-in. Every event is put into each plug-in's event queue, regardless of which plug-in issued the associated action. Plug-ins can then get events from their respective queues. Events can hold parameters, e.g., to transport the result data as part of the "ResultReady" event.

See the topic Available Events in the Communicator API reference for a list of available actions and their respective parameters.