LabVIEW Idea Exchange

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

A graphical programming language deserves to have great graphical tools representing the design of big applications.

 

It is possible to use scripting to understand if a method of a class has another class as input or output terminal and to know if a class composes another class in private data. The only thing I cannot do right now myself is to show this information in Class Hierarchy window. Representing the usage and composition relationships only requires parsing through the project once, and then every time it changes. 

I am right now using a script to parse through all project classes to understand which have what relationships, which are actors and which are messages and I draw a Plant UML diagram from that. The intermediate step is to generate Plant UML text, but this should be integrated into LV.


https://forums.ni.com/t5/LabVIEW-APIs-Discussions/Project-to-Plant-UML-Diagram-Script/td-p/3984499

5.png

 

6.png

 

Please improve the readability of object oriented project with additional tools for LabVIEW. This is especially critical for NXG, where the currently the ability to understand an OO project is even more limited than LV19.

When right click on a cluster and selecting "Reorder controls in cluster..." the bloody control indexes hide the labels of the controls in the cluster, rendering it difficult to select which ones should be in which order.  How does the programmer distinguish between one or another control??!!!???  :mad:

 

Hopefully the image below is worth 1000 words.  And yes, I did resize the cluster in the hope that the re-order index would go further to the right of the control, but it didn't.

 

This is something that needs to be fixed.  It should actually be considered a bug rather than a product enhancement. 

 

When dealing with a small cluster, it might be okay... but when dealing with clusters having over 200 controls, setting the proper order in a royal pain!

 

                                                                  

Download All

We've been saying it for years now.  Enums should be typedefs.

 

Why not make EACH and EVERY dropped Enum into a typedef automatically.  Drop a new Enum from a palette, it is a typedef.  Copy it, it's linked to the original.  For my taste, even ask for a save path after dropping the enum but for the sake of our sanity, just make each and every enum a typedef already.

It is obviously a good idea to not show the abort button on GUI VIs. It is much better to use a stop button, FP close event, etc.

 

However when developing code it would be useful if the abort button were visible on the block diagram even when it is not visible on the front panel.

 

My App FP.PNG

 

 

My App BD.PNG

In "Case Structure", when we use "Linked Input Tunnel" and select one end of the tunnel, is it possible to highlight the opposite end? as is the case with "Shift Register".

 

case.pngWe have crossed the wires on purpose, because it isn`t always possible to make a straight line. 

 

Currently there is no option for 45 degree text. 

 

45.png45 Degree Text.png

I think it would be a great addition and help readability in certain situations e.g:


Bits.png

See this thread for side-chatter.

Every time I need to open up several VI's at the same time, my Windows Taskbar becomes full of open windows and it gets hard to wade through everything.  Part of the reason for this is that every time a VI is opened, two windows have to be opened to view the block diagram (both the front panel and the block diagram).  I would like to see a fix that allows me to just have several block diagrams open at one time without their front panels, making it easier to deal with the numerous open windows I get sometimes.

Sometimes you have to read a lot of shared, local or global variables in sequential order. In this case, it can be a bit "boring" having to drag all the variables by hand. In addition, if you are reading shared variables, you also have to wire all the error cluster inputs and outputs. It could be useful to implement something similar to a property node or a Read/Write Control FPGA Node that you can resize and select which variable must be read or written in each position of the node as you can see in the following image:

 

SV.JPG

 

 

We can duplicate a graph scale by right click, but we cannot do it when the VI is running.
It's better that we can duplicate and delete a scale both manually and programmatically on running VI.
Duplicate Scale.PNG

For programmatic approach, I suggest invoked method like this:
new idea.PNG

Download All

When working with queues is useful to have quick access to queue VIs with a right click:

 

Queue.png

 

It would be wonderful to have the same feature for a class, showing public member VIs:

 

deviceclass.png

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.

Case structures should have an easy to use Navigation like multiple grouped windows have in Windows 7. If a window is grouped in Windows 7 you will get a nice window that allows you to view what is in each window and navigate to the one that you want.

 

This would be very beneficial in LabVIEW for case structures.

 

It would look like the attached:

17469iE27B0A3BAAC5664F

I have long defended NI's decision to bind the lifespan of DVRs to their creator VI but, with the addition of malleability (totally awesome) and the fix in LV 2020 that allows "New Data Value Reference" to be called directly in an inlined VI (thanks, AQ), the ephemeral auto-cleanup behavior of DVRs is now a big blocker to a reference-based strictly-typed API.

 

I want to open a strictly-typed and malleable reference and keep that reference open until I choose to close it, regardless of whether the opener leaves memory. Without malleability, I could delegate the DVR creation to another thread/VI and get the persistent reference back by callback but I can't have the home-baked persistence and the malleabilty.

Please add a persistence/auto-cleanup flag to New Data Value Reference so I that reference can persist if I want it to. (I need both the persistence and the malleability to write some really cool code.)

Persistent_DVR_idea.png

Here's an old request for this feature that was declined, but things have changed a lot since then: https://forums.ni.com/t5/LabVIEW-Idea-Exchange/Persistent-DVR-s/idc-p/2856348#M27799 

When was the last time NI updated the Run-Time Menu Editor?

Yes, it's been a looooong time 😉

 

I think this should be put on the road map as soon as possible.

 

The user should be able to define glyphs that are shown next to the menu items, just like in any modern UI library.

The RTM editor itself could use a complete rework, too. At the moment that's not what I'd call use-friendly (you can't even resize the window!).

 

This applies both to run-time menus of VIs as well as controls and menus that are called programmatically.

 

No, I don't attach an image here - just click into the menu bar of any remotely modern application on your computer to get an example of what I'm talking about 😉

 

Changing the radix of a numeric control from decimal without showing the radix is often reckless and sometimes downright cruel.  Why aren't the two options side-by-side on the Control Property Pages.  I am tired of switching Tabs, I would like the 'Show Radix' checkbox to be either copied or moved from the Appearance Tab to the Display Format Tab.

 

MoveRadixControl.png

I would like to be able to group decorations on the block diagram. In the attached simple example, I have to keep up with nine items - always selecting the entire area to move it.

 

 

BD_Dec_Grp.jpg

 

The current work-around for this is to place the items in a structure, such as a single frame sequence.

 

The idea is the same as Separate Compiled Code From Source File. When using external source code control (SCC) software like git, the user may want to track only the source code content changes. However, when every time saving the VI, the VI Revision History will be incremented. This reflects the change in VI attribute / VI properties, even though the other contents are the same.

hongcc1_0-1611440443410.png

 

This makes the commit log like git hard to trace the real change in the source code content from a high level. When using the compare VI tool, this attribute change will be one of the highlighted difference, which is quite distracting & confusing such as below:

hongcc1_0-1611439309083.png

 

I suggest this option can be disabled at the level of VI, project, or environment like the option of Seperate Compiled Code from VI. Hope it would be accepted 🙂

Error in terminals that are ignored/passed through by the VI without preventing normal execution should be marked differently in my opinion.

I've lost count of the times where I have to keep reading through the help files to check a function's error in behavior.

Examples: Release Semaphore, Close reference, Release Notifier

 

Then there're the functions that I have created that exhibit the same behaviour. People reading won't be able to tell at a glance if the error prevents execution when called from another function. As a quick fix I label the terminal 'error in (pass through)' or 'error in (ignored)', but it's not ideal.

 

Bonus points if this can be marked as such during development and the behaviour enforced/checked at compile time similar to the following (I know it will be difficult to reliably implement, so maybe warn instead):LabVIEW_2018-08-17_09-49-36.png

 

In File-Explorer you can show File Properties.

Some files show only common information on the "Details" tab.

But Media files show much more Details.

I want to see there "LabVIEW Version" and "VI-Version" of VIs.

File Properties.png