LabVIEW Idea Exchange

Community Browser
cancel
Showing results for 
Search instead for 
Did you mean: 
Post an idea

For as long as I've been using LabVIEW, I've often turned to the LabVIEW Help file (which is a compiled HTML file) and found very little help.  I'll search for something simple like "For Loop" and receive 500 (literally, try it for yourself) possible topics, including the Cohen-Coon Autotuning Method, Control in NI-DAQmx, Limit Specification VI, and so on.  These have nothing to do with For Loops.

 

I'm proposing that the LabVIEW Help be turned into something that is ACTUALLY helpful.  I'm not sure about the best way to do this.  I think that it should still be portable and shouldn't require any Internet access to use (as lots of us cannot access the Internet on our development machines).  I would really enjoy a tool that would allow me to search for something like "For Loop" and receive like 5 topics that all have to do with using a For Loop in LabVIEW.

Please include mSec value in probe watch. This helps to find the execution time between two events within a few mSec delay. Thanks

When you do a search for something in the hierarchy and you have a password protected VI, you get this dialog:

 

 

 

 

Often (for example in this case) we don't have the password for the VI and never will because it was developed by someone else. So why not allow us not to see this in the first place?

 

  • First idea - Don't display this at all for VIs in vi.lib. Just skip them.
    Presumably before LabVIEW ships the VIs aren't locked anyway, so the LabVIEW developers shouldn't have a problem, and if they do, let them do a programmatic unlock. The users shouldn't be the ones to suffer.
  • Second idea - Generalize it a bit more. Allow us to have a configurable list of folders where the search won't bother to try and unlock VIs (so that if we have locked code from other vendors, we can discard it as well). The default folder for the list should be vi.lib.

The configuration panel of express VIs has the [X] disabled in the upper right, but contains standard [OK], [Cancel] and [help] buttons.

 

Every computer users is familiar with the function of the window close button [X], and for convenience it should be enabled unless there is a very good reason to disable it. Such a reason does not exist for express VI panels. Pressing the [X] should act indentically to pressing the [Cancel] button. Note that even the <esc> key is already bound to the cancel button as it should!

 

So why is [X] disabled? This is unecessary micromanagement of the user! Do it like this, not like that!!! (slap on the hand!)

 

Users should have all intuitive and typical methods available to cancel out of an express dialog:

 

  • [X] (currenty not allowed for no good reason at all!)
  • [Cancel]  (already mplemented!)
  • pressing <esc> (already implemented!)

 

Idea summary:

The configuration panel of express VIs should have the windows "close" button ([X] in the upper right) enabled and when pressed, it should act identically to the [Cancel] button on the panel.

 

IdeaCloseExpress.PNG

 

 

As already partially mentioned in a very old discussion here, the integer display formats should have more typical defaults:

 

  • If I change an integer to hexadecimal, octal, or binary format, I want it padded with zeroes on the left and the default number of digits corresponding to the data type (e.g. U8: 8 digits for binary (%08b) and 2 digits for hex (%02x), U32: 32 digits for binary (%032b), etc. ).

 

These formats should appear whenever I switch formats from decimal and I can immediately change them to anything else if desired. If the current format is not decimal and is at the default for the current datatype, the format should adapt (e.g. more or less digits shown) if the datatype (e.g. U8>>I32) is changed.

 

Reading this or that, I think I'm not the only one to want XControl accept multiple data types.

One of my use case is an XControl using "XYGraph Data type" as Data. "XYGraph Data type" can be Cluster or Array of cluster.

I believe there are much more use case where polymorphic Xcontrol could be useful. 

It has been a few months since a suggestion has been made to do something about the For Loop, so if nothing else it is time to stir things up a little bit.  There have been several suggestions to do something with the iterators, for example:

 

http://forums.ni.com/t5/LabVIEW-Idea-Exchange/Smart-Iterators-with-Loops/idi-p/967321

 

http://forums.ni.com/t5/LabVIEW-Idea-Exchange/for-loop-increment/idi-p/1097818

 

http://forums.ni.com/t5/LabVIEW-Idea-Exchange/quot-Start-Step-Stop-quot-structure-on-For-loops/idi-p/1022771

 

None of these has really gained traction, and heck, I haven't settled on any of them myself.  In most cases I am satisfied with a workaround, usually involving the Ramp VI.

 

There is one case where I am not happy with the workaround.  I happen to need reverse iteration values quite often (N-1,N-2,...0).  With the N terminal pinned to the top-left corner I have little choice but to do the following and start zigging and zagging wires:

 

18391iB5AE9450400CAAD6

 

I would simply like a reverse iteration terminal which can be moved around at will and simply counts down.  Doesn't have to look like I have drawn it, that just happens to be intuitive to me.  Naturally this terminal (and the normal iteration terminal) should have the option to be hidden.

 

I thought about having the option to have the loop spin backwards, similar to reversing all auto-indexing inputs and having the iteration terminal count down, but I just could not decide what to do about auto-indexed outputs.  My G-instincts tell me that they should be built in the order of loop cycles, my C-instincts tell me I am building array[i] and if i goes in reverse order, so should the array elements.  For now I say, forget it, and just stick to the simple terminal.  Array reversal is essentially free, so I at least have a workaround there.

If there are multiple projects with the same name listed in the Recent Projects list, there's no way to determine which is which:

 

recent_project_tooltip.png

 

The idea is to display a tooltip showing the full path of the project when hovering over an entry.

The ability to define anonymous methods to be called multiple times within a block diagram.Capture.PNG

 

 

If I "create constant" from a path input, and start typing into the path, the control grows to the left, away from the function that accepts it as an input.

 

But for VISA and IVI, the name controls grow to the right as you type into them, covering up the icon of the function that accepts the input, along with the wire connecting them.  Let's make VISA and IVI behave better.

 

23852i492819D58059CA42

 

The "Coerce dots" are handled by LabVIEW as Visual warnings ... but a bad type coercion could have very bad issues ! Smiley Mad

 

It should be nice to be able to find all "Coerce dots" in all the VI's of a project, in order to check if they are critical or not.

 

[admin edit] This functionality is currently available with the VI Analyzer Toolkit (included with a LabVIEW Professional license or available for separate purchase). Specifically, you can run the Block Diagram > Performance > Coercion Dots test with the 'Block Diagram' option turned off, and the 'Single Wire' option turned on with a 'Maximum Number' of 0:
coerc.png

If you run the test with this configuration, it will return a failure for every coercion dot in the analyzed code.

Note: The idea will remain open, but we're mentioning the workaround here for the benefit of users who need this functionality today and find this Idea Exchange post via search.

 

My forum question asked here: http://forums.ni.com/t5/LabVIEW/Determine-and-Minimize-LabVIEW-Build-Dependencies/m-p/1441734 has prompted me to post a New Idea on this exchange.

 

    To summarize:  LabVIEW executables tend to be on the LARGE side especially when driver packages like DAQmx, VISA amd IMAQ are required.  I'm asking if NI could add some enhanced functionality to the Application/Executable Builder that assist the user in determining and minimizing the size of the final distribution package.  Ideally this would be a completely automatic function that would simply minimize the build parameters to the smallest possible set after analyzing the active project.  Additionally, it would be great if this would be smart enough to pare down the driver package itself to the bare minimum.  (I.E. It shouldn't require a 150MB DAQmx package size to read a few thermocouples with a 9211 module.)

    At the very least, the Additional Installers tab should show the size of the packages you're checking off and the resulting installer's total size.

 

An example of the size increases of required installer packages for a simple DAQmx application:

Build Size (MB)
Program Itself
8
Run-time Engine Added
104
DAQmx Core Drivers Added
258
DAQmx Core Drivers + MAX Added
712

As we look at the Comparison Palette, there are three functions that offer negative logic, but fail to offer the positive logic alternative:

 

NotLogic.png

 

I commonly find myself placing a Boolean "not" right after these functions (e.g., if I want to know if there are elements in an array I must test if it is "not not empty", or if I want to know if a ref is valid I must test if it is "not not valid". Take a look at my other idea which illustrates not not logic.).

 

I have two proposed solutions: 1. offer a single function that has an "Invert?" option on the output, or 2. offer both the positive and negative logic primitives on the palette.

Message Edited by Laura F. on 11-16-2009 08:51 AM

For the moment, the XControls can only be used one by one, on a front panel ...

 

It should be nice to be able to create XControls arrays ... in order to create "funky" listviews ...

 

=> Would give the ability to edit/view a collection of clusters, using an appropriate editor.

 

Manu.

When you’re making a By Reference LabVIEW Object using a Data Value References (DVRs) the user of your class would need to embed each Dynamic Dispatching VI inside an In Place Element Structure (IPE). Or you have to create wrapper VI for each method but this undermines the advantages of LVOOP Inheritance.
 
The idea is that a DVR containing a LabVIEW Object wired to a Dynamic Dispatching Terminal is equal to calling the Method VI inside the IPE structure like illustrated below.

DVR DynamicDispatch.PNG

Message Edited by Support on 01-15-2010 04:39 PM
I cannot tell you how much time I spend changing the appearance, properties, connector pane, etc, etc. every time I "create a SubVI".  I try to always use the same connector pattern, error in and error out, error case structure on BD, and even a common icon appearance within a project.  It would save hours over the course of a project if I could set up a template that would be used BY DEFAULT for "create SubVI".  Also, allow me to set that template as the default for "New VI".  Save me the step of File - New - From Template - choose it.  If I go File - New VI, I want to see my default template.  Anyone who has used AutoCAD (2D) in the past will be familiar with this.  One could create a blank drawing and save it as 'acad.dwg' in the AutoCAD program directory and AutoCAD used this as the default drawing template.

When designing a application, I sometime find that I am not happy with the name I choose for a class after I have already integrated the class into my project.

I also often use the class name for the label on in/out terminals and block diagram constants of the class.

The problem arises when I change the name of the class from within the project.  If I then go inspect the code, I find that the labels still have the old class name.

For example, if I rename the class from 'My original class name.lvclass' to 'My new class name.lvclass' I still see this on the block diagrams:

 

class rename idea 1.jpg

 

But what I want to see is this:

 

class rename idea 2.jpg

 

So, I propose a rule.  If a control or constant of a class has its label visible and that label (or part of that label) matches the original name of the class on disk (with or without the .lvclass extension), when the class is renamed in the project, the label on the control or constant is also changed to reflect the new name.

The reason I say 'or part of the label' is if you have added a prefix or suffix (like 'in' or 'out') to the label, it would still get updated.

 

I also think that this should apply to labels that include the '.lvclass' and ones that do not, as I often will use the class name without the extension when labeling classes.

 

I am happy to accept that this correction would only apply to code within the project where the class rename happens.  But it would be a bonus if there was a menu option to rerun the cleanup from a different project that might use the same renamed class.

 

Thanks in advance for the Kudos!

In File-Explorer you can show File Properties.

Some files show only common information on the "Details" tab.

But Media files show much more Details.

I want to see there "LabVIEW Version" and "VI-Version" of VIs.

File Properties.png

Create a Panel Open event.

 

PanelOpenEvent.png

 

Among other things, it would provide a clean entry point for guaranteeing Control References have been created, allowing for their dynamic event registration to prevent errors such as the following:

 

PanelOpenError.png

I think it would help the process of learning Quick Drop shortcuts if the Context Help window contained the shortcut for the item.

 

QD.jpg

 

I know that I can define the shortcuts and that I can look at them from the Quick Drop dialog.