LabWindows/CVI Idea Exchange

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

When working with large programs, especially those with involved user interfaces and the pernicious CallControlCallback or CallPanelCallback functions, it becomes very difficult to follow the program flow when trying to trace a program through all of the various levels of subroutines.

A tool for leaving breadcrumbs, in the order visited, could be very helpful. Right now I use the "breakpoints" as a sort of hyper-bookmark, since the breakpoint facility in LabWindows shows the line number and has the "go to breakpoint" capability in the dialog box. However, this is of limited utility since the dialog box sorts the breakpoints by line number and file, not in order of placement. The bookmark facility doesn't show line numbers nor does it have the goto capability.

 

What is needed is a way of showing the program flow, through routines, in the order visited, in a way similar to the "stack trace" window, except that it needs to be able to show multiple levels simultaneously. This could be done using the existing bookmark facility with the addition of a few items. 1) show file names and line numbers in the bookmark display; 2) allow them to be shown in the order that they were entered, not sorted by line number; 3) add the go-to capability so that I can jump to the location of any bookmark directly.

 

For instance, right now I'm trying to solve a memory problem. A dynamically allocated buffer is being de-allocated before being used, or at least when the error pops up the routine is trying to write to a NULL pointer. I've got to trace through from the starting point and try to understand where in the flow the buffer is being freed and why it's being freed before being written to. Since there are about a half-dozen levels of subroutines, trying to remember what the program flow is and where I'm coming from in trying to trace it can be difficult.

     

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.

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.

I have noticed that there are some tricks that can be played with Control and Panel callbacks that cannot be done with Menu callbacks.  More specifically, it would be handy at times to be able to chain menu callbacks, and to be able to programmically call menu callbacks given the menubar/menuitem ID.  Specifically I am looking for new library functions along the lines of CallMenuCallback(), ChainMenuCallback(), UnchainMenuCallback(), etc.

 

Thanks. 


Hello,

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.

Thanks

If you open a project with many sources and edit a file named zero.c, it takes ages until the browsing information for this file is created.

 

Suggestion: prioritize (all) opened source files when gathering the browsing information.

Hi,

 

I'd suggest to provide a simple up/down control, i.e. the arrows found in numeric or ring controls, but without the numeric / ring field.

 

For example, they might be used to adjust cursor position or scroll through a list.

 

Right now, it's not possible to set the numeric field width to zero, so there will always be a numeric control attached to the arrows (same is true for rings)

 

When I tried to accomplish something like this (following the discussion here) by putting two controls on top of each other, see below, I had to realize that z-plane order is not maintained. While this might be a bug, it's also not nice because the dashed line indicating the focus is disturbing, too.

 

Two controls on top of each other:

 

ctrl-1.jpg

 

After clicking on the numeric control:

 

ctrl-2.jpg

 

Thanks! 

 

 

Summary: I am looking for this control:  up-down.jpg

Hello,

 

working with larger UIs may result in scrollbars showing up in the UI editor. Hence it would be nice if hitting the 'PageUp' or 'PageDown' keys would scroll the page up or down, respectively. Also 'Home', 'End' and the four cursor keys should be supported, similar to their functionality in the text editor. 

 

Thanks!

I would consider it useful if the Build Output would state the total number of errors in a file - right now it says: 1 file with errors, but especially if you start with many errors I find it helpful to see if a change in code reduces the error count.

 

To my knowledge earlier versions of CVI provided this information, which disappeared with clang integration.

 

Related posts are here and here

I would like an option for "Next Breakpoint" and "Previous Breakpoint" in the menus somewhere, similar to the existing "Next Tag" and "Previous Tag" items.  The reason why I ask is so I can then bind these new menu items to shortcut keys so I can bounce between where I have breakpoints set more easily.  It might also be convienent if there were also toolbar buttons that could be added for next/previous breakpoint.  Thanks.

Currently the 'long double' type has 64 bits of precision, which is the same as the 'double' type.  It would be handy on occasion to be able to use the full 80 bits of precision like is available with the Intel compiler.

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

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?

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.

For some specific projects it's required that the code is compliant to MISRA C guidelines (see here)

A feature to check the compliance of the C code with MISRA C guidelines would be useful.

The best option would be to have the possibility to select a subset of the rules or to disable some of them.

This suggestion comes from this discussion: basically, it seems strange to me that I may have a disabled quit button and the close control (the red cross in the upper right corner of the panel) which is active at the same time.

It seems to me that the close control should honour the state of an existing quit button declared in Close control panel attribute. At present the only solution is to test the state of the button within the button callback itself.

 

If this idea is not accepted, at least a note should be added to the documentation, e.g. in ATTR_CLOSE_CTRL help page, specifying that the callback is fired regardless the state of the control.

sometimes i use the table object in CVI but there is one function that is missing and i think it's really usefull, the one that give you the ring index directly.

 

now i'm doing it in this way, maybe there is a better way to do it but i've not spent too much time to do it.

 

/// HIFN This function give you the item ring index.
/// HIRET an integer value containing the function result.
/// HIPAR panel/panel handle where the control is located.
/// HIPAR control/which control i have to analyze.
/// HIPAR column/in what column i have to look.
/// HIPAR row/in what row i have to look.
static int GetTableIndex(int panel, int control, int column, int row)
{
	int Result = {0};
	long IndexLength = {0};
	char *IndexTemp = {0};
	
	GetTableCellValLength(panel, control, MakePoint (column, row), &IndexLength);
	IndexTemp = calloc(IndexLength + 1, sizeof(char));
	GetTableCellAttribute (panel, control, MakePoint (column, row), ATTR_CTRL_VAL, IndexTemp);
	GetTableCellRingIndexFromValue (panel, control, 0, MakePoint (column, row), &Result, IndexTemp);
	free(IndexTemp);
	IndexTemp = 0;
	return Result;
}

I used to be able to change strip chart colors "on the fly".

This facility was available pre Version 8.5 - see http://forums.ni.com/t5/LabWindows-CVI/Changing-color-in-a-Strip-Chart/m-p/2292246/highlight/true#M60735

This would allow me to change the color for future points and NOT affect what was already plotted. This is the way that ATTR_TRACE_COLOR used to work.

As the above discussion thread says, this feature was a bug, but a very useful one at that!

Could we have a control that worked in this way ATTR_TRACE_POINT_COLOR which would only work for points plotted from thereon, the strip chart still scrolling as it does at present.

I believe that this could be done if I used a graph control, but that would involve explicity redrawing the graph for every plot point to achieve a scrolling display.

 

Easy integration of MS .NET libraries is a highlighted feature LabWindows/CVI. However, programmatically interacting with the GAC from LabWindows/CVI is currently challenging and more worthwhile to do in other environments. A set of functions to programmatically interact with the GAC from LabWindows/CVI would create a more seamless experience for developers.  

How about Ethernet/IP or EtherCAT support.  It exists in Labview.  It has been around for over a decade.