LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

How to do a complete search of all LabVIEW project VIs?

LabVIEW seems to be lacking a complete and rigorous search facility. We need to search for something throughout our large LabVIEW project : examples, every caller of a certain VI, or a specific text string. This is often required as part of software development or bug-fixing activities

 

Comparing LabVIEW with other software development environments, the search facilities seem substandard. We find the results from LabVIEW searches are usually partial and unreliable, apparently because the scope seems to be restricted to in-memory VIs. Now, when searching, we are not interested in whether a VI happens to be in memory at the time of our search. Our application has many thousands of VIs, a significant proportion of which are dynamically loaded. We never have all VIs in memory at one instant.

 

Or is there some way to unconditionally search *all* VIs in a project? If not, NI need to look at enhancements if they want to make LabVIEW suitable for large-scale software application development.

 

 

Message 1 of 17
(6,853 Views)

PipT wrote:

 

Comparing LabVIEW with other software development environments, the search facilities seem substandard. 

 


I deeply agree with that, I think there are a bunch of ideas you could vote for on the LabVIEW Idea Exchange or post some new ones you feel like you've got a good one that's not already there.


We have two ears and one mouth so that we can listen twice as much as we speak.

Epictetus

Antoine Chalons

Message 2 of 17
(6,850 Views)

PipT wrote:

 

[...] if they want to make LabVIEW suitable for large-scale software application development. 


Somehow, folks have managed to use LabVIEW for large-scale software application development despite the limitations of its search function.

Jim
You're entirely bonkers. But I'll tell you a secret. All the best people are. ~ Alice
For he does not know what will happen; So who can tell him when it will occur? Eccl. 8:7

0 Kudos
Message 3 of 17
(6,843 Views)

Hi PipT,

 

As TiTou has already mentioned I think you should place this on the LabVIEW Idea Exchange as this is where National Instruments will look when wanting ideas for new features in LabVIEW. We are always open to good ideas and welcome posts on this forum.

 

Also as jcarmody pointed out, LabVIEW is/has been widely (and successfully) used for very large-scale software application development.

 

I wanted to ask though, when you open a project and use the general searching tool found in "Edit » Find Project Items..." do you not see all of the VIs you are searching for when they are sat in your project/folder/vi library? What do you mean by needing to have the VIs in memory? Also when wanting to find all callers or SubVIs of a particular VI can you not use the "right-click VI » Find » All Callers/All SubVIs" tool?

 

I look forward to hearing from you.

 

Kind Regards,


Larry Colvin
Associate Principal Engineer
Dyson Technology Ltd.

0 Kudos
Message 4 of 17
(6,805 Views)

I will give a concrete example of what I mean by "We find the results from LabVIEW searches are usually partial and unreliable".

 

This is what I tried. Opened a project which includes a VI called SetHealth.vi. This is called by (we believe) 50 VIs.

In the project explorer, Right-click on SetHealth.vi and select "Find->Callers". It pops up a window Find Callers of "SetHealth.vi", which has a message "List of callers:(Found 7 callers of "SetHealth.vi".)" It shows 7 VIs in the list.

Open "SetHealth.vi", "View->Browse Relationships". The "This Vi's Callers" menu is grayed out.

Open one of the caller VIs. From the SetHealth.vi, do the same "View->Browse Relationships". The "This VI's Callers" menu is now available. It shows the caller VI which I opened.

Open the main VI. It loads about 1700 VIs. From the SetHealth.vi, do the same "View->Browse Relationships -> This VI's Callers" It shows 50 caller VIs.

From the project explorer, right-click on SetHealth.vi and select "Find->Callers". It pops up a window Find Callers of "SetHealth.vi", which has a message "List of callers:(Found 7 callers of "SetHealth.vi".)" It shows 7 VIs in the list.


I also tested,
Edit -> Find Project Items...
Type "Health" and click 'Find' button.
Popup "Too many search results. Displaying the first 7 results." appears.
It shows only 7 VIs and files from the project in the list.

Message 5 of 17
(6,787 Views)

I'm trying to a similar search.  I know of an exact string that is unique (In this case a table name I call).  I do not remember how/where I created this vi.  It's on my computer, but I can't do a search to find text inside a vi that's not open.


I would like to see something like most common file search programs have . . . "Find Content" and search a folder to find the text content inside any vi that has this text.

 

I see this request was made nearly a decade ago.  Any luck in Labview to Search Vis in 2021?

0 Kudos
Message 6 of 17
(3,458 Views)

@Dhubbell wrote:

I'm trying to a similar search.  I know of an exact string that is unique (In this case a table name I call).  I do not remember how/where I created this vi.  It's on my computer, but I can't do a search to find text inside a vi that's not open.


I would like to see something like most common file search programs have . . . "Find Content" and search a folder to find the text content inside any vi that has this text.

 

I see this request was made nearly a decade ago.  Any luck in Labview to Search Vis in 2021?


Just use File Explorer Search with the Advanced option 'file content'

G# - Award winning reference based OOP for LV, for free! - Qestit VIPM GitHub

Qestit Systems
Certified-LabVIEW-Developer
0 Kudos
Message 7 of 17
(3,442 Views)

My first exposure to LabVIEW was a LabVIEW 7 Real-Time routine to study Sound Localization in human subjects.  This had about 1000 LabVIEW files (VIs and TypeDefs), plus a few VIs with the word "Tree" in their name.  These were simply files that contained subsets of the "real" VIs (and TypeDefs), designed only to bring these files into memory so that LabVIEW's Search could find them.

 

This seemed silly to me.  After about 4-5 years of LabVIEW experience, and starting my own development (one of the first being a complete re-write of this initial routine), I began to understand the utility of the "Tree" VI and have included them in most of my LabVIEW Projects.  I even designed a VI Template, complete with its own VI Icon, for them --

TEMPLATE Tree.png

 

As with the original LabVIEW 7 "project" (lowercase "p" to distinguish it from the yet-to-be-released LabVIEW Project structure), my larger Projects have a "Woods" of Trees, organized in functional (often hierarchical) units, with no single Tree having more than 150 VIs and TypeDefs included, some of which can, themselves, be Trees.  This works for me -- when I need to "Find All" (from within LabVIEW, which explicitly means "Use LabVIEW to find all "whatever" in memory, loading the Tree brings the "whatever" into memory.

 

Until something better is available, this works for me.  [Note -- for this to be practical, you really need to have VI Icons for all of your VIs and TypeDefs.  Unfortunately, the only TypeDef whose Icon you can view when the TypeDef is on a Block Diagram is, I believe, the Cluster -- I've had an Idea on the Idea Exchange, perhaps turned down, to extend this to other, maybe even all, TypeDefs, which would make the TypeDef "Tree" much more visually "useful", I believe.]

 

Bob Schor

Message 8 of 17
(3,426 Views)

Thanks, but File Explorer searching for string inside a vi doesn't work.  

 

I did find my vi I was looking for, but it wasn't from a text search.  It was exploring trying to remember where I placed it.  When you have 5,000 different vis, it's hard to remember every single string and where you placed it.


It would be nice to search inside of VIs for a string without having to open every single VI you've created.

0 Kudos
Message 9 of 17
(3,410 Views)

So I'm figuring over ten years later this issue still has no resolution, correct?

 

I'm trying to find a line of text that is somewhere in the project, I think.  Thus far LabVIEW's search...

 

Anyone solved this yet? 

0 Kudos
Message 10 of 17
(1,522 Views)