LabVIEW Idea Exchange

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

Currently problems occur with "analog" type events (value changed of a slide, cursor move, etc.) because too many intermediary events will be queued up. If the event case takes any finite amount of time to execute, we get a huge buildup of events.

 

A very illustrative example and a possible workaround can be found here. While the workaround works well for unique cases, it gets complicated quickly if event cases are shared by several controls (e.g. "graph cursor move" or "slide value changed" in the same event case).

 

What we need is an option to set the queue size of the event queue for each unique event. For example if a value change event occurs on the slide, and the same event with a slighly older value already exists in the event queue, the new event should overwrite the old event, keeping the queue at size=1 for that particular event. It should not touch queued up events of other controls, etc. of course.

 

Most likely we only need two choices: (1) infinite queue (current behavior), (2) single element queues (only the newest event of each configured event is kept in the queue). It could be implemented with a checkbox on the event configuration dialog e.g. : "[x] Discard stale events".

 

Of course if should be configurable for each unique event, not just for each event case.

 

(This idea is along the lines of Marc's idea here  and would also potentially provide a solution for Shane's xcontrol problem). 

In the current LabVIEW XML Schema, the flatten to XML string supports variants, but not variant attributes (and by extension waveform attributes as well). This is unfortunate as variant attributes remain one of the best ways of implementing a dictionary type data structure and they are also a useful way of adding additional metadata to waveform signals. In both cases, serializing the attributes to XML strings properly would greatly facilitate data exchange with non LabVIEW code.

Currently, if you want to install LabVIEW 64bit, you need to download it from ni.com.

 

My idea is to put it on the LabVIEW Platform DVDs. 

 

It should be there.  I am paying to get my software on a DVD.  Please include it on my DVD.

 

The only reason I can think of for NOT putting it on the DVD, is that NI is worried that inexperienced users will install the 64 bit version (afterall, doesn't 64 sound bigger and better than 32! Smiley Happy), and NI will get tons of technical support phone-calls from the resulting confusion.

Today, when you run a VI, LabVIEW uses the hand cursor as the default cursor when you're not over a control. I believe this should be changed to be the arrow cursor, since much of the concept of the cursor relies on it being context sensitive, and the hand cursor hints that you have something you can click.

 

Change cursor.PNG

 

This can be done today by registering the mouse enter and mouse leave events for all controls and changing the cursor accordinglly and can even be moved into a subVI, but it's kind of pointless to do this for every VI and there are times when you don't want it.

When LabVIEW first opens, you can select recent projects or files from a list.  Currently there are only 2 recent projects listed and several files.  Since LabVIEW has become very project oriented, which is good, more recent projects should be listed.  Also, the top one of the list should be the last one closed and not the last one opened as it is currently.

bundle to array or cluster.PNG

How often did you wire multiple controls or constants to a bundle node? A lot of work, isn't it.

 

IDEA:

- select the controls or constants

- right click opens the context menu

- select new entry "bundle all to array" or "bundle all to cluster"

This should do the autowiring as shown in the picture.

 

There is one thing to consider: the order of the wiring. Maybe that should be top-down like in the image. Other ideas are appreciated.

Current controls listed under Event Sources in the Edit Events window are sorted chronologically (the oldest control at the top and the newest control at the bottom of the list).  I would like to see additional sorting options such as alphabetical, and be able to reverse the sorts (reverse chronological order, reverse alphabetical,...).  Also, I would like to type in a control name (or part of a control name with wildcards) to search for a control name or filter the list.

Many analysis VIs make use of strictly typed model functions and NI provides templates that are mentioned in the help for the function. When writing an analysis program using any of these tools, the clumsy part is getting the template. Since the path listed in the help is relative to the LabVIEW folder, it cannot be pasted directly and requires deep and tedious folder navigation.

 

As an example, here's how the relevant part of the help looks like for nonlinear curve fit. The yellow part outlines the model.

 

 

The LabVIEW help already has mechanisms in place to open examples or place function on block diagram, so I don't really see why opening a model templates requires jumping through flaming hoops.

 

IDEA: I suggest a little button or link on the relevant help page that allows opening of the associated template with one click.

 

Here's a list of templates found in the gmath hierarchy. The help pages of all their "mother VIs" need to get updated according to this idea. 

 

 

Download All

I really think this is a bug, but I'm going to file this as a feature request, just to add more weight to the issue...

 

The VI Server Application method Library.Get File LV Version claims to be able to tell you the version of a Library (or XControl, XNode, LVClass) on disk, without loading it into memory.

 

noname.gif

 

Here are the docs:

 

12-1-2010 4-18-09 PM.png

 

But, when you try to call this method on a Library saved in a version of LabVIEW newer than the version of LabVIEW in which the method is executing, you get the following error:

 

Error 1125 (LabVIEW: File version is later than the current LabVIEW version.)

 

Why an error?  It had to read the version in order to generate the error.  Why not just return the version?

 

Thanks in advance for your kudos 🙂

Here is the problem.  I create a type definition control on my front panel.  I then pass a reference to this control into a sub VI.  To do this I have to place a reference control on the sub VI to accept the input type definition reference.  Now if I go back and modify the type definition control, the reference control on the sub VI to accept the type definition reference is no longer valid and the result is a broken wire.  To fix this I have to create a new reference control on the sub VI to accept the type definition reference, again.  It would be very nice if I could somehow link the reference control on the sub VI to the type definition so that when I modify the type definition the reference control linked to it would automatically update as well.

When you open a VI which includes add-on libraries and/or toolkits, LabVIEW will detect them and suggest installing for users!

 

This will be helpful if the user does not know much about NI software.

 

Install Suggestion.png

 

 

The property node has two major advantage over LVOOP - it allows placing a lot of function calls in a horizontally limited space and it uses text, which is MUCH clearer than small icons (IMO) for something like this. It would be nice if LVOOP had support for this as well.

 

The implementation I'm thinking of is basically having VIs which will be marked as property VIs (similar to what XControls have) and will only be allowed to have a single input (or output) other than the class and error I/O. These will appear in the list when you connect an LVOOP object to a property node (ideally with the properties from the parents as well), somewhat like this:

 

Property VIs.png

 

 

When you run the code in this image, LV will run the VIs sequentially, passing the object and error I/O from one VI to the next.

 

 

I know that NI already tried to do this in the past, but didn't finish it. Hopefully, enough support here will encourage them to pick it up again.

One practice which is increasingly debated in the community is the packaging of code for distribution and collaboration, and which tools to use.

 

I suggest that NI should define and maintain an open standard for distributing packages of LabVIEW artefacts (.vi,  .lvclass etc).

And include a frontend to this in LabVIEW. This package manager should handle dependencies between packages and across LabVIEW versions and targets. The typical use cases would be:

  • The distribution (online or shipped with labview) of:
    • NI examples
    • NI drivers
    • NI toolkits
  • The distribution of third party species of the above

There should also be an API so that applications can use this mechanism to be modular and extensible. 

 

Cheers,

/MArcus

 

 

 

I almost never use accessors for array elements, but recently I did and I found something I didn't expect:

 

Create_Accessor.png

 

 

 

 

Unbroken_VI.png

 

 

The index inputs on the accessor VIs are set to recommended, so you might not notice that you didn't wire them in. I expected them to be required.

 

 

I checked and found out that this is a design decision - it was done that way because that's how the Index Array and Replace Array Subset primitives behave - they don't require you to wire in an index.

However, the argument could be made that those primitives behave that way because they can be expanded (although they apparently behaved the same even before the expansion feature was added).

 

In addition, the In Place Element Structure does have the index input set as required, so LV already has a counter-example built-in.

 

 

 

Since it's basically a choice between two valid scenarios, NI needs user input to decide, so that's where your votes come in.

Personally, I think it's less important what other features in LV do and more important to allow people to safely and conveniently use my classes. I would expect that in most cases I would want the inputs to be required, so that's the idea here - Change the index inputs on LVOOP array element accessors to be required by default:

 

 

broken_VI.png

 

I like to have shortcuts to my applications on my Win7 taskbar.

 

But the icons for the 32 bit and LV 64 bit versions of LV are indistinguishable from each other (without rolling over the icon).

 

NI should provide a slightly different icons for the two different versions of the app.

 

Capture.JPG

 

As seen above ... which version of LabVIEW is running?  64 bit or 32 bit?

If you need to call a subVI millions of times the overhead associated with calling the VI will add up and cause your code to slow down significantly. So - you want to get rid of the overhead...but if you do this by putting all the code in the same VI that VI will look very messy...Well - I want to have my cake and eat it too.

 

As people may know you can get an "Inline SubVI" option in your right-click menu if you add the key inlineSubVIEnabled=TRUE in LabVIEW.ini. This if fine and should be made visible by default, however the way it is done is simply by extracting the code of the subVI and putting it onto the diagram of the caller...which typically leaves you with a big mess.

 

So - instead of graphically putting the code on the same diagram, the inline option should just mark the subVI - you could get a little glyph on it that tells you that it has been inlined. You as the programmer do not need to be bothered with the fact that when the code is linked and compiled the code in that subVI will be inlined into that caller.

 

Labview 2013 has a great new documentation feature called Bookmark Manager.  It even has a nice feature that lets you click on the listed bookmark and takes you to that point in the code. However, I was surprised that I could not print or otherwise "export" the list.  It would be nice if the Bookmark Manager output list savable, copyable and printable or perhaps even exportable in text, spreadsheet or other format.  This would allow the information to be merged with external project management schedules, ToDo List etc.  Thanks for any comments and/or Kudos!!

 

Bookmark Manager Suggestion1.png

Idea:

Create a free, stripped down edition of LabVIEW for general purpose programming (GPP). Let's call this hypothetical edition "LabVIEW Lite". By GPP, I mean programming tasks that have nothing to do with data acquisition, test, or measurement- tasks such as creating generic PC, mobile, and web applications. Former text-based programmers would flock en mass to LabVIEW Lite for GPP use cases if a free, stripped down IDE were available. Imagine the recent popularity of the Eclipse IDE and Java, only with LabVIEW Lite and G!   

 

Rationale:

  • LabVIEW Lite would exponentially promote the paradigm of graphical system design.
  • Few (if any) structural dataflow languages are available for GPP.
  • Structured dataflow languages are insanely cool! Inherent parallelism, increased productivity, and hierarchical system design are only a couple of reasons. These are things other GPP programming languages can't offer.
  • 16, 32, 64, ... core consumer devices are coming! LabVIEW is poised to exploit parallelism in a way that is hopelessly messy with text-based languages.
  • GPP use cases of LabVIEW Lite would spark user ideas for many non-GPP use cases, for which NI would receive full LabVIEW and NI hardware sales.

 

Implementation:

  • No measurement/test/data acquisition VIs or tools.
  • No FPGA tools.
  • Application (exe, dll) builder for stripped down applications.
  • The LabVIEW IDE we all know and love.
  • Primitive types, clusters, structures, loops, file i/o, etc. provided.

 

I think it's a shame that programmers today aren't using G! What do you think?

 


Subject says it all.

 

Antialias.png  AntialiasProperties.png

 

 

There are multiple Development Enviroments which beside programming allow for nice UI design. One of the options that I was lacking the most here is the ability for the new controls and indicators to pop into position arranged to other elements of the front panel.

 

How is it now:

2.PNG

 

 

THE IDEA - to make adding new controls and indicator automatically pop into right position when hoovering them with a mouse as here:

 1.png

 

 

I know this can be done with two additional mouse clicks but the method for aligning elements of the front panel that we have now is quite bulky and unfriendly to use.

 

Thanks, Piotr