LabVIEW Idea Exchange

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

With the IPv4 address pool quickly getting used up I think we need to have native support for IPv6 connections in LabVIEW.

Right now a lot of SubVIs in Vision Development Module looks like that:

 

IMAQ Vision Connector Pane.png

 

Because in most cases we using IMAQ Images on the top and error outputs - the wires fully misaligned. It would be nice if all (or most) of them will have standard and same "default" connector pane (if possible, of course).

Thank you!

 

Andrey.

 

It would be useful to be able to disable the handling of a single Event Case in an Event Handler Structure. Note that this is distinctly different from merely Diagram Disabling the contents of the Event Case; using that method, the Timeout event case will be reset, and additionally program execution will continue past the Event Handler Structure (in the example below, continue to the next iteration in the While Loop).

 

Here's an example of what a Disabled Event Case might look like - the Event Structure and contained code is "washed out" as if Diagram Disabled - additionally, the disabled event in the list of Event Cases is struck-out and in italics:

DiagramDisabledEventHandlerCase.png

 

And here's a proposal for how one might disable a given Event Case, using the context menu that pops up by right-clicking the border of the Event Handler Structure:

 

HowToDisableAnEventCase.png

I would like to be able to create executables that don’t require the runtime engine in LabVIEW. Perhaps a palette of basic functions that can compiled without the runtime engine and an option in the application builder for that. I routinely get executables from programmers that don’t require a runtime installation. I just put it on my desktop and it runs. It would be nice that if I get a request, I could create, build, and send them an exe in an email without worrying about runtime engine versions, transferring large installer files to them, etc.

Often, when modifying code, I need to reduce the size of a structure due to removing code.  If I have a nested structure system (e.g. event structure in a case statement in a loop), this can get very tedious.  It would be nice to have a "shrinkwrap structure" functionality on the right-click menu as a counterpoint to the autogrow.  This would be an action that would reduce the structure size to something a bit bigger than the largest contents.  An option to set how much extra space to include would be nice.

In general I would like to see LabVIEW more in line with the OS GUI standards. We have dialog controls and colors, however they are not set up to be the default choice - and we lack other GUI elements like status bars, notify icons, child windows etc. etc. A large part of LV-programmers' time is spent on ways to get LV to mimic what users will recognise and therefor intuitively understand.

 

In this case I simply miss the "sort glyph" that indicates that a table or listbox is sorted based on a given column and in which direction.

 

I imagine we could show or hide this and set its direction with a property node...It would not handle the sorting (although that would have been neat as well - if you had an in-built sorting that just needed to know a few parameters about the column data to do the job)...

Codewars - Achieve mastery through coding practice and developer mentorship

 

What language is missing in this list??

wiebeCARYA_0-1662972904604.png

 

Codewars for LabVIEW should be mostly community driven, but NI would have to set it up.

Picture says it all.

 

Concatenate with an option of 'concatenate to new line'

 

 


I am not allergic to Kudos, in fact I love Kudos.

CLA_Short.jpg

 Make your LabVIEW experience more CONVENIENT.


One of my pet peeves when using the Unbundle or Bundle by Name occurs when I remove or add an item from a cluster and LabVIEW attempts to find the item with a similiar name.  The behavior should always break when the specific item in the Unbundle/Bundle by name is removed.

 

More often than not LabVIEW picks the wrong thing and introduces programming bugs. 

For those of you who haven't signed up yet, you should go and have a look at the Next Generation LabVIEW Features Technology Preview (a mouthful, but in short, it is a UI and Development Environment demonstration version of what NI is cooking up for future versions of LabVIEW). There are some cool things and some downright awful ones.

One of them has been sneaking its ugly neck in LabVIEW 2016: reduced contrast. I am (my eyes) getting tired of it. A few examples of the changes introduced in 2016 are shown below:

 

2015:

Screen Shot 2016-10-29 at 10.10.59.png

2016:

Screen Shot 2016-10-29 at 10.12.28.png

 

Considering that the trend is for displays to not increase that much in size but increase in resolution, we have now to factors to fight against: the reduction in size AND the reduction in contrast. I won't mention laptop displays going in economy mode and reducing their luminosity, but the point is that it is making LabVIEW even more difficult and unengaging to use. Way to go to loose any chance to attract new users, and run the risk to loose old timers due to added eye strain.

 

Put simply: Restore high contrast icons  and please, do not go ahead with the washed out IDE and UI objects showcased in Tech Preview.

 

 

When working with binary data it is often useful to parse off "chunks" for stuff like header data and proceed with parsing the rest of the data. I appreciate the fact that the "Unflatten From String" node makes it easy to do exactly that using the "rest of the binary string" output. Let's add it to the similar "Flattened String To Variant" node.

avogadro5_0-1677885367432.png

 

This is one of those existing "features" that I cannot understand, no matter how long I ponder why it is implemented this way. (WHY!!!?????). Somebody must have consciously programmed this behavior in the early days of LabVIEW, but I simply don't get it. 😉

 

Try the following yourself and you'll see what I mean: 😄

  1. Create a structure (For loop, while loop, case, event, etc) with a few tunnels.
  2. Select one of the tunnels, and, using the arrow keys move it towards one of the structure corners.
  3. Observe: As soon as we move within a few pixels of the corner, the tunnel jumps to the corner and can no longer be moved with the arrow keys alone.
  4. To move it away again, we need to grab it with the cursor using the mouse and move it at least a few pixels away from the corner or use "shift-arrow" to move it by a bigger step. THis should not be necessary.

Idea: There should be no such stickyness!

 

IF a tunnel is moved towards a structure corner with the arrow keys, it should simply stop moving at the corner and we should be able to move it away again by pressing the opposite arrow key (or the arrow key following around the corner by 90 degrees)

When improperly stopping a project that has launched asynchronous vis set to fire and forget, you end up with classes and libraries that are locked.

 

Reserved VIs.PNG 

 

There seems to be no way of unlocking them other than to close the project. There is an idea to abort called VIs when the parent stops but from the lack of kudos and by reading the comments it doesn't seem like a good one.

 

I know about and use the Abort.vi but it does not work in this case. The dropdown is empty:

 

Not running.PNG

 

Not even the LabVIEW Task Manager can help.

 

 

Task Manager.png

 

My idea is to have a button that does whatever closing the project does when it unlocks the class or library. Maybe this means it transparently closes the project and opens it again in the state it was in when the button was pressed. I don't know.

 

Abort Project.png

 

 

I know there are some similar ideas but as far as I can tell this is not a duplicate.

Current behavior:

When saving a new .lvlib inside a .lvproj the save file dialog brings me to the last saved location which is often a different repo.

 

Desired behavior:

When saving a new .lvlib inside a .lvproj bring me to the root directory where the .lvproj is saved and not the last saved file location. i.e. implement the same behavior as when saving a VI inside a library or a class. This would solve the issue of VIs accidentally being miss-saved outside of the project folder and then getting lost.

In 2014 the Clear errors VI now accepts a single error which can be cleared.  This is nice but when I heard NI was implementing their own filter errors, I assumed they would do it in a similar way to the OpenG Filter Errors VI, which accepts a scalar, or an array of error codes to filter.

 

In addition to this I think it would be helpful if this Clear Errors also accepts the error data type for errors to filter, or an array of errors to filter.  That way the Error Ring can be used to help readability of the block diagram showing the error that is being cleared.

 

Improve Clear Errors Filter.png

I really, really don't like this behavior:

 

key_focus_border.png

 

Whenever you use the KeyFocus property, or simply the tab key on a running VI, whatever control has key focus gets that ugly black border around it.  Can we just eliminate this feature, or at the very least, have the ability to disable it?  The border doesn't appear on System-style front panel controls, but it does for anything else.  I've written all sorts of hacks over the years (the latest being in Quick Drop) where I have to figure out a way to hide that ugly border when a control gets key focus.

You might not know this, but if you drop a String constant on the block diagram (or create one from a terminal), you can use shift+enter to define the bounds as you type.

 

You start typing the first line. As you type, the constant gets larger. Hit shift+enter. Now as you continue typing, the string constant grows vertically only, using word wrap at the bounds of the string constant. Now hit shift+enter again. The string stops growing vertically and the vertical scrollbar appears on the constant. 

 

This behavior is very nice for creating string constants inside of structure nodes without having to create the item, then resize it, then come back and start typing your text. 

 

Wouldn't it be nice if the same shift+enter trick worked when typing free labels?  I think so.

I often use LabVIEW projects.  Projects may contain libraries, classes, etc.

 

Changing the contents of any component (such as a library) within a project causes the project file to change -- even though the project definition itself shouldn't have actually changed. For instance, if this is my project:

_carl_0-1656622304965.png

and I delete a VI that is inside an .lvlib, the project file itself claims to have had an attribute change:

_carl_2-1656622426038.png

_carl_3-1656622515498.png

In theory, this top-level project change isn't necessary -- since the project should just reference the library, and only the library should reflect a change.

 

These unnecessary file changes make it trickier to deal with source control, merging code, tracking changes, etc, along with adding one more file that you get prompted to save every time you close a project.

Currently, DETT looks like this:

Taylorh140_0-1588782161680.png

But it should look like a proper profiler allowing for exploring and easily visualizing performance, threads, call stacks and memory usage at a glance (similar to this):

Taylorh140_1-1588782422432.png

 

 

 

When you create a class, it gets assigned a "random" color.  But there are only 6 (or so) colors that are randomly chosen from. I do a lot of LVOOP, and generate a lot of classes. But because there's such a small selection of colors, I'll often drop class methods with the same color banner next to each other (and yes, with text), and it can sometimes be a bit misleading.

 

Why not have, say, 64 colors that are used to randomly assign class colors?  Or better yet, just use a randomly generated color within a range of shades?  It's such a simple change yet it would have a meaningful impact on the developer experience (well, at least mine).

 

_carl_0-1721943387831.png