Hi all,
Using LabVIEW 2013 (32 bit). Taking my first foray into LVOOP and I'm currently designing our user input. This User Input VI is dynamically dispatched. The goal is to allow to user to "mix and match" different pieces of the application as much as possible. The application is for a controller of a biological system. In particular, we have the notion of a "Controller", a "Model", and a "Patient". Patients all carry the same characteristics, but controllers and models only share an external interface. Some controllers may control to a set point, some to a range, some to a set of ranges depending on the time and current state of the Patient. As such, I'd like to have some sort of dynamic dispatching going on during the user input phase. The way I thought to do this was via subpanels, with a tab control to allow the user to jump between different parts of the setup process.
Here's a mockup of the User Input front panel:
http://i.imgur.com/sMZ7xFD.png
So if you have a certain controller, that controllers UI panel would show up in a subpanel, via some sort of dynamic dispatch. This would allow you to seamlessly switch between controllers and still have a consistent User Experience, eg controller 1 may have you choose a range to control to (two digital numerics), whereas controller 2 may have a set point to control to (just one numeric), like so:
http://i.imgur.com/6QpKXco.png
http://i.imgur.com/u2mla8N.png
You can assume that we have access to the instances of the Controller class, the Patient class, and the Model class at this stage for dynamic dispatching.
When I tried to implement this, I ran into problems:
http://i.imgur.com/2ZZqdka.png
The error that occured is: "Call by Reference: refers to a dynamic member VI; The connector pane of the strictly typed VI reference input includes a dynamically dispatched terminal, which means it is part of a method of a LabVIEW class. Dynamic member VIs are not supported by the Call by Reference node in this version of LabVIEW."
I understand the problem, maybe this is too much overhead for LabVIEW to handle cleanly, but is there a way for me to maintain the "niceness" of dynamic dispatch in this particular instance?