LabVIEW Idea Exchange

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

There is a long standing omission in the refnum palette of the synchronization and event refnums primitives. The new and popular DVR ref should also be added.  My example here shows these oft used reference controls at the top of the palette, where I think they should be. While I don't have the rendezvous in my example, it should probably be added as well, even though I don't personally use it that often. In summary, we shouldn't have to do the "create control>cut>paste" shuffle to get the notifier/queue/semaphore/rendezvous/event/data value references.  Sorry if this is already posted.  I searched on refnum palette and didn't see it.

 

 

refnums.png

Very often we need to combine both Align and Distribute operations. For example, objects should be aligned by bottom edge and distributed by centers. Right now we can use Ctrl + Shift + A; Ctrl + D hotkeys, but for intensive UI design the floating point window like this will be useful, where all operations combined together:

 

ad1.png

 

Different combinations are possible:

 

ad2.png

 

This window can be called probably from View->Align & Distribution Window.

 

Andrey.

I seem to have this form of construct regularly in my code:

 

CheckSelect.png

 

i.e. a comparison function followed immediately and only by a Select function.  My suggestion is that most of the Comparison functions (except Max/Min, In Range, and Lexical Class) should have optional True/False terminals which if wired, include the Select functionality, and therefore change the output from a Boolean to the wired type.  It might be sensible to use the larger triangle icon as well.

 

CheckSelectNew.png

 

 

This is a very minor nit, but I don't see any possible downside to just removing the tip strip, and it's certainly not something that requires the infamous NI War Rooms to come up with an R&D solution.

 

I can't imagine even the most obtuse beginner being confused as to the function of the selector label of a case structure.  And even if they were, seeing 'Selector Label' pop up is not going to help them.

 

But it occasionally blocks what you're trying to see, if you've happened to leave your mouse cursor there.

 

Do we really need to be forever reminded that this is what changes the view of a case structure?

 

 

Selector Label

What is really nice about the database toolkit is that "database SELECT" variant data can be cast directly into an (array of) cluster using the "database variant to data" function.

aartjan_0-1725964773106.png

However, it cannot cast MySQL enums to Labview enums. By default, MySQL returns the enum string, not the underlying integer. As soon as the casting function encounters a string to cast to an enum, it fails to convert all following data.

My not so elegant workarounds:

- cast the enums in SQL and use "database execute SQL" instead of "database SELECT"

- create a view with the enums converted to int.

 

"database INSERT" does work without hacks: you can use clusters with enums to insert data into MySQL tables. The only caveat there is that LV enums start at zero, whereas MySQL enums start at 1. I work around this by adding an "undefined" value in the Labview enum.

 

My suggestion is to support enums in the database toolkit. After all, in Labview, it is not hard to convert a string into the matching enum.

 

Hello,

 

I personnaly, create a new VI icon template for each project.

 

Something like this ... TemplateIcon.png

 

The problem is that i reuse a big part of my old applications when i create a new one.

So, in my new applications i get a mixture of many different template Icon. Smiley Sad

 

It would be nice to have a tool that could apply an icon template on all VI icons of a project (Or VI selection list ? )

(Uniformization of Icon templates )

 

Something like this ...

 

TemplateIcon2.png

 

Or, it could be interresting to had a "Project scope VI icon template" : 

 

Thanks a lot.

 

Manu.net

Oftentimes, I would rather have a smooth scrolling action rather than the line-by-line action. This is not just a whistle or bell to make UI's more modern; from a usability standpoint, it's easier visually to trace a smoothly animated object rather than a jerky object.

 

Here are two dorky little GIFs to illustrate the point (first is "clunky", second is "smooth"), but go ahead judge the difference yourself by opening the attached LV 8.2 VI. It contains a "simulated" smooth array using a cluster trick.

 

ClunkyScrolling.gif                SmoothScrolling.gif

 

Oh yeah, this would apply to Arrays, and Trees, and Listboxes, and Clusters, Matrices, and Tables, and.... (hey, we currently have smooth scrolling for string indicators! One out of a half-dozen is a good start....)

 

I envision an option between clunky and smooth, because both options have their merits for different situations.

The "Wire All Terminals" feature (pressing Ctrl-Space, Ctrl D) is such an awesome feature for quickly adding controls and indicators to a subVI.  However the current implementation makes a spaghetti bowl on the block diagram, as well as a unintuitive collection of controls on the front panel.

 

autodrop1.png autodrop2.png

 

I propose having this feature place the terminals in a cleaner, more organized way, and to logically organize the front panel controls as well.  It could even take the FP placement from the actual subVI, since most (hopefully) already have them in a nice layout to begin with...

 

autodrop4.png autodrop4.png

 

Since very early LabVIEW versions, we always had the small sizing tip strip at the bottom that showed the current size in pixels when resizing an object on the front panel or diagram.

 

This is maybe OK for simple decorations, but for most other objects it is very inadequate and not helpful at all. For example if I resize an "index array" node to show more outputs, the node size in pixels is probably the least interesting information! It would be much more useful to indicate the number of outputs instead.

 

Now if we resize an "index array" node for 8 outputs, we simply resize until the tip strip shows [8 outputs]. Without this, we need to guess the size, count, resize again, etc. A slow, tedious, and error prone process, especially for larger sizes.

 

Of course the "resize tip strip" should adapt depending on the object that is being resized to always show the most useful values(s). Here are some possible examples:

 

 

Resizing action                      example of tip strip


 

Resize a 1D array:                  [5 elements visible]

Resize a 2D array:                  [6 rows x 5 columns]

Resize "built array" node:          [7 inputs]

Resize "index array" node:          [5 outputs] 

Resize "initialize array" node:     [3 dimensions]

Resize "replace array subset" node: [8 elements/subarrays]

Resize "compound arithmetic" node:  [4 inputs]

Resize a graph:                     [Overall size: 400x600, plot area: 380x500]

...

...

 

It should of course apply equally for front panel and diagram objects. For example the suggestion for the arrays would apply to an array control, array indicator, or array diagram constants. 

 

Of course there are many more possible objects, each with it's on set of useful size parameters. This is just a small collection. Please go over the palettes and make other suggestions!

 

 

Message Edited by Support on 06-02-2009 12:36 PM

It would be nice if NI could provide the option to BLINK different LEDs at a different rates instead of a constant blink rate that it there at present.

Currently, to allow a user to select a relative path within a Path control, you must either:

 

1. Easy (but glitchy) method:

 - Catch the value change event on the Path control;

 - Compare the NewVal with your base path with "Compare Two Paths.vi";

 - In case the path is relative to your base path, rewrite the relative path to the control using a local variable;

 -> This results in a visual glitch because the value is updated twice.

 

2. Recommended (but complicated and not very clean) method:

 - Take a first Path control, move the "path box" out of view, but keep its browse button visible;

 - Put a secondary Path control next to it, with its own browse button invisible;

 - Similar to method 1: catch event on first path, update secondary path;

-> No visual glitch, but difficult to adapt to paths inside arrays, clusters and combinations of both.

For both methods, additional logic may be needed in case the user is typing in the path box directly.

 

 

So the idea would be to add a "Base Path" property to the Path control, so that when the user clicks the browse button and selects a path that is relative to that base path, the control would get the relative path value instead of the absolute one.

In case the selected path is not relative to that base path, the control would still have the normal behaviour and get the absolute path value.

 

By default, this property would be set to "Not A Path" (or empty path) to keep the current behaviour.

 

Also, it would be the developer's duty to correctly treat relative path values and inform the user to what base path it is relative to.

Current methods for the LabVIEW Project that exist as Right Click Popup Menus are not exposed via VI Server/Scripting.

However, these methods would be very handy to call programmatically. 

 

I say, if we can Right Click Popup on it, then we should be able to script it!

A quick one-button solution to view pre-configured Design Rule results per VI. Not quite an analyzer.  One layer (VI) deep. Pull-down icon changes from green check mark to the Alert symbol suggested here if violations exist.

 

LV_LIVE_DRC.png

We need the additional properties of the used LabView Editor:

bitness: 32 or 64 bit

ServicePack Number: 1,2,3 ....

Patch Version: f1,f2,f3 .......

 

fixedimage.png

 

So, what i like to have is, that i can get the above listed properties from the currently running LabView Editor, programmatically!

 

See also forum discussion for the problem:

programmatically get Labview Editor bit Version

 

I'd really like to see some additional text formatting options, specifically:

 

1.)Vertical text justification in string indicators (top, center, bottom)  ******* please!

2.)A better font navigation, the pulldown list of hundreds of fonts can be exhausting (scroll, scroll, scroll, scroll, ...)

3.)Better font previewing for those that can't recall exactly what "Gloucester Extra MT Condensed" actually looks like  😄

 

 

 

 

I feel like in a few cases, my code could be more readable, if a picture ring constant existed.  By that I mean if I could have a block diagram object, that showed an image, and clicking it would allow me to select one of the other images in the ring, which correspond to a numeric value, just like the picture ring control does.

 

I've come into a few cases were I want to know if my picture ring on the front panel is equal to some case.  So I will use the equal primitive and compare my picture ring control value to a constant.  Problem is my constant is just a numeric, because that is what the data type of the picture ring is.  I then usually need to put down a comment explaining what the value of 2 or 3 is supposed to be.  I feel like a better solution for readability would be to have an equal function, and wired to it, is another instance of that picture ring type def, where you can see the image that the value is being compared to.

 

Now sure this doesn't come up often, and in most cases it is recommended you convert that ring into an enum, and then you get a bunch more benefits, but in a few cases I feel like adding a picture ring constant would only make the code more readable.

 

Picture Ring Constant.png

FIR Filter is almost the same as convolution, except that it has a init/cont terminal while convolution has an input for algorithm (Direct, frequency domain). FIR filter always uses direct convolution.

 

If "cont" is not used, convolution based FIR filtering could be orders of magnitude faster because it scales much less steeply with input sizes. Examples have been discussed where switching algorithms from "Direct" to "frequency domain" can turn minutes into seconds (e.g. 1M points and 5k filter).

 

While the knowledgeable programmer can of course make his own using the convolution primitives (also programming around other limitations because this idea is not implemented :(), it might be more intuitive if the FIR Filter had an "algorithm" input where we can select between the same choices as for convolution. (From my casual understanding, "frequency domain" would ignore the "cont" input because it is incompatible. This can just be mentioned in the help.)

 

altenbach_0-1600102620742.png

 

LabVIEW provides 6 VIs to allow reading and writing image files - each one pertains only to a specific format (bmp, jpg, png).   We should add VIs which figure out which image format is given, and uses the correct image VI automatically in the case of reading.  In the case of writing, the format is determined by the extension of the provided file name.  I created a read and a write VI which does this here:

 

https://decibel.ni.com/content/docs/DOC-12141

 

I feel that this should be included in the image palette:

 

1.png

 

 

Bookmark manager is extremely useful for navigating large code bases. Every feature I have in flight, I've got marks for all my expected or in-progress work. Sometimes I'm using it to navigate through related chunks of code. So I'm constantly referencing it. But it gets buried behind windows, just like the equally useful Error List Window. I'm constantly reopening both, but the Error List Window has a quick hotkey to bring it to the front (ctrl+L). I'm finding more and more that I want Bookmark Manager to have a hotkey too. 

 

I've edited my personal menus to have "ctrl+," as the shortcut key, but I wish I could grab ctrl+k as a better mnemonic. Ctrl+k is currently paired with ctrl+j for bring to front and back... and those are keys that cannot be reassigned by users because they aren't main menu items. Personally, I'd place higher priority on accessing Bookmark Manager than reordering zplane, but I understand I might not be in the majority there. 

 

Anyway, the idea is for some standard key to be assigned to the View>>Bookmark Manager menu item.