03-27-2013 05:21 PM
Currently, I do the following basic steps.
1. Change the connector pane
2. Update Send, Class Private Data, DO VIs separately.
But this is very time consuming. Any advice?
Solved! Go to Solution.
03-27-2013 05:28 PM
It's the ugly downside of boilerplate-heavy frameworks. Your class's public interface was a single VI conpane, but now it's three conpanes (Method.vi, Do.vi, Send.vi) and a class (Msg.lvclass). Generating this code is automatable, but modifying it still takes manual labor. And if you propagate a message through the actor hierarchy, with each actor receiving its own copy of the same message? I hope you're billing hourly...
Frankly, we need more tools like the AFMM to make this modification through Scripting. They don't yet exist.
03-27-2013 05:32 PM
You can use GOOP Development Suite's Actor Framework support 🙂
This was the first limitation I saw in the Message Maker, so I added this in GDS, so now I just right click on the VI and select "Update VI's Message Class".
http://lavag.org/topic/16293-goop-development-suite-v45-is-released
http://goop.endevo.net/GDS/videos/GDSFeatures4v5/
Cheers,
Mike
03-27-2013 09:58 PM
I would advise getting in the habit of making your messages use typedefs. You might even have a cluster with just one control in it to begin with.
Casey
Phoenix, LLC
CLA, LabVIEW Champion
Check Out the Software Engineering Processes, Architecture, and Design track at NIWeek. 2018 I guarantee you will learn things you can use daily! I will be presenting!
03-27-2013 10:49 PM
CaseyLamers1 wrote:
I would advise getting in the habit of making your messages use typedefs. You might even have a cluster with just one control in it to begin with.
I have to chime in and recommend, based on grim experience, that he only do this if the typedef does not belong to the actor's lvlib or lvclass. If it does, it'll link that actor to every other that uses the typedef and force the entire hierarchy to be loaded into memory (and to be recompiled on a change) when any one is loaded or modified. In large applications like the one I'm working on now (1000+ VIs, 50+ classes), it quickly becomes a total nightmare to modify any existing Actor or Message.
03-28-2013 04:21 PM
CaseyLamers1 wrote:
I would advise getting in the habit of making your messages use typedefs. You might even have a cluster with just one control in it to begin with.
Yeah, I have to wave people off of the typedef option. It's not the panacea you might think it is. And clustering your inputs as a single element just makes the Send.vi harder to use.
It's nice that Mikael has the rescripting support. Wish we had that in LV itself.
03-28-2013 06:21 PM
I like the idea of automatically updating the message VIs. I wish LabVIEW does something similar to dynamic dispatch VIs as well. Maybe by right clicking on one of overriding VIs and select 'Apply Parent VI's Connector Pane' or something like that