Attached is a debugger/logger that I put together that I hope will end up being pretty useful in my own actor framework designs... and hopefully for you too (: One of my main gripes with the Actor Framework is how hard it is to follow the flow of the program and hopefully this will help some.
In essence, I wanted to have something that looks like a UML Sequence Diagram that is updated as messages are being sent. Columns are generated the first time an Actor is spawned and then the lifelines of the Actors are generated and terminated in their column.
Hopefully this is a good step towards what AQ mentioned on the DEBUG fork page. I would love if I didn't have to do it all in a multi-column listbox but it was the best I could come up with.
I am using Actor Framework 4.1 and it is all in LV2012.
1. Have LV 2012, Actor Framework 4.1 and the DEBUG fork
2. Unzip into a location of your choice (I have mine in the user.lib).
3. Open <vlib>\ActorFramework\DEBUG\DEBUG Actor\Launch Debug Actor.vi
4. Modify the path to point to the AF Sequence Diagram Logger.lvclass that you just unzipped.
5. Run "Launch Debug Actor.vi"
6. Run the program that you want to monitor.
Note: In order to work properly, the actors all need to be named. I changed the “Actor Name” input of the Actor Framework.lvlib/Actor.lvclass/Launch Actor.vi to be required so that I was forced to give names to all of the actors. This will keep the "Sequence Diagram" Lifelines understandable and working properly.
Through the right-click menu you can do the following:
1. Change the color of the message that is right-clicked on (based on the name of the vi called in the do.vi)
2. Choose to ignore the message that is right-clicked on in the future (useful if you have some logging or acquisition that repeats messages)
3. Open any of the vi's that are on the call chain to the message vi. (a convenient way to open higher level actor clone.vi's)
4. Manage the lists of colors and ignored messages
5. Abort all VI's (code from the default logger)
1. Not currently filtering out messages from the Logger, so when you right-click or double-click etc, that gets added to the Default Lifeline. (Version 1.0)
2. It can't keep up with a lot of messages. I tried it with the Measurement System example and it was able to keep up fine. I tried it with Simon's Windows 8 UI Demo and it couldn't keep up until after I added many of the UI updates to the Ignore messages list. I haven't done any extensive testing to see how long it will take to bog down when watching a framework with a lot of messages. Unfortunately it might not take too long because in order to have the right-click options available I have data tied to each row in the MCL which would grow to a very large array over time. If there is interest and it does start bogging down for people, let me know and I will add a no-right-click menu version with less overhead.
1. Now filters out messages from the Logger
2. Includes arrows pointing to the message recipient
3. Export to PlantUML. This generates a very basic diagram with a title of your choice. It doesn't show any messages being "received," but sequence diagrams don't really show messages being "received" so I left that out. Also, I just used brute force and no finesse in the coding because I was mostly just figuring out how difficult it would be. I plan on working more on this in the near future but it seemed useful enough in its infancy to warrant an upload.
4. Change font size. When I opened this on a new computer, the font was off and caused the arrows to not line up nicely. I added the ability to change the font size so that it can be optimized on a given computer so that things line up correctly.