LabVIEW Idea Exchange

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

The only nice thing about llb files vs lvlibs is that they contain all the files for the library. But there is no namespacing, access scope, and they can not contain two files with the same name. The latter rules out dynamic dispatch. Packed project libraries solve this but they can be a pain to use and the vis can not be inlined.

 

I propose a new "Bundled Project Library" which is a hybrid of llbs and lvlibs. They contain all the functionality of an lvlib but actually contain the vis. These can be regular libraries or classes. This would resolve a known issue with VIPM when building class hierarchies.

As my VI grows I often need to search for items (e.g. using "Find All Instances" or "Find >> Property Nodes"). When I browse through the search results I then find myself jumping all over the block diagram.

 

Very often however, I want to get back to where I was before the search so I can continue what I was doing. Unfortunately that usually means flicking through a bunch of case structures until I remember where I was! 

 

flow.png

 

 

What I would LOVE is browser-style navigation for the block diagram, allowing me to easily get back to where I was no matter where I end up!

 

 

back.png

 

 

My first thought is that this function should operate within a single VI only. That should make it clean and simple... It would effectively just toggle which cases are visible on the block diagram.

 

It could potentially be extended to navigate across multiple VIs, but that's something I could live without for now... 

 

I think it would be very nice to add these. A common task is to get object position/sizing pixel perfect. Adding these buttons would help tremendously with that, there is plenty of space for them, and I feel like it would be a minor developmental effort. Upvote if you like it, thanks for reading 😀

 

FireFistRedhawk_0-1638369163977.png

 

Hello,

 

I started programming at age 9 - over 29 years ago. I enjoy programming in Labview for about 12 years now.
Recently I notice my kids look for games on the internet, but they don't learn programming as I did in their age and I am not happy about it. This drove me to think of an interesting idea.
It's an educational game I call The Labview Challenge, intended to run for free via internet. Kids play and learn how to program.
The game is similar to "The Incredible Machine" where you have basic building blocks and a goal.

In this game the user screen has inputs and outputs. The building blocks are Labview parts. The user places parts and wires them to build a program that solves a puzzle. It starts with easy tasks. A few examples of easy tasks:
Find the sum two numbers
Concatenate two strings (first name and last name with a space in between)
Find if a number is odd or even
With each task a few more parts are introduced.

The levels become gradually harder, and the score is made up of the number of nodes you used, or running speed.
In advanced levels finding the correct solutions is harder. You also can have really tough general programming tasks where you can use all Labview parts, and the solution that has the least parts or works fastest gets the first place. The hall of fame would have users who solved these and got the best scores. An example for a tough exercise is "find the n-th prime number" where a simple loop may be too slow. You can have annual tournaments.
The bottom line is that I would like to see my kid play a game and learn how to program.
An added value for NI would be that thousands of kids will have their first programming experience in Labview. It would be their choice for programming something for school, for college and for work.

 

Should be implemented by NI and placed on their servers.

 

Neat-sun

I think the rearrange cases option would be a little bit more user friendly if the size were a bit bigger.  I don't see why it needs to be so small.

 

 

rearrangeCases.PNG 

I like system controls. 

 

In fact, if the system control set could be augmented to include cluster/array frames, graphs and some decent boolean indicators, then I would probably create an idea to ditch the modern controls entirely! Smiley Wink But I digress...

 

One very odd thing that happens when you set the system control set as your default is that every time you create a boolean control/indicator from the BD, you get a radio button! That's never what I want!! Are there any use cases where it makes sense to create a single radio button from an existing BD terminal or wire?? I'm guessing that the radio button is replaced with another control in 99% of cases.

 

I propose that the default boolean be changed to a checkbox.

 

This is obviously not going to satisfy all use cases but a checkbox makes much more sense than a radio button:

  • It makes sense as a "single entity"... the radio button does not.
  • It is just as compact. (Good for placing inside clusters, etc)
  • It may not be very intuitive as an indicator, but neither are any of the other system booleans!

 

This is a small but significant improvement that could surely be made very easily.

 

 

This has been mentioned before as an example within this idea, but I think it deserves to be evaluated on its own.

When you’re making a By Reference LabVIEW Object using a Data Value References (DVRs) the user of your class would need to embed each Dynamic Dispatching VI inside an In Place Element Structure (IPE). Or you have to create wrapper VI for each method but this undermines the advantages of LVOOP Inheritance.
 
The idea is that a DVR containing a LabVIEW Object wired to a Dynamic Dispatching Terminal is equal to calling the Method VI inside the IPE structure like illustrated below.

DVR DynamicDispatch.PNG

Message Edited by Support on 01-15-2010 04:39 PM

There is one thing I am missing in the Replace menu. It seems logical to have an option there to replace the VI (or missing VI) with a NEW VI.

 

Every now and then I come across code that is missing a subVI and the VI is nowhere to be found so I end up opening the VI with a question mark in the place of the missing SubVI. Now, I can see that LabVIEW knows what the connector pane of the missing subVI was (the used part of it anyway), and I just want to replace the question mark with a VI with the same connector pane. However, no "Replace with New VI" option exists.

 

There are two ways around this already, but none of them are as smart as they could be. The most obvious is to just creae a new subVI and use the replace function, but then I will have to recreate the connector pane manually. The second option (which did not occur to me until I began thinking about this idea) is that you can just click on the question mark and select "Create SubVI" from the Edit menu. LabVIEW will then do what I want - namely to create a new VI with the same connectors as was used for the missing subVI - job done. However, it will also place the question mark inside the new subVI and nag about it being missing. I can cancel the missing VI dialogs, delete the reference to the old VI inside the new one, and I am ready to rebuild the missing VI, but why not just have a replace with new option? 

 

The missing subVI is an infrequent case, so why bother? Well, this is not just handy for missing VIs. It will simplify things any time you want to replace an existing VI by creating a new one. Sure, you can save the existing VI with a new name, replace the old one with it, and then start changing the new one..But with this option it could all be done in one go.

 

 

ReplaceWithNew.png

 

 

 

 

 

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

structure_merger.PNGEvery now and then I (or others) have two case or event structures that I would like to merge, either completely or just copy some cases from one to the other. If we are talking about one or a couple of cases, doing it by creating empty cases and copying the code from one structure to the other as is the option today is fine. If the number is much higher this gets quickly tedious, and we have to come up with alternative solutions.

 

(Making a subVI of the two and add another case structure around them, as described in the discussion linked to above, is one -  but that changes the layout and adds another selection to the logic).

 

So how could it be handled by the IDE instead and made much easier?
A case merger function.

Here are a few quickideas on how to implement it (but any similar solution would be better than none);

 

  1.  Copy-Paste-Merger: Selecting the frame of structure 1, copying it, selecting frame of structure 2 and pasting will bring up a merge dialog with the following options:

    a) Replace structure?
    b) Merge structures (all cases)?
    c) Merge selected case only into structure?

    Now if the user selects to merge the whole or just the top/selected part of the structures (b or c) the function has to handle overlapping cases (just like the OS does when copying into a folder with existing content) by asking the user whether to keep the old ones, replace with the new ones or leave them as non-unique values (or add an index to the value) for the user to tidy up manually afterwards.

  2. Drag and drop merger; identical to the previous suggestion - but instead of copy/paste the transaction is initiated by dragging structure 2 over structure 1 and e.g. holding it with an edge aligned when dropping to indicate that it is not intended to go *into* the other structure.

  3. A merge option that can be called from the menu or contextual menus on case/event structures. The advantage of this would be the ability to add more complex mergers where you would want to pick frames x, y and z from structure 1 to merge with structure(s) 2 etc... This option could alternatively be combined with the other two and used as the dialog when those are initiated.

I'd like to see a Tri-State Boolean Control / Indicator on the Modern Controls palette, which would work with an enum (similar to the System Mixed Checkbox on the System Palette). Thanks!

 

Message Edited by Broken Arrow on 06-01-2010 05:11 PM

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

 

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.

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

File dialogs that have been set to only browse for folders should only have 2 buttons, one to cancel and one to select the current directory:

 

folder select.gif

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

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

I have a few VIs with many events in the event structure ( and I'm sure there are apps out there with orders of magnitude more events defined).

In an effort to get this list under control, why not employ the same structure used when we edit an event?

Or, at least, offer it as an option(?)

Below is what the event-list might look like if it used the same organizational structure as the IDE uses to present available events when editing them. Below that is what the option-dialog might look like, and, far below is what we have now (I used screenshots from LV20014 , but checked LV2017 to see if anything had changed by then. 😁).

 

EventsListNew.pngEventsProperties.pngEventsList.png

 

 
 

 

 

 

 

 

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