NI Home > Community > NI Discussion Forums

LabVIEW Idea Exchange

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
0 Kudos

Stop using IMAQ Create VI

Status: New
by Member sandyy on ‎07-24-2014 09:13 AM



Stop using IMAQ Create VI. Lets introduce a cluster input for VIs like IMAQ ReadFile, IMAQ Copy etc.



IMAQ Create.png



System Numeric Control inc/dec arrow button

Status: New
by Member jchretien on ‎07-23-2014 01:36 PM

Am I the only one annoyed by the missing pixels on the increment arrow button?


The left one is original, on right I fixed it in paint, does it make any sense? Any clue why it's actually like this?


System Numeric.png


Just reminds me this story of the google logo.



0 Kudos

A version control system is a must these days, but rearranging project files in LabVIEW is a nightmare without integrated support.


The correct way to do things is in LabVIEW rather than the file manager to save creating headaches and conflicts in LabVIEW.

The correct way to do things to maintain subversion history and minimise headaches related to subversion is in the file manager using subversion tools (e.g. TortoiseSVN).


So without subversion integration, we are damned either way.


Please provide a way we can get this support without doubling the cost of all our licenses by upgrading to Professional for this one feature (management will never go for it) . Please consider adding it to cheaper versions, or at least make it available as an optional addon for a reasonable price.

0 Kudos

Add support for "Uninheritable" methods and classes in LabVIEW

Status: New
by Trusted Enthusiast ‎07-23-2014 06:58 AM - edited ‎07-23-2014 07:02 AM

According to Wikipedia:

In some languages a class may be declared as uninheritable by adding certain class modifiers to the class declaration. Examples include the "final" keyword in Java or the "sealed" keyword in C#. Such modifiers are added to the class declaration before the "class" keyword and the class identifier declaration. Such sealed classes restrict reusability, particularly when developers only have access to precompiled binaries and not source code.

The sealed class has no subclasses, so it can be easily deduced at compile time that references or pointers to objects of that class are actually referencing instances of that class and not instances of subclasses (they don't exist) or instances of superclasses (upcasting a reference type violates the type system). subtype polymorphism. Because the exact type of the object being referenced is known before execution, early binding (or "static dispatch") can be used instead of late binding (also called "dynamic dispatch" or "dynamic binding") which requires one or more virtual method table lookups depending on whether multiple inheritance or only single inheritance are supported in the programming language that is being used.



I have previously made appeals to allow for certain classes to restrict the ability to load new ancestors at run-time, thus restricting possibly allowing for inlining of dynamic dispatch VIs.  A similar request has already been made in order to facilitate ilining of DD VIs.  I believe that ultimately, it is support for a "Final" or "Sealed" class what I am looking for.


Such a modification on a class would effectively prohibit instantiation of any new version via factory method and would declare to the compiler that the code defined at compile-time is actually the full extent of code which will be available at run-time, thus allowing for the aforementioned optimisations to take place.


Questions would have to be answered regarding type propagation and some loopholes may remain regarding dynamic loading of new classes (only dynamic dispatch methods which are visible as instances of the "final" class can actually safely be inlined for example).  Especially for a specific RT application of mine, this would be a great benefit as the natural progression of this idea is indeed the ability to write code such that dynamic dispatch VIs are actually inlineable.

Very often there is the situation that I have to insert an illustrating drawing my front panels. Most of the time I have the problem, that those graphics does not have a transparent background. It would be great if the Coloring tool could be used to change the colors of the bitmap to transparent but also to other colors. If you integrate such a function please also think about a local / global option in the color dialog.



0 Kudos

What I'm suggesting is a combination of an textring and a string control (BD-terminal is a string). The idea behind is, that I like to offer the user a list of pre-defined values (e.g. the values from the five latest program runs) but also the ability to enter a new string.


Of course I can get this functionality by adding two separate controls or by combining those in an XControl but I feel the combination would look better, is much easier to handle in the code and needs less space on the UI.


Please see the picture for better understanding.




Status: Already Implemented
This functionality is currently possible with a Combo Box Control.
0 Kudos

Quick rename of SubVI connectors

Status: New
by Member comrade on ‎07-22-2014 07:21 AM

First of all - if there's a QuickDrop shortcut or any other feature within LabVIEW that already does what I suggest here, I'll be glad to be pointed the way to it. Thanks.


During testing of programming appoaches I often code a bunch of stuff that should simply work and then break it down later into several SubVIs for better readability, maintainability and reusability. Doing so leaves me with the fact that LabVIEW determines

  • names
  • positions on the connector

of controls and indicators of the newly created SubVI by itself, e.g. like this:




So now, to get things organized, I open up the new SubVI and start renaming all the controls and indicators and repositioning their respective connectors to my heart's desire. This can get a little tricky as LabVIEW generally chooses quite ambiguous names for the connected FP elements, as can be seen in the picture above. So what I do now is open the caller of the SubVI and the SubVI side by side to identify the in-/outgoing wires with their respective names and connectors and modify them to get everything straight.


My idea therefore is to insert additional shortcut menu entries for renaming and swapping position of SubVI connectors, just like "Create >" or "Replace >" (see picture below)




The renaming could probably be done via QD - type the new name for the connected control/indicator in the QD text field, press the desired shortcut - done.

The swapping could possibly be easier to get implemented using the functionality the connector block of a VI (and several function nodes) features natively - CTRL+mouse click activates swap mode.


Glad to hear your opinions on this.




When hovering over a global variable in LabVIEW, the IDE doesn't really give us much information at the moment.  What I would like is to have the context help show me the path and filename of the global in question within the context help.  This would help debugging a lot.


And while we're at it, at least show the datatype of the global in the context help.  At the moment, the only thing shown in context help is the name of the global item selected, but I already see that ont he BD. D'oh.


That's all.


Improve that damn Licence manager!

Status: New
by Trusted Enthusiast on ‎07-22-2014 01:26 AM - last edited on ‎07-22-2014 01:39 PM by Trusted Enthusiast

As you can read in the link below the licence manager uses the MAC addresses of a computer to create computer ID used for the activation process.

The trouble is that when you use a NI PCIe 8235 (Quad-Port GigE Vision Frame Grabber) you are adding 4 Ethernet ports to you computer and any change to any of these ports (even a fix IP change of one of the ports) will change the computer ID and therefore you will need to re-activate all your NI products... As day to day users we simply cannot work that way.


The knowledge base article below explains that in such cases we can get the hard drive serial number, send it to NI and they'll give us a computer ID based on that HDD serial instead of the computer ID given by the licence manager and we can then use it for the activation process.


The point of this idea is to ask NI to improve the licence manager so we don't have to go through this issues, I think the licence manager should inform the user about what the computer ID is based on and tell him about the options (MAC address or HDD serial) and let him choose between the 2.


How Can I Change the Hardware Used for Activation of NI Software? 


PS :

and now that we're talking about improving that damn licence manager, you can refactor it to include other ideas such as :

Smartphone application to activate NI Software

Add a QR Code (2D Bar Code) Option To NI Product Activation Dialog


[admin edit]

I am copying the workaround posted by crossrulz in the comments to benefit users having these issues who find this idea:
"Here is a work around if you want to play around in the Windows registry:

In "Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\National Instruments\License Manager" add a string value named "DiskOnly" and set it to "true".  The license manager will now only use the HDD serial number."

0 Kudos

Just a quick note on the new comment bubbles with the arrow line:


Wires (and other block diagram objects) treat these lines as something to avoid.  I find this behavior to be frustrating.  The purpose (in my oppinion) of the arrow lines is so you can place comment bubbles outside of your code sequences and point to the area of interest, which keeps your diagram better organized.  The problem is that when you go to run wires etc, they automatically try to avoid the comment arrow line.  This is silly. 


Comment Arrow Lines should be ignored by all other wires/objecst so that wires just route directly through.

See contrive example screen shot below:

comment arrow line avoidance.pngshould instead be routed as this:  comment arrow line ignored.png

Could NI please consider automatically including all the items from the "Execution" category of the VI Properties editor in the help window documentation. This would make it much easier to determine if priority/execution/thread setting is correct, and greatly help with reentrancy/INLINE status. That would be really useful for FPGA development, which selects reentrant by default, when other platforms do not. Currently, a LOT of mouse thrashing is required to confirm status of all subVIs.

Hello all,


This is an elaboration on a prior request by RavensFan:


When AppBuilder reports a file related error, such as error 8, could someone please provide a path?


I have no idea what's causing my file IO error, as I am running LabVIEW as a local admin and there should be nothing interfering with my path.

I can't probe a path wire in the AB method because the diagrams are understandably locked.


This is so frustrating.  No one likes to debug by guessing and it wastes a tremendous amount of time.




Thank you with my deepest respect to the AB team.





For example:


0 Kudos

I have seen regulary that IMAQdx stops grabbing at ring buffer filled for only 50%

I am aquiring 300KB images at 500FPS. It just stops buffering although not all buffers have been filled yet.

I solved it by using a smaller ring buffer and copying the frames into a que for later processing.

It would have been great if the ring buffer would not require this solution.

0 Kudos

IMAQdx Timeout is a non settable property. It is fixed on 5s

When I do not trigger my camera for 5 seconds (and that is what I want regularly after aquisitions at 100FPS) , I get a timeout error.


Multi Conditional Tunnel

Status: New
by Member sjunge ‎07-17-2014 01:46 AM - edited ‎07-17-2014 01:49 AM

It would be nice to have a conditional tunnel that can be extend with more tunnel.

In this example, each one has it's own output as 1D-array and only one boolean trigger.



Multi Conditional Tunnel.png


Check file permissions at start of build

Status: New
by Member TurboPhil on ‎07-16-2014 06:21 PM

Sometimes I do dumb things. One example is that I often forget to stop running an executable before attempting to rebuild it. The AppBuilder eventually fails because the file is locked--it can't delete & recreate the *.exe file if it is actively running--but sometimes it takes several minutes before the AppBuilder gets around to checking that. It would be nice if it did the file permissions check earlier in the process, so my foolishness doesn't slow me down excessively.


Also, since the "cancel" button for builds doesn't actually do anything, even if I notice it immediately, I'm still stuck twiddling my thumbs for a few minutes until the AppBuilder *realizes* it can't complete the process....

0 Kudos

Using autopopulating folders next to the project file inside a mother directory has the great advantage that the whole directory can be copied and renamed without raising any conflicts.

That way it is easy to keep versions apart and independant of both the other versions and the PC it is located on.

After opening the projectfile, saving any VI will default to the directory next to the others inside autopopulating folder within the mother directory.

BUT NOT SO if you are trying to save a CTL file. In that case the default directory is still the old directory name that belongs to the previous version of the mother directory before that directory was copied.

The project file apparently is still working with an absolute path for that particular file type.


This is something that can probably be fixed relatively easy ?

Status: Declined
Issue is not reproducible

If you have open the Bookmark Manager and
you change one bookmark, the Manager gets an "Bookmark Info Change" event and reloads all bookmarks from all
VIs in the project. The event that triggers the update is the
application event "Bookmark Info Change". At this event there is no
info in which vis a bookmark has changed. If the event would provide the info which VIs have changed,
the Bookmark Manager would be able to reload only the bookmarks from this particular vis.
On larger projects the Bookmark Manager needs minutes (Time and CPU
load) to update the whole list. The additional event data node can be an array of vi names or references.


This changes will fixed also the EventQ Problem of the Bookmark Manager. If the Bookmark Manager is open and you change several Bookmarks the manager reloads all VIs for x times because everey change generates a "Bookmakrs Info Change" Event.


Easy toggle tunnel mode

Status: New
by Active Participant SteenSchmidt ‎07-16-2014 08:02 AM - edited ‎07-16-2014 08:03 AM



After we have gotten several different new tunnel modes, it takes quite a lot of context menu exercise to change tunnel mode on structures:




I propose a shortcut where we can click directly on the tunnel to toggle between valid modes:




I say valid modes as not all modes are valid for all tunnel data types, for instance the "Concatenating" mode isn't allowed for scalars, but is still selectable in the context menu resulting in a broken scalar wire leading to the concatenating tunnel - the toggle should perhaps skip such an invalid setting? Or maybe not, in case you're preparing to change data type and just want to toggle the tunnel first, I don't know.


Tunnels on different structures have different modes. On case and event structures the modes you could toggle between would be 'Use Default If Unwired' on/off for instance.


Am I the only one feeling there's a long way into the tunnel mode menu now?




Current situation:

The probe-window shows a list of all current probes on its left side (including value string and timestamp) and the detailed value of the selected probe on its right side. The selection of “the probe of interest” must be done manually which is not very comfortable.


Suggestion (numbers refers to the image below):

1. Add an indicator which highlights the latest, updated probe.
Additionally I suggest to show a number (maybe instead of the timestamp) whereby “1” stands for the newest probe value.

2. Add a "lock" button to the toolbar of the probe window. If "lock" is set, the probe selection automatically changes to the latest updated probe.

3. Add a checkbox in front of each probe entry. If "lock" is set, the checkboxes become enabled and checked by default. Unchecking one means this probe will ignored for auto-selection function.


new probe window

Latest LabVIEW Idea Exchange Blog Posts
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!
Top Kudoed Authors
User Kudos Count
Idea Statuses