LabVIEW Idea Exchange

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

In LabVIEW 2009 one could right-click on a VI, for instance, in the project Files view and select a Delete from Files option.  (It didn't work perfectly--in particular, LabVIEW didn't always delete folders from disk, but it usually did work for individual VIs.)  NI removed this option in 2010, leaving the developer with the task of deleting files manually through the OS files view.  (This isn't the end of the world, of course, if a developer doesn't use integrated version control--and we don't currently but only because LabVIEW does not properly support integration with Subversion--but it is a significant inconvenience.)  This option ought to be present once more.

 

In particular, this function is absolutely required if LabVIEW makes a claim to provide integrated support of version control.  On that note, the current client (Pusk Ok SVN) LabVIEW supports for what is probably the most popular version control provider (Subversion) among its customers does not even claim to support file renaming or deletion (http://www.pushok.com/soft_svn.php), while a third party plug-in (http://jkisoft.com/tortoisesvn-tool/docs/) claims to support this behavior only for VIs and Controls (not, for example, LabVIEW class files).

According to this document only 14 ideas from the idea exchange were implemented in LabView 2010.This is a fantastic start.

 

There are at least 100 more great ideas on the Idea Exchange that should be implemented in the next version of LabView. Keep listening to the users. Keep improving LabView in every way.

 

Smiley Happy

When building reusable components I create a set of classes that work together to accomplish some larger goal and put them all in a lvlib.  Sometimes some of those classes are optional--they are not required by the library for it to work but they can make it easier for users to use the library for certain tasks.  These optional classes belong in the same namespace as the library.  One behavior of libraries is that they load all inner libraries.  When the inner library is a class all the class member vis are loaded, which wastes time and consumes resources when the classes aren't needed.

 

My current options are:

- Don't include the classes in the library.  Consequence:  I run a higher risk of name collisions and there's no continuity.

- Put each optional class in its own independent library.  Consequence:  Namespace pollution and a reliance on an arbitrary convention to figure out what libraries should be used together.

- Put the optional classes in the library.  Consequence:  Resources are used needlessly.

 

Usually I do the last option as it provides a more cohesive user experience.  I wish I didn't have to.  An lvlib is a functional grouping of code.  A namespace is a logical grouping of code.

 

To be explicit, I would like to be able to define namespaces for each library such that:

- I can have a single namespace that crosses multiple lvlibs.

- I can have multiple namespaces within an lvlib.

- I can add libraries to a namespace without rebuilding all the libraries in the namespace.

- Loading a component with a specific namespace doesn't automatically load all sub-namespaces.

 

Futher,

- I'm not requesting the ability to separate a single class into multiple namespaces, nor do I think that's a good idea.

- I don't mind the class name being part of the fully qualified namespace.

 

There have been several ideas proposed to alleviate accidentally savings vis in the wrong version of LabVIEW. While useful, I think the main problem is that LabVIEW doesn't use the information it reads from the file to preserve compatibility. I'd like to propose here that LabVIEW introduce compatibility modes for previous releases in which LabVIEW will break a VI if a feature is introduced that isn't supported by the compatibility version. It will essentially be a built-in, seamless "save for previous" mode. 

 

By default, LabVIEW will load a VI (hierarchy) in a compatibility mode for whichever version is was saved in. If the user tries to make a change that isn't compatible, LabVIEW will alert the user and the user can tell LabVIEW whether it's ok to save to a newer version that supports the feature.

 

The level of alerts can be configurable, of course.

 

Related ideas:

Version-aware LabVIEW launcher

Add header to LabVIEW file to contain the version of LabVIEW

Display VI version in title bar

Version independent Source Code Saves

LabVIEW has shipped with an Express VI which supports the ASCII LVM format since version 7.0.  However, there is no other way to access LVM files from LabVIEW, short of burrowing into the Express VI and using the subVIs.  Doing this leads to problems, since the subVIs have changed a few times.  In addition, the Express VI does not support all the features of LVM and makes accessing multiple data segments somewhat nonintuitive.  We need an API for LVM, ideally object based, so features like the special block can be easily extended by users.

I think it would be nice if LabVIEW was smart enough to know that when I drop a For Loop around scalar inputs it doesn't auto-index output tunnels - but rather uses Shift Registers - for matching inputs and outputs.

The common use case for this is with the Error input/output - it annoys me how it becomes an Array output.

 

As it is already wired, inline and not broken, dropping a For Loop around it should not break my code! 

 

Reference or Class inputs are other use case too - I want to pass the same thing around not create an Array

Shift registers are better than non-auto-indexed tunnels (other option) as they protect the inputs on zero iterations.

 

21826iFF181EE2E7ECE408

 

This would remove one step required for most use cases, speeding up my development experience.

I really like the changes to the Create Data Member Accessor Screen in LV2009 (and LV2010).

 

I like the Place new accessors in this folder logic.

One thing that would be cool to extend on it would be if the screen allows you to set the scope of a new Virtual Folder at the same time.

 

21684iC82E6A87291349BB

 

This would save time as you would not have to right click and set the scope of the new Virtual Folder from the Project Window the first time it the Virtual Folder is created.

If the Virtual Folder already exists in the Class then this option should be grayed out and disabled.

This Idea applies to all Libraries but my main Use Case relates to Class Libraries

 

I am not sure how everyone arranges there Classes, from trolling online it seems common that non-publically scoped methods tend to get placed in their own Virtual Folder and public methods are at the top-level. 

 For example:

 

21672i8DF9E7B8B93A8490

 

Unless my Class only has a few methods I would take a similar approach however, most of the time I like to categorize them in more detail. The reason being this is my palette from where I choose my methods, and I like to group them using the following logic so that I can get as much information visually out of the organisation / layout of the Class. I like to have the only top-level method as the constructor if there is one (so I can see that there is one or not for that Class).

I only create the Virtual Folders I need, but usually there are a mix from the follow example:

 

21674iC695C8CF5C268BEE

 

The problem I have with the current design is that I don't know whether I have scoped my public methods correctly, as I could have forgotten and they are still left not specified - which is the default when you create a new Virtual Folder

 

21676iAB6ED5F8E26BA877

 

Currently there is no way to tell the difference from the above two Virtual Folders unless you right click on them or possibly look at the contents.

This is not great as there is potential that I could have scoped things wrong which normally leads to me having to check or recheck the scope is correct.

 

21678iF61DE0BD73C6A4AD

 

As LabVIEW is graphical by nature, it would be much nicer if I could visually see a public scope glyph to differentiate it from a not specified Virtual Folder.

I selected the color green as it is a natural opposite to red (private) and has not been used yet.

For example:

 

21680iDEBCDA19ED6B9DB4

 

Therefore, my original implementation would look like the below, and I can straight away see if I have scoped the public folders correctly.

 

21682iC59F6703EC013513

 

I am sure there was a reason not to include it originally.

I am interested to why and if there is a good reason not to show this too.

At the moment you can Register for Events using a Cluster of Refnums.

But you cannot Destroy User Events or Unregister for Events in this way.

 

This approach allows for you to scale your application without the need to change the code that handles Registering Events.

It would be very convenient to be able to close references in this way (using a Cluster of Refnums) too, as per my illustration below:

 

21670iEFD0527198796259

Support LabVIEW-UML integration.  Integration means supporting code generation from models and reverse engineering to models.  The UML tool must support the latest UML specification from OMG.  (This includes the specifications for interoperability.)

 

Other considerations when selecting a UML tool should include:

UML features and ease of use of the tool.

Support of SysML.

Integration with version control.

Additional features of the tool.

Cost of a license.

Size of user base.

 

When I want to insert a line of text in the Enhanced Icon Editor of an existing VI it usually means I have to overwrite my existing text or cut and paste it.

 

I.e. If I simply want to go from this:

 

21203i5E96ED314B36205F

 

To this:

 

21205i0BA9C1C27BE039D4

 

It's not that easy and it could be much quicker.

 

I would like to be able to Right Click (or a similar method) on the Lines Cluster and select "Insert". 

This would insert a blank line and move the Line Text and Line Colors accordingly, preserving existing settings thus allowing me to easily edit the above icon's Lines quickly and easily.

 

Hello,

 

I would like to suggest that LabVIEW support HDF5 for data format, file storage and data transfer.   I would to suggest the support include maintenance to coincide with new and future versions of HDF5.

 

Thank you.

In Visual Studio you have XML Schema tools etc. It is a breeze to e.g. populate a drop down menu based on XML from a web service, and my first thought when I see it in action is - why do we not have this at our fingertips in LabVIEW already? LabVIEW could have made it simple to create schemas, generate flexible XML etc. You could have wizards that helped you, and cluster to xml conversion like in EasyXML from JKI - and it should all feel fully integrated (toolkits are OK, but this really needs to have native support).

 

I am currently developing a web service in LabVIEW and the first thing I had to do was to abandon the few in-built XML functions and write my own serialization code (using terminal mode for the web service gave you XML without proper headers, and the in-built flatten to XML outputs XML is impractical in use). Once I have serialized a text table e.g. and published it - using that table feels incredibly easy in Visual Studio (add data source-> input web address etc.) , it would be much more difficult to do the same in LV.

 

I think NI should make a big leap in the use of web technology. The RESTful web service functionality was a great addition, but the doumentation is non-existing, and we should have come much further by now. I know there are some cool experiments going on with web based GUI editors, but LabVIEW 2010 was just released with very little news on this front so forgive me if I rant a bit...Smiley Sad

With the advent of scripting, it is possible to create some nifty tools to aid in code writing.  Those that work on individual elements of the FP or BD can often work nicely in Quick Drop or the Right-Click Framework.  Some of these tools however, work most naturally as an addition to to Tools menu.  The missing piece of the puzzle for seamless integration into the IDE is the ability to customize keyboard shortcuts for those additions.  I would simply like the ability to assign keyboard shortcuts to any item which appears in the Tools menu.  I have at least three things in there already more worthy of Ctrl-t.

As described in the following "Darren's Weekly Nugget" posting, LabVIEW provides an API for programatically building projects. Especially when dealing with large projects, this can be a real time saver and great technique for quality control (ensuring that the build process is carried out the same way each time). However, when doing a programatic build, there is no status information - the LabVIEW application that calls these APIs is just left, giving the impression that it has locked up. This can be especially concerning given that builds of complex applications can take quite a while.

 

A solution seems pretty straight forward - give the build API calls, the option to display the standard building dialog.

 

A simple boolean value could allow an API user to provide some feedback to the hosted application as to what is going on without any of the complexities of other status feedback mechanisms (although *any* mechanism would be better than none!)

 

Weekly Nugget Posting regarding App Builder API: http://forums.ni.com/t5/LabVIEW/Darren-s-Weekly-Nugget-02-15-2010/m-p/1072575

I did a search on this forum to see if the subject been asked before but couldn't find it quickly, so I post. I have been seeing business push and pressure to move in this direction over the years, more so recently and have migrated to eclipse for my current project and like CDT. I saw the following today and it got me off my inertia to ask/feel the question here. I would venture that Operating systems and other mature s/w tools aren't rocket science anymore, but commodities and open-source w/ customization makes sense. Easier said that done. Thoughts?

 

pavan

 

This inspired me to ask the question:  The Eclipse Helios simultaneous release of 39 Eclipse projects and 33 million lines of code showcases the diversity and innovation going on inside the Eclipse ecosystem. In terms of statistics, the Helios release includes 33 million lines of code developed by about 500 Eclipse.org committers from 44 companies. The important thing to remember about Helios and Eclipse simultaneous releases in general is that even though it's a simultaneous release, it doesn't mean these projects are unified. Each project is a separate open source project within Eclipse.org, operating with its own project leadership, its own committers and its own development plan. The simultaneous-release concept is designed to provide a transparent and predictable development cycle.

 

Other ref:

Microsoft ups the ante in the robotics market, makes MSRDS free ... (see coments from emiliekopp)

CentOS, Ubuntu...

Eclipse & addons

Python

GCC

Octave

Scilab

Android (I think it is open?)

Open-office

ISO formats for docs

Open Car

Open prosthetics

...

The list goes on.

I'd like to see something like a conditional disable structure that would be sensitive to fields in an .ini file at runtime, not compile time.

 

My problem is that I have an application that can access many different third party cameras. For this application to work every VI that accesses a camera specific .dll function must have assess to that .dll or I get a broken VI. When I compile the VI I have access to these .dlls but when I build an application.exe and distribute it I only want to distribute the .dlls for one of the cameras. If I could distribute a .ini file with the application.exe that indicated which camera the drivers were installed for then the application would disable the code for all the other cameras and the VI would not break.

Thank you,

Chuck Lippmeier

Using the LabVIEW 2009 Build Spec (as an example) allows you to add a Destination to a Library which is very handy, as it means you can namespace VIs at build-time.

 

I would like to take this a step forward and then be able to set that new Library as a Sub-Library of another Library that already exists in the Project.

I would then want to be able to set the scope of this Sub-Library as well (relative to its now, Parent).

 

This combined with my Locking State Idea would allow be create a Distribution that would hide and protect a Support VI Library

As the Sub-Library would be Private Scoped (from above) and the Parent Library would be set Locked (does not show Private Members).

 

I currently can implement this using Scripting but it would be nice to have it native.

 

Cheers

-JG

 

 

17619iFB1C3A1375DBE39317621i6935DFDFCA489040

Locking a library during an automated build seems like a very natural thing to do.  Would be nice to be able to script it.

This may not technically be a standard LabVIEW Idea, but it is an idea nonetheless and there is no where else to post this idea in the Idea Exchange Forum and I want get other peoples feedback.

 

I would like to suggest that sending packages (.ogp, .vip, .vipc files) to NI Support is an acceptable way to submit code for reasons relating to code (support, issues, review help, CARs).

 

I have had problems sending code and then sending all dependencies as well, along with instructions on where to install etc... (for example here) that was solved once I was able to convince my support AE to install VIPM. It also saved me a lot of time (other I had to rebuild code in order to send it as well etc...)

 

(IMHO) I think this Idea would compliment NI moves towards establishing it's LabVIEW Compatibility Program (which I am assuming VIPM and OpenG will be covered under)

Additionally there seems to be great acceptance by NI to packages already whereby I have seen NI code in documents/white-papers posted as packages.

Thanks to Christian L and Laura F these files types are now compatible with the new NI Forums.

 

Here are some of my notes on this Idea:

 

  • VIPM Community Edition would have to be installed internally (but it is free so there would be no cost)
  • I am not looking for NI to support VIPM itself (unless it is covered under the Product Partner Program?) only that I can send a package to NI Support and they will know what to do with it and be able to install it
  • OpenG would also be required to be installed as well (after all it is the LabVIEW main/only? Open Source movement) (this is free too).
  • That way I would not have to send large dependencies files (only include my internal package), and then email size would not normally be an issue (although I have used NIs FTP successfully in the past due to large files) but email is nicer.
  • All this would lead to a more streamlined approach to Support for those developers who rely on packages
Please post your feedback.
Cheers
-JG