LabVIEW Idea Exchange

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

While I have many, one of my major gripes with LabVIEW is that it's very easy to have dozens of open windows.  This would normally not be a terrible burden, but LabVIEW has a bad habit of raising ALL open LabVIEW Windows when any single one is given focus.

 

For example, if I have both the front panel and block diagram windows of 3 VIs, a project window, the VI palettes, and a ctrl+h help window open, then clicking any one brings all 10 windows to the front.  This is a problem if, for example, I'm trying to draw an icon based on some source image from Google image search.  I am forced to maneuver all LabVIEW windows and the browser window such that the two things I actually want are both visible at the same time.

 

To get around this, and other difficulties introduced by the huge numbers of windows that labview is fond of creating, I propose this idea based on the relatively recent addition of a "Single Window Mode" to the open source photo editor Gimp (http://www.gimp.org).

 

In the original Gimp UI, each open image occupies a unique window.  Additionally, the toolbox and other dialog windows (layers, brushes, etc.) occupy unique windows as well.  This, to me, is remarkably similar to the LabVIEW UI.

 

gimp multi window.jpg

 

In Gimp's Single Window Mode, the toolbox and any open dialogs can be locked to one side of the screen and each open image is in a tab.  (Note that this is strongly influenced by Photoshop's UI.)

 

gimp single window.jpg

 

I would like to see something very similar to this for labview.  In this concept, each open VI would occupy a tab (perhaps split vertically into front panel and block diagram) and open dialogs (such as VI palette, ctrl+h help window, navigation window, project explorer, etc.) could be docked to the screen edges.  Here is a rendering of such a concept.

 

labview single window.jpg

 

I would note that most text IDEs (such as Eclipse, Visual Studio, etc.) use a very similar paradigm (ie lots of source files open in tabs, project viewer, find+replace, etc locked to screen edges).  Clearly more thought would have to be given to how front panels are displayed, e.g. outside of a labview development environment, but I feel that this concept would be a dramatic improvement for the development task.

 

One of the biggest deterrents for learning is lack of organization.  LabVIEW examples in the Example Finder are currently only half-organized.  There's a directory structure--and that's great--if I need to find a data acquisition or generation task example, I can pretty easily think through the directories:

 

Hardware Input and Output >> DAQmx >> Analog Measurements >> Voltage

 

But here's where I have to stop and REALLY search.  Not only is it hard to read through the examples (see my other idea about Resizing Example Finder), but the slew of examples make no sense in order of complexity.  The Example Finder currently appears to only organize examples based on alphabetic order.

 

For instance, take a gander at the following laundry list of DAQmx >> Analog Measurement >> Voltage.  I marked in blue the first five examples I would recommend to a new user, in the order I would recommend them.

 

Organizing Examples.gif

 

How would a new programmer ever be able to get started with those so well hidden?  I have a lot of people who ask me exactly that: "I know I just need an example, but I don't know which one!"  From a customer support perspective, I have to say a lot of time spent and confusion revolves around finding a good, pertinent example

 

So here's what I recommend::

 

Reorganize all the examples in order of increasing complexity.  How do we define increasing complexity?  Well, the DAQ and Signal Conditioning Course already has it hammered down pretty well for DAQmx:

1. We start with just a Finite Acquisition with an internal clock--the most basic acquisition

2. Then, we add a little complexity with a trigger

3. We add a little more complexity by showing how to simulate a trigger in software

4. We add a little more complexity, doing the same thing in hardware-timing

5. And so on until the very end, when we look at very special-case, fancy examples which are supported by specific hardware, and which require specific property nodes to manipulate the behavior.

6. When we've exhausted the subject of Finite Acquisitions with triggers, we move on to Continuous Acquisitions with triggers in another sub-topic of the lesson.  Again, we build up from simple to complex.

 

Not only would this simple re-ordering help new learners, but it helps re-learners who have taken a DAQ class and have forgotten which example to start with (which happens all the time).  Let's be honest--it's VERY difficult to remember everything you've taken in any class.  We should do a better job to marry coursework (customer education courses) with homework (Example Finder).

 

It would also be of benefit if we added some extra directory structure to examples--such as Finite vs. Continuous and Internal vs. External clock in the case of DAQmx examples.  It is of really no benefit to have all these examples run together, as they are now.  New programmer or experienced programmer, a long list format with a lot of reading just gets confusing.  Technically, I believe anything over 7 items is about the limit for grasping new concepts.  Beyond 7 items, an average learner will be overtaxed and/or lose interest.  Besides--adding some extra descriptive folders would help a budding programmer to identify abbreviations like "Int Clk" with "Internal Clock".

 

Organizing Examples Folders.gif

 

From my digging, it looks like the examples that are in the most dire need are DAQmx, SVXMPL (Sound & Vibration), and everything in LabVIEW Fundamentals. The CAN, RIO, and FPGA examples are actually organized a little better, but could still use some work organizing from simple to complex instead of alphabetically.

 

This is a relatively easy project an intern could do, but it would be a huge help getting new programmers through the LabVIEW learning curve.

When the Developer Suite DVD binder arrives, the first thing I do is find a black Sharpie, cross out the name (e.g. 2010) on the binder label, and write the version of the software it contains (e.g. 2009 SP1).

 

Rarely if ever do I care which year the DVD binder shipped to me -- all I care about is the version of the software (the most important being LabVIEW) it contains.

 

Now that LabVIEW and most other NI software products are on an annual release cycle and named according to the year and service pack, I would love it if the Dev Suite binders were named the same way.

I would like to see more native support for compression and encryption/hash algorithms.

 

When it comes to compression and encryption. We are very much the poor relations to other languages that have a plethora of source and examples for SHA1, DES, 3DES, Blowfish, HMAC, Ryjindel, AES (encryption) and LZO, LZMA, LZW, GZip, JPEG2000 (compression) to name but a few.

 

Apart from "Zip" (which can only be used on files) and "twofish" (which is hardly an industry standard because of security concerns) we have very little choice but to use DLLs and SOs meaning our applications violate one of the biggest reasons for using LabView........cross-platform. We have very little in our tool-kit to make efficient and secure network applications for example. Especially if we are required to interface to existing systems that ave used these technologies for many years.

 

We cannot even write applications to access Twitter any more!

 

With the introduction of "Stream" prototypes in the new LV2010, it is essential to have these tools in our palettes.

Currently LabVIEW only has support for Mandriva, RedHat and SUSE Linux.  What's even worse, only 32-bit versions of those are supported.  Today, 64-bit linux installations are on huge raise, and Ubuntu is getting more and more popular.  LabVIEW Linux support should be expanded to include Ubuntu, and 64-bit versions are needed.

 

cheers,

Pekko

 

One of the most over-looked LabVIEW VI Properties, mentioned in all of the "Good LabVIEW Coding Practices", is the one called "Documentation", where you describe what the VI does, and its Inputs and Outputs (at a minimum).  [NI Examples are certainly guilty of this].

 

I've been trying (and mostly succeeding) to ensure that every VI I write has such Documentation.  Sometimes I make a mis-type, highlight "bad" parts, and hit the "Delete" (or backspace), then say "Oops, erased too much, let's undo that with ^Z".  Except there is no Undo, or at least it isn't bound to ^Z here.

 

I can find no other place in LabVIEW that doesn't allow ^Z to replace deleted text.  It works in String Constants, in Labels (whether Free Labels or names for Controls/Indicators), and other places.

 

To encourage LabVIEW Developers to use the Documentation property, can you please allow us to "undo a boo-boo" with ^Z?

 

Bob "Imperfect" Schor

(Unless it's already changed in newer LV's, i'm on 2011 right now)

 

When opening the connector pattern, the current isn't marked in any way. If i'm after some extra connectors or a symmetrical one (why do people choose 3-1-1-1?) it'd be nice to quickly see where to start looking. A simple bold outline would suffice, maybe in blue?

 

ConnectorPane.png

 

/Y

Whenever I built something (executable, installer) I want to go to the output location to change some filenames for distribution (e.g. I change "volume" folder of the installer to contain the name and version in the program name), zip things up to post on the server, etc.

 

On the final progress screen, where it tells me that the built has finished, I would like an additional button to open the target folder location(s) in explorer (similar to e.g. when downloading a file using IE) while dismissing the dialog.

 

Right now it says:

 

"The build is complete. you can locate the built at <very long and hard to remember path spread over 3-4 lines and that cannot be coped/pasted from this dialog anyway>."

 

Well, if the builder is smart enough to know where things are, why can't it just directly take me there as an option? 😄

I want a Do Not Save option in addition to Defer Decision and Save.  When I was checking to see if this has already been Idea'd I found this thread.  Dennis mentions the Revert option, which I didn't know of.  I will probably start using this.  But, I still think Do Not Save should be included in the dialog.

This is a very simple improvement, since the features are almost there. I want the block diagrams look like an electric diagram, that is: Controls aligned to the left, with the labels on the left of the control and the indicators moved to the right with the labels on the right, like this:

Wish.png

 

The problem is that in current LV versions the alignments occurs on the labels as well, making look the diagrams like this:

Current.png

 

Normally you should: 1) align labels relative to the object and 2) align the objects (without the labels) relative to the block diagram. This kind of cleaning up saves a lot of space and clutter.

 

Now I am pushing my luck, but it would even be better if I could have these settings on SubVI's only, because I usually don't want this in my main.

 

Good luck 

 

I'd like to be able to delete an object from an existing wire and then have that wire be automatically reconnected.  Currently a broken wire is left after deleting something and one must manually reconnect the wire.  This would be the opposite of the popup option to Insert something.  Some deletions may produce a maze of broken wires that would be difficult to determine what to auto-reconnect but perhaps situations where there is only one broken wire (for example removing a Numeric Increment function (+1) from a wire) could be handled.

 

I propose LabVIEW launch the browse dialog that Windows provides with each OS version instead of the current limited LabVIEW browse dialog on all versions of Windows.

 

Background:

The LabVIEW browse dialog looks like this regardless of the Windows OS version you're using. This is for any browse dialog from LabVIEW... the getting started window, the file menu, save as, path controls, everything:

labview browse dialog.png

 

This is OK and works fine for most things. However, it hasn't received the updates that the Windows OS has provided for browse dialogs in Windows Vista and Windows 7. Mainly... the left pane is very limited. If you look at Windows Vista's browse dialog:

vistasaveas.jpg

 

You get a much more capable left pane including favorites. The top address bar is also more capable instead of just a dumb drop down box.

 

The same thing goes for Windows 7:

browse dialog.png

 

If you are like me and use lots of mapped drives and favorite locations... it is infuriating having to give up all your favorite locations when you use LabVIEW. You always end up pathing to the same places... but can't do anything about that because the LabVIEW browse dialog doesn't support the modern Windows browse features.

 

I propose LabVIEW launch the browse dialog that Windows provides with each OS version instead of the current limited LabVIEW browse dialog. This is possible somehow... as the screen shots I took for the Windows browse dialogs were from Firefox 7.0.1 on two different OSs (7 and Vista). So there must be some API call to invoke the Windows browse dialog.

 

When creating a control or indicator based on a subVI terminal or strict typedef, formatting (speicifically the radix) is preserved.  However, when creating a constant from the same source, the format is removed.  This can cause incorrect behavior to inadvertantly be implemented when dealing with components that use Octal or Hexadecimal, as incorrect values can be input under the assumption of the correct formatting.

 

 

radix.png

 

 

Instead, block diagram constants should display the same behavior as controls and indicators, and maintain the correct radix/formatting when created from an existing source.

 

 

Let's uppose I'm sending a sequence of commands to a VISA-controlled instrument (see picture).

While dubugging, I realize I missed a command along the sequence (on following example, I forgot setting output impedance):

insert_vi.jpg

As of now, I need to delete the wires between 2nd and 3rd VIs, place the missing VI, then draw the four missing connections.

I'd like Labview to recognize that the I/O pattern of the VI to be inserted is compatible with the existing flow, and to insert it correctly.

Something similar already happens when you place a new VI into the block diagram, and you drag it near a VI with compatible I/O (blinking wires appear).

I want to be able to work on STABLE versions of LV.

 

The last great stable version I remember was 6.1 (I never had 7.1).

 

2009 and 8.5.1 were not bad but please give us a feature-fixed long-term support version of LabVIEW.

 

For anyone unfamiliar with the idea, many Linux distributions offer the same:  Here's a link to the Ubuntu webpage outlining THEIR LTS strategy.

 

Shane.

Currently, XControls do not trigger ("wake up") for dynamic events, even if the event structure is registered for them.  My suggestion is simply that they do.

FacadeEvent.png

Here is an idea that I have wanted to make happen for a while. It is the Asyncronous Call By Reference. Basically, it is just a Call By Reference, but split in half so that the call is not syncronous (blocking), and return data can be obtained from multiple locations.  Plus, there should be ways to check the status of the asynchronous call and kill it.  I've even implemented this, to some degree, here http://forums.openg.org/index.php?showtopic=88
 
 
Message Edited by Jim Kring on 06-10-2009 08:14 AM

As outlined in this post, the current identical look of the Expression Node and Convert Unit can cause serious miscommunications, since their functions are completely different.

 

I suggest that they are made to look different so we can tell immediately what we have.

 

For example the two results below are very different, even though the code looks absolutely identical if the labels are hidden.

 

One possibility would be to make "convert unit" a different default background color (example shown below), but there are probably even better suggestions. How about rounded corners (not shown)?

 

 

I just finished installing LV15 (and device drivers) on a new PC and I think the installer window could use an upgrade.

When expanding the different features you can install beyond 2-3 levels, they disappear out of the narrow tree-area. 

 

It would be awesome if I could then just resize the entire installer and it would grow the tree (and description) so I didn't have to use the little horizontal scrollbar

 

installer with 3 levels expandedinstaller scrolled to the right

I'm making Icon Templates out of the styles of icons I use most, and discovered it would be very useful if I could create a template and change one glyph layer for each template.

In the example below, I could load the Q Ref template, quickly remove the Q Ref layer and replace it with another control glyph.

I do realise I could just select the pink box and delete, but not all glyphs are nice easy to selct shapes and sizes

 

3.png

 

The templates with layers should be seen with the other templates, but when selected, recreate the individual layers in the layers tab

 

4.png