Messenger Library, a free package on the LabVIEW Tools Network, is an extensive library for passing messages between parallel processes. Simplifies communication, by allowing the message sender to use any method provided by the receiver. Supported communication methods include simple queues, user events, and notifiers, as well a more complex channels such as a TCP server and client. In addition, one can configure simple forwarding addresses (“Observers"), which can send messages to multiple destinations, optionally with modifications such as adding a prefix to the message label, relabelling, or substituting a different message.
Messaging patterns supported include request-reply (asynchronous or synchronous), where the reply is sent to a "reply address" attached to the request, and register-notify, where one process sends a registration message to another in order to subscribe to a series of updates. Also supports scatter-gather, the gathering of replies from multiple senders into an array of messages.
An option framework for dynamically-launched VI "actors" is also provided, including example templates, which can be accessed via the Tools menu (from an open Project, select Tools>>Messenger Library>>Create Actor from Template..). An "Actor Manager" debug tool is also installed under the Tools menu.
Please note that this package has nothing directly to do with the NI Actor Framework (other than both packages are influenced by the Actor Model).
Youtube Instructional Videos on an example project
- Messenger Library: Quick Introduction (and Added Comments)
- Actor to Actor Communication
- The Controller-Model-View principle
- Recurring Event Methods
- DEV Template Event and Message Handling
- Asynchronous Dialogs
- Notification “Hookup” of a dynamic actor (and generic messages)
- Messenger Library and TCP
A great summary of many Messenger Library sources, provided by Bob W Edwards.
Compatible LabVIEW Versions: >= 2013.
This Package depends on this other package: JDP Science Common Utilities, Cyclic Table Probes, JKI Statemachine, OpenG Zip Tools