NI Home > Community > NI Discussion Forums

LabWindows/CVI Idea Exchange

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

CVI provides useful scanning / formatting functions, e.g. Fmt, which in part complement the ANSI functions. This means that some features can achieved using one library, but not (or not conveniently) using the other. Hence I would be happy to see some additional modifiers allowing the Fmt functions to provide some additional capabilities that are available in printf etc


In particular I suggest introducing


- + modifier to always denote the sign '+' or '-' of a number

- e/E to display the exponent 'e' as a small/large character




Adding a bitmap to the 3D Graph

Status: New
by Member Bertrand_ENAC on ‎03-29-2012 11:38 AM



I'm using the 3D Graph ActiveX in order to display contour lines for a given parameter.

I would like to overlay this contour map with a Google earth image as shwon below.


Bitmap in 3D Graph.jpg


So it would be nice to consider adding the possibility to add a bitmap image to the 3D graph as it is possible to add a bitmap as background of a canvas control. The bitmap could also be used to replace the color of a surface plot.




Locking GUI Controls

Status: Duplicate
by Member Paul_Knight_Lockheed_Martin on ‎03-26-2012 12:14 PM

I would like to see a way to lock a control's coordinates so that they are not accidently selected and moved once they have been placed on the GUI.  It would be nice to lock the control to the GUI if I know that I am not moving the control again.


Status: Duplicate

When using tab controls on a panel, every time you change the active tab in the UIR editor the file is marked as modified even if no real modification has been made on panels/controls. This is particularly annoying when you are simply looking at a UIR file but you don't want its date/time to be modified (e.g. in case the project has already been deployed to the customer and you want to keep the local copy of the UIR with the original date/time).


If your file is marked as read-only (same scenario as before: the application has already been deployed and you want to prevent modifications to it) you cannot even change the active tab page, neither in edit mode nor in operate mode (F4 - operate visible panel)!


It would be better in my opinion that a simple tab page switch does not forces the UIR to be saved.

Status: Declined
Declining, based on Jared's earlier comment

Swap Lines

Status: New
by Member Johannes_T on ‎03-12-2012 11:05 AM


Implement Swap Lines shortcut key (Alt+Up/Down).



Often, I need to swap two lines of code in my source file or maybe just move one or several lines up or down inside my code.

In order to do this, you normally have to do a cut and paste in order to move the lines.


Having a Swap Lines feature in the CVI source editor could significantly speed up this process, especially when you have to handle big chunks of code.

The Swap Lines mechanism could be triggered by the Alt+Up/Down.

This feature should also support multiple lines selections.


movable windows within the IDE

Status: Under Consideration
by Trusted Enthusiast on ‎12-16-2010 04:57 AM

Following the discussion with Luis here I want to suggest


  1. a possibility to confine the variable view
  2. allowing to move confined windows within the IDE, i.e. position the source code browser to the left (or right) of the code window, similar to the workspace window.



Support HPC using GPU computing

Status: New
by Member layosh.b on ‎12-12-2010 02:52 PM

My 2000 dollar worth, run of the mill desktop PC has 4 teraflop of brute computation power hiding in 4 GPUs. None of which is accessible for my programs I develop in Labwindows.


With the release of the new OpenCL it is possible to generate a "platform independent" GPU computing library. That would place Labwindows on the same or better footing than Labview that already has some GPU computing support.

The advantages are obvious: huge gain in data processing speed, real-time application with streaming data,  pattern-recognition (video) applications, image processing, data-parallel tasks in (technical) modeling arena.

I am playing with some optimization algorithms (genetic algorithms, evolutionary algorithms) that benefit and show amazing gains since they are ideal for data-parallel applications! Currently working on the specs for a new type of controller that would optimize several parameters to figure out the state of the tissue culture (expanding, producing, overgrowing, etc.) to maximize productivity and to calculate the optimal settings using evolutionary algorithms... Any complex process control could take advantage of this kind of applications -currently not available- because of computational limitations. Had a previous optimization task that would have taken 150,000 years to complete using a brute force algorithm on a "monofilament" CPU-based application. Converted it to a genetic algorithm and it gives me a good enough solution in 3-4 days on the same standard PC. Now, with GPU, that problem could be solved in fifteen minutes while expanding the evolutionary depth and finding better solutions using even more complex fitness functions.

Ask yourself what do you want: tinkering with the conveniences of the IDE that already does the job well enough; or open the door to new landscapes that could be conquered by using the simple elegance and effectiveness of LabWindows and the power of GPUs?



Network Variable Library: set data quality

Status: New
by Active Participant vix on ‎12-01-2010 08:49 AM

This issue has been explained in this thread.

As explained in some documents on the NI web site

the Network Variable Library can be used to develop an OPC Server (and a Client too).

While developing an OPC Client, the function CNVGetDataQuality( ) can be used to read the data quality, but there isn't a way to set this parameters while developing an OPC Server.

For this reason a way to set the data quality status and substatus should be added to the Network Variable Library functions that generate OPC data.

I suggest these new prototypes:

  • CNVSetScalarDataValue (data, type, value, quality)
  • CNVSetArrayDataValue (data, type, &array, NofDims, dims[], quality)
  • ...

Longer Axis Names for Graph Controls

Status: New
by Active Participant tstanley on ‎11-30-2010 08:23 AM

Currently the axis names on graphs are limited to 30 characters.  I find this to be rather limiting when trying to put in lengthy descriptions of the data plotted.  Could this limit be increased in future versions of CVI?

Using SetTableCellRangeVals to update several thousands table cells is very effective.(better than using ATTR_CTRL_VAL)

I miss similar function for set atribute values in the same way. In example:i need  to set text to be bold or  set background color for each table cell separately.

Ithik that usability of SetTableCellRangeVals will be better if SetTableCellRangeAttributes will be avivaible because there will be the same program approach/logic for values and attributes,instead of mixing multiple cell vallue update and one by one cell attribute update.



Allow Large Arrays

Status: New
by Member shel on ‎02-19-2012 11:02 PM

A byte array is limited to 2GB because the index is an int. Allow the use of long for an index so large arrays can be used.


Integrated mouse wheel support

Status: Completed
by Trusted Enthusiast on ‎02-19-2012 03:28 AM



I am glad that the event EVENT_MOUSE_WHEEL_SCROLL was added some time earlier to CVI. In principle, now it is possible to operate numeric controls, ring controls, etc. not only via keyboard and mouse, but also via the mouse wheel. This allows very smooth operations, great!


However, the integration level is inconsistent: While pressing the ARROW_UP key on a selected control will increase the value displayed in the control automatically, i.e. without the need of the programmer to react to a specific event, achieving the same result with the mouse wheel requires adding code to each callback. This is possible, but inconvenient as it adds a lot of overhead.


Right now, in every callback of a numeric or ring control that shall support the mouse wheel I have the following lines:


    switch ( event )
            if ( eventData1 == MOUSE_WHEEL_SCROLL_UP )
                FakeKeystroke ( VAL_UP_ARROW_VKEY );
            else if ( eventData1 == MOUSE_WHEEL_SCROLL_DOWN )
                FakeKeystroke ( VAL_DOWN_ARROW_VKEY );

        case EVENT_VAL_CHANGED:


Hence I suggest

  • either to treat a mouse wheel on a selected control like an ARROW_UP or ARROW_DOWN keypress (personally preferred)
  • or to add one more attribute allowing to treat a mouse wheel on a selected control like an ARROW_UP or ARROW_DOWN keypress. In the UI editor, then there should be a checkmark (allow mouse wheel support), similar to the check marks initially dimmed etc. This attribute could be useful if there are concerns of backward compatibility - may be some users don't want to support the mouse wheel...



Status: Completed
Introduced in LabWindows/CVI 2013

Create Network Variable folders and subfolders

Status: Completed
by Active Participant vix on ‎11-05-2010 08:09 AM

This topic has been discussed insome threads:

Unfortunately CVI doesn't support this feature, but LabVIEW probably does.

I think that CVI should implement this feature too, because grouping scalar variables into folders and subfolders is an approach commonly used by OPC Servers, and the Network Variables are a simple way to create an OPC Server with a CVI application.

Status: Completed

Ok, I guess everything is in the title

Open a source code where you fill an array

Put a breakpoint

Click on the name of the array


I would like to see the display in the bottom part of the IDE, not in a window


Regards, 40tude 

Status: Completed
Introduced in LabWindows/CVI 2013

width attribute for histograms

Status: New
by Trusted Enthusiast on ‎10-28-2010 04:42 AM

Right now it is possible to have plots resembling histograms by choosing as plot style VAL_VERTICAL_BAR.


However, at present the width of these bars can only be adjusted by changing the line thickness in pixels (ATTR_PLOT_THICKNESS)


From a users point of view it would be more useful having the possibility to specify the width in units of the x axis.


Explanation: Say one is plotting an xy graph, with the data equally spaced and in incremetns of 1. If the x scale is 0-100 there would be 100 thin lines which may be appropriate in most cases. If the x scale is 0-5 there would be only five thin vertical lines. This appearance is very much different from what one would expect from an histogram. The suggestion is to set the width of the histogram bars to say +/- 0.4 x units, then there would be nice bars ranging from 0.6-1.4, 1.6-2.4, etc. in the case of an axis scale of 0-5, and the width of the bars would shrink accordingly if the axis scale is 0-100; in this case, there would be 100 rather thin lines resembling more or less the current appearance.


So in effect this suggestion is about an automatically adjusting line width (right now it is not possible to implement it manually because the line width is specified in pixels rather axis untis and is also limited to a maximum of 32 pixel.)


One step further could be to draw rectangles instead of lines with the possibility to independently choose line color and fill color.

I use the "user interface localizer" in a big project and need to generate appropriate LWL-files (localized UIR's) for many dll's and exe's. Currently I have to use a batchjob to generate them, interfacing the "user interface localizer" window by window messaging... Why not add some command parameters to this tool, so it will be easier to use for bacth jobs,like "localui.exe -uirfile -lwdfile -(overwrite/merge/...)


statistical distribution functions

Status: Under Consideration
by Trusted Enthusiast on ‎10-19-2010 03:00 AM

In close analogy to the functions N_Dist (,)... for calculating the one-sided probability for a standard normal distribution I'd like to suggest test routines

B_Test () for binomial distributions and P_Test () for Poisson distributions.


Background: In many experiments, signals are not measured as a continuous curernt/voltage but are counted as individual events (photons, particles...) For 'rare' events the corresponding distribution function is binomial (few repetitions/sweeps) or Poisson (many repetitions).


In such cases using a Gaussian distribution is not always justified.


debugging control attributes

Status: Under Consideration
by Trusted Enthusiast on ‎10-11-2010 09:27 AM

I'd like to suggest the possibility to query attributes of a control during debugging, i.e. after the program stops at a breakpoint I would like to have the possibility to obtain the scaling behavior (manual, autoscale) of a graph and the assignment (left/right axis) of a plot...




Add a numeric control ATTR_SET_RADIX

Status: Already Implemented
by Member cmason on ‎01-25-2012 01:26 PM

When a user changes a numeric control radix, LabWindows/CVI generates an EVENT_RADIX_CHANGE event and sends the event to the control callback function.

eventData1 = The new format of the radix(VAL_DECIMAL_FORMAT, VAL_HEX_FORMAT, VAL_OCTAL_FORMAT, or VAL_BINARY_FORMAT).  Provide an attribute to set the radix from source code.

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.

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.

Idea Statuses
Top Kudoed Authors
User Kudos Count