The communication between communication plugins and the vision system, that is, MERLIC, mainly utilizes two FIFO queues, one for either direction.
When an instance of a communication plugin is added in the MERLIC Runtime Environment Setup (MERLIC RTE Setup), a new host process (merlic_communication_plugin_host.exe) is created for the configuration and execution of the plugin instance. Each plugin instance is processed in its own host process which is independent from other host processes. As soon as the plugin instance was started, it will receive "events" from MERLIC to monitor the vision system and it can post "actions" to control MERLIC.
Actions are commands from a plugin to MERLIC which affect the state of the vision system, for example, triggering execution, loading recipes, and so on.
These actions are queued by the various plugins 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, for example, to specify the ID of the desired recipe in the "PrepareRecipe" action.
For more information on the available actions and their parameters, see Available Actions.
Events notify the plugins of any changes of the active state of the vision state machine, available results, or alert the plugin 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". MERLIC RTE holds a separate event queue for each plugin. Every event is put into each plugin's event queue, regardless of which plugin issued the associated action. Plugins can then get events from their respective queues. Events can hold parameters, for example, to transport the result data as part of the "ResultReady" event.
For more information on the available events and their parameters, see Available Events.
Get information about the available actions that can be posted to control MERLIC.
Get information about the available events that can be sent to monitor MERLIC.