This package installs a DEBUG AF 4.1 for LV 2012 and later into vi.lib. For LV 2013, please check out Monitored Actors.
This is the same version of the AF that released with LV 2012 with one performance improvement and one new method ("Substitute Actor.vi"). It is fully backward compatible with version 4.0.
This version installs into vi.lib. Uninstalling will restore the original AF that shipped with LabVIEW.
This is the DEBUG FORK. That means this is a modified version of the MAIN FORK with modifications to support attaching a debugger that can track events in the actor framework and inject behaviors into actors.
Details about this debugger:
How to use the Actor Framework Debugger and How To Modify the Debugger For Your Tastes
Installing this package will modify your vi.lib\ActorFramework directory. Some of the VIs installed with LabVIEW will be modified.
Uninstalling this package will PUT EVERYTHING BACK THE WAY IT WAS.
The ability to debug the actor framework requires editing the framework VIs so that they expose hooks that the debugger can use to report details about what is going on in the system. Normally we advise against modifying vi.lib VIs. In this case, you are deliberately modifying the VIs temporarily while you do debugging and then reverting the changes out when you uninstall this package so you go back to the release version of the framework.
To use the debugger:
1) Install the package.
2) In the same app instance as your project, open this VI:
3) Modify the path in the path control to point to this LV class:
<vilib>\ActorFramework\DEBUG\AQ AF Debug Logger\AQ AF Debug Logger.lvclass
(If you have created your own debugger, pick the path to that class instead.)
4) Run the "Launch Debug Actor.vi".
You can start your actor project running before OR after launching the debugger. You can stop the debugger and restart it without shutting down your project. You can stop your project and restart it without shutting down the debugger.
The debugger that I provided at this time is named "AQ AF Debug Logger.lvclass". This debugger provides a log of events as they occur (actor launched, message sent, etc). I hope that in the future we have a graphical depiction of the actor tree and the messages as they pass among the actors. Anyone in the community want to tackle this? 😉
The deubgger also provides a way to abort all the actors. Currently it pops open the front panel so you can hit the Abort button manually. Why? Because calling the Abort VI method is, for some unknown reason, returning an error to me. I do not understand and I am trying to get info about that from Those Who Know Things on the LV R&D team.
The debugger is itself an Actor. That means that if you want to create your own debugger, you use the same skills that you use for extending any actor. Your debugger class should inherit from "DEBUG Actor.lvclass". Override the methods as you see fit. You may create message classes that your debugger class will send to itself using the message maker as normal.
If you want to instrument some portion of the AF that is not currently instrumented, you need to create a regular message class using the message maker and then make the following modifications:
1) Make the message class inherit from "DEBUG Message.lvclass"
2) Modify the block diagram of the Send VI to look just like the diagram of "Send Actor Launched.vi".
If you are interested in how the instrumentation was done...
1) Any VIs or classes that I added to the framework itself are named "DEBUG *.vi".
2) Any modifications that I made to the diagram of existing VIs are surrounded with sequence structures painted orange and have a comment with the word "DEBUG" by itself inside the structure.
I hope this helps your AF experience. And I hope others in the community are motivated to take this as a starting point and improve it. Post modifications to the community forum and if they're good improvements, I'll absorb them into the "official" version available on the READ THIS FIRST page.