LabVIEW Idea Exchange

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

My idea is very simple - I'd like to see new size(s) indicator available for arrays, so user may know which dimensions his/her array has. The necessity partially arises from this thread. In that case the array looks visually empty but really contains some hidden row or column and there's no way to know about it except for calling Array Size instrument on it. Also it would be good for the developer to see the exact number of elements in the array on FP or BD.

I suggest this new context menu item:

Size(s) menu item

The indicator might look like a common LV indicator like this one:

Size(s) indicator

 

I know that its implementation adds one additional operation in IDE mode but I think it should be fast enough to work smoothly.

 

Working with applications with 5000+ VIs means a lot of folders, libraries and classes. Normally you work on a specific class for a while, or perhaps a method of that class. But every time I have to restart LabVIEW for some reason I have to do a lot of clicking to get to a specific VI. If I'm lucky it is in the Recent Files list, but many times I'm working on more VIs than the list contains and have to click same path down in the project, over and over again.

 

Wouldn't it be sweet if you could right-click on a VI/class/lvlib/control and select "Create shortcut" and a link to the item in the tree is created in the "Shortcut" folder? Right-click on a shortcut and select "Remove shortcut" and it's gone.

 

I also have VIs in my project that I use often (for example a GUI showing all modified VIs in the project, where I can mark VIs and lock them in Subversion) and they would always "hang out" in the Shortcut list. So perhaps it should be possible to mark items in the shortcut list that are permanent and follows you in all projects.

 

I propose that if an array is wired into a for loop, the tunnel should be auto-indexing by default (current behavior) UNLESS there is already an auto-indexing input tunnel in that for loop (new behavior).

 

Generally, when I wire an array into a for loop, I want an auto-indexing tunnel, so I am happy that it creates one by default. However, when I wire a second array into the same for loop and it creates another auto-indexing tunnel by default. This is usually not what I want because it will cause the loop to stop early due to one array being smaller. I'm afraid that this default behavior may cause bugs for new programmers because they may not realize to change it (in fact, this has even happened to me before). Default behavior should be the "safe" behavior. Making the decision to have more than one auto-indexing input tunnel in a loop is one that should be carefully considered, so it shouldn't happen by default, but rather should be changed explicitly by the user.

 

I know there have been many ideas posted about the current auto-indexing default behavior, but I didn't see this specific one anywhere, and I think it is an important suggestion.

Now that the SSP package is delivered on USB instead of DVDs (good stuff!), I have a minor request: Could you have the USB label include a release/version name on its label?

It might add too much of a cost depending on how you get them customized, but if that is not an issue it would be very practical to be able to see what the USB contains by its label (as we could with the DVDs).Smiley Happy

 

On a side note: Many companies have strict regulations on the use of USBs, and the need for such has increased with weaknesses like BadUSB. Perhaps NI could state something about how the USB sticks they send out are protected, either in the delivery package, or just as a statement on ni.com? That way people who need to convince their IT departments to allow them to use the NI USB sticks will have something to show (I'm sure you will have to add some legal disclaimers there as well , but that's OK).

Many controls allow you to make scrollbars visible. When a user clicks anywhere within the control, including on the scrollbar, this counts as a Mouse Down. It would be nice if the Mouse Down event would indicate whether the click was on the scrollbar or on the actual clickable area of the control, so you could do different actions based on which it was. Of course, you can usually do manually by checking boundaries of the control against the coordinates of the click, but it seems like a common thing so it would be easier if the check was built in.

Scrollbar Idea.png

There is no way how to programatically disable the Run-Time Shortcut Menu with a property node.

The only way is to work with event structures what is quite unhandy:

https://forums.ni.com/t5/Example-Program-Drafts/Disable-Right-Click-menu/ta-p/3500824

The ctrl+drag and ctrl+alt+drag shortcuts for adding and removing space on the BD are super awesome. But I think they would be even *more* awesome with the following tweak:

Limit space addition/removal to the visible diagram; i.e. don't make any changes to other cases in a case structure.

 

I have had many situations where I was doing cosmetic tweaks in one case of a case structure, only to find I have overlapping items in another case that I wasn't looking at.

 

auto_size_issues.gif

 

Hopefully this simple animated gif demonstrates what I'm talking about.

 

(And yes, I know we could enable "auto-grow" on the case structure to eliminate the shrink-case-smaller-than-contents problem, but that still doesn't address all the potential issues here.)

I like constant folding.  LabVIEW says "this is going to be a constant".

 

There are some times that I want to see the actual values of the constant.  In the middle of a large VI it can be a pain to de-rail to make a constant, then come back.  It can be easier to look at an array of values for troubleshooting.

 

I wish there was a way to right-click and either show what constant-folding gives, or even convert it to an actual constant.  This is going to change the development side, not the execution side.

 

While it doesn't have to be reversible, it would be nice to know I got it right, then revert it to code, in case I want to vary the generation of values at a future time.

It is nice if one can select which driver to download, specifying the version.

 

Currently it is only "Device Driver" item in the web-based installer. By using this option, user must download very huge driver ~10GB.

 

LabVIEW 2016 Platform (web-based installer).png

 

It is very helpful if one can select only necessary drivers like the UI of RT software installation which allows users to choose version such as NI-XNET 16.0, 16.1, or 17.0

The LabVIEW IDE may coerce diagram constants when the enumerated typedef changes.  The problem is: the constants may occur in many places, and the coerced value is not necessarily helpful.

In the pictures below, the "Idle" element is removed from the typedef and the IDE coerces the diagram constant to a neighboring value "triggered".

Before.png

Now the program behaves as if triggered. 

AfterEdit.png

 

When a diagram constant becomes invalid, wouldn't it be better to flag it as broken, so that the programmer is forced to handle the problem?

OpMode.Better.png

When using the waveform datatype in my applications I noticed that the T0 field of this datatype is getting out of pace with the system clock of the machine of where it is running on.

The origin of this behaviour is that time synchronisation only takes place at the start of a measurement session after which waveform timestamps are derived from the measurement device's clock and not from the system's clock. Small differences in clock accuracy cause the clocks to run out of phase.

This effect is especially noticable on applications that are running 24/7 e.g monitoring Industrial continuous processes for weeks at a time.

When this happens and data is saved for analysis afterwards there could be problems synchronizing  this saved data with data of other sources because timestamps are different.

The only way to prevent this is stopping the task and starting it again but this is not always possible due to the nature of the processes monitored.

It would be very nice to have an option in the AIread function  that can automatically synchronizes waveform timestamps with the systemclock on a timely basis.

Funtionally this would be something I programmed in the attached VI.

HideLabelsInInPlace.pngIt'd be great if you could hide or just show the 1st letter (and thus color) on the left side of a IPS, forcing both often gives no extra information and steals a lot of space.

 

LabVIEW on just looks awful. Here's a little gallery of horrors. In my opinion it makes LabVIEW looks very unprofessional. These are all taken from a "stock" LV2016 Full license, installed on Windows 7, taken from some of the windows I see all the time. This list could go on forever!

 

1.PNG

 

2.PNG

 

3.PNG

 

4.PNG

 

5.PNG

 

6.PNG

 

A lot of these problems seem to originate from using LabVIEW-style controls and indicators into its own windows and panels, which are not rendered correctly. Please save LabVIEW from itself!

This can be done using property nodes, but it would be hugely convenient if the formatting for a enum could be associated with its value.

 2017-04-21_12-57-15.png

After reading Restore High Contrast Icons I procrastinated as long as possible before installing LV2016.  When I finally did, I was disappointed by the additional space required for the palettes; all of them!  I have been using LabVIEW since 5.0 and switched to an Icon view of the palettes shortly after getting comfortable with the graphics.  Now, I have to move my mouse further to get to each sub-menu and VI selection.  It's a waste of developer's time and apparently done for absolutely no good reason except to make a change; very similar to the washed out icons.

This extra space needs to be removed or at least an option provided to set the spacing back to the condensed spacing always available.

These images to show the relative size of the palettes LV2016 vs. 2015.

Controls Palette

ControlsPalette

BoolenPalette

Functions Palette

FunctionsPalette.png

ArrayPalette

 

Yes, this might seem trivial, until you think about traversing several palettes to get to your needed VI.

 

FTPPalette

*Random example, if one were doing FTP development they'd pin the menu.

** The original size of the above graphic is 1030 pixels wide; less than 800 for 2015.

 

Quit messing with what works and has become the standard with regards to options.  At least when that ridiculous "default" setting for icons instead of terminals was introduced we could undo the setting in Options

It seems that NI has hired some non-G experts to mess up the interface simply so they can enumerate all the "great" improvements they've made.  Or, was all the extra space to make sure newbies couldn't miss the folder tab, since connecting the "right arrow" on an icon to it being a sub-folder would be too difficult for children?

 

Once in a while I encounter a case or event list that forces me to grow the structure

- in order to keep the list readable:

Selector.png

It would be nice if the item-list would automatically "wrap" instead.  

Selector4.png

A picture is worth a thousand words.

 

Listbox Control.png

 

Basically I'd like more control over the text in listboxes.  I want the same level of control that you can get from a string control, where each character in a string element can have custom font settings.  At the moment each line in a listbox must have the same settings.  This idea is to have more control over the font settings of listboxes, and multicolumn listboxes, as well as implementing the property nodes that allows for these settings to be controlled problematically.

I've been trying to follow google's material design guidelines.

 

There are many things I struggle with when building a UI in LabVIEW... I think following a set of guidelines designed by google is a good starting point.

 

LabVIEW UI capabilities should evolve to help us implement material design UIs

 

When analyzing execution performance it would really help if we had a simple yet comprehensive way to check a VI and all it's dependencies for "things" that would create a UI thread swap / access.

 

cheers

Cleaning up block diagram always mess up my intention on placing blocks then I prefer to manually move around my blocks.

 

1. When I to move a function block, I want its inputs and outputs to move together with it.

2. True visible grouping like in "powerpoint" with relative position fixed