LabVIEW Idea Exchange

Community Browser
cancel
Showing results for 
Search instead for 
Did you mean: 
Post an idea
Just like when a breakpoint is reached ! Smiley Wink

A chart can be used to display each channel of acquired data on its own separate plot area for comparison with a common time axis.  If the number of channels varies in a running program, the number of plot areas should be changed, perhaps by changing the Number of Legend Rows.  The number of plots in a stacked chart cannot be changed at run time however.  This issue is known to NI  but apparently is not an easy fix maybe due to memory allocation issues.  I am posting it here in hopes of showing enough interest to get this some attention.

 

http://forums.ni.com/ni/board/message?board.id=170&thread.id=296053&view=by_date_ascending&page=1

 

Allow the Select comparison function to accept an array as its S Select input.  This would allow the result of an array comparison to be followed by the Select function and if that array were then wired to one of the Select T or F, would allow each array element to then be replaced individually based on the separate boolean result.  One of the Select input (T/F) would be allowed to be a scalar so the array element could be replaced by that one value if desired.  This capability would provide an alternative to performing this operation with a For Loop and take up less diagram space.

 

This is a relatively trivial one that bugs me once in a while.

 

If we have a control or indicator (e.g. named "numeric") and make a copy of it, the new control is named "numeric 2". (followed by "numeric 3", "numeric 4" etc. if we make more copies).

 

Basically, if the label contains a trailing number, the highest existing number will get incremented by one for the new copy. 

What's wrong with this? You ask...

 

Let me explain: In labVIEW most things start counting with zero (e.g. array indices, iteration counters, etc.). For consistency, the original control should be considered "zero", so the first copy should be called "numeric 1" instead.

 

Interestingly, if we initially rename the control to "numeric 0", the first copy will be called "numeric 1" automatically. Why is "1" skipped if the original label does not end in a number???

I was looking at the terminals used on block diagrams in detail.  It seems like the current design kind of obsures the DBL label and part of the array bracket to indicate the terminal represents an array.  I started a discussion on these terminals in this thread.  Terminal images for arrays on block diagram  Why does the black arrow have a shaded background that obscures part of the text?  I think that thread had enough positive interest that I am going to propose some sort of redesign to the appearance of the block diagram terminals here.


 

Several ideas came up as replacements.  Here are some, the first two by me and the second two by Altenbach.

 

Mine:

 

The top of the first image shows the problem with the current terminal and is enlarged on the left.  The bottom of the first image shows one proposal where the terminal is enlarged by 4 pixels in width.

The second image is an idea where the terminal does not grow.


                My second idea.    

 

 

 

Christian's two ideas:
                   

Some key points were raised:

 

1.  Some thought the direction arrow was redundant.  In my opinion, some sort of direction arrow should stay.

2.  Changing the overall size of the terminal may cause problems for some (this happens in my first option).  It wouldn't bother me personally, but I do understand this point.

Message Edited by Ravens Fan on 08-24-2009 04:25 PM

This goes a bit with Christian's suggestion to separate edit time and run time front panel sizes.

 

While I do appreciate the alignment grid on the front panel I find it insufficient a lot of the times. What I would like to see is some alignment helpers similar to the ones that are provided in the form editor of MS Visual Studio:

 

  • When you move a control close to another control, it automatically displays a standard distance "helper" that you can snap to.
  • When you move the edge of one control close to the edge (in one dimension) of another control a vertical or horizontal line is drawn from that other control to which you can snap, regardless of whether it happens to sit on a grid line or not. 
  • When you move a control close to the edge of the front panel a standard distance "helper" is displayed that you can snap to.


All of these features should be available for a move as well as for a resize of the controls.

 

You can find screen shots of what I am talking about here and here.

A pop-up that appears when a user hovers over a buffer allocation dot would be very useful.

 

Data to display:

1) size of allocation in bytes

2) expected longevity (freed when vi quits vs. USR)

3) frequency of allocation (once at first run, each loop, etc.)

 

I know some of the data can only be a best guess but whatever additional data we can get

will be an improvement, especially when dealing with large data sets.

 

Thanks.

 

Matt

I have a habit of putting an enum with a digital display visible in each of my case structure frames controlled via enum.

 

It has become second nature already. Today I stopped and wondered why we can't simply include a digital representation as an "[X]" appended in the visible selector.

 

So here I am asking for it.

 

Intaris_0-1728572984028.png

 

It would be useful if a "Keep Text Only" (a.k.a. "Paste Values" or "Use Destination Style") option existed when pasting text into control and indicator labels, captions, or values.

 

Example

Screenshot 1: A GUI element (control or indicator) with a custom, non-default label and value (contents) font style.

1 (edited).png

 

 

 

 

 

 

Screenshot 2: The text "Hello World" was copied (Ctrl + C) from Notepad and pasted (Ctrl + V) in the middle of the label. The newly pasted text is inserted using the default font (Application Font, 15 pt, black). There is no option to paste using the destination font style. The developer now has to waste a few seconds reconfiguring the font. The same result is obtained whenever the text is copied from an external (non-LabVIEW) application, regardless of the application (Notepad, Microsoft Word, Excel).

2.png

 

 

 

 

 

 

 

 

Screenshot 3: The same situation occurs when pasting into a string indicator.

Combined 3 and 4.png

 

 

 

Screenshot 4: In Microsoft Word, it is possible to select the "Keep Text Only" option when pasting text. In the screenshot below, notice how "Hello World" text from the second row obeys the destination style when it is pasted into the first row. A similar functionality exists in Microsoft Excel and is named "Paste Values".

6 (edited).png

 

 

 

 

 

Notes

  • The current behaviour, where the text is pasted using the default font style, can be useful in many (maybe most) situations. I am not asking for the current behaviour to be removed. But it would be useful to have the option to select between the two behaviours.
  • When the text is copied from LabVIEW, the pasted text maintains its source formatting style. This can be useful, but again, it would be useful to be able to select "Keep Text Only" (a.k.a. "Paste Values" or "Use Destination Style").

Thanks!

Many times a day I need to look at the full text of an error cluster's "source" string.

The workflow for this has always been awkward.

Additionally, "Explain Error" also requires some extra clicks.

 

What if we combined all of that functionality into the context help so that, when the user mouses over a populated error cluster with context help enabled, the user can see all the relevant information quickly?

 

ContextHelpErrors.png

I have wasted days weeks of my life tracking down why dependencies are loaded in LabVIEW.

 

This is because the "Why is this item in Dependencies?" tool isn't particularly useful in larger projects.  And it isn't particularly useful because it highlights any file in your project (and not in the dependencies) that is dependent (no matter how indirectly) on the chosen file.

 

In this example, if I click on "Why is this item in Dependencies?" on library C, I get pointed to a VI in the project (A.a) which has a very indirect dependency on library C.

_carl_3-1677608632240.png

 

It would be far more useful to me if I instead only got shown the VIs that directly depended on my dependency (even if they were in dependencies themselves).  If I then wanted to follow this up the chain, I could just click on "Why is this item in Dependencies?" again, but on the found item.

_carl_4-1677608937189.png

 

 

In LabVIEW project file XML some information are generated by LabVIEW. For example:

  • Dependencies
  • PersistantID
  • FPGA stuff
  • ...

These information should not be commited to source code control system and having them within the LabVIEW project file makes it very painful to maintain a clean GIT history.

 

It could be very convenient to store these information into a separated file with a specific file extension so that we can easily ignore with .gitignore file.

When a project file has been changed, you can view a list of the changes that have been made to the project when closing it. Unfortunately, these changes often lack important details.

 

For instance, the most common change I make to project files is adding or removing items (even if inadvertently, such as opening a new VI and then immediately closing):

_carl_3-1658433964056.png

 

However, the message doesn't indicate which item was added or removed.  Usually when I'm looking at this window, I want to know specifically which item was added/removed so that I know whether or not it's important to save the project file or if I accidentally added something that I didn't want in the project (or removed something that I did).

When I was newer to LabVIEW, I found it hard to understand how people could identify front panel object styles e.g. NXG style string control vs System string control. 

 

leahmedwards_0-1648668143626.png

 

I believe it is the sort of skill that takes experience and experimentation, and it only gets more complex when the appearance of the string control is customised. For example, modifying the above controls so they are the same size, they are practically identical...

 

leahmedwards_1-1648668460012.png

 

I have never been able to find a good complete documentation of the differences in appearance and behaviour between different styles of front panel object - seems each style of each type of control has their quirks. So when presented with front panel objects that you did not make yourself, it is hard to 'reverse engineer' them if changes are needed. This makes it harder to learn how to make good UIs.

A potential solution would be to add a property which tells you which style a control or indicator was created as, or most recently replaced by. E.g. modern, classic, system, silver, NXG. An extension would be to add a 'reset to default style' which would behave as if replacing the customised object with an object of that style from the palette. A further extension would be to allow changing of style e.g. in this example from NXG to System via a dropdown box, although not all front panel objects are available in all styles so I can see this being more difficult to implement.


This is probably the ugliest UI mockup you will see all day but I hope it gets the idea across and sparks some conversation:

leahmedwards_2-1648669786430.png

 

This would be accessed via 'properties' on the right click menu of the front panel object.

leahmedwards_3-1648670215478.png

 

 

I'm not very experienced with XControls, QControls etc. so would welcome suggestions about how these should behave. Perhaps there is some nuance to do with styles that I am missing.

This idea is related to this one which talks about setting style for the whole front panel.

Let me know your thoughts!

The request:

The thickness of splitter bars can be resized through the front panel at edit time, but this property is not exposed through property nodes. Why not expose this?

 

Background:

I use splitter bars all the time for resizable GUIs. They're also cumbersome. Many of the feature improvements I'd love to see have already been captured on this forum. In the mean time, I've got tools for automating what I can -- but I've hit a dead end when it comes to resizing the splitters programmatically. This requested property node doesn't exist and pre-sized splitters can't be copied from template VIs using scripting because the "Move" method throws an error.

My typical workflow is:

 

1) Start LabVIEW

2) Realize I have to pull\update my project from SCC

3) Explore to the project manually in windows explorer. Or open project, explore, close project, update SCC, reopen.

 

It would be nice to have an explore option in the Getting Started Window:

Explore from Getting Started Window.png

 

Either a right click menu, a button for each item or a button for the selected item would be great.

 

Same for VIs, maybe even the templates.

This is related to the Array to Cluster function which has a idea here as well: https://forums.ni.com/t5/LabVIEW-Idea-Exchange/Allow-Array-to-Cluster-Type/idi-p/1044021

 

This defaults to nine (9) (https://zone.ni.com/reference/en-XX/help/371361R-01/glang/array_to_cluster/) but to the new user this may get missed.  I suggest a set size dialog box to pop up when it is first placed on the block diagram.

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.

We currently need to use for loops to convert between arrays and sets:

Current Situation.png

This is not a bad thing in principle, but in my opinion there are multiple issues with it:

  1. These loops require a lot of space on the block diagram, which distracts from the *actual* code. The for loop provided on the palette in particular is absurdly large (and has a label attached to it). Most users probably won't use it more than once.
  2. The same code is used in many places to do the exact same job. This is a strong indicator for reusable code in the form of SubVIs.
  3. An empty for loop can confuse users who are new to sets.

I think LabVIEW should ship with malleable VIs to take care of conversions between 1D Arrays and Sets, because everyone who uses sets will need them eventually:

Suggested Solution.png

Download All

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)