Home > Community > Discussion Forums

LabVIEW Idea Exchange

Showing results for 
Search instead for 
Do you mean 
Announcements
We've turned on a search before post feature in the LabVIEW Idea Exchange. This new feature will help cut down on the number of duplicate ideas in this space!

The NI Idea Exchange is a product feedback forum where NI R&D and users work together to submit ideas, collaborate on their development, and vote for the ones they like best. View all of the NI Idea Exchanges to post an idea or add your opinion on an existing one today!
New Idea

These two would help to sort out VIs when you want to make llb plugins, to determine who goes where.

 

I'd like to right click on an item in the project explorer, and have two more options "Open private callees" and "Open public callees.

 

By "private callees" I mean: the callees that the selected VI is the only one to call in the whole project.

By "public callees" I mean: the callees of the selected VI that are called by at least one other VI in the project.

 

(I mean directly called and not dynamically of course, the developper would have of way to distinguish his VIs that are called dynymically).

 

Again, I've done it for personal purposes, here's the snippet in 8.6 for those who might like it.

 

Find Private and Public Callees of Project Item_BD.png

"Open all callers" option from project

Status: New
by Trusted Enthusiast on ‎02-12-2010 12:37 AM

Easy one:

Right click on an item in the project explorer, you have "Find Callers" and "Find SubVIs", select one of these, you get small pop-up window with a list, double click on an item of this list, the item comes to front and the list disappears :smileymad: ... I always get mad at that behaviour!

 

I'd like an option to OPEN all Callers of the VI, I mean of course all the callers that are part of the project in which your are.

 

I made a utility VI doing that in LV 8.6, if anyone likes it here's the snippet :

 

open callers.png

Pretty self explanatory.  

Place an image on the front panel.  

Use the "Get Color" Tool from the tools palette on a color on the image.

The foreground color should ideally be the color you clicked on, however it's always Black with a White Background.

I'd think that getting colors from an image should work like getting colors from anything else on the front panel.  It would be pretty nice to be able to match the FP elements with an image thats on it for better GUI design. 

It should be nice to add custom message to the error cluster.

 

When you use the codified error codes, you cannot use dynamic error messages like : "File XXXX not found !"

 

So it would be easier to build more "user friendly error messages" ...

 

An additional Timestamp would also be usefull !

 

Something like this ....

 

ErrorCluster.PNG

 

To bypass this, i personnaly concatenate my custom error message to the error source.

It's not terrible ... but i have no other choice ! Smiley Tongue

 

It should be nice to be able to create a "typedef enum" for the pages of a tabcontrol ...

So the modification of a tabPage label could be automaticaly propagated to constants ..

 

 

The problem is ... When you modify the pages labels, and if you use the constant value associated with the pages ...

The associated wires are then brocken ... They are not automatically modified Smiley Mad

 

When you only want to modify the Label of a tabPage (For example to correct a mistake), the Vi will no more work !

 

An other idea would be to add a kind of "Caption" to the tabPages, in order to disociate the 'Display name' and the Variable name ...

 

Here a short example ...

 

TabPage1.PNG

 

TabPage2.PNG

 

Other Idea : (From the well known Roms)

 

It should be nice to create the TabPages of a TabControl automaticaty  from a typedef enum, and keep the link between the two items.

 

=> Modification of the TabPages modifies the typedef enum

=> Modification of the typedef Enum, modifies the TabControl content

 

 

 

 

Version Tolerant unflatten from XML ...

Status: New
by Active Participant manu.NET on ‎02-11-2010 04:20 AM

It should be nice to modify the "Unflatten from XML" in order to be more tolerant with data evolutions.

 

For example :

 

 I used the flatten/unflatten to/from XML to store my applications configuration. It's rapid ... and it works fine ...

 

But during the software life, you often have to modify the data structures ... and then you'll get problems !

The old XML string is no more compatible with the new data structure ! ... and old config files are no more usable !

( And sometimes only for a single new field !!! )

This could generates problem when you deploy a new version of your program ... and the old config files can no more be reused !  Smiley Mad

 

 

So it would be nice to have a more 'Tolerant' XML parser :

 

  • If the field exists in the old data structure and in the new one, then the field can be loaded from XML.
  • If a new field has been added to the cluster (Data structure), this new field could be initialized with the default value of it's data type.
  • If a field has been deleted in the new data structure, the field in the XML file should be ignored

 

TolerantXmlParser.PNG 

 

For the moment the Xml unflatten generates an error when the type definition is not compatible ... and nothing is done.

 

The new behaviour could be to load "Compatible datas" (by name and dataType), initialize new fields, ignore deleted fields,

and a warning error cluster could be generated  to inform that the XML parsing could be done ... but XML schema is not completly compatible.

 

 

  

 

 

Support Unit in all controls and functions

Status: New
by Member Qizhen on ‎02-11-2010 01:21 AM
LabVIEW allow you to set unit to the numeric controls.  But if you try to pass its value to some LabVIEW VIs or functions (e.g. "Simulate Signal"), the wire was broken.  LabVIEW VIs doesn't handle the value with a unit.  It makes the unit setting useless!
 
Untitled.png 
 
 
I got this idea from a Customer, here is his original comments:
"我编写了一个简单的程序,在前面板的旋钮输入控件附上单位vlot,然后在程序框图中放置了一个仿真信号控件,接下来将前面板中的旋钮控件的输出端连接至程序框图中的仿真信号控件的幅值输入端,但在即使帮助窗口中出现了一个错误,为:数据源的数值单位为volt,数据接收的单位为no Nuit,当然程序就不能运行了。于是我采用通用单位符$1的办法也没成功,最后从网友那儿得知在LabVIEW中只能够对数值型控件进行附单位。后来我仔细想了想,按照LabVIEW现在的思维方式,只能够对数值控件附单位,那么在其他运算中就不能够进行单位转换了(例如微积分运算),因此每遇到这种情况后,先要仔细排查一番所给出数值的单位,然后再写出适当的程序,这样岂不是很麻烦?能不能够在其他控件中也加入单位转换功能,这样在今后写程序就不再这样麻烦了! "

Bad wire gets cleared automatically when it can

Status: New
by Trusted Enthusiast on ‎02-10-2010 01:48 PM

Over the years the wiring routines have been improving a lot, here is a next step that would make wiring even easier.

 

I call that "Bad wire gets cleared automatically when it can", it would take me 50 lines to explain, so here are to screen shots to explain what i have in mind :

 

ex_a.png

 

ex_b.png

 

 

It would be nice to add a new control/indicator in Labview, which could view and edit the content of a cluster ( recursivly ) in a tree view.

 

The viewer could looks like the Microsoft Dotnet Property grid.

 

propertyGrid.PNG

It should be nice to add "Docking" and "Anchoring" features in Labview.

 

This could help creating "autosizable", professional applications.

 

For the moment, splitters and "control fitting" is a little poor, comparing to DotNet, Java ...

In the 'Source File Settings' category of the 'Build Specifications' dialog one has the option of customizing the destinations of the elements of the build. One very handy feature here is that it is possible to set the destination for all elements contained in a folder (virtual or auto-populating).

 

In the project tree Libraries, Classes and Xcontrols act like folders in that they have a parent item containing child items. Unfortunately the 'Set destination for all contained items' feature is not implemented for these parent items.

A work-around is to put the class/library/xcontrol in a folder and then set the destination for the folder but that makes the project look very messy.

 

Here are some pictures:

 

Folder (current)

Folder.PNG

 

Class/Library/XControl (current)

Class.PNG

 

Class/Library/XControl (proposed)

ClassProposed.png

Just like when a breakpoint is reached ! Smiley Wink

Sub VI without Front Panel

Status: New
by Member Qizhen ‎02-08-2010 09:11 PM - edited ‎02-08-2010 09:13 PM

In most of the cases, front panel is not use for a subVI, but it always disturbs me be opening too many windows.  So, there should be a new kind of VI that only have a block diagram.  Terminals could be designated on the block diagram.

 

 

帖子被Qizhen在 02-09-2010 11:13 AM
时编辑过了

TreeView probe

Status: New
by Active Participant Benjamin_C on ‎02-08-2010 02:28 PM

We all use clusters and arrays of clusters to represent complex data. With LabVIEW, it is practical to build a cluster to represent the data in memory and shape it to display it on the front panel. Using the same object (control or indicator) to display the data on a graphical user interface and to store the data in memory avoids overloading the memory and simplifies the code.

 

But most of the time, all the data don't need to be shown on the front panel! Some elements need to be hidden. If we use a probe to check the content of such a data structure for debugging purpose, LabVIEW just shows the control as it is supposed to be displayed on the FP. The hidden elements are not visible!

 

Here is an example of a probe put on one of my data structure (array of clusters) :

 

CLUSTER.png 

 

And here is the equivalent representation in a tree view. On the first column, the labels. On the second column, the values.

 

tree.png 

 

What is your prefered representation? 

 

PS : Such a tree view representation can "easily" be obtained from a control reference or from an XML string (with the Flatten to XML VI). Nevertheless, the Flatten to XML VI returns an error when it encounters strings with accentuation.

 

I have noticed that Property Nodes for certain numerics do not properly store Range Properties as the native datatype of the control, but rather stores them as DBLs. I have attached the screenshot to illustrate my point:

 

PropNodeDatatype.png

 

Notice the first Numeric's datatype is a DBL, and therefore you see no coercion dots for the Range Properties or the Value Property. The bottom two examples show I32 numerics, which have the proper datatype for the Value Property, but have the wrong DBL datatype for the Range Properties.

 

I propose that the Range Properties should reflect the datatype of the Numeric, just as the Value Property does!

 

(This may affect other Property/Invoke Nodes besides Range... please list any other datatype inconsistencies you may find in the comments.)

Saved Searches and Results

Status: New
by Active Participant Jim_Kring Active Participant on ‎02-08-2010 11:33 AM

I'd like to have the ability to save a LabVIEW search (Find), with some commonly used parameters.  It might be nice to choose between saving the search globally, or in a project.

 

Also, I'd like to be able to recall recent search results.  Often, my searches are hierarchical: I search for some high-level stuff and then do a more specific search.   I don't want to lose my high-level search results, when I drill down and do a more low-level search (for example, the low-level search might be fruitless, so I need to go continue on with the rest of the results from my high-level search).

More function in the TDMS API.

Status: New
by Active Participant EricC. on ‎02-08-2010 10:37 AM

More function for tdms file.


The tdms files are a very good way to record data on disk, but some usefull function aren't present.

- you don't can delete a channel or a group or a value or a property
  Exemple : You add the measurment in the group 'raw data', channel 'volt'.
  In the group 'calculate data', you add the channel 'filtered volt'
  You change the filetring parameters. You wan't to replace the channel 'filtered volt' with the new data, but you don't can easy replace the old data (channel 'filtered volt')

  You must copy all data in a new file without the channel 'filtered volt' befor you can add the new calculation.

 

- you have only 2 hierarchy (group and channel). More should better ?
exemple : 'acquisition\device name\channel name\acquisition number'

A full ZIP API

Status: New
by Active Participant EricC. on ‎02-08-2010 10:08 AM

Having a complete API for zip file

Currently it has :
- New zip file
- Add a file to zip file
- Close zip file and add a comment
- unzip the zip file to a folder

This API is not quite complete.

Example of use of ZIP files: In a data streaming application, you want to make an archive of recordings files. The data files average 500 MB Once compressed, they do more substantive than 50MB. You create an interface to assist the user in steps of compression. Once compressed, you want to propose an interface for retrieving compressed recordings.


The ideal is to list the files and clarify some information, such as track number, recording time and a few other indicators related to data.

But to do that, we 'could' use two ways:
- The properties of the zip file.
- An additional file that would read that to see them.

 

Several problems arise:
- It is not possible to read the commentary added with the close function.
- It is not possible to edit the commentary added with the close function.
- It is not possible to decompress a single file.
In the example, if we unpack all files to read properties, it'll take time and a lot of CPU resources.

 

It would require full management functions:
- New file
- Close file
- Add a comment
- Read the comment
- Erase the comment
- Add a file
- Delete a file
- List all file (with or without a mask)
- Uncompress a zipped file to disk
- Uncompress a zipped file to memory

- compress and uncompress a string in memory (usefull to optimise the network data flow)

 

In the ideal case, a zip file should be considered a folder. So we have all classical file functionality to manage it.

Decorations With Drag-and-drop Behavior

Status: New
by Active Participant Manzolli Active Participant on ‎02-08-2010 07:07 AM

It would be nice have the drag-and-drop behavior in some box type decorations that will place a control inside it, just like Clusters. Can have also the same options to organize (AutoSizing: None, Size to Fit, Arrange Horizontally, Arrange Vertically). Nowadays, if we want to to have some graphically grouped controls, basically we have to:

 

  • Organize the controls
  • Place the decoration
  • Move the decoration to back
  • Resize the decoration to "hold" all controls
  • Select all
  • Group


I the proposed way:

 

  • Place the decoration
  • Resize the decoration
  • Drag-and-drop the controls in their definitives positions


If a control needs to be added to the group, nowadays we have to:

 

  • Select the group
  • Ungroup it
  • Place the new control
  • Sometimes select the decoration and send it to back
  • Group again


In the proposed way it will need only one step:

 

  • Drag-and-drop the new control 

In the application "1D Fourier Interpolation", an example that comes with LabVIEW, try to move the decoration that embodies the "Data Generation" controls. With the proposed idea they would move all together.

There is another gain: nowadays the Group, Ungroup and Move To Back operations are only accessible via toolbar drop-down menu.

Hi,

 

Another behavior that I find annoying isthe way LabVIEW manage the tabbing order with cluster.

 

Imagine a front panel with clusters (I thinkthat this is not unusual and that you will have no pain to imagine this). If acontrol embedded in a cluster has the key focus, the TAB key will only give thefocus to controls of this cluster. It is impossible to navigate outside thecluster!

 

In the following front panel I wouldexpect the following sequence when tabbing: Cluster_1.String_1 -> Cluster_1.String_2-> Cluster_1.String_3 -> Cluster_2.String_1 -> Cluster_2.String_2-> Cluster_2.String_3 -> Cluster_1.String_1 -> …

(According to  the cluster tabbing order)

 

CLUSTER.png 

About LabVIEW Idea Exchange

Have a LabVIEW Idea?

  1. Browse by label or search in the LabVIEW Idea Exchange to see if your idea has previously been submitted. If your idea exists be sure to vote for the idea by giving it kudos to indicate your approval!
  2. If your idea has not been submitted click Post New Idea to submit a product idea to the LabVIEW Idea Exchange. Be sure to submit a separate post for each idea.
  3. Watch as the community gives your idea kudos and adds their input.
  4. As NI R&D considers the idea, they will change the idea status.
  5. Give kudos to other ideas that you would like to see in a future version of LabVIEW!
Idea Statuses
Top Kudoed Authors