LabVIEW Idea Exchange

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

Good day forum. What do you think if the existing wire have an option to be 'strict by name'? Strict as in the wire itself will retain its name and passes only value to elements with the same name. I can see some possible use for clusters specifically, especially recursive ones. Thanks.

namestrictclusterwire.png

 

I think it would be very useful if when selecting a build specification, you could build all the dependencies of that build in a manner similar to the way "make" works.

 

When building complicated projects, there may be several builds. The simplest example is an application installer that depends on the the application to be built first. Another example is a suite of compiled utilities that all have to be compiled before the installer is made. Another example is an application that uses packed libraries, all of which should be built prior to making the final build and then the installer build.

 

"Make" is an old tool that does this dependency checking for you. If you select the installer to build, it would check the dependencies of the installer, defined in a "makefile", and then build any project that is out of date. The out of date projects are those where the last modified date of the source code is later then the last modified date of the built file.

 

In this way you can simply ask that the installer be made, confident that "make" would find all the required dependencies and compile them as well.

 

This can be baked into LabVIEW. The installer build already knows which build specification it is dependent on.

 

Below is an idea of where this feature would be implemented.

 

Make Dependencies.jpg

Good day forum. Can't seem to find a method to extract cluster element label names from cluster constants. Maybe through a malleable subVI? Would prefer to have that together with the control reference method. Thanks

On the Enum Properties dialog, Edit Items tab, there are Insert, Delete, Move Up, Move Down, and Disable Items buttons. Multiple Items may be selected, but the Move Up and Move Down buttons are disabled unnecessarily. They should be enabled. There is no reason multiple items shouldn't be able to be moved up or down.

Right-clicking objects on the block diagram in LabVIEW produces a shortcut menu appears. When placed on replace, a menu is shown that is sensitive to the selected item and the option to access all the palettes. Often, when we want to replace an element, we also want to use some other element from the same palette.

 

Palette_02.png

 

When we access the palette, the thumb tack pins are missing, and if we need to access more than one element, it is necessary to navigate in the block diagram through the functions palette. In addition, when we get used to using the "Quick drop", when we need to access items that we don't normally use, it is difficult to locate on the paletta, so I propose, include in the palette from shortcut menu the thumb tack pins.

I prepared a project using a cRIO-9037 and am using the video output to display the front panel of the real-time VI.  The run time application uses the display but will never use a keyboard or mouse connected to the cRIO.  However, the mouse cursor shown as a black arrow is in the middle of the screen and it would be nice to turn it off via some form of setup.  I suspect there's some obscure Linux feature to deal with it but cannot take the time research it.   For now the high-tech solution is to temporarily connect a mouse and push the cursor out of the way.

LabVIEW currently does not have a VI which moves user selected single or multiple array elements up or down (increment or decrement selected index numbers)  and reorder the array. I built a malleable VI which does that and if I am lucky, it may be released in the new LV version within the array palette. This VI can be used when single or multiple selected items in the listbox, multicolumn list box or similar controls wanted to be moved up or down at one click of a button, i.e. if you have a list box with 10 items and you want to move up or down item # 2,5,6,8,9, ( which means array indices 1,4,5,7,8) , these selected items will be moved up or down and items will be reordered within the list box. This also can be used when you move items up or down while editing Enum items. Currently, you can move up or down only a single element but not multiple elements in the Enum edit elements function

LabVIEW currently does not have a VI which moves user selected single or multiple array elements up or down (increment or decrement selected index numbers)  and reorder the array. I built a malleable VI which does that and if I am lucky, it may be released in the new LV version within the array palette. This VI can be used when single or multiple selected items in the listbox, multicolumn list box or similar controls wanted to be moved up or down at one click of a button, i.e. if you have a list box with 10 items and you want to move up or down item # 2,5,6,8,9, ( which means array indices 1,4,5,7,8) , these selected items will be moved up or down and items will be reordered within the list box. This also can be used when you move items up or down while editing Enum items. Currently, you can move up or down only a single element but not multiple elements in the Enum edit elements function

When FFT data is shown the most interesting data occurs as vertical lines or peaks.  When interrogating the data with plot cursor there is not a cursor type that will show the data underneath the cursor. See the plots belowDisplaying image.png

 

Displaying image.png

The line style of the cursor can be changed to some type of "dashed" to show some of the data, however there is not a current style of cursor that has the benefit of showing a line that is drag-able without covering the data. 

One possible solution is add a select-able cursor type that will show the line above the Y value but not below. So when the cursor is moved to a peak the Y value of the cursor is at the peak, there is a small circle or box and a line from the Y value going positive but no line below the Y value going negative. Current cursor style.PNG

 

 

It'd be nice to have a compound arithmetic function of "Greatest" and "Least" which will output the largest or smallest of the input values. It could look like this but with re-sizable input nodes. 

 

Also, I think the top way is the best way to find the greatest in a set, but let me know if there is a better way. 

Recently I play with C to refresh my (rather shallow) C programming skills. To make it fun, I combine this with building C DLLs to be called from LabVIEW.

 

Ok, lets get to the point. During C code development (I use Code::Blocks as IDE, and MINGW-gcc as compiler), I often need to make small modifications on the code, and recompile it. Since my LabVIEW project/VI uses the DLL in the Call Library Function node, I need to close the VI(s), otherwise the C IDE complains it cannot re-build the DLL.

Of course there is a workaround, explain in the following quite fresh document:

https://knowledge.ni.com/KnowledgeArticleDetails?id=kA00Z0000019O6eSAE

I use it, and it works. However, I find this workaround counter-intuitive and "ugly" as a solution. Idea: could we have some kind of more explicit control over DLL unloading? I imagine different options, one possibility to have a special CLN node option, like "unload" DLL...

 

What do you think?

It'd be nice if there were some general options in the Tolls --> Options... menu to configure how Express VI's should behave when dropped. Now there's only "Configure directly", but i'd like 2 more:
1. Show as icon
2. Show Caption
(there might be more, but those 2 is of the top of my head)
It seems i always need to R-click and View as icon and turn off Caption. It'd be nice if that was automatic.
(I'm currently upgrading code that was originally done in some old LV and last in LV2011, so the suggestions are e.g. to replace Open file to File Dialogs, thus this thought)
/Y

The HSDIO Write Named Waveform function is picky about what constitutes a valid waveform name. If you pass it an invalid name, you'll get an error (-1074118618, waveform name is invalid).  The embedded explanation for that error does warn against names with embedded spaces or underscores or names that begin with numbers or those that match reserved words. But that list of forbidden characters is incomplete and nowhere, that I can find, within either the LabVIEW help system or the NI web site, is the proper waveform name syntax defined.  This needs to be rectified because leaving it the way it is forces the user into having to guess at what the proper syntax needs to be.  And while I have not yet confirmed that the somewhat associated script names share this deficiency, my guess is that they do.

 

By the way, the dash or minus sign character is also a disallowed character in a waveform name.

I have been using the Continuous Measurement & Logging template for a few years and when looking back I see that I've spent a non-trivial amount of time doing the same tasks as soon as I create the template. So...I decided to create a project and save to use as my new template next time I have an application that will benefit from it. 


My main goal was to reduce the number of wires in the initial template and use more TypeDefs (like with the queues) to eliminate the need to refactor each VI if the data type changed. 

 

Feel free to take a look at the project and let me know if you agree with the changes/additions and if it helps you, cool! If it doesn't help, I'd like to hear other folks opinions regarding why and suggestions for other ways of refining the starting point.

 

 

Winston

Download All

Currently, we can make inputs to subVIs optional (or indeed recommended) and not wire them - in this case, the default value for the input terminal is used. By default, this is the default value for the type, but it can be easily changed to another value (at least for terminals you can easily set).

 

Since there is no "optional" type, this leads to code potentially like

Example_VI_BD.png

If -1 is always an invalid value here, this might not be so terrible. The issue becomes more pervasive with, for example, empty strings (or string constants) when an empty string or that constant might conceivably be a valid value.

 

Class objects could be an additional problem, especially if a hierarchy is considered, because you might want to wire an uninitialized child object to an Init Object method, and it would fail an equality check vs the terminal type. You might then mistakenly conclude that it was already partially/fully initialized, and carry out the incorrect processing (in this exact case, probably dynamic dispatch followed by an equality check against the specific child, then calls to a static dispatch "Init Object_internal.vi" in the parent might work).

 

We can work around this if needed by using a boolean clustered with the value, and then checking the boolean, but this makes wiring the subVI and creating its inputs more frustrating.

 

I would like to see an optional terminal type that could be checked using a primitive to indicate if it was wired by the caller or not.

Example_VI_BD.png

(Apologies for the ugly icon, and probably dubious naming)

 

 

For the draft of the proposing paper in C++ for the std::​optional type, see http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3672.html

I have searched but didn't find anything about this. An easy idea; "Tab Controls with Scrollbars" independently for each page. When you design an interface with so much subPanels and don't want to open each at new window use need to use Tab Controls to organize objects. It would be great to use tab pages like web pages (especially scrolling down with mouse wheel).

 

 

tab with scrolls 1.PNGtab with scrolls 2.PNG

 

 

Pressing Ctrl-Y while the focus is on a polymorphic VI does not bring up VI Revision History, but it should methinks.  Thanks for considering this!

Hi,

 

I believe that Project, Class and Library descriptions are subtilized, you have to either right click on properties to get to the description/documentation, or hove over and check the context help to read it.

 

The idea here is to have a dedicated icon in each project, class and library that you can double click and immediately open/edit the description. that way it could be used as Notes for that item. 

 

I know that for classes and libraries, you could just add a text file, but, a different project could have different descriptions/notes and still reside in the same folder.

 

project description.png

NI LabVIEW Database Connectivity Toolkit Windows 10 64-bit
(Using 64-bit Software)
Not Supported.big problem!!!.

regards,

eyal.

I'm tired of typing in my password everytime I restart LabVIEW. I'd like a checkbox to allow it to be stored to disk.

password.png