LabVIEW Idea Exchange

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

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.

I don't know how many times I've built an application or packed library during my 25+ years using LabVIEW. What still annoys me extremely much is when the AppBuilder gets a tiny error, like "wasn't able to copy this file" (always at the END of the job), or something else having no effect on the (already built and completed) application or PPL itself. Still AppBuilder deletes the whole build, sometimes 30+ minutes time wasted, and simply tells you the build "FAILED". 

 

My suggestion is: Make AppBuilder just a tad smarter and don't delete the EXE or PPL! Just let the developer know what file(s) to copy manually, or what post action didn't work! 

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.

Current Behavior:

When using the "retain all errors" option of the Merge Errors function the combined error message JSON output is not a valid JSON string.

This is the source output of Merge Errors when retain all errors is active - it is not a valid JSON string.

 

<JSONErrorMultiple_1.0>[{
    "status": true,
    "code": 111,
    "source": "This is a test message including\nnewlines"
},{
    "status": true,
    "code": 222,
    "source": "This is a test message including\nnewlines"
}]

 

 

Desired Behavior:

Make the combined errors source string a valid JSON string so that it can be parsed by other tools.

Valid JSON string:

 

[{"status":true,"code":111,"source":"This is a test message including\nnewlines"},{"status":true,"code":222,"source":"This is a test message including\nnewlines"}]

 

 The above JSON string can be formatted nicely by most tools - e.g. JSON pretty print - https://jsonformatter.org/json-pretty-print

 

The below string including the JSONErrorMultiple_1.0 key (but formatted correctly) also works:

 

{"<JSONErrorMultiple_1.0>":[{"status": true,"code": 111,"source": "This is a test message including\nnewlines"},{"status": true,"code": 222,"source": "This is a test message including\nnewlines"}]}

 

 

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.

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!

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

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

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.

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

 

 

 

 

Problem: my code accesses many different properties of many different controls. I need to locate where a specific property of a particular control is read/changed.

 

idea.png

 

I know that the Find panel offersi me the option of searching by text, like

 

Screenshot from 2015-02-01 13:46:10.png

but that is not the solution, because I need to type thename of the property, and because I may match many other objects with the same string (comments, other controls with the same property, etc.)

I'd like a faster way to get to where I need. For instance the contetual menu could offer Find/specific property according to where the right-click was.

Say I've got 4 U8s that I want to join into a U32 - right now, I have to build 2 of the U8s into a U16, then build the other U8s into a U16, then build the 2 U16s into a U32.  I'd like to see these primatives growable to each datatype width.

Add a module to LabVIEW to use it on Android OS or Apple iOS. 

 

People have already been getting smartphones for awhile.  And now in 2011, there are so many manufacturers that make tablets with Android OS or even Windows.  Apple iOS is considered to be the cool thing but Android OS is more open and used by more manufacturers (since only Apple for it's iOS).  Since the Andorid Tablet is so new, yes there are more Apple tablets out there than Android tablets but if it's like the smartphone market, Android OS will overtake the iOS market.  It's just a matter of time. 

 

I don't know whether one is easier to code than another, but if you had the time I think a module for both the Android OS and the Apple iOS would be extremely powerful.  Wouldn't it be great if we could run an instrument from our phones or tablets?!?! 

 

But I would just be careful to make sure the module was robust and not too many key features were missing from the full LabVIEW version.  In the past, we tried the PDA Module and Touch Panel Module for an instrument and it didn't work out.  The module was very buggy and missing a lot of features from LabVIEW that we though were important key ones.  We ended up abandoning the PDA module idea and went with an advantech touch panel computer with Windows XP and just kept writing with regular LabVIEW.

I have seen some ideas relating to Replacing VIs, but I haven't found this exact one...

 

When I think of replacing, I think of the top use cases. One of the ideas I saw related to the class of a VI, that's a common use case. Other Ideas related to performing repeated replaces. That's another common one. And another common use case is replacing with a VI from the project that is not on the template.

 

My idea is to group all of the common use cases on the top-level flyout. IMO, Select a VI... should be the #1 item, then come the palettes and Class VIs (not pictured) and finally a list of the last N VIs that were selected for replacement.

 

I think that this would make a lot of our lives easier.

 

 

NOW:

Bad.jpg

 

BETTER:

Good.jpg

When programming in FPGA, all the timing functions are polymorphic, meaning you have to configure it for either ticks, us or ms. If your not carefull, this can sometimes lead to unwanted error due to simply overlooking a wrong configuration, as in the following example picture:

 

How are the timing functions configured?

 

I propose a simple indicator or different icon to easily see the difference. Something like this, only maybe better looking:

Proposed solution

The title say it all.

 

The Build and Strip Path primitive should be able to operate on array of path and array of string.

 

Polymorphic Strip and Build Path.png

 

PJM

The last decade has seen a fantastic development in using neuronal networks to analyze data. Neuronal networks allow doing nowadays feasts that were unimaginable a decade ago at a tremendous speed. The latest release of LabVIEW allows using old TensorFlow versions <= 1.14. About four years ago, TensorFlow switched to TensorFlow 2.0, which resulted in a significant transformation in how models are organized. Models developed in TensorFlow <2.0 are incompatible with current standards. If National Instruments aims to maintain its position in the market of computer vision, developing tools to use current TensorFlow versions is a MUST.

 

Want to have graph display a certain scale unless values go outside scale min or max and then do autoscale but only in direction which scale bounds were crossed.

Example:
Normally want graph to display X scale 0 to 10 to display to user:
Scale 0 to 10 look good.PNG
If set same graph to autoscale would get the following graph that user could interpret as values are swinging all over the place but this could just be noise and I do not want to display this format to user:
Autoscale Bad.PNG
So I want a solution that incorporates manual scale and autoscale by autoscaling only after scale limit is exceeded. Asume get a data point of 13 which is above the max scale range of 10, graph would do a single autoscale only in direction above 10 to change max to 13.
Desired Result.PNG
Would be Graph Scales property. Option disabled if Autoscale was selected.
Properties.png

I know can use property nodes to programatically do this in my program but it is much more involved having to constantly check to see if values have gone outside range and then issue a single Autoscale.

How about this for a possible improvement.

 

It would be neat if there was a format painter button somewhere on the toolbar that acts like the format painter in a word processor, this format painter would copy all formatting information from one object (probably a FP control/indicator) to another.

 

Click on the first object, click on format painter and then click on the second item and viola! the formatting is copied over.

 

An example of this is setting the numeric format (which takes quite a few clicks to set the significant digits etc). I know its possible to edit properties of multiple similar objects, but this is a bit different.

 

Maybe this would work on the BD as well?

 

I think it would probably be possible to do this with JKI's Right Click Framework, looping over all the properties of and setting the destination the same as the target.

StringConstant1.png

As everybody knows there are two ways for generating an empty string constant in the block diagram: Using the "empty-string"-constant or creating a genereal string constant with no content.

 

Both ways have advantages and disadvantages:

- The "empty-string"-constant shows much better that the string is empty but it can't be used e.g. in arrays.

- The string-constant can always be used, it is easily generated by right-klick to a string terminal and selecting "create -> constant". Furthermore its value can be changed to somthing non-empty if required. Disadvantage: It's hard to see if the constant contains nothing or just a blank sign.

stringConstant2.png

 

My suggestion: LabVIEW shall show a string constant which contains an empty string always with the symbol that is currently used for the "empty string"-constant. This is also valid if the empty string is within an array or cluster. If this behaviour is not wanted in a particular case, there shall be the conext-menu-option "show symbol for empty string" which could be deactivated.

stringConstant3.png

 

For changing the value of such a new string constant, the symbol shall change to a classic string constant if the user moves the mouse (with selected text-editing-tool) over it.

Similar behaviour is also suggested for general-path- / empty-path-constants.

 

Remark: I'm working with LV2015SP1