Home > Community > Discussion Forums

LabWindows/CVI Idea Exchange

Showing results for 
Search instead for 
Do you mean 
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

So far there is no way to take advantage of the CVI  style sheet when embedding HTML tags in the documentation of our functions 

The situation is as follow : 

1 - If the user does not use HTML tags every thing looks good BUT, for example, there is no way to display correctly a sample source code as it is done in the documentation of LoadPanel for example (see below). Same thing for the icons and other cool stuff available in "../cvi2013/bin/libref/tooltp.css"



2 - On the other hand, if the user use HTML tags in the function documentation then the display look "weird" and there is no easy way to improve the display.


My proposals

1 - Alow the users to leverage the .css file that come with CVI. This mean document/explain the style and the ressouces available (icon etc). This also mean that when the users embed HTML tags in the documentation then the help should include the CVI .css file and then the user documentation (like it is done for the CVI function call documentation)

2 - Another option could be to create a new documentation tag that help users to describe their own .css file. The problem here is that it would break the consistency within the documentation. I prefer option one.


I hope its understandable... :-)

Regards, Philippe 

Currently, it is only possible to load XML for parsing from an xml file.  In order to load xml data from a string, it is necessary to either write to a temporary file, or use the MSXML library directly.  It would be fairly simple to modify the CVIXMLLoadDocument() Function (or create a new function) which uses the MSXML IXMLDOMDocumentloadXML() function, which allows loading XML directly from a string. 


Adding this code to the current function after the IXMLDOMDocumentload() function would improve the CVIXMLLoadDocument() function so that it tries opening the input string as direct XML if it is not a path (Replaces line 167):


__caErrChk(MSXML_IXMLDOMDocumentload(xmlHdl, NULL, variantPath, &success));
	if(!success) //if loading as a path fails, try reading as direct XML code
        __caErrChk(MSXML_IXMLDOMDocumentloadXML(xmlHdl, NULL, fullPath, &success));    

I use SavePanelState and RecallPanelState all the time but it give me error when I add/change existing control. I would like to request save and recall only one control that way I don't have to worry about other controls which I am not interested in.

Status: Under Consideration
That's a good point. I was probably too rash in declining this suggestion.

The functions available today are OK in terms of functionality but limited in terms of syntax/grammar


For example : 

  • No support for multiline patterns
  • No support for '\s' in patterns
  • No support for [:alnum:] in patterns
  • No Posix conformance (ISO/IEC 9945-2:1993 for example)
  • No way to select among various syntaxes (grep, awk, ECMAScript...)
  • At least the ECMAScript grammar should be fully supported


I would like to propose to change the Regular Expression compiler with a brand new one

Keep the existing API (but support much better grammar)

Extend the API of the current intrument driver if needed or if it make sense (a Find/Replace function could be a nice for example)




Improve auto indent

Status: New
by Trusted Enthusiast on ‎08-23-2013 08:04 AM

As discussed here, the new and nice auto indent feature does not always work consistently. I suggest to improve this:


  • at present auto indent considers the first 40 characters of a line only; if indentation is later, say at column 44, auto indent fails. I suggest to loosen this restriction and consider up to 100 characters
  • at present, different comment styles are treated differently. Although /* */ is THE valid C comment, auto indent can be configured only for the // style comment, it ignores this setting for /* */ comments. I suggest to treat both types of comments the same way




Save debug information

Status: New
by Trusted Enthusiast on ‎08-16-2013 02:24 AM

CVI2013 does not seem to save debug information, instead it has to generate it every time a project is loaded. For large projects this can take some time...

Prior to CVI2013 we were used to a large *.cdb file with browse information which is now gone.


I suggest to save debug information (function list,...) to a file that is loaded on starting CVI so one can make use of this information 'immediately'.


CVI & LabVIEW UI Builder

Status: New
by Active Participant msaxon on ‎01-09-2012 07:18 AM

It seems to me that it would be really neat if CVI were able to support publishing/acceptance of XML data in the format required by LabVIEW UI Builder. The idea of LabVIEW UI Builder thin clients with a CVI server is quite appealing.

I do like the improved editor features of CVI2013; maybe two toolbar icons could be added for the two new commands  'Goto Next Function' / 'Goto Previous Function' ?

Be able in CVI to deploy code to a Compact RIO for execution. This would allow Compact RIO users to use C code from a Linux LabVIEW.



a long standing issue with the function GetGlobalMouseState is that it does not detect the <alt> key modifier (contrary to the documentation).


I'd like to suggest adding the capabilities to detect the key modifiers


  • <alt>
  • <shift> + <alt>
  • <ctrl> + <alt>

Of course this can be done with the Win32 function GetKeyboardState, and this is how I do it right now, but this means that I have to include <windows.h>.



Add an ATTR_COLUMN_PROPORTION (tree or table control) column attribute to set the width of a column in percent.

A second attribute could be added, to maintain column width proportions, in case the user is resizing the columns.

We use the our development and target installation PC's to support both new and legacy projects that were developed under earlier versions of IVI Compliance.  As the only current way to change IVI versions is to uninstall and re-install, we are stuck using the earliest one as a common denominator.   With hundreds of old projects to re-compile, frequent across-the-board updates are not possible.  Newer versions of instrument drivers such as HSDIO are only compatible with later versions of IVI. 


I would like to have a reasonably easy way to switch IVI versions, so we can support both old and new code from our development PCs.  Even a batch file and some registry edit instructions would be better than the way it is now.  However, that would limit its use in a secure environment where the users don't have general admin privileges.


From an NI business perspective, this may be blocking customers from purchasing upgrades or new NI products.

Shortcut for Collapse All and Expand All

Status: New
by Member Harvster on ‎07-03-2013 12:05 PM

When writing a large amount of functions for CVI, I use the View>> Collapse All / Expand All options quit a lot.  It would be incredibly useful to have a keyboard shortcut to do this. 


That's all, but I can't stress how much I use these menu items and how incredibly helpful it would be to have a shortcut.  All of my coworkers agree.  Thanks.

add new plot styles providing error bars

Status: New
by Trusted Enthusiast on ‎10-20-2011 09:51 AM



I see no easy way to plot data in a scatter plot including their error bars...


Hence I suggest adding plot types such as



If this desire gets accomplished, it would also make sense to add some related attributes, specifying the size, type, and color of the error bar.



Browse any <file>.c, by right-click on a file in project view file list.

In Window "Source Code Browser/View" Browse Identifier:
Allow to copy entries in column 'Functions' and other columns, if useful.


This would help to create a content list in <file>.c or any other documentation.

Copy full columns or line by line might be useful.

Why does the numeric lab style have ATTR_FRAME_COLOR but not string, list box and text box?

It always seemed inconsistent to me.

Auto-Complete function

Status: New
by Member fishingman on ‎08-08-2011 09:29 AM


The idea is to automatically add the Auto-Complete function. that is, when you type the beginning of a function, the development interface  provides a set of functions. This option is present in most development software and facilitates the development too.


Include a function to programmatically re-start the NI Variable Engine if it is found to be stopped.

Although the NV libraries include a function to detect whether the NI Varible Engine service is running, there is no function included in the library to facilitate re-starting the NI Variable Engine service. 

For those The method that I am aware of to restart this service is to use the ANSI C system() function with an embedded command line:



Index = 0;                                           


while((!running) && (index++ < 5))


System(“net start \"NI Variable Engine\"");




if(!running) return -1;


Learning this required some time spent on the web, looking through old posts on how to solve the same problem in LabView.  Rather than spending that time, it would have been more productive to just pull it out of the library.

I discovered through trial and error that the CNVCreateBufferedWriter function, while it does provide buffering when necessary to preserve data until it can be written within a process, it does not provide for arbitration between writes originating from multiple processes.  Stated another way:  As far as I am aware, a single Network Variable process is not designed be written to by more than one application.


The documentation was not clear on this point.  It states “You can buffer data to be written to the network variable by calling CNVPutDataInBuffer. The system automatically writes the buffered data to the network variable.”  This suggested to me that arbitration of some kind existed to handle asynchronous writes by multiple applications.  I confess, my interpretation may have been driven by wishful thinking to support my application needs.


Nevertheless, my suggestion is that future versions of this library include a capability to arbitrate asynchronous writes from multiple applications to a single network variable.  i.e., that two, or three, or more applications can successfully connect to and write to the same network variable.

Improved Source Code Control

Status: New
by Member ptb_nmK on ‎05-01-2013 02:38 PM

Hello everybody,

I tried to use a source code / version control for projects in which I  use LabWindows and Visual Studio.

One possible solution would be to implement support for the team foundation server, which already has be added to LabView.

Another would to provide an independent solution.


Best regards,

About LabWindows/CVI Idea Exchange

Do you have a feature idea for how to improve LabWindows/CVI? Submit and vote on ideas now!
  1. Browse by label or search in the LabWindows/CVI 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 New Idea to submit a product idea. You should submit a separate post for each idea. Watch as the community gives your idea kudos and adds their input.
  3. Give kudos to other ideas that you would like to see implemented!
  4. NI R&D will review ideas that have been submitted and update the status.

Note: the LabWindows/CVI Idea Exchange is not the appropriate forum to submit technical support questions.

The LabWindows/CVI R&D team is committed to reviewing every idea submitted via the LabWindows/CVI Idea Exchange. However, we cannot guarantee the implementation of any LabWindows/CVI Idea Exchange submission.