LabVIEW Idea Exchange

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

I was searching for occurences of a reference to a Graph in one VI, and as I was interrupted, came back to the search result after the interruption, only to discover that the Search Result Window did actually not show ANY kind of useful information regarding the object I was searching references for:

 

Screen Shot 2014-08-19 at 18.03.18.png

 

I know I have outrageous expectations as a LabVIEW user, but this seems to me an odd lack of feature:

 

- From this window, I have absolutely  no clue what I am searching for. In particular, if I have in the mean time jumped from windows to windows...

- ...there is no way to go back to the object these references are linked to (unless I go to one of the references and then look for the Control or Indicator they are associated with).

 

Of course asking for a VI information when this is provided in the list below is maybe unnecessary.

But consider this global variable whose references I was looking for:

 

Screen Shot 2014-08-20 at 10.12.34.png

 

Same thing here:

- I do not know the type of the global.

- I do not know which VI it is part of (Globals are saved in a VI).

- I do not know where I started my seach from (but that's more of a back-to-source button issue).

 

Suggestion: provide as much information as possible about the starting point of the search, when said starting point is an object (by contrast to a text search).

 

Tested in LV 2013 SP1 64 bits.

I often have the situation in which I want to test a portion of my VI without running the entire VI. To accomplish this, I usually copy and paste the code fragment into a new VI and run it. When I'm finished, I close out the new VI without saving it. I've often wanted to simply select a code fragment and run just that part. For example, by right-clicking on the code fragment and selecting "run". It would be a nice little time saver. Of course, this would really only be feasible in certain situations: namely in which the code does not have any dependencies on other code sections. This essentially means that all the inputs are controls or diagram constants and all outputs are indicators.  This seems like it would be easy to add to LabVIEW since it is just a subset of existing functionality. Other implementations would probably be more trouble than they are worth.

This one is pretty simple and straightforward but very needed.  "Match Regular Expression" function is an advanced version of "Match Pattern" function.  When I start with Match Pattern and then decide I need more, my instinct is to Quick Drop > Replace or Right Click > Replace it with Match Regular Expression.  Unfortunately, the inputs get all wrangled up and don't connect to the right places and I get something like this:

 

Match pattern replace.png

 

 

If you expand a parent item in a tree and the name of the children are too long to fit in the current column width it should be possible to set the tree to automatically adjust this so that they will fit. There is already an Autosize Row Hight option, but no Autosize Column Width(!).

 

treeautosizeColumn2.png

Currently, the only object that we have access to in an Event Structure it the control itself:

 

Screen Shot 2016-04-30 at 11.43.24.png

 

This is not what I am interested in, most of the case, when I am working on the BD.

Rather, I'd like to either find the terminal, or local variables, references, etc.

Moreover, going to the control using the above shortcut may result in a messed up FP, not mentioning cases like this:

 

Screen Shot 2016-04-30 at 11.42.46.png

where the control may be hidden or invisible because it is in another tab than the one currently selected.

 

Now, I know that some will argue that the control terminal is most of the time in the event structure (see for instance this thread)...

But read the thread's comments for counter arguments: we would be talking about the Value Change event, but this is not what I am talking aboutin general: any event for that control should give access to the control's terminal (and BTW, it could very well be an indicator) and, as for a terminal, to this list of related objects:

 

Screen Shot 2016-04-30 at 11.57.57.png

 

(The last one courtesy of this shortcut plugin)

The longer you use LabVIEW the more accepting you become with the way it is and I don't think I could have come up with this one my own.  A new LabVIEW user suggested this idea to me.

 

When the VI is in edit mode show a glyph over the controls and indicators that assigned to a terminal on the connector pane.

 

 

I find myself asking two questions fairly frequently.  (1) Why is the Select function on the Comparisons palette?  (2) Why isn't the Select function on the Boolean palette?

 

MoveSelect.png

 

Not only is the Boolean palette the proper location (IMO) for the conditional operation (not a comparison), but that palette appears in the right-click menu for items in both the Comparison palette as well as the Boolean palette.

This is a neat tool I have only recently begun using heavily, but there are some big drawbacks that I would like corrected:

 

ListUnsavedChanges.png 

 

1. The window is not resizeable. As you can see, virtually all of my VI names overflow the "VI List". Also, I would like to see "Changes" have more line items vertically. (Similar idea: Allow Find All to be Resized)

2. I cannot double click the VI's in "VI List" to open that VI. More often than not, I want to check out those VI's to see if the "changes" are legit.

3. I would further like to be able to double click each line item in "Changes" and have the BD zoom and focus on that change, just like it does when you "Tools > Compare > Compare VIs..."

4. This window is modal, so I can't even do #2 - make it floating. (Another modal window woe: Make Build Error Window Floating, Not Modal where I explain a brute-force-screenshot workaround).

5. A huge help would be if the list of "changed" VIs could be shorter in the first place just by using the Do Not Save Option

 

These five ideas are just some basic UI improvements that would make this feature much more usable and powerful.

Enhance the Configuration File VIs with a Write Comment.vi that allows to add comments to the configuration without any workaround.

 

Configuration File VIs.jpg

Suppose you have a while loop containing a case state machine with several cases.  Then later you decide to add a shift register.  It's very time consuming to wire every case when you might need to alter the contents of the shift register in a single case.  So when adding the shift register and the user connects the SR wires to one case, auto connect all the other cases internally.

It's been great to be able to find Items with No Callers in Project. How about Find Broken VIs as well?

 

FindBroken.png

At the moment you can Replace a Missing VI in the Project by popping up on the project item and selecting Replace with... which brings up a file dialog where you can go trolling through directories to locate the missing VI.

 

Replace with...

 

I propose the option where you can Replace the Missing VI by navigating the Palette.

 

This method would be much quicker especially if you have a lot of VIs to replace.

 

An example use case is that you have refactored code in your project, creating a reuse library seperate to the project and changed the namespacing of the VIs as part of the distribution.

This distributed library is now available in the palette and you want to relink your project back to it.

 

I imagine it would function simiar to the below:

 

Navigate using palette

Get a quick and more clear view of the event handled by an event case

 

Intead of this:

EventCaseViewProblem.png

 

Get this by a click on the event case number:

EventCaseViewMoreClear.png

 

 

Download All

It would be really cool if LabVIEW had a String Control with inbuilt Spell Checking functionality available at Run Time.

 

End users will be able to correct input data whilst developers would not have to implement anything (except for maybe enabling spellcheck as a Property of the String Control) as it would all be handled under the hood.

Spell Check Property Node

 

I am thinking that it would look similar to the operation below:

 

 

Run Time Spell Check

 

 

The standard functionality of spell checkers in browser apps (e.g. IP Board) would be sufficient. The above example is from IP Board's editor and the implementation appears clean and fits the workflow well.

 

There are two other spell check Ideas here and here but the ideas/discussions are about spell checking in the IDE - this Idea is for Run Time.

 

Note: This idea could be expanded to other use cases however, the above is my primary one. And yes I ran spell check on this post to avoid any of those comments Smiley Very Happy

This should be simple....(!?)

 

I want my user to be able to resize the window but only in one dimension - e.g. drag the right border of the front panel right or left but not allow them to resize the height while the VI is running. (In my current project it just doesn't make sense to allow them to do this).

 

I have to keep rewriting the front panel size on the resize events but it has ugly side effects (parts of the front panel become visible temporarily until LabVIEW puts the bottom border back, amongst other things).

 

The VI properties can disable resizing completely but it should be easy to add a couple of sub checkboxes for Height and Width.

 

I'd like to see those properties reflected in the usual places (property node etc).

 

 

Resize VI properties.png

 

Support didn't have a better solution than the code I have but suggested that I put in an idea .... so this is it!

First of all, I know I'm going to get a heck of a lot of flack for this idea. I know how you guys hate changes or additions to core structures Smiley Very Happy

 

 

State Machines and Abortable Sequence Structures are very, very powerful. In my opinion, their only downfall is the fact that they require two structures surrounding the code: a Case Structure and a While Loop (or sometimes For Loop) surrounding that. This takes up diagram space (albeit not an absurd amount) and it is annoying when needing to resize the structures. If you add more code (and are OCD about everything matching up on the BD grid like I am), then you need to resize 2 structures instead of one.

 

My suggestion is to create a new structure that combines these two structures. I believe that this new structure, if implemented correctly, will reduce the number of overused stacked sequence structures by providing a simple yet intuitive core structure that offers the same functionality with more power. This new structure will also make it easier for non-programmers to become familiar with State Machines and their power.

 

Here is what the "State Machine" structure would replace:

Abortable Sequence and State Machine.png      --->     becomes  --->            combined case and While loop.png

 

The S input is a right-click option "Enable State Machine Input" which acts as a shift register and also as the case selector for the state. If "Enable State Machine Input" is disabled, then the iteration terminal i is used as the case selector. The i and Stop If True terminals are shown in every case, and the Stop If True has the option to use default if unwired (False) through another right-click menu (you can see this icon in the 1st "Abortable Sequence" structure). In my example I used an enum as the input, but any valid state machine input would work (string, DBL, boolean, etc.)

 

This would not be a full replacement for the original architecture: sometimes there is code that needs to be run before or after the state, on every iteration. This new structure would not be able to handle that in a nice way (you'd have to copy the code to every case, and that's just silly).

 

 

So, what does everyone think? Where are the flaws? What parts do you like?

 

Currently it is only possible to hide/unhide the frame of a subpanel by activating the context menu with a right-click.

Please add Frame.Visible to the list of subpanel properties.

Ran across this AGAIN today.  Its pretty annoying and should be fairly simple to implement.  I would suspect that the dev team got a bit rushed and never came back to flesh out the Detail functionality.  Time to post this here I guess.

untitled.PNG

When building Installers for an updated version of an executable, you can't select whether or not to overwrite the current source files directory. The reason this is a problem is when distributing to computers that need different configuration files that are installed with the original version but have since been customized to the specific computer. If you try to only include certain source files and not others then it still overwrites the entire directory and you lose the files you were trying to save. If there was an option in the Source File Settings window to "Overwrite", it could be automatically checked for the same default functionality but you could uncheck it to allow writing into existing directories.

 

Source File Settings.png

 

If you like this idea then give me some Kudos and hopefully we can get it in the next version of LabVIEW!

 

Peter W.

Applications Engineering

National Instruments

www.ni.com/support