LabVIEW Idea Exchange

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

Make the diagram cleanup feature take into account structure labels and accordingly add space for them.

 

When building, the version fields are limited to being I8 - I want them to be strings:

 

22290i709C7BD2DB9CC86E

 

This means I can't have a version like "2010" or "8.2 f3".

The idea is to add some systems controls which are not available in LabVIEW 2016...

GUI Interest group shows many alternatives but any about I/O controls.

IOsystControlsGUI.JPG

The idea is to get System controls with identicals functionalities as Modern UI (I/O Name filtering, ...)

 

Vincent

 

One of the (frankly many) ways that the Labview Compare Heirachy could be improved is to add support for comparing actual projects.

 

For instance, I might want to see at a glance what is different between two build specs, or whatever.

 

At the moment, this leaves me reaching for BeyondCompare (other diff tools are availableSmiley Happy

I use the following shortcuts in Quick Drop:

"+" - shortcut for "add"

"-" - shortcut for "subtract"

"*" - shortcut for "multiply"

"/" - shortcut for "divide"

 

And that got me thinking that what I would really like is to be able to type simple math equations and have Quick Drop generate said equations.

So if we typed "(*3+2)/(4+5.68)", Quick Drop would spit out the following:

simple math.png

 

-Carl Wecker

I have noticed a big limitation in TDMS files. When acquiring DAQmx data, often times it is easiest to acquire a 1D array of waveforms for multiple channels, then log this array of waveforms. The problem is that when you have an application that may log, then stop logging, then resume logging again to the same group and channel (such as an application that logs only when an alarm condition is met), the waveforms are automatically appended, rather than showing the gap in time when nothing was being logged. I would prefer that there be some way data logging is managed in scenarios like this, because right now it seems my only options are to 1) convert waveforms to an xy format to be logged, or create a new group every time a logging flag changes to on (which could get quite confusing to a user). I have to assume switching logging on and off is a common scenario, so I'm surprised this hasn't been addressed.

A trivial idea perhaps, but worth stating. An idea to honour .NET object transparencies within the .NET container. It would be nice here: https://decibel.ni.com/content/docs/DOC-12073#comment-25481

Thanks.

When you double click a dynamic dispatch VI, LabVIEW opens the implementation selection dialog to allow you to choose the relevant VI.

 

There is, however, a case when this seems to be unnecessary - if the wire going into the DD terminal does not have implementations in a descendant (or doesn't have descendants at all) we could immediately open the VI in that class because that's the VI we most likely want.

 

In this example, the child class does not have any descendants, so if you double click the bottom VI, LabVIEW could (and if this idea is accepted, should) immediately open the VI from that class.

 

Inherit.png

 

You might think that if you're already using the child wire then the VI doesn't need to be DD in the first place, but there are cases when you work on the lowest level and want to use VIs which are also shared by the higher levels.

 

This isn't a huge issue (you basically save a single double click or Enter), but it would be a nice shortcut. In cases where we do want the implementation from a parent class we could get it from the project.

The creation method for Polymorphic VIs is too cumbersome. It is a lot of work to go through each field and manually enter the information; especially if there are lots of data to create. It would be much more time-saving to be able to enter it all in a spreadsheet, and have the creator read from this spreadsheet. People would be much less intimidated to use the creator. 

Almost all LabVIEW data types can currently be sent through a shared variable without any hassle.  The notable exceptions are native LabVIEW classes, which cannot be selected as the data type for a shared variable.  This causes a problem for anyone who wishes to send objects across a network.  They are forced to rethink their use of LabVIEW classes, use a communication method other than shared variables, or flatten and unflatten the object on either side of the shared variable communication.  The use of classes is growing more common with every version of LabVIEW, so I think it is time for these two prominent LabVIEW features to work together seamlessly.

20789iED59C8EC20094DBF

The Block Diagram Cleanup utility was a great improvement when it came in LV 8.6. But it is far from perfect. In large or medium sized programs, structures tends to be very large, many times more than needed. Here is one example which is a part of a main program. If I use Cleanup on the hole program, the result is for this part:

 

untitled1.png

 

But if I mark the two inner case structures and press the Cleanup button, the result is:

 

untitled2.png

 

Then I select the “Exclude from Diagram Cleanup.” for the two inner case structures, mark the outer structure and press the Cleanup button again. The result is much more compact:

 

untitled3.png

 

Why cannot LabVEW do this automatically? If it starts with the inner structures and works outward, the result well be much better than today.

This is something I have wanted for a while now, but I have raised this idea following on from this community thread: https://decibel.ni.com/content/groups/large-labview-application-development/blog/2011/03/16/integrate-graphical-diff-with-subversion-source-code-control#comment-14826

 

The LVCompare.exe takes in a few command line options for example to ignore front panel changes, if you want compare two VI's but be able to change the switch options you send to LVCopmare you need to write some kind of wrapper function and each time you want to change the difference you see you have to close the Differences window  restart the compare again.

 

I would like to see on the "Differences" window a table that allows the user to change the selected switch options & to then allow the user to re-run the compare on the two VI that are currently in scope without having to close and start again

 

cheers

 

Dannyt

Create a new control called "Listbox ring" like the filters used in excel and other apps that allow selection of multiple items via a checkbox

 

Drop down selectable listbox.jpg

It would be great to determine properties of a disk drive i.e. type and size. There have been a number of my applications that would benefit from knowing the difference between a local drive and a network drive. Drive Types are shown below.

Drive Properties Fig 1.GIF

 

It is simple in LabVIEW to get a list of disk drives on a given computer as shown:

Drive Properties Fig 2.GIF

There are round about ways to get drive information such as command prompt and the system exec.vi and registry vi’s. These methods require a lot of overhead and programming. There is currently no simple function in LabVIEW that I can find that will return the properties of a disk drive.

 

This idea is more of a request for National Instruments to include a new VI that will get Properties of a Disk Drive. This new VI should be similar to the existing Get File Info VIs.

 Add a Show Icon option to the Call by Reference Node.  The Icon would be the Icon associated with the VI Refnum from the Open VI reference.

 

 

Call By ref.JPG

CURRENT: If nothing is selected, we cannot create a snippet.

 

IDEA: This situation should be allowed and a snippet of the entire diagram be created if nothing is selected.

 

(Also, the menu entry should be named "create snippet" instead of "create snippet from selection" for simplicity.)

3D!!!!!!!

 

LabVIEW's 2D picture plot is very versatile, but also very '90's', conversely the 3D picture control whilst good for drawing teapots is lacking a lot of the power in terms of helper functions that the 2D plot has.

 

Let's see NI add some out-of-the-box functionality to give us more from the 3D plot.

 

-A good '2D in 3D' library to allow us to use the 3D control just like a 2D one with pixel perfect bitmaps. This is how modern 2D
 games generally do it and it brings many advantages. Scaling, rotation, tinting, and alpha mapping will all come more or less for
 free from a CPU perspective (with minimal effort for the gfx card) and will enable all this goodness in 'real time'.

 

-Plot helpers compatible with the 3D display. LabVIEW has some great 3D plots built in, but wouldn't it be nice if these would spit
 out a scene compatible with the 3D picture control? Then if I want to add extra custom bits to the plot or have my flying teapot in
 front of it, I have that option. The 2D picture plot already has the ability to do this stuff in 'old-skool' 2D, so the 3D picture
 plot currently feels like a poor cousin. If we can drill down into the plot helpers in LabVIEW, all the better... you'll see an explosion

 of community enhancements and new plot types.

Reference conversation in this thread: Speed of Cursor Clicks on graph

 

The cursor button pad for changing the position of the cursor is overly sensitive to the duration of the click in how far to move the cursor.  A normal button click sometimes move the cursor one tick like you'd expect.  Sometimes it jumps several positions.  It requires an exceptionally quick click to keep it from jumping to far.  The button pad is designed so that if you hold down the button, it moves continuously.  But what is a normal single click gets interpreted as a button hold.

 

There needs to be more of a delay between when a button goes down to when it gets intepreted as a hold before repeating the cursor.  Some usability testing may be needed, but perhaps a delay of 1/2 to 1 second.  I believe Windows has a setting that determines when a double click is treated a double click or two single clicks, that timing might apply here.

 

If you are uncertain what I am talking about, create a graph with some data.  Make the cursor palette visible and add a cursor.  Try to click the button left or right to make it move just a single tick.

 

One more thing to improve.  When doing this while the VI is not running and is in edit mode, sometimes a button click on the pad winds up distortingn the diamond shaped button rather than being interpreted as a click.

 

There doesn't seem to be a good way to move or rename a file when using source control integration (at least with Perforce).  Either I rename the file using Save As... in LabVIEW, which causes problems with the source control repository, or I do the move within Perforce which breaks all the links within VIs.  The Save As... dialog box should offer the option to do the same operation in source control as it is doing on disk.

The menu "tools...profile...find parallelizable loops" is a great tool to indentify loops that can be parallelized and it gives detailed advice and warnings in questionable cases.

 

There is however an important scenarios that is ignored in the analysis:

 

The case is if the parallelizable loop is contained inside a larger loop that is already parallelized. As a general rule, it is typically most efficient to parallelize the outermost loop only. A parallel loop inside a parallel loop only creates more overhead and will not gain much if the outer loop already causes 100% use of all CPU cores. It is possible that the LabVIEW compiler sorts things out automatically, but I think the "find parallelizable loops" tool should consider if an outer, already parallelized loop exists and should tone down the recommendation to a question mark instead of a check mark in this case.

 

Here is a typical analysis (yes, the subVI is very simple and inlined, so the outer loop parallelization is sound ;))

 

 

The description could read "This loop can be safely parallelized, but it is already contained inside a parallel loop and thus parallelization would not give any significant advantage" or similar.

 

Idea summary: The result window of "find parallelizable loops" should warn if a parallelizable loop is contained inside a parallel loop.