Documentation for LV 2012 and later is INSIDE LabVIEW
The Actor Framework is a part of LabVIEW since LV 2012. Extensive getting started documentation can be found by creating the Actor Framework template project (File >> Create Project... >> Actor Framework) and looking at the HTML files provided with the new project.
About This Document
- We've uploaded a lot of different documents to this web community to discuss the Actor Framework. This gives you a summary of the documents so you know where to start.
- You can use the shortcut URL to get to the Actor Framework community website: http://ni.com/actorframework
- You probably want to download and review the documents on this forum in this order. I'm posting this here because as we add revisions, the documents will be ordered in the forum "newest first", which isn't the most helpful for learning.
Problems running your AF code in the run time engine? Error 1634?
"Launch Root Actor.vi" and "Launch Nested Actor.vi" have an input to open the front panel. This input only works in the development environment In the run time engine, you will get error 1634. If you want to open your panels in the run time environment, you will need to either set your Actor Core.vi panels to be "run when called" in VI Properties or add an invoke node to call "FP.Open" somewhere. The input was added solely to support debugging.
Only the newest version of the AF is listed here. Older versions can be found in the complete list of Documents in this community site.
The framework is currently released for installation into LV 2011's user.lib and LV 2012's vi.lib. (The user.lib version can be used in LV 2012 but will lack integration with some native features of LV 2012.) There are three kinds of forks in each release path:
- Main: Anything in MAIN FORK will become a part of LabVIEW the next time LabVIEW updates its shipping version of the Actor Framework. All future versions of the Actor Framework will support all the functionality of the MAIN FORK.
- Debug: DEBUG FORKs are instrumented versions of the AF to support debugging. DEBUG FORKs are supposed to always be some version of the MAIN FORK but with debugging capabilities.
- Experimental: EXPERIMENTAL FORKs contain features that may not be stable and may be rewritten many times before they become part of the MAIN FORK (if ever).
LV 2011 user.lib Versions
(and the Message Maker patch that goes with it... this makes the earlier install of the Message Maker work with AF 4.1.)
LV 2012 vi.lib Versions
AF 4.1 for LV 2012 and later vi.lib DEBUG FORK <<< ONLY WORKS FOR LV 2012. NOT COMPATIBLE WITH 2013. Aristos Queue's first draft of a debug logger
For 2013 debugging, please take a look at.
Add-ons for Framework (Compatible with AF 4.x for either 2011 or 2012, and all later versions)
- Network Endpoint Actors allow you to link two actors running in separate application instances. This link is a short circuit of the usual Actor communication tree. In the intended use case, the actors reside in separate application instances, such as a host application running on a desktop computer and a target application running on a real-time system. Network Endpoints can use either network streams or TCP/IP as the underlying protocol, and you can add other protocols as needed. Network Endpoint Actors will eventually replace the Linked Network Actor (below). LabVIEW 2014 and later.
- Linked Network Actor uses network streams to create a peer-to-peer link between two already-launched actors. This link is a short circuit of the usual Actor communication tree. In the intended use case, the actors reside in separate application instances, such as a host application running on a desktop computer and a target application running on a real-time system. Linked Network Actor is suitable for both continuous and intermittent connections, such as a host which periodically connects to its RT target for monitoring. EXPERIMENTAL_FORK, also compatible with AF 4.0.
- State Actor Pattern is a behavioral design pattern that “allow[s] an object to alter its behavior when its internal state changes. The object will appear to change its class.” Use this pattern if an object must change its behavior based on its internal state (i.e. if the class has two or more modes of operation such that the mode change alters the behavior of most of the class methods). This pattern lets you avoid adding case structures that test for mode to all of your VIs, generally making for more maintainable code.
EXPERIMENTAL_FORK, requires AF 4.1
- use VI Server to enable distributed computing. By simply adding a new version of Launch Actor.vi that includes a new Application Instance refnum, an actor may be launched remotely or locally and the two actors -- caller and nested -- do not have to change any of their code. To the actors, it is totally unknown whether their queues are on the same machine or are being redirected to a remote machine. Provided that an actor has been designed to use no other communication other than the queues (which is emphatically recommended by AF designers), an actor tree may be deployed over many machines dynamically as new computing resources become available. Note that the current network code is blocked by firewalls -- anyone wishing to undertake rewriting the code using TCP primitives to deal with reversed opening of network connections would have the community's gratitude. Requires experimental fork 4.3 (fully backward compatible with all the other 4.x branches).
- The Actor Framework Project Provider This project provider adds a number of useful Actor Framework wizards to the right click menus of your LabVIEW project. It includes the functionality of the Actor Framework Message Maker that currently ships with LabVIEW, and adds the ability to make zero-coupled messages. You can also more easily add actors to a project. You access all of these features through right-click menus in your project. Now ships with LabVIEW 2015 and later!
- VI Analyzer Tests for Actor Framework contain links to VI Analyzer tests for concerns specific to Actor Framework.
Documentation and Learning Tools
- New Course Offering: Actor-Oriented Design in LabVIEW This three-day course is the most comprehensive introduction to Actor Framework currently available.
- The NIWeek 2012 Hands-On Session Far and away the most complete step-by-step walkthrough of the Actor Framework. This hands-on session takes 2-3 hours to finish, but comes in smaller, bite-size chunks. You'll build an actor, build a message, connect them to other actors and from there build up a fully functional application. Includes the tutorial manual and the VIs. Compatible with AF 4.x.
- Using The Actor Framework.pdf The original whitepaper that goes into the details of why the AF works the way it does and many of the useful tricks for any AF expert. Notably, it discusses some techniques for debugging such applications.
- Calling Actors From Non-Actor Code: Two Ways Shows two different methods for integrating non-actor code and actor code together so you can refactor just part of your project to use actors.
- Web cast video: Introduction to the Actor Framework, recorded by Stephen Mercer and Allen Smith. Although recorded for AF 3.x, everything in the video is still valid for AF 4.x except the icons have changed.
- Actor Framework.pptx The introductory-level presentation we gave at NIWeek 2011 and 2012
- Eli Kerry's NIWeek 2012 exploration of the advanced project templates, with heavy focus on the AF template and how to build customizations of the template. Includes link to video of the presentation.
- LV Class Method Viewer Tool A completely optional add-on for LabVIEW Quick Drop that is nice to have if you do any OO work in LV, regardless of whether you use the Actor Framework or not.
- Want to build your own EXPERIMENTAL fork of the Actor Framework and be able to share it with the community? Install the "Build Your Own Fork Of The Actor Framework" package, which gives you an isolated version of the files to build from and the already built VI Package Manager data base files needed to create a package that installs and uninstalls correctly.
- AF 3.0.7 for LV 2011
- Actor Framework Automated Message Class Creation Tool (version 3.0.7) The Message Maker scripting tool that Allen demoed at NI Week.
- Actor Framework Automated Message Class Creation Tool SUPPORT FILES Support files that you need in order for Message Maker to work
- NI Week 2011 Demo The demo files that go along with the presentation. Running this demo requires the earlier version of the framework (2.0.2)
- Angry Eagles Demo The actual code underlying the Angry Eagles demonstration done at the NIWeek 2011 Tuesday keynote (think "Angry Birds" but with an NI twist) that, unbeknownst to the audience that day, used the Actor Framework heavily.
- Measurement Abstraction Layer and MVC with Actor Framework - This sample project demonstrates a framework for a measurement application that abstracts the definition of a new measurement and interfaces with hardware using multiple abstraction layers. It also illustrates an approach for isolating the code responsible for the user interface through the use of a model-view-controller approach.
- Feedback Cooler Demo for AF 3.0.7. Another demo of the framework -- more real-world, which means it is both more complete and more complex. (I plan on making further refinements to this demo in the coming weeks, but there has been a lot of request that I get this demo working with 3.0 and save my refinements for later. This is essentially the same demo shown at NI Week 2010.)