Home > Community > Discussion Forums

LabVIEW Idea Exchange

Showing results for 
Search instead for 
Do you mean 
We've turned on a search before post feature in the LabVIEW Idea Exchange. This new feature will help cut down on the number of duplicate ideas in this space!

The NI Idea Exchange is a product feedback forum where NI R&D and users work together to submit ideas, collaborate on their development, and vote for the ones they like best. View all of the NI Idea Exchanges to post an idea or add your opinion on an existing one today!
New Idea

Sub VI without Front Panel

Status: New
by Member Qizhen ‎02-08-2010 09:11 PM - edited ‎02-08-2010 09:13 PM

In most of the cases, front panel is not use for a subVI, but it always disturbs me be opening too many windows.  So, there should be a new kind of VI that only have a block diagram.  Terminals could be designated on the block diagram.



帖子被Qizhen在 02-09-2010 11:13 AM

TreeView probe

Status: New
by Active Participant Benjamin_C on ‎02-08-2010 02:28 PM

We all use clusters and arrays of clusters to represent complex data. With LabVIEW, it is practical to build a cluster to represent the data in memory and shape it to display it on the front panel. Using the same object (control or indicator) to display the data on a graphical user interface and to store the data in memory avoids overloading the memory and simplifies the code.


But most of the time, all the data don't need to be shown on the front panel! Some elements need to be hidden. If we use a probe to check the content of such a data structure for debugging purpose, LabVIEW just shows the control as it is supposed to be displayed on the FP. The hidden elements are not visible!


Here is an example of a probe put on one of my data structure (array of clusters) :




And here is the equivalent representation in a tree view. On the first column, the labels. On the second column, the values.




What is your prefered representation? 


PS : Such a tree view representation can "easily" be obtained from a control reference or from an XML string (with the Flatten to XML VI). Nevertheless, the Flatten to XML VI returns an error when it encounters strings with accentuation.


I have noticed that Property Nodes for certain numerics do not properly store Range Properties as the native datatype of the control, but rather stores them as DBLs. I have attached the screenshot to illustrate my point:




Notice the first Numeric's datatype is a DBL, and therefore you see no coercion dots for the Range Properties or the Value Property. The bottom two examples show I32 numerics, which have the proper datatype for the Value Property, but have the wrong DBL datatype for the Range Properties.


I propose that the Range Properties should reflect the datatype of the Numeric, just as the Value Property does!


(This may affect other Property/Invoke Nodes besides Range... please list any other datatype inconsistencies you may find in the comments.)

Saved Searches and Results

Status: New
by Active Participant Jim_Kring Active Participant on ‎02-08-2010 11:33 AM

I'd like to have the ability to save a LabVIEW search (Find), with some commonly used parameters.  It might be nice to choose between saving the search globally, or in a project.


Also, I'd like to be able to recall recent search results.  Often, my searches are hierarchical: I search for some high-level stuff and then do a more specific search.   I don't want to lose my high-level search results, when I drill down and do a more low-level search (for example, the low-level search might be fruitless, so I need to go continue on with the rest of the results from my high-level search).

More function in the TDMS API.

Status: New
by Active Participant EricC. on ‎02-08-2010 10:37 AM

More function for tdms file.

The tdms files are a very good way to record data on disk, but some usefull function aren't present.

- you don't can delete a channel or a group or a value or a property
  Exemple : You add the measurment in the group 'raw data', channel 'volt'.
  In the group 'calculate data', you add the channel 'filtered volt'
  You change the filetring parameters. You wan't to replace the channel 'filtered volt' with the new data, but you don't can easy replace the old data (channel 'filtered volt')

  You must copy all data in a new file without the channel 'filtered volt' befor you can add the new calculation.


- you have only 2 hierarchy (group and channel). More should better ?
exemple : 'acquisition\device name\channel name\acquisition number'

A full ZIP API

Status: New
by Active Participant EricC. on ‎02-08-2010 10:08 AM

Having a complete API for zip file

Currently it has :
- New zip file
- Add a file to zip file
- Close zip file and add a comment
- unzip the zip file to a folder

This API is not quite complete.

Example of use of ZIP files: In a data streaming application, you want to make an archive of recordings files. The data files average 500 MB Once compressed, they do more substantive than 50MB. You create an interface to assist the user in steps of compression. Once compressed, you want to propose an interface for retrieving compressed recordings.

The ideal is to list the files and clarify some information, such as track number, recording time and a few other indicators related to data.

But to do that, we 'could' use two ways:
- The properties of the zip file.
- An additional file that would read that to see them.


Several problems arise:
- It is not possible to read the commentary added with the close function.
- It is not possible to edit the commentary added with the close function.
- It is not possible to decompress a single file.
In the example, if we unpack all files to read properties, it'll take time and a lot of CPU resources.


It would require full management functions:
- New file
- Close file
- Add a comment
- Read the comment
- Erase the comment
- Add a file
- Delete a file
- List all file (with or without a mask)
- Uncompress a zipped file to disk
- Uncompress a zipped file to memory

- compress and uncompress a string in memory (usefull to optimise the network data flow)


In the ideal case, a zip file should be considered a folder. So we have all classical file functionality to manage it.

Decorations With Drag-and-drop Behavior

Status: New
by Active Participant Manzolli Active Participant on ‎02-08-2010 07:07 AM

It would be nice have the drag-and-drop behavior in some box type decorations that will place a control inside it, just like Clusters. Can have also the same options to organize (AutoSizing: None, Size to Fit, Arrange Horizontally, Arrange Vertically). Nowadays, if we want to to have some graphically grouped controls, basically we have to:


  • Organize the controls
  • Place the decoration
  • Move the decoration to back
  • Resize the decoration to "hold" all controls
  • Select all
  • Group

I the proposed way:


  • Place the decoration
  • Resize the decoration
  • Drag-and-drop the controls in their definitives positions

If a control needs to be added to the group, nowadays we have to:


  • Select the group
  • Ungroup it
  • Place the new control
  • Sometimes select the decoration and send it to back
  • Group again

In the proposed way it will need only one step:


  • Drag-and-drop the new control 

In the application "1D Fourier Interpolation", an example that comes with LabVIEW, try to move the decoration that embodies the "Data Generation" controls. With the proposed idea they would move all together.

There is another gain: nowadays the Group, Ungroup and Move To Back operations are only accessible via toolbar drop-down menu.



Another behavior that I find annoying isthe way LabVIEW manage the tabbing order with cluster.


Imagine a front panel with clusters (I thinkthat this is not unusual and that you will have no pain to imagine this). If acontrol embedded in a cluster has the key focus, the TAB key will only give thefocus to controls of this cluster. It is impossible to navigate outside thecluster!


In the following front panel I wouldexpect the following sequence when tabbing: Cluster_1.String_1 -> Cluster_1.String_2-> Cluster_1.String_3 -> Cluster_2.String_1 -> Cluster_2.String_2-> Cluster_2.String_3 -> Cluster_1.String_1 -> …

(According to  the cluster tabbing order)






Key navigation is essential when a PC isused in an industrial environment that limits the use of the mouse (rackedsystems on production lines, temporary connection with a laptop to an RT target, etc.).


One lack is the impossibility to associatea simple shortcut key to a Boolean control (CTRL+S for example).




Of course we can catch the key down event in a newcase of an event structure. But, we then have two cases forone action (one for the shortcut key and one for the Boolean value changed),what is not practical.


In addition, since LV 8.0 (I guess!) it is notpossible to underline one letter of a Boolean text to stress the shortcut keyassociated with the control.




From my point of view, this is an essential fonctionnality of any development system.


Improve Tree Control Performance

Status: New
by Member SWalpole on ‎02-05-2010 01:33 PM

Populating the Tree Control with items takes very long time.  I suggest improving the performance of a tree control.  Many other applications have tree controls that are populated in a small amount of time, so it should be possible with LabVIEW.


I know of three ways to populate a tree control.  The first is to individually add items using the Add Item invoke method.  This method takes a very long time.  Adding 15,000 entries took over 180 seconds.


The second way is to use the"Add Multiple Items to End" invoke method.  This took over 20 seconds for 15,000 entries.


The third way is to programatically respond to the user expanding an item in the tree and populating only as necessary.  I assume that this is fast, but it seems like a lot of work to do every time a tree control is used that could have a lot of items. Maybe LabVIEW could improve performance by using the third approach internally for the programmer. 


Currently I am hesitant to use a tree control because of performance.  LabVIEW is a great product, and making the tree control perform better would improve LabVIEW even more.


Actualy when we select a cluster Bundle or Unbundle when you hit ctrl-f you get this find dialog:

SelectClusterBundle.png  CTRL-F -> FindClusterBundle.png


What I want is to select the text in the cluster and get text Find dialog:


SelectClusterElementName.png CTRL-F ->¨FindClusterElementName.png


Plus... that should work for Property Node and Invoke Node

Search Code Comments within VIs

Status: New
by Trusted Enthusiast Trusted Enthusiast on ‎02-04-2010 05:26 PM
I don't know if this has already been posted but I didn't see it when searching. I'd love to be able to search Vis in a project for text such as comments and see which VI it was found in. Often I will initial something I worked on, or leave tags to remember to go back and fix or modify something, but can't remember which VI I left it in. With text based languages this is obviously easy, you can just do a grep on linux or a search on windows. It would be nice to do with LabVIEW though. If there is already a way to do this, let me know cuz I could definitely use it!
If you have messy "future" or "obsolete but we are being risk-averse and keeping it around" code in the Disabled state of a Diagram Disable structure, VI Analyzer reports test failures for such code, in my opinion cluttering results.  It would be great to have an option, perhaps in the "Select Tests" page of the setup wizard, to ignore any such code.

Custom size of Images in Tree Control

Status: New
by Active Participant Mark_Ramsdale on ‎02-04-2010 04:12 PM
I would like to see a feature where the size of the tree images can be set by the developer.

When I am searching for occurrences of a particular items in my application, I often run into this issue: The search feature only allows you to search for text or a type of object, but not both.  If I need to find a particualr VI Server method call, I can either search for all invoke nodes (which returns WAY too many to sort through) or I can search for the text in the method name, and end up with results that have nothing to do with invoke nodes.

What we need here is the ability to specify multiple search criteria and logical operators to tie them together.  So, I could do a search for invoke nodes with the text 'Abort' in their name.  This would be a big help in large applications as well as those that use a lot of VI Server or .NET code. 

When creating an installer for a built LabVIEW application, it is very difficult (see here) to include an additional 3rd party installer (such as a device driver or application that your built application depends upon).  What I'd like to see is a solution that treats 3rd party installers as first class citizens.  I'm imagining a new "Additional 3rd Party Installers" page of the Installer build specification properties dialog.


2-3-2010 1-35-27 PM.png


This page might look something like the one in the screenshot below, allowing users to add a folder that contains the 3rd party installer files and define a command that is run inside that folder during the install process.


2-3-2010 1-41-08 PM.png


When LabVIEW builds the installer, it would suck the additional installer folders into the main installer and, after installing your app files and the additional NI installers, it would sequencially extract your additional 3rd party installers into a temp folder and then execute the command line to run.  This is a pretty simple scheme that would really simplify the process for end users.


I'm sure I didn't address every issue of this use case, so please, everyone, feel free to add your own ideas.  I'd love to hear your comments.

Static Event Registration of an Array Element

Status: New
by Trusted Enthusiast Trusted Enthusiast on ‎02-03-2010 12:45 PM - last edited on ‎06-03-2010 04:45 PM by Active Participant Laura F.

I would like to be able to make static event registrations for an element that is contained within an array. Note: this is not just a registration of an event that happens to the array, but an event that happens to an element in the array.


This can currently be achieved with dynamic event registration, but I would like static event registration for two reasons: less code, and dynamic event registration must occur with a FP showing whereas static event registration never errors (meaning dynamic events can pose a problem for plug-in architectures using SubPanels).


 Here's one specific example achieved with the current method of dynamic event registration. I have an array of a cluster that has two elements, but I only want to know when a user clicks on the Boolean.



I want to be able to statically register that same event, which would look something like this (in 8.6.1):




As a bonus, as part of the event data cluster on the left-hand side of the event structure, I would like an I32 array called "Index" that gives the multi-dimensional index of the item clicked.

Message Edited by Laura F. on 06-03-2010 04:45 PM
In the Application Builder dialog under the icon category, you have the option to create an icon using the icon editor.  After you complete this and save it, you are brought back to the app builder dialog.  However you still have to select the icon file and add the .ico file to the project.  This should automatically be added when an icon file is saved from the icon editor.

A chart can be used to display each channel of acquired data on its own separate plot area for comparison with a common time axis.  If the number of channels varies in a running program, the number of plot areas should be changed, perhaps by changing the Number of Legend Rows.  The number of plots in a stacked chart cannot be changed at run time however.  This issue is known to NI  but apparently is not an easy fix maybe due to memory allocation issues.  I am posting it here in hopes of showing enough interest to get this some attention.




Option to dock the Tools Palette on the Toolbar

Status: New
by Active Participant Manzolli Active Participant on ‎01-29-2010 12:29 PM

Even though I use the tools selection in the automatic mode, many times I need some specific tool not accessible in the automatic mode or force one like "Position/Size/Select". Sometimes, mostly designing User Interfaces (UI) that takes all screen, we got the Tools Palette blocking access to something. Then we move the Tools Palette until it get in front of something else.


The idea is to have an option to have all buttons in the toolbar. Some programs allows you "dock" just dragging the over the tool bar.


Many times we have plenty of space to have all buttons there, if not, we can have a second row of buttons. That will be nice to add more buttons as we wish.


tools palette buttons in the toolbar.png


PS: I added a swap button between the foreground and background colors. The idea is explained in this thread Swap Colors in Tools Palette.

About LabVIEW Idea Exchange

Have a LabVIEW Idea?

  1. Browse by label or search in the LabVIEW Idea Exchange to see if your idea has previously been submitted. If your idea exists be sure to vote for the idea by giving it kudos to indicate your approval!
  2. If your idea has not been submitted click Post New Idea to submit a product idea to the LabVIEW Idea Exchange. Be sure to submit a separate post for each idea.
  3. Watch as the community gives your idea kudos and adds their input.
  4. As NI R&D considers the idea, they will change the idea status.
  5. Give kudos to other ideas that you would like to see in a future version of LabVIEW!
Idea Statuses
Top Kudoed Authors