LabVIEW Idea Exchange

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

Add a list with every error code a function can give out to the context help and/or the main help window of each function. The error-code tables included in the help file are very general at the moments. But even a table just for the File I/O error codes would not help much, because the different file I/O functions usually do not output the same error codes.

 

1. This would greatly help to replace certain error codes by user-specific error messages.

2. By knowing exactly which error can occur, you can handle each error code in the appropriate way, to make your SubVI etc. much more robust.

 

(This picture is just an example with randomly chosen numbers for the error codes to display, what i am talking about.)

 

error codes.jpg

Hi,

 

 the "Search 1D array" function returns only the index of the fist item found. However some times, it is needed to get all the indices of the elements that match the element the we are searching for. I think it will be nice if this vi returns all the indices that match the element we are looking for.

 

g.gif   

 

to become like this

 

srcharay.gif

When the mouse click on the connectore icon auto zoom....

 

Immagine 3.JPG

 

Currently the project explorer window only displays class methods that have explicitly been created.  I propose a view where classes in the PE window display all the valid methods that can be called on that class.  For example, when creating a new ClassB and making it inherit from ClassA, in the project explorer window ClassB is immediately populated with 'shortcuts' to the ClassA methods it can use.  These shortcuts are simply a convenience and help with clarity; they don't have any real representation on disk.  Dragging a shortcut to a block diagram drops the parent method that shortcut refers to.

 

Shortcuts need to be distinguishable from real methods in the PE window, so they should be represented by italics or perhaps a unique icon.  When ClassB overrides the parent method the shortcut is replaced with the overriding vi.  If the parent class has methods that must be overridden the shortcut could be presented in red text or an exclamation point can be laid over the top of the icon in the PE window.  Shortcuts to protected methods should include the protected icon.

 

Classes already contain one "virtual" member--the class .ctl doesn't have a unique representation on disk.  In some ways this is an extension of that idea.  This also opens the door for desired future extensions to LVOOP, such as traits.

If you print a VI or control image from you application built in LabVIEW it will be identified as a "Labview document".

 

I would like to be able to name it myself - to fit the type of document I'm actually printing. Ideally it would be an input for the print invoke nodes, but a general override could also do the trick - or at least name the document after the application, not the development environment...:

 

labviewdocument.png

Within the Project Viewer it is possible to create virtual folders in which to help you organise your VIs. Why is this feature not available in the "Build Specifications" area below it.

The main project I am using has 15 different items here, most are grouped (I have a .exe and a .installer for each variant of the software I am creating). It would be nice to group these in folders as my project is getting messy.

 

Cheers, Alec

In LV 2011, an asynchronous Call By Reference feature was added to LV. However, async calls are on remote VI references are not supported.

 

The workaround for this lack of functionality is to perform an async call to a local VI acting as a proxy. The proxy will turn around and perform a normal remote call by ref call to the actual target VI.

 

Despite the workaround, it would be nice if async calls worked on remote VI references.

When you right click on a Call By Reference or a subVI, there is a "Call Setup" item to specify the VI call configuration. For example, the user can specify "Load and retain on first call."

 

First, there should be a way to access this dialog from the Start Asynchronous Call node and possibly Wait On Asynchronous Call node.

 

Second, the VI Call Configuration dialog should let the user specify an asynchronous call.

This idea was prompted by an email to a work colleague on how to generally improve LabVIEW. I liked it so much that I’m presenting it as an idea. Please keep in mind that it is worded with an individual audience and may have been tamed down had I written it for this exchange. I hope you like it. It’s a holistic approach to what I think will take LabVIEW from where it is today to where it could be in a year or so. Hopefully the LabVIEW community thinks likewise.

 

If NI want to improve LabVIEW, here’s what I see needs to be done:

 

1) Reduce the price of LabVIEW Professional to $1500 (and get rid of LabVIEW Base – why teach poor programming practices)

 

2) Allow a standard web browser to be the user interface (without any plug-ins!)

 

3) Fold in some of the general purpose toolkits into the main product (best way to add new features!, but I can live without this)

 

4) Sell single board cRIO in quantities of one (at a reasonable price). And show the price on the NI website.

 

5) Reduce the price of LabVIEW RT, FPGA and embedded.

 

6) Offer more deployment platforms (RT, FPGA and embedded) – this is where NI will make money, by selling more hardware.

 

7) Offer general-purpose low-cost mini-board (a few digital and analog I/O and a controller). Think 32-bit Arduino-like. In fact, why not make it compatible with the Arduino shields (stackable plug in boards that add functionality).

 

😎 Improve the robustness of LabVIEW (in preference to new features).

 

9) More tutorials, examples and learning documentation (helps users, reduces support costs and opens the door to cheaper LabVIEW).

 

10) Increase the user base by a factor of 4 (needed to get to “critical mass” for user community).

 

11) Have the same feature set across Windows, Macintosh and Unix (or at least reduce the gap).

 

12) Publish a textbook for experienced LabVIEW programmers that want to move step-by-step to object oriented LabVIEW programming (assuming this is the way to go, haven’t used it myself so not sure how useful it is).

 

13) Add features to make it a more general purpose programming language (to challenge C, C++ and C#). Don’t take it too far, we don’t need LabVIEW to write word processors and database programs, but we would like to write home automation software (my next hobby project), general purpose utilities and more commercial software to go with our products (as opposed to our current usage of just in-house software).

 

14) Improve controls and indicators to allow the same look-and-feel as “professional” programmes. Want to create an awful user interface? Just add a Toggle Switch! There done! (Can you imagine any commercial software written in any other language that would go out of their way to add a Toggle Switch looking control? Can you even begin to imagine this in, say, Windows?). Anyway, more controls and indicators that look like those of general purpose applications and a built-in powerful easy-to-use control and indicator editor.

 

That should do it for LabVIEW 2012. I’ve got more to take LabVIEW to the Top 20 programming languages.

 

LabVIEW should be able to get into the Top 20 programming languages, if NI gets a move on. This is due to its lead with intrinsic multiprocessor programming and deployment across platforms ranging from mini-board (not yet available, see point 7), Lego NXT, LabVIEW embedded for 32-bit microcomputers, FPGA based systems (eg. Compact RIO) and desktop PCs (Windows, Macintosh and Unix). The entire programming spectrum covered – who else can do this today! However, it’s important for NI to get moving and exploit this lead before others do it.

As you all know, LV offers a Size To Text menu entry which resizes a text frame to its contained text.

 

While documenting my code (free text on diagram), I would often use a Size Vertically To Text function. This new menu entry should behave like the Size to Text Method (for string controls on the front panel) --> resize the text frame vertically to show all text without resizing it horizontally.

 

Size to Text.jpg

When you need to wait during the execution of a program, there is no elegant way to insert the wait vi in the dataflow. The only option is to add a one frame sequence structure.

Before

With an error wire passing thru, the control of the dataflow is easier:

NI_IdeasAfter.jpg

the dimmed error wire on the icon specify that the error is not being dealt with.

 

This function is an excellent tool for string manipulation.  I suggest adding an input terminal for specifying the "row separator" string as shown.  This string would default to a platform dependent EOL generated by the current function.  The "delimiter (Tab)" input should also accept an empty string as suggested by others (allow empty delimiter).

 

Array to Spreadsheet String.JPG

One upon a time there was LabVIEW 5.x and MS Excel...

 

At that time MS Excel (97 or 2000) could be controlled through ActiveX and some examples in LabVIEW 5.x where showing how to do that.

Each NI partner or LabVIEW user who wanted to control Excel by LabVIEW had to imagine how to save the necessary ActiveX references like Excel_Application or Excel_Worksheet.

 

Then LabVIEW Report Generation Toolkit 1.0 for MS Office was born. Let's call him RGT

It was wonderful !

LabVIEW 6.x and RGT gave us a lot of functions and a new framework (template) for building our own functions.

The GOOP approach in RGT was including the access of many ActiveX references and parameters through one single reference : the magical "Report Refnum".

Instead of maintaining our old functions, we used RGT and transfered our custom functions to this new environment.

 

Example of Excel Save As function :

 Excel SaveAs.PNG

 

As you can see, it was very easy to get the ActiveX reference and modify them (unbundle / bundle).

 

Until LabVIEW 8.5.1 and RGT 1.1.2, the weather was nice is this area...

 

-----

 

Then came the Objet programming in LabVIEW 8.0 and NI decided to rewrite RGT with this technology in RGT 1.1.3.

RGT 1.1.3 which came with LabVIEW 8.6 was catastrophic in terms of compatibility.

You get a big headhache when trying to build an executable which used RGT.

Some of our custom functions where broken. There was no way to repair them.

 

RGT 1.1.4 soon replaced RGT 1.1.3 and gave the possibility to get the ActiveX references from the Excel class by adding the "Get ActiveX Reference" to the class.

Most of our custom functions could be repaired but not all of them since the "Set ActiveX Reference" function was not added.

 

Until now, some of our projets are locked in RGT 1.1.2 and cannot upgrade to LabVIEW 8.6. (or above) because of this missing function.

 

Mr Eagle Man,

Please add the "Set ActiveX Reference" in LabVIEW RGT 2011. 

 

 

 

I would really appreciate a new line style for digital signals in Mixed Signal Graphs. See pictures below for example of what I mean:

 

Current way of displaying digital signals:

before.png

 

Proposed way of displaying digital signals:

after.png

 

 

I think an additional line style like this would increase readability of digital graphs.

 

For people like me that open a lot of odd VIs from the forum, the example finder, and other places (maybe that's not the norm!), there is always the possibility of collision with my own projects.

 

If I already have a project open, downloaded VIs automatically open in the existing project application instance. If they crash or otherwise lock things up, my entire project is toast (fortunately we have auto-recovery :)!)

 

Windows already has a mechanism to distinguish potentially unsafe downloaded content (I actually don't know how that is implemented), and I would like to extend this to LabVIEW related files.

 

Proposal:

 

  1. If I have a regular project already open and click on a VI in the browser, it should open in a special application instance designed for that purpose.
  2. The application instance should act like a sandbox.
  3. Multiple downloads should all open in that same instance simply to isolate them from the current work environment.
  4. This application instance should be more restricted in the way VIs execute, for example "run when opened" should be disabled no matter how the VI settings are. Maybe the toolbar should always be visible, etc.

 

The frontpanel editor of LabVIEW is suboptimal.

 

It's not possible to create frontpanels which resizes well when resizing the application window.

I need a feature which every classic programming language supports (C#, Delphi, ...): The definition of align (and anchors) of every frontpanel element including the decoration elements.

 

In LabVIEW there is only a very bad VI setting to resize/scale the frontpanel, but I don't know anyone who likes this behavior.

 

Maybe later I'll post some screenshots but now a few examples without screenshots.

 

Examples for anchors

 

I want to place a firm logo in the top right corner of the frontpanel. Now there should be an option to set the anchors "top" and "right" to "true" and "left" and "bottom" to false". Now the logo must have a constant size and a constant relative position from the top and right side when resizing the application window.

 

Or let's take a table:

If I set its anchors "left", "top" and "right" to "true" ("bottom" is "false") the width of the table will be increase when increase the width of the frontpanel. Changing the height would not affect the table, because the anchor of "bottom" is "false".

 

Example for align

 

I want to define a section on the frontpanel to show some status information. If I set "align" to "bottom", the section (maybe a decoration rectangle) should stick to the bottom of the frontpanel. And the width should be the same as the one of the frontpanel.

 

Align is not as important as the anchors feature because you can replace the align behavior with anchors.

If you set the anchors of the rectangle to "left", "bottom" and "right" ("top" is "false"), the rectangle also stays at the bottom if it was placed there in the frontpanel.

 

I hope the explanation is clear. If not please tell me. I'll try to make some screenshots.

Currently if you drop a Merge VI containing VITs or CTTs from the palette onto you BD it is dropped as the Template not an Instance of the Template.

Obviously we want the latter.

 

It would be nice if this was handled by LabVIEW so that we can centralize an API with Templates through the palette.

 

22611iAB7F805B911B7AC0

 

This is related to this Idea.

 

See here and here for side chatter (and the original Idea).

 

Additionally, to top it off, this will be great when the outstanding CAR to fix up a bug with FP Object positions in completed 🙂

 

 

Add support to the Vision Development Module for multi-image TIFF files.  Currently the files can be opened but only the first image can be read.

This idea is aimed at presenting a more seamless development environment.  I would like to have the files that I was last working on open automatically when I start working.  It seems like this would be a great optional feature to have for the project environment, and the .lvproj file seems like an ideal place for the information to go.  

 

This would be a nice convenience for getting started in the mornings and for working from more than one computer.

 

A similar feature is found in Firefox and Google Chrome (and probably other browsers), where the browser will load the pages that were open when it was last closed.

One pain point of the Labview UI for me is eliminating the recessed border of controls - clusters and arrays in particular since there is no "system" version of these controls.  You have to activate the paintbrush tool, click on a 2-pixel wide line, then do the spacebar-and-transparent color dance.  It's something I do regularly, it's clumsy, and it's not at all intuitive for a new user.

 

But if you have a subpanel control and you go into the Visible Items section of the popup menu, you can toggle the frame as a visible item:

subpanel frame.jpg 

 

This should be on EVERYTHING!!!!