LabVIEW Idea Exchange

cancel
Showing results for 
Search instead for 
Did you mean: 
0 Kudos
EngrStudent

Hierarchy paradigms - have more than one

Status: Declined

Any idea that has not received any kudos within a year after posting will be automatically declined. 

The layout of the tree is built around a rubric.  In programming we want more than one.

 

options:

  • make layers of the tree consistent with layers of vi.  In this a subvi of a subvi would be at layer 3.  If a vi has 12 subvi directly in it, then they all show up in the next layer. (no layer wrapping)
  • make layers of the tree consistent with use.  With sample data, or whatever run the VI several times, and emphasize the vi's that get the higher use.
  • some VI's are called by multiple layers in the tree - you might want to give them a different color.

I have a tree that looks like it is ~20 layers deep.  There has to be a better way to handle the extreme zoom-out.  When I print this the borders don't show up. 

 

I should be able to left-click an icon in hierarchy and select "show all connections" and get the same formatting as in the "find". 

 

The following is a trimmed and somewhat scrubbed subset, but it gives a basic overview of what I am given to work with.  You could make tools that make handling and simplification of this easier.

 

Also, you could make tools to suggest sub-vi's in a chain (single series, limited cyclomatic complexity) into a single sub-vi.  This is the meta-block diagram. 

 

Capture.PNG

 

7 Comments
EngrStudent
Active Participant

I can't seem to edit the original.  Sorry for the double.

 

The programs aren't a heirarchy (aka an acyclic graph), they can have cycles.  Graph algebra and methods apply here.

Consider this link.  The library there is GPL 2.0, so you can learn from it.  Consider also tools like neo4j.

 

It would be nice to have a "go back to calling vi" command when navigating projects comprised of hundreds of vi's.

 

I should be able to "select all callers" then remap around making that line clear/straight.

X.
Trusted Enthusiast
Trusted Enthusiast

You are not mentioning queues (actors?), dynamically called VIs, clones, parallel loops in VIs, etc.

I NEVER use the Hierarchy window. I find it absolutely useless, including for some of the reasons you mention.

EngrStudent
Active Participant

I wish that I could do something like "run the hierarchy against a folder of files, then the get a graph like the output of this.

 

## Place vertices on a circle, order them according to their
## community
## Not run: 
library(igraphdata)
data(karate)
karate_groups <- cluster_optimal(karate)
coords <- layout_in_circle(karate, order =
          order(membership(karate_groups)))
V(karate)$label <- sub("Actor ", "", V(karate)$name)
V(karate)$label.color <- membership(karate_groups)
V(karate)$shape <- "none"
plot(karate, layout = coords)

## End(Not run)

 I would like the lines across the circle to indicate weight of use, or latency, or such.Rplot.png

X.
Trusted Enthusiast
Trusted Enthusiast

BTW, this seems something that could be programmed externally (e.g. as a toolkit).

EngrStudent
Active Participant

@X - well that sounds sexy.  Where  can I learn more about making my first LabVIEW toolkit?

X.
Trusted Enthusiast
Trusted Enthusiast

I am no expert, but this would be simply a set of scripting VIs (to get the whole hierarchy) and some UI VIs to represent it the way you see fit. If you want to add your own menu items to LabVIEW, there are way to do that too so that it feels organic with the IDE (e.g. VI Analyzer toolkit). Publishing it as a toolkit distributed via the LabVIEW Tools Network would be the final step. I think all these steps are pretty well documented on the web (Google is your friend).

Darren
Proven Zealot
Status changed to: Declined

Any idea that has not received any kudos within a year after posting will be automatically declined.