About This File
An extensive library for passing messages between parallel processes. Generalizes the communication method, allowing the message sender to use the method provided by the receiver. Supported communication methods include wrappings of 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.
Communication 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).
***Introductory Videos are on a YouTube channel.***
***A great summary of many Messenger Library sources, provided by Bob W Edwards***
JDP Science Tools group on NI.com.
Original conversation on this work is here.
Now hosted on the LabVIEW Tools Network (but note that the latest version will often be on LAVA)
***NOTE: latest versions require VIPM 2017 or later to install.***
What's New in Version 1.4.0.56 See changelog
Released
- *Rewrite of internals of Observer Registry for speed
- *Examples cleanup and place under Example Finder
- *NOTE! Observer Register Behavior change: now notify even if state unchanged.
- *Partial use of NI VariantType library in place of OpenG (fast ot LabVIEW 2013, but slower in 2011). Use Conditional Disable Symbol "OpenG_VariantTools"="True" to retain use of OpenG.
- *package NAME CHANGE to "Messenger Library" (internal directory names retained as "Messenging" for back compatability)