LabVIEW Idea Exchange

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

Particularly for refactoring code, it would be nice to have a way to only apply changes to re-parented items if they already have a library/class layer in their icon. With other smaller utility VIs, using the Apply Icon To VIs action causes the layer to be added and then I have to go through and eliminate the created layer so the icons look correct again. I'm fine with that as the default behavior but I'd like to have an option to only update icons that already have the NI_Library icon layer for these kind of updates.

VIMs are awesome but when wire inputs are broken they aren't awesome. They'd be awesomer if there was a way to specify that when specific frames of type specialization structures are active, there is a way to get specific strings added to the error info for the caller. Having a way to add custom strings to VIMs would overcome the general "An unsupported data type is wired to this subVI node." error string we're currently given. This can also help differentiate between LabVIEW breaking during type prop for odd (bug) reasons and properly invalid inputs... Do I need to just delete a wire and re-wire the input or do I need to hope the developer provided good VI documentation?

 

With some additional frames in Type Specialization Structures and maybe something like a subdiagram label but instead it could be a error reporting field at the bottom of a frame, it would be much easier to provide meaningful information back to a developer such as "GUID input only accepts GUID.ctl or a String". Then if the caller breaks with the unsupported data type error for the VIM, error details from the currently active TSSs can be concatenated to the Details string displayed in the Error list dialog. Alternatively, each error message found in TSSs could be separately listed in the Error list.

 

My 10 second idea:

TSS Error.png

 Resulting in the Error list perhaps showing it as either an error or concatenated into the Details:

TSS Error list.png

 

Put a copy of the Empty String/Path? on the Variant palette since "this function is also designed to work with variants...; see https://www.ni.com/docs/en-US/bundle/labview/page/glang/empty_string_path.html .

 

For an example of the difficulty in finding this function, see https://forums.ni.com/t5/forums/editpage/board-id/170/message-id/1248895

 

For precedent of the same functions on different palettes see the Array to Cluster and Cluster to Array functions on both the array and the cluster palettes.

Hopefully low hanging fruit? I'm constantly checking the error list when working in a VI that's part of a broken class hierarchy to see if the VI itself has errors or if it's just due to a hierarchy error or dependency error. I often repeatedly check it to confirm if the VI I'm currently working in has the errors and could save a bunch of time if something was different about the broken run arrow and I only had to glance at it to confirm I can move elsewhere in my development as expected, or continue to the error list to see what's really broken.

Let's say I have a class with a few public VIs, and several private VIs and typedefs:

_carl_0-1674746142961.png

Assuming I'm not working on a VI within the class, If I'm using this class on a block diagram, I can only use the public VIs.

 

However, if I right-click on the class wire, and go to the auto-generated class palette, it shows everything.  This can be absolutely overwhelming with larger classes.  Why not scope this palette appropriately?

_carl_1-1674746918911.png

 

Clusters can be added together using the "Add" primitive:

_carl_0-1674589830749.png

Why not support adding them together in the same way using "Add Array Elements"?

_carl_1-1674589902284.png

I often work with DVRs, usually using typdefs or classes for the underlying data.

 

It's a serious pain to access the typdef or class from the DVR itself (control, indicator, or wire).  There's no option for accessing this through the menu, and I often find myself dropping code in my block diagram to output the data type, then right-clicking on the data type and then from that menu opening the typdef or class.

 

The request: add a menu option for "Open Data Type Def." or "Show Data Class Library" to directly access the underlying type if it's a type def or class. This menu option could be exposed on wires, controls, and indicators.

_carl_1-1673552680629.png

 

 

 

When hovering over Typedef / Custom Control (*.ctl) in the Project Manager, the Context Help only shows the Icon and ev. a custom VI Description.

It would be very helpful if the Information and the wire pane image of the contained Control was also shown in the Context Help of the Typedef.

 

codelux_1-1673360690644.png

codelux_2-1673360796469.png

 

This improvement would reduce the needed effort to write VI Description or avoid opening several Typedefs until the right one is found.

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.

Currently if you flush an event queue that data is lost. Flushing and destroying and event queue should have the same interface as flushing/destroying a normal queue. Return the Data! I want the option to batch process the events, The code below would have to handle 1000 separate events to get the data out.


hunter_jki_0-1672775860961.png

 



Idea
Flush Event Queue.vi should return remaining event data.
Destroy User Event.vi should return any unhandled events.

If you want to animate a loading/waiting animation, you can make a series of pictures. But if you want background free pictures, you can use png. However, the quality of transparent png in LabVIEW is not good. Also in case of using picture ring, you can not make it smaller or bigger as well.

I suggest using graph and plot a circle showing circle points. Then make the graph background transparent.

You can set each point with different color, and change their color in a step/ramp using a loop (to show animation of circulation). You can also set number of points, points shape, size, and position.

Now you can make it as a subVI and use it wherever you want. Just remember to send the reference of the VI graph to the subVI and set the attribute and property of the subVI graph the same as the main graph.

It's not uncommon to accidentally leave a process hanging and to have a really hard time tracking it down.  Different folks seem to have made different "kill all VI" tools, but this should be a native LabVIEW feature supported by NI.  The tool should just work.  "Ctrl+." doesn't always work.  You should be able to push some shortcut that works even if you have a frozen modal dialog or whatever, and all running VIs are stopped, and log of which ones were stopped prints to the screen.

By default, overrides of interface methods with the default dynamic dispatch connector pane (object in/out and error in/out) look like this:

 

Current.png

This means that the default override of interface methods do nothing EXCEPT DROP INCOMING ERRORS, which is bug territory imo.  Ideally, they would be scripted to look something like this:

 

Ideal.png

Yes, I know I probably can mess with the project provider to get this.  No, I don't want to have to do that! 🙂

Formula Node output variable names should be shifted right 1 pixel within their borders. Currently, the names are left-justified. Since each character is also left-justified (i.e. the white-space to separate them from adjacent text is on the right of each), input variable names have a 0-pixel left margin and 3-pixel right margin within their 1-pixel border. Since the output variable two-pixel borders grow inward to match the outer dimensions of input variables, the text pixel is cropped with excess on the right. This is problematic for the 1-pixel wide lower-case letter L which is cropped in half by the left border but still has a 2-pixel right margin. If shifted, names would be centered, cropping would not be as apparent, and the letter L would be distinct. The image below is enlarged 200% so the issue is more obvious (but the name is easier to read).

 

formnode.bmp

Store webservice "source code" in a separated file like VI, libraries, classes ... not in project file so a webservice can:

- Be versioned in source code control

- Be reused between targets

- Be reused between projects

 

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.

In case of a front panel with several buttons, a dialog to set the Key Navigation option for all of them would be more convenient and faster than having to open the properties of each button individually.

 

Key Navigation.png

Hello all!

Either all or some of these have surely been wished/requested before, but were unheard, since LV lacks them since 20 years.

  • Zoomable front panel and block diagram (Ctrl key modifier)
  • Reset front panel position to origin (the dot/cross) by one click
  • Lock front panel background from movement when designing UIs

Hello, 

 

Lately I used Visual Studio Code to edit Mark down files and other text files. One feature that I use is the GIT integration to VS Code. For text files the diff is integrated to VS Code and it's very useful to take decision on which files to commit or not.

 

It could be nice to have the same type of plugin into VS Code to diff LabVIEW VIs. 

 

Thank you

 

Dany

Sometimes, when debugging code, I may force a situation, e.g. force a boolean to be TRUE or FALSE, or force a For Loop to only run once. Once I have made the fix I then forget to reverse my changes and run my code. Or, even worse, create an executable and send it to a customer. Doh!

 

Could we create a primitive, in the shape of a small bug, that I could drop in my code at the point where I force the code? Then, when I come to run a popup asks "Run with bug?" This would allow me to debug my code, but would also remind me to undo the deliberate bug before I run the code for real or try to create an executable.