LabVIEW Idea Exchange

cancel
Showing results for 
Search instead for 
Did you mean: 
FraggerFox

Keep only the SubVI visible with an option to go "Up the hirearchy"

Status: New

This idea comes from my experience in Simulink.

Suppose we have a hirearchy like this:

Main.vi---->Subvi1.vi---->Subvi2.vi

 

Now, if you are at "Main.vi" and you want to see what is there in Subvi2.vi, the normal procedure would be:

1) Open Main.vi Block Diagram

2) Open Subvi1.vi Frontpanel and Block diagram

3) Open Subvi2.vi Frontpanel and Block diagram

 

So now, we have three front panels and three block diagrams, a total of six LabVIEW windows open in front of us. If the application is more complex, the number of these "LabVIEW VI windows" would be even more, which makes it difficult to transition within SubVIs. Some would use the method of "Find All Instances" to find its place directly in the caller VI, but that is not good if you have multiple instances of SubVIs being used in your program.

 

My idea is, why not have a Single LabVIEW Front Panel and Block Diagram window, where we have a "UP" control, like the one in windows explorer, where we keep on moving between SubVIs just like any other folder in explorer, like the way it happens in Simulink?

 

So it would be something like this:

 

When you are inside the SubVI, a "Up" arrow should appear, as shown in the image below:

 

Main.JPG

up.JPG

 

 

I am not sure how much this idea is feasible to implement in LabVIEW, but it would certainly be a nice feature, given it reduces the confusion with multiple open VIs when a SubVI BD is opened which is lying deep inside the hirearchy level.

-FraggerFox!
Certified LabVIEW Architect, Certified TestStand Developer
"What you think today is what you live tomorrow"
3 Comments
altenbach
Knight of NI

Unless I misnuderstand, this is in some ways related to the declined idea discussed here.

 

I would not be able to work this way, because I need to see several diagram at the same time. (I know some people maximise all their diagrams, but that's more for single-tasking thinkers. It gives me tunnel vision, I need to see more than just a single thing at a time. :D)

 

We have plenty of navigation help to get anywhere we want. Have a look at the project window of LabVIEW as well as all the tools built in the OS, e.g. the task bar. These are sufficient for me.

 

Also, remember that a subVI could be called from several places, so UP might be ambiguous unless you are strictly talking about pure navigation in the edit session. Should it prompt for "save changes" every time you go "up"? What if the diagrams have vastly different size? 

dthor
Active Participant

Not a bad Idea. Perhaps a CTRL-DoubleClick on the VI opened it in the same window as the current one. It'll keep the previous VI(s) in memory, as is standard, and users will still have the option to open the VI in a new window with standard DoubleClick.

 

Now, questions:

1. Lets say you have your main VI's FP and BD open. When you open a subVI with this method, are both front panel and block diagram windows switched to the newly opened VI? Meaning, are they linked together? If you go "up one level" on a FP, does the block diagram also go up one level?

2. Would there be a "Window History" where a user could, after going up N levels, get back to the same VI with, say, a dropdown menu?

3. What happens if a VI has multiple parents? Which parent is called with "Up one level", and how can LV determine that? It sounds like this would only work if you went from the toplevel and opened up all the way down to the subVI you wanted to work on. If you open the subVI directly from your project, it might not be possible to go "up one level"

FraggerFox
Active Participant

@dthor:

1) That's correct, BD and FP should be linked together, however, someone could suggest a more better idea on this one.

2) I am not sure if this feature would help, however, my intention of expressing this idea was to make the interface similar to Simulink, where if we open a subsystem (subVI in LV terms), it opens up in the same window and we have the option to go "up" to the parent.

3) If a VI has multiple parents, it determines the "up" flow by hierarchy. So if we have the calls like A.vi-->Subvi.VI and B.vi-->Subvi.vi, if we open Subvi.vi from A.vi, the "up" button would take us to A.vi. In short, LV just needs to remember the hirearchy through which the SubVI was opened. And yes, if there is no parent to a vi, going "up" would do nothing, or it might simply be disabled if it doesn't have a parent.

-FraggerFox!
Certified LabVIEW Architect, Certified TestStand Developer
"What you think today is what you live tomorrow"