LabVIEW Idea Exchange

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

Format Into String can become very complicated when you have multiple inputs. I think implementing it in a way similar to the Formula Node could make it much better.

Ideally,

  1. naming of the inputs should be allowed
  2. the input fields in the string should be color highlighted
  3. when hovering or clicking over any of the input or the format string fields, the matching ones should be highlighted in bold or with different background for example.

FJR0_0-1697721252785.png

As a side note, the Formula Node itself could also benefit from the same color and hover highlighting.

 

The LabVIEW Viewer would be a stand-alone application that allows for the viewing on VIs for someone who doesn't have a full-blown LabVIEW installation.  It would function similar to how the development environment functions on a 'locked' VI.

 

I've used 'VI Documentation' in the past, but this viewer would allow for live navigation, context help, drilling-down into SubVIs, scrolling through case structures, etc.

 

  

 

 

 

If you install anything (anything!) from NI on a computer that runs windows 8 or newer, you will get bugged by a dialog to disable fast startup. The option is enabled by default, no matter what you install. It will popup with every single install, even minor patches, and even if this option has been intentionally unchecked in the original installation to be patched. If you don't want to disable fast startup, it is a never-ending whack-a-mole of these dialogs. (... but the need to disable fast startup for some scenarios is a more general problem that NI needs to address. It could be a new idea, but I think NI is aware of this problem. It might even be something that Microsoft could address such that devices don't get lost in the scenarios where fast startup causes problems)

 

This idea is centered around executables that we built and distribute via installers..

 

While this option (=disabling fast startup) can be useful when certain DAQ hardware is used, it makes absolutely no sense for other LabVIEW programs. Most of my programs don't use any DAQ hardware and it is not reasonable to globally cripple every single computer that has them installed. People tend to click [next] without reading, assuming that the defaults are typically reasonable.

 

Currently, this install query can be silenced by editing the setup.ini and changing the entry "WinFastStartup=1" to "WinFastStartup=0". I have built dozens of applications over the last few days and it is becoming seriously annoying to constantly remember to do that.

 

I suggest that the installer builder should get another checkbox that allows us to set that option permanently. Here is how it could look like.

 

 

  • Checking that box will give the current experience where the installer asks to disable fast startup. (it could even be checked by default to mimic the current default behavior)
  • Leaving the box unchecked will skip that dialog and will not disable fast startup.

 

IDEA SUMMARY: Allow us to configure the fast startup dialog from the installer builder tool.

 

 

Hi, I do a lot of UI work with LabVIEW, and I'm finding over and over that when you have an array of clusters, the appearance is still to "fat".

 

I'd like to see a very thin border for Arrays and Clusters.

 

If you look at the "Simple String" control, this is exactly what I mean. It's a single pixel border.

 

Maybe like this:

 ThinCluster.png

 

 

Change the VI Properties Dialog to be able to reach the desired option with a single click, Instead of using the drop down menu.

 

It will be more clear and fast to access properties. 

 

VI Properties.png

 

LabVIEW's case selector icon (?) is taller than tunnels, so it interrupts wiring flow whenever a standard VI (4-2-2-4 terminal configuration) uses one of the terminals as the selector and an adjacent terminal is also wired as a tunnel.  I'd like to see the case selector be the same height as a tunnel.

When do I use the Run Continuously button?

 

Almost Never. And most times I hit it, it's an accident and it's a pain.

 

PLEASE hide it by default on all new VIs.

 

Untitled.jpg

I frequently perform operations on Maps of Objects which hold private data where I do not intend to alter the structure of the Map.

Existing Solution

However, Maps are a bit clunky to work with when operating on all Elements. You must first get the list of all Keys, then use an In Place Element Structure within a For Loop and Shift Registers to operate on each Element as follows:

Map In Place Element.pngPotential issues with this:

  1. Unnecessary branch of the Map which may not be optimized by the compiler
  2. Excessive block diagram editing which slows down the development time involved when working with Maps
  3. Potential for syntactical errors due to complexity of this operation

Proposed Solution

It would be great if there were some kind of auto-associating tunnel available to For Loops:

 

For Each Element in Map.pngNote that the Key is not modifiable, nor is it even available within the For Loop.

 

 

Perhaps the tunnel icons must be changed so they are not confused with shift registers.  I just copied the association icon from the map datatype icons.

 

 

 

 

This level of functionality is similar to the syntactical abbreviations available in most languages which support maps as a standard data type.  I originally wanted this kind of functionality for Sets as well, however modifying the values may result in structural changes to the set itself due to the uniqueness constraint.  As such, this is only applicable to Map Values within For Loops.

 

It may not be obvious, but this kind of tunnel would not be available to While loops.

Selection

AutoAssociation Context Menu.pngThis option would be available on the block diagram through the context menu items of the Map datatype Input Tunnel to the For Loop.

 

 

 

 

 

 

 

 

 

 

 

 

 

Say I've dropped two 2D array controls on my block diagram, and would like to change both of their appearances in the same way. I can select each one at a time, right click and head to Visible Items > Index Display. However, it would be nice to be able to select multiple items of the same type and have the option of applying the same change to all of them.

Currently, selecting both and right clicking lets me change the following:

 

select-similar-items.png

 

It would be nice if LV could recognise that I've selected two identical controls and offer me the option of changing the display settings for each of them:

 

select-similar-items2.png

 

Expanding this, you could use the same approach for BD constants, such as setting multiple string constants to '\' code display, or disabling size to text.

Earlier, I posted this idea, suggesting that the error in control should not have the default value in parentheses.

 

Following another discussion, I now suggest an extension of that concept - No control should have the default value in parentheses. This clutters up the front panel and the diagram of the subVI.

 

Instead, when you hover over the input of a subVI, LabVIEW should look at it and if it's not required, should add the default value to the tip strip automatically:

 

Default_Value.PNG 

 

This change will require us to modify all our old code if we don't want to have the clutter, but I can personally live with that. Alternatively, LV can try to be clever and do something like: "If the control isn't required and has parentheses at the end, don't display the default value".

Hie,

For the functions like 'Concatenate Strings' or 'Build Array', when many inputs are unused, you have to remove them one by one with 'Remove Input'.

Perhaps it will be easier with a tool like 'Remove Unused Inputs'.

Best Regards.

Take for example an enum that is saved as a type def. The enum has many items (let's say words) of varying length.

 

In order to see all of the elements, inclusive of the widest one, the array can be sized with the right-click option "Size to Widest Element".

 

If the type def'd enum is edited, and a longer element is added, the array of enum constants will not size to the widest element. This can be frustrating, as dozens (or more) of these arrays scattered about the program are rendered unreadable.

 

If the user has previously chosen to "Size to Widest Element", this setting should persist. If the user edits the enum, all of the array constants should size to the widest element.

 

-------------------------- Example ----------------------------------------------------------------------

 size to widest.pngsize to widest2.png

 

 

 

 

If several cluster elements are hidden and we want to unhide them all, it gets tedious. For each elements, we need to:

 

  1. Right-click the cluster...
  2. advanced...
  3. show hidden element...
  4. select desired element...   (At this time we have moved the mouse about 500 pixels to the right in steps 2-4!)
  5. click outside the cluster to deselect everything (because now the cluster AND the element are selected and we cannot immediately start again with step #1).
  6. start with step #1 for the next hidden element. Tedious!

I suggest that there should be a top entry <All Elements> (or more correctly <All Hidden Elements>, but that seems unnecessarily bulky and does not really add more clarity), to unhide all hidden elements at once.

 

Here is how it could look like:

 

 

 

 

Idea summary: There should be a menu item to show all hidden cluster elements with one simple step (see picture).

 

Thanks!

Could it be possible for LabVIEW (even if only for versions 202{1,2,3} onwards etc) to make an attempt to open newer files and just break them when new features are used?

 

The comments in this Idea (LabVIEW Compatibility Modes) suggest this and related ideas, but it isn't the main part of that idea, so I'm posting it separately here.

 

An ideal solution for me would be for VIs to automatically save back in the 'oldest' version that they would support (and perhaps not be 'up-compiled' on load), but this idea has been discussed a few times and doesn't appear to be something NI will support.

 

An alternative (perhaps only possible in currently unreleased versions?) might be to have LabVIEW 202x try and open a VI saved in 202<x+n>, and then give the symbol for missing VIs (ideally with the name, if possible) for anything that isn't supported.

 

As an example, trying to open a VI using Insert into Map (if this were available for existing LabVIEW versions) in LabVIEW 2018 could produce something like

cbutcher_0-1596430804139.png

with the Context Help giving me a clue as to what was lost - I could then Google "Insert into Map LabVIEW" and try guess how I might replace it (here, probably with Variant Attributes).

 

I'm posting this idea in relation to some comments I've recently heard regarding sharing and packaging code with LabVIEW, and how even when other (text) languages add new features and so code using them will fail to compile, their users/developers can still open the code, try fix bits, or generally workaround issues (and evaluate the benefits of upgrading, if the changes are large).

New versions of LabVIEW continue to have significant new features, so upgrading seems like it will continue to be at least my preference, but not everyone has the same requirements/situation/SSP/blah blah blah.

An addition to the 'Find' project provider (or a standalone one) to find Parent Interfaces would be good.

 

I expected it to be included in LabVIEW already, but I don't see it.

Parent Interface Ideas.png

 

 

Subversion is one of the most popular SCC systems in use yet currently LabVIEW can only integrate with the help of rather flakey 3rd party plugins. It would be so much easier if LabVIEW included native SubVersion support, allowing full integration with the LabVIEW Project etc.

This idea started when I realized the WebDAV API provided by NI does not have the ability to read the File Creation information on a remote file.

 

Example_VI_BD.png

 

"That's okay" I thought, I'm a programmer and will add it myself.  Looking at the source it looks like NI just leveraged someone else's protocol, and wrapped it into some Call Library Function Nodes.  NI could have written the WebDAV API wrapping their own HTTP API functions, using G instead, allowing for customization but they didn't.

 

"That's okay" I thought, I'm a programmer, and I'll look into recreating the WebDAV API, by calling the NI HTTP API.  Looking at the source sounds like NI didn't implement all of the HTTP functions available, only the most basic ones.  And since WebDAV requires more than just the PUT, GET, and POST, that means also having to update the HTTP API to have those functions, so that I can rewrite the WebDAV API.  Oh but look at that, NI also just (seemingly) wrapped someone else's implementation again into Call Library Function Nodes, this time calling the ni_httpClient.dll.  NI could have written the HTTP API wrapping their own TCP primitive API functions using G instead, allowing for customization but they didn't.

 

So this idea is for one or more of the following things, from the easiest, to the most difficult.

 

  1. Add the File Creation Date, as returned information from the Get File Info of the WebDAV API.
  2. Implement the WebDAV API in G, and eat your own dog food.
  3. Implement the HTTP API in G, and eat your own dog food.

Make the Panel Resize event in the event structure a filter event.  This would allow for clean, professional looking control of VI panel size.  Use cases include: limiting the maximum panel size, preventing a panel from resizing in one direction, only allowing the panel to resize in discrete increments, etc.

 

In traditional windows programming, filtering the WM_RESIZE event is often used to control window size and I'd like to see this same functionality come to LabVIEW.

 

Ideally, this change would include a Discard? option as well as NewBnds and Act as options in the Event Filter Node.  Setting NewBnds or Act would allow the programmer to amend the resize before it takes effect.

 

Panel Resize Filter Event Idea.png

1) Add icon selection for Three Button Dialog.vi
  None,

  Hand/ Stop/ Error,

  Question,

  Exclamation/ Warning,

  Information, ect…
2) The current version of vi, Centers to Workspace (desktop). Make it center to caller.

 

no icon.png

 

info.png

 

exclamation.png

 

critical.pngquestion.png

 

abort.png

Originally discussed here, this would be a time saver in quite a  few cases:

 

when dropping a structure (sequence, case, while or for loop, etc) over wires, an option should be provided allowing these wires to go through the structure (instead of ending up untouched UNDER the structure as is currently the case). Maybe with a modifier key?

 

Illustration:

 

Starting from this simple situation, where I want to do some comparison on the two strings (please imagine that the wires go through a lot of hooplahoops rather than directly to the indicators shown, as otherwise the solution is trivial):

 

ScreenHunter_001.jpg

 

I currently need to drop a sequence structure and do all the connection manually before creating a subVI (or doing stuff in a case structure, see below):

 

ScreenHunter_002.jpg

 

The suggestion is to go directly to this:

 

ScreenHunter_003.jpg

 

The reasons this would be useful are plenty, I think.

For instance, you want to do some sanity check on a bunch of wires now that you have added a new control on your panel. As of today, you need to drop a case structure, get wires you are interested in one at a time, connect them to the left of the structure, pass through the structure, connect them to the right of the structure, delete the wire underneath the structure, reconnect them to the right tunnels, etc...

Now, for a case structure, there might be some options on how to do that (for instance connect the wires through all cases? through the True case only?). Likewise for a while/for loop (you could autoindex at the entrance and/or at the exit, a mess that already exists anyhow).

 

My 2 cts.