LabWindows/CVI Idea Exchange

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



because I had installed CVI2010 on a brand new Windows 7 machine, I was curios to find out about all the service processes running on the system.

It seems that there are quite a few NI services that start after log-on. Some of  them seem superfluous, such as the Lookout Citadel service (no LabVIEW, no Lookout installed), but due to the lack of any information I did not bother trying to stop them



1) NI should critically review the services and only start the services that are absolutely needed.

2) Services that are optional might be selected by a checkbox during installation or from the Options / Environment setting

3) NI should provide some documentation / explanation of each service and why it is needed.



Allow you to select multiple lines and then go to Edit>>Block Comment/Uncomment to be able to comment or uncomment multiple sections of code at once.

This issue is that old that we all forgot about it... Smiley Wink


But this thread brought it back to my attention and I'd like to suggest two improvements:


Setting the width or the height of a control does not always succeed because there are limitations concerning the minimum and maximum size.


Suggestion 1:


If a function fails it should return a warning. However, calling e.g. status = SetCtrlAttribute ( panel_handle, PANEL_RING, ATTR_WIDTH, 5 ) returns success (0) even though the width of the ring control will be much larger than 5 pixels. For checkboxes, the situation is even worse because checkboxes are drawn right aligned to a transparent rectangular frame. So calling status = SetCtrlAttribute ( panel_handle, PANEL_CHECKBOX, ATTR_WIDTH, 500 ) will result in a transparent drawing rectangle of width of 500 but with the checkbox size remaining at the default size. Since the checkbox is drawn right aligned to this transparent frame the checkbox eventually may disappear from the panel (setting the width to say 10000 will not draw anything).


Suggestion 2:


Complement the documentation, the idea is given below:


Constant: ATTR_WIDTH
Data Type: int
Description:  The width of the control body in pixels.
Valid Range: 0 to 32767
Control Type Restrictions: Not valid for controls of type CTRL_VERTICAL_SPLITTER and CTRL_VERTICAL_SPLITTER_LS

For checkboxes, the minimum size is ... pixels, and the maximum size is ... pixels.

For ring controls, the minimum size is ... pixels.

LabWindows/CVI Compatibility: LabWindows/CVI 3.0 and later

Control Types:  All

I would like to propose an idea for National Instruments to come up with a LabWindows CVI Peer Review Form. This form would be used to help a software programmer or engineer review someone else's code to ensure that they wrote the best code possible. It would provide a quick set of questions which the reviewers would need to look for in the code and then answer. The form would help ensure that the code was designed in a format that is easy-to-read, efficient, set up for all possible failures, is as organized as possible, etc. There could be separate sections based on the different types of files, whether it's a .uir, .c or .h file.


This idea is not new, since here is an example style checklist for LabView:


In principle CVI supports external compilers for an optimized release version such as Intel's ICL and I managed to successfully compile release versions using ICL 11.1.


However, documentation on this issue is sparse.


It is even worse if one attempts to use an external linker which might be appropriate if one attempts to use e.g. Intel's MKL. Here I would love to see the support of external linkers in combination with an improved documentation.


Similarly, CUDA is becoming more attractive for more demanding floating point applications - I would consider it very useful if NI could provide e.g. an application note of how to do this in an easy to follow tutorial.

As CVI evolves (in age and functionality) I feel that additional efforts are required for maintaining the product, i.e, keeping it 'consistent' and avoiding a 'mosaic look' as if assembled by different engineers in different decades... Smiley Wink


A simple example but also one I would like to see resolved is entering data types in the UI editor vs in a function call (PlotIntensity in this case):



edit_numeric.png      plotintensity.png


So, for example, long long translates to int64...  Why not simply use the identical terms??


I agree it could be worse but I also feel that this is a valid suggestion for future improvements...

Hi Everyone!


In these days, I have been debugging a complex application(almost 12,000 lines of code) and it was very hard to do a map showing the relationshing at least of some critical functions.


For this reason, I consider that a very helpful debugging tool could be to add in LabWindows/CVI, a window like the VI Hierarchy in LabVIEW; that shows the relationship beetween the functions inside all the module in a CVI project. This windows will show which functions calls a particular function.


Here, there is a very simple example:




At present the IniFile instrument permits to read an existing .INI file, modify it and re-save it preserving existing comments in the file, if any. It would be a great addition to permit to programmatically add comments to sections and/or items.


I have a rather complex application with several optional modules that can be added or tailored by setting appropriate items in a configuration file in .INI format. I have developed an application that helps me creating such configuration files with the proper elements added but if I want to add some comment for better documentation to the final user I need to manually add them after the file has been created with the risk of forgetting something: if I could add them while generating the configuration file I would avoid this risks.

It would be nice to be able to add some comments on UIR objects in the editor.


I'm mainly concerned about versioning: sometimes I happen to apply some modifications to existing panels / objects that are not self evident and I run the risk of forgetting them while revising the project after a couple of weeks.

As an example, I have recently modified some string and text message controls using "Greek" character set so that I can embed omega and delta symbols in them. At present I have a text file describing all modifications I have done in the project, including those in the UIRs, but it means I need to revise this file when I open the project again. It would be good if I could  add a comment on those controls and have a visual reminder of it directly in the editor (e.g. with a little symbol like when you add a comment on an Excel cell) so that every time I open the UIR I see the presence of comments at a glance.

A custumer needs to know the default value of ATTR_CTRL_MODE and cant find it in the online description of the attribute. I think that the default value is VAL_HOT but cant confirm it.

The desciptions of most attributes include their default values. Please add the default value to the following description:



It would be great to add the possibility to include documentation for (especially global) variables and data structures to the HTML documentation. Currently only functions could be documented. And it would make no sense to duplicate information about data structures used as parameters in each function which is using it.


It would further make sense to structure the HTML documentation at least by the module (.C file) it is defined in, together with the variables and data structures. Such you would get a tree like HTML doc with the modules as 'chapters', then sections for data structures, variables and functions. At the moment I get one big HTML index with documentation from all functions within the project sorted by name (I have not been able to find out how to get another structure in the 'functional index').


In best case there should be a chance to group 'public' data structures, variables and functions independent of 'private' ones to clearly identify the ones which are the intended interface functions and which are module internal helping functions. One way to automatically distinguish between this types might be using all functions documented in .H files as public and documentation from within .C files as private.


Best regards,

  Roland Exler

The option tooltip is very good feature what is the problem is it is only for the controls. If I want to show tooltip for listbox then it is fine but what if someone wants to show tooltip for active rows. It simply doesn't. 


This is very basic but one of the disadvantage of labview over .NET.


This needs to be fixed

It has been discussed here.

I suggest to add a note to the documentation, for example



_TARGET_PRODUCT_VERSION_ and _TARGET_FILE_VERSION_ values are updated only when the file that contains them is recompiled.

So be sure to include them only in files that are recompiled at every build.




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>.



I'd like to see better documentation online.


Currently, documentation seems to be spread over different areas: online, in sample code included with the development environment, in a downloadable help file, etc. What online documentation there is is incomplete - for instance, if I'm looking at the function reFFT (just an example, I know it's obsolete), the online help gives me the parameters and what they are but they don't tell me acceptable values, e.g. what is the largest/smallest value I can use for numberOfElements: 1 - 9e99999Another case was with the NIscope driver NISCOPE_ATTR_INPUT_CLOCK_SOURCE. When I looked at the documentation (downloaded zip file filled with CHM files) there was a list of defined values but no desciption of what they were or were not for. Example: NISCOPE_VAL_NO_SOURCE ("VAL_NO_SOURCE")...I *assume* NO SOURCE is equivalent to Intenal but should I really have to guess when looking at documentation? For that matter, why does this information only appear to be available via downloadable file? 


In another case with NISCOPE I found that the niScope_ConfigureHorizontalTiming expects a certain clock frequency (10 MHz) if you're using an external clock, but if you are using a clock frequency at exactly what you're asking for you have to set the attributes directly. I messed with this for a while before calling the help desk. The person at the other end was able to tell me how to fix my problem but he could not find documentation online (accessable by me) where this information could be located. It seems to me that the number of help calls could be drastically reduced if sufficient help were available online. Finding information on error codes is similarly lacking.


I also have a problem with referencing "installed" sample code in lieu of a online programmer's manual. I don't always run on my development machine. So I'm on my target system (that does not have the development environment installed) and I want to look something's very frustrating to find all help on a particular subject referring to my development machine. 

On my development machine, I have access to various library functions in the NI-Vision library.  Some of these functions apparenly require the NI-Vision Acquistion license, and some of these require the NI-Vision Runtime license, and some of these require no license.  They are all mixed together and I can find no documentation anywhere that tells me which license(s) I need to put on the deployed computers given what library functions I call in my application.  The only reliably way I have found to determine this is to deploy a test application to a PC that is not licensed and see if the function call fails with an ERR_UNREGISTERED.  It seems that there should be a better way.  Thanks.



I'd like to suggest the option of enabling spell checking of comments in source code

Please can we CVI users have a completely seperate forum/ knowledge exchange from LABVIEW, I seem to spend ages looking for solutions only to find they have been done using labview, even if I include cvi in the search. The knowledge base sometimes appears to jump from a cvi forum into a labview forum, this can be frustrating.


p.s.This idea exchange is great


What is the point of this Idea Exchange, when there is such a low uptake rate from NI?


There have been many very good suggestions posted here, but only 6 are labelled as "In Beta", which I assume means will be in the CVI release this autumn. There are 106 "Under Consideration", but there is no indication what is required to move them to "In Beta". For instance, Wolfgang posted "Reduce and document the NI services running after Windows logon" on ‎04-01-2011. It went to "Under Consideration"  on 08-15-2011. Two Years from the original posting, we still have nothing!

How do I justify renewing our Volume Licence Agreement when the LabWindows development effort within NI is so small?

How many people actually are on the full time LabWindows team within NI?

This is an (extensible) list of things I'd like to see improved in the CVI help:


- I miss a list of all obsolete functions, preferably in an ordered, linked list showing obsolete function name, replacement function name (if any), library, CVI version of improved function:


          Convolve          |   ConvolveEx     |   Advanced Analysis Library    |   CVI 9.0


- I miss a list of all new functions / attributes ... per version (if I am updating one of my older projects that has been untouched for years I'd like to also update it to new CVI features (and change to non-obsolete functions) so I'd like to see what is new since then.)


- I'd also like to have the lists of fixed (and open) bugs included in the help


Thanks Smiley Wink