LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

How to manage with complex interfaces

Hello,

 

in order to improve my coding ability with labview I need a suggestion on how to manage and update complex interfaces. I had reached good coding ability in modularity and my VI seems pretty ordered. My problem is: how can i manage complex interfaces update in Sub VI? 

My solution is pretty simple but very ugly, i often define a type def cluster containing all the reference from my main front panel and pass it through the sub vi. I obtain something like this:

Immagine.jpg

 

And this is not a good programming style. Solutions? Maybe use the Sub Panel is the best way?

 

Thank you in advance!

 

Francesco

0 Kudos
Message 1 of 14
(3,838 Views)

Can you post a screenshot of what your UI looks like?

From the names of the controls/indicators, it looks like you have some repetition (1, 2 and 3) which would be a good use case for using SubPanels. If the panels have the same functionality, then you could use a single reentrant VI and launch 3 instances of it which go into the subpanels (or you could have a 'selector' like a tab control if you don't want to display all 3 at once).


LabVIEW Champion, CLA, CLED, CTD
(blog)
0 Kudos
Message 2 of 14
(3,817 Views)

Well, you don't provide your VI, so we can't look at your Front Panel, nor can we "play" with it to try out possible solutions (it is almost always a good idea, meaning helpful to you and helpful to us, to attach the VI in question, not a picture).

Something that I noticed was a "bunch of identical" "clusters" of controls.  "Bunch of identical" makes me think "Array", while "cluster" makes me thing "Cluster".  You could think about grouping Start, Stop_Task, Info, Busy, Info_B, Sub_A, and Sub_B into a single Cluster (you might need two clusters if some are controls and some are indicators, hard to tell from the picture).  Then create an array of three of these Clusters.  Presto, you've simplified things a lot, and potentially need only a single reference to the Array.

 

Bob Schor

0 Kudos
Message 3 of 14
(3,815 Views)

Thanks guys. Both of you have reason, the gui is for a three stations programmer which need to display the results from three tasks made from a reentrant VI. So yes, i think it's best to manage this with a sub panel. Even if i group togheter the controls i always have to send it to the sub VIs, but if i instead use sub panel all the controls are managed inside a single sub vi so it will be simplier. Think i must go and search for a good guide to the subpanel.

0 Kudos
Message 4 of 14
(3,799 Views)

I'm curious... why do you think your method is bad programming?  I've seen this method used quite often, and I really can't see how else to make an "init" subVI.  You might consider running the cluster of refs into a FG for convenience, but I think the idea itself is sound.

 

The real trick, as mentioned above, is to organize your FP controls into arrays and clusters so you don't have a hairball.  😉

Bill
CLD
(Mid-Level minion.)
My support system ensures that I don't look totally incompetent.
Proud to say that I've progressed beyond knowing just enough to be dangerous. I now know enough to know that I have no clue about anything at all.
Humble author of the CLAD Nugget.
0 Kudos
Message 5 of 14
(3,778 Views)

Because i was able to create (or at least i think.... Smiley Wink) a well ordered and clean block diagram and in some manner the "baloon" on the left seems a little to clumsy.

The second reason is because I spend too much time to rebuild the front panel with new controls, that need to be managed, despite the fact that i already done this in the Sub VIs. Immagine.jpg 

In the above image you can see the main interface cycle, the event structure inside, and one of the three sub loop containing the code for one programming site.

0 Kudos
Message 6 of 14
(3,755 Views)

By the way, what do you mean with FG, Functional Global? Can you explain better?

 

Thank you.

0 Kudos
Message 7 of 14
(3,745 Views)

Hi,

 

what do you think of creating a cluster of front panel elements instead of a cluster of references?

You could access the single element of the cluster passing to the subVI only the cluster reference and then accessing the single elements with property node

 

Regards

0 Kudos
Message 8 of 14
(3,730 Views)

This is a good idea to ordering the block diagram but limit the possibility of the user interface. Clustering controls means graphicaly grouping them all together. Maybe there is a way to hide the cluster border and background?

0 Kudos
Message 9 of 14
(3,722 Views)

Yes, that is possible - but if I were you I would be more inclined to go down the subpanel route.

 

Clusters are best used as structured data types and not for UI elements - for example, if you register for a value change event, you can only register for it on the whole cluster, which means you need to then work out which item inside the cluster has changed and it just gets messy.

 

I did also ask if you post a screenshot of your user interface (or what you'd like it to look like...) - there might be some further suggestions to help you implement it.


LabVIEW Champion, CLA, CLED, CTD
(blog)
0 Kudos
Message 10 of 14
(3,713 Views)