LabVIEW Idea Exchange

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

It would be nice if the LabVIEW primitives for TCP allowed for the creation of a socket without actually connecting it to an endpoint.  My thoughts are that there would be two new commands added to the TCP palette:

 

TCP Create Connection (Advanced)

TCP Open Connection (Advanced)

 

TCP Create Connection (Advanced) would create the socket but not perform the connect() method on that socket.  I would imagine that it would otherwise look and feel quite like the current TCP Open Connection, except that the user would need to manually run TCP Open Connection (Advanced) afterwards that would perform the connect() method on that socket.

 

I have a need to access the raw socket object before it is connected, using the TCP Get Raw Net Object.vi in the vi.lib\Utility\tcp.llb library.  This VI works to get the handle that can be used by winsock and other Windows DLLs, however, it only allows for setting properties for a socket that is already connected.

 

Specifically I have a need to enable Windows FastPath for TCP to optimize the rate at which I can stream data between two applications.  Per the specification, this option must be enabled BEFORE the socket is connected.  Right now I can set this for the listener on the server side (TCP Create Listener creates a socket but does not connect), but I cannot set it for the TCP connection on the client side as the first method it calls is TCP Open Connection which returns a socket that is already connected.

In LV 2011, an asynchronous Call By Reference feature was added to LV. This feature added a new node called the Wait on Asynchronous Call node. This new node has a timeout that is configured way way of a right click menu option.

 

It would be nice if the timeout was specified by way of a normal input that can be wired. This has several advantages:

    • The timeout can be specified at run time
    • The timeout value can be visible on the diagram without right clicking and showing a dialog
    • The timeout would be more discoverable by users

Many of these VI properties are "Run-time" writeable.  They should not be set while the vi is in an "Idle" state 

 

Screenshot 2023-05-12 191049.png

The one button dialog is a great tool when debugging code. It's very convenient to wire a string to the dialog to probe data when regular debugging techniques are not available. There are times when it would be handy to wire a non-string data type and not have to either convert a number or a boolean to a string. Formatting should be limited (for simplicity) such that data types like arrays and clusters would need to be handled by the user.

 

onebutton.jpg

This is just an idea I had while working on a simple application.  I often find myself wanting to replace multiple objects on a block diagram in a repititive manner.  As an example, I have an application that uses a queue requiring an enumerated value as an input - when I started the application I didn't use a type definition, but I (of course) quickly arrived at a point where I needed to replace all of my constants with a type definition.

 

Right now I have a few options:

1) Delete the type definition and drop a new one down and wire it up

2) Right-click and select 'replace' and point it to the ctl file

both of which take a considerable amount of time to do over and over again.

 

Here's my idea...  I create the type definition once, and press CTRL+C while it's highlighted on the block diagram.  Then I select one (or multiple) items that I want to replace with this type definition and when I press CTRL+P it automatically replaces and wires the item in the copy buffer.

 

It's hard to illustrate, but I just wanted to throw it out there to see if anyone likes the idea.

DVRs are references, and are automatically released when the VI hierarchy that created and "owns" it goes idle (stops executing).  Commonly, the DVR just contains by-value objects, or LabVIEW references that are also automatically released, but an important use case of DVRs is wrapping a non-labview reference that must be properly cleaned-up.   An example is an SQLite Connection pointer that must have a dll method called on it in order to release the database file it is holding open.  Many dlls have similar pointers/handles that need to be properly closed.  This is a headache for Programmers, who cannot rely on a stopped VI releasing its resources, often requiring restarts of LabVIEW to unload the dll.

 

A clean and easy solution to this problem would be to allow a "DVR Cleanup Callback VI" to be registered with the system when the DVR is created.   That VI would be called if and only if the DVR is release because its calling VI hierarchy goes idle.   This VI would contain the code to cleanup/close the contained non-LabVIEW references.  Could have other uses, such as debugging. 

 

I have developed multiple APIs that wrap non-LabVIEW dlls, and this feature would be a very significant help.   Please consider it.

I think it would be useful if you could double click on the items in "Referencing Items" to open the VI on the resolve conflicts dialog.

Resolve conflicts dialog.jpg

As an aside, the dialog should also remeber its last position and size. I have to expand it every time to see the full path.

 

Simple idea is to make the icons found in the palettes, the block diagram and help all match.

 

MissMatchedIcons(larger).png

The icons in the columns are all the same function, however, there are some significant differences. It is reasonable to expect the help menu icons are expanded to show additional functionality, but there is no reason why the palette and BD icons should be different. The core of the icon in the help menus should be the same too.

These icons screen shots are from LabVIEW 2018.

Often when using tables (and multicolumn listboxes), the content of the table column or row header is longer than the desired width of the cell.  It would be nice if there was an option to make the contents of the cell wrap to the next line, similar to how tables work in Excel or Word.

 

Also, adding vertical justification options such as Top, Center, Bottom to the Active Cell property subset would be nice.

 

Here's a crude illustration of what I'm talking about.

 

new Table options.PNG

 

Consider how CTRL+E toggles between the BD and FP, back and forth. Likewise, it would be nice if CTRL+Shift+E toggled between the VI and its corresponding Project Item.

 

Currently, when viewing a VI window, CTRL+Shift+E will highlight the Project Item -- but this action is unidirectional -- pressing the same key combo again does not take you back to the VI (it just does nothing).

 

Oh, and, Reflexive... is that the right word? Bidirectionality? You get the drift. Here's an illustration:

 

CTRL-SHIFT-E-Reflexive.gif

The title says it all, for the reference this discussion on LAVA that explains how to do it using .NET :http://lavag.org/topic/9216-deletion-of-folders-and-files/

 

Please give us a native way to do that in LabVIEW.

Something that bugs me is when I right click on a terminal to create a Indicator, for instance, and the frames around it expands to fit the new Indicator and it's label default. This is much worse in complex diagrams with many nested frames.

I propose that the frame expansion should be done only after the text validation in order to increase the minimum necessary, as shown below:

 

Here's a dumb mistake I think many of us can relate to:

bundle_by_name.gif

It would be really nice if the VI were just broken in this situation. But I can understand why it's not necessarily simple to mark node *outputs* as required.

 

 

But maybe there could be a way for the editor to *hint* that there is a problem here. Maybe the bundle nodes could change color when the output terminal is wired, so you could get a little more obvious feedback if you screwed up like this.  The same could go for any other primitives that have a "for type" input (e.g. unflatten from string, variant to data, to more specific class, etc).

 

Granted, VI Analyzer could report bugs like this, but having a little more immediate feedback would probably be a big win.

 

(Let me know if this should be cross-posted to the NXG idea exchange, too).

Did you know you can make property nodes and invoke nodes smaller by not showing the names?

 

18885i5C350C6F75475F32

 

Well, forget you know, it's a terrible idea to hide that information! You lose the self-documentating nature of LabVIEW. I use this as a comparison for Call Library Function Nodes (CLFN) - by default, these are dropped on the block diagram without showing names. I propose that the default is to show names for CLFNs for the sake of documentation, and so you don't have to hover over each terminal to find the one you're looking for. The biggest perk is simply the name of the function on the banner of the node. YES, there is a tradeoff between BD real estate and documentation, but I think "Names" trumps space virtually all the time.

 

18887iBEE93A577FAAFAA3

The database toolkit is limted by the database variant to data function. It can only cast to a labview datatype as long as you wire that datatype to the type input. This means that you have to know the datatype of any SQL query in advance (or convert to string). It would be very useful if the function would also accept a variant datatype. This way it would be possible to cast any complex type into labview datatype, without the need of a predefined cluster.

 

Image - casting the database input with a the variant type input (circled) doesn't work

aartjan_0-1735459849988.png

 

 

                                              With only 2 subdiagram, the Disable structure should behave in all cases like a flip-flop.

 

                                                                                        it's not currently the case and it's annoying

 

 

SR1.png

The Tree- Control and the Multicolumn Listbox support the presentation of a Symbols per row. But there are a lot of cases where there is needed more than one symbol per row. One very common scenario is the display of various states (Calculation completed: Checkmark; Results written to file: Checkmark; Assigned Application to open file: App-Icon...). NI does this already in the "Example Finder" window, so it is obvious there is a need for this feature.

I think it is a good practice to hold a pool of symbols, attached to the control, like NI does currently with the Trees and MCLBs. And for performance reasons there could still be the possibility to determine the columns to be capable to display symbols.

So from the LabVIEW programmers point of view there could be added the following properties / methods:

  • Symbol-Displayable Colums (property, read/write), (1D Array I32): Gets or Sets the indices of colums, which can show symbols and reserve space when the property "Visible Items->Symbols Visible" is set to true
  • Active Symbol- Column (property, read/write), (I32): Gets or Sets the Column-No which has focus for the next "Item Symbols"-property operation.
  • Set Column- Symbols (method, takes an I32 as Index for the Column, takes a 1D-Array of  I32 as Symbol-pool indices): shortcut for setting the Property "Active Symbol- Column" followed by setting the Property "Item Symbols".
  • Get Column- Symbols (method, takes an I32 as Index for the Column, returns a 1D-Array of  I32 as Symbol-pool indices): shortcut for setting the Property "Active Symbol- Column" followed by reading the Property "Item Symbols".

This should provide compatibility to the current handling of symbols since the property "Symbol-Displayable Colums" defaults to [0], so if "Item Symbols" is read or written to, it is meant to use the first column, which is status quo.

taking ideas like that seen here  , I got this idea: 

 

 

When working with "Path Constant", which works with a path too long, we observe look like this:

path2editado.PNG

Would be much nicer if we could double-click the “Path Constant” for us to see something like this:

path3 editado.PNG

The idea is this.

path idea labview editado.PNG

With the advent of the IoT and the growing need to synchronize automation applications  and other TSN (Time Sensitive Networking) use cases UTC (Coordinated Universal Time) is becoming more and more problematic.  Currently, there are 37 seconds not accounted for in the TimeStamp Which is stored in UTC.  The current I64 portion of the timestamp datatype that holds number of seconds elapsed since 0:00:00 Dec 31, 1900 GMT is simply ignoring Leap Seconds.  This is consistent with most modern programming languages and is not a flaw of LabVIEW per se but isn't quite good enough for where the future is heading   In fact, there is a joint IERS/IEEE working group on TSN 

 

Enter TAI or International Atomic Time: TAI has the advantage of being contiguous and is based on the SI second making it ideal for IA applications.  Unfortunately, a LabVIEW Timestamp cannot be formated in TAI.   Entering a time of 23:59:60 31 Dec 2016, a real second that did ocurr, is not allowed.  Currently IERS Bulletin C is published to Give the current UTC-TAI offset but, required extensive code to implement the lookup and well, the text.text just won't display properly in a %<>T or %^<>T (local abs time container and UTC Abs time container)  We need a %#<>T TAI time container format specifier. (Or soon will!)

Hi

I don't know if this idea posted before.

When I want to customize a Boolean button by adding picture to it I have only three options which are import picture to True, False and decal. My suggestion is to add more options from which the user can add true and false picture on the Boolean button without changing its original shape. Here an example:

 

Let us say that I want to customize the Start Test/Stop Test button by adding a picture on the button that represents the start state and another picture to represents the stop state. In order to do this I have to import the true picture as decal then take a print screen for the control, also I have to import the false picture as decal then take a print screen, then I have to import the two print screens for true and false state

 

It will be nice if it is possible to have an option to add multiple picture same as the multiple test option

 

Untitled.png   Untitled1.png