LabWindows/CVI Idea Exchange

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

Hello,

 

imho the nice tool tips feature provided by the Programmer's Toolbox leads a miserable existence, because it is extra effort integrating it into a GUI.

 

I would love to see the tool tips integrated into the IDE, that is, when editing a control in the GUI editor, I would like to be able to also set the tool tips text and if it is initially enabled, just like it is possible to enter a control label text. This would include moving the tool tips from the Toolbox to the regular user interface library.

 

Many Thanks!

 

 

When operating graphs in Labview, it is easy to change the scale of an axis of a graph (at runtime): to change e.g. the maximum value, you select the current maximum value with your mouse, type in the maximum number you want and hit enter. To achieve the same in Labwindows, you have to use a numeric control and a button, which is a bit cumbersome. The same applies for zooming: In Labview, you can click a small button attached to the graph and select the way you want to zoom, and then just use the mouse. In Labwindows, you have to know that zooming is done using the ctrl button, ctrl+space restores the previous setting, etc. It would also be nice to be able to enable autoscale by right-clicking on an axis and having a popup menu which allows to do so (just like in Labview). And if the user changes e.g. the maximum value while autoscale is enabled, it would be nice to automatically disable autoscale (unlike in Labview).

 

So in general, it would be nice to have more comfort in operating graph controls.

 

Thanks.

Even after using CVI for many years I still find the DirSelectPopup confusing, because it provides a file selector, displays files, and even allows to select files...

 

I would prefer an improved/modified function such that the DirSelectPopup only shows directories, does not provide a file selector, etc.... This should make it much more obvious that one is selecting a directory, not a file...

 

Thanks!

Code refactoring is a common need for C developers and availability of eiter automated or semi-automated tools can be really helpful.

Since LabWindows/CVI now uses llvm+clang, probably a tool like "include-what-you-use" can be integrated.

This is the github page for the tool.

 

From the documentation:

"Include what you use" means this: for every symbol (type, function variable, or macro) that you use in foo.cc, either foo.cc or foo.h should #include a .h file that exports the declaration of that symbol. The include-what-you-use tool is a program that can be built with the clang libraries in order to analyze #includes of source files to find include-what-you-use violations, and suggest fixes for them.

The main goal of include-what-you-use is to remove superfluous #includes. It does this both by figuring out what #includes are not actually needed for this file (for both .cc and .h files), and replacing #includes with forward-declares when possible.

 

Here you can find this topic discussed in LabWindows/CVI forum.

Currently, there is no way to access the historical data on a stripchart.  The only way to manage this data is to maintain a separate buffer and update it whenever you add data to the strip chart, which is inefficient and tedious. Accessing data is possible for graph controls using the data attribute:

 

GetPlotAttribute (panel, PANEL_GRAPH, plotHandle, ATTR_PLOT_XDATA, &data);

 Something similar should be implemented for the strip chart, either as an attribute in the getTraceAttribute function, or as a standalone function (getTraceData, etc.)

This would make it a bit easier to edit an old project without the issue of upgraded UIRs because it might get loaded by the wrong CVI version and one edits and accidentally saves it before noticing.

 

Visual Studio installs a helper EXE which launches the right Studio for any SLN.

 

If MS didn't patent this Smiley Wink, it would be a nice feature for CVI (and LabView?), too.

I would like to have the possibility to store the uir-file not as a tui-file (old-fashioned ini file), instead as a xml file.

If you have, say, three controls called MAX_1, MAX_2, MAX_3 arranged vertically. If I select them all, copy and paste, the new controls appear as MAX_4, MAX_5 and MAX_6 but in the wrong order to what you would expect.

i.e.

MAX_1

MAX_2

MAX_3

 

becomes

 

MAX_1

MAX_2

MAX_3

MAX_6

MAX_5

MAX_4 

 

A similar issue occurs with assigning a group of controls to a control array, they always seem to be in the wrong order, usually reversed.

When you have a function to install a callback, for example InstallMainCallback, NewAsyncTimer, InstallComCallback, viInstallHandler, DAQmxRegisterDoneEvent, DAQmxRegisterEveryNSamplesEvent, DAQmxRegisterSignalEvent, etc... it would be nice if the prototype was inserted directly in the source code by pressing Ctrl-D like for variables. Currently you have to open the documentation and do some copy/pasting.

Hi,

 

sometimes it woud be useful to have plot symbols available that are larger than the fixed standard size. Hence I suggest providing a plot attribute ATTR_TRACE_POINT_SIZE where one could set the point size (e.g. in pixels)

As discussed here and here, CVI does not re-open workspace files in the order they were when CVI was closed; I am referring to confined workspace, not freely floating windows.

 

As a result, starting CVI one first has to locate all the files, where did the include file go...? If you happen to have some more tabs this is a waste of time.

 

Also, as Roberto mentioned, you can not easily use the short cut keys Ctrl-1 etc. because of the changing assignment.

 

So, in short, I am asking to improve this behavior and maintain the tab order of CVI workspace files, that is, re-arrange/re-open the tabs in the order they were when CVI was closed.

 

Thanks!

Hello,

whereas it is possible to add, remove and rename a folder in the project tree via a right-click popup menu it is unfortunately not possible to rename a file.

Instead one has to remove the file (plus its accompanying include file) from the project, rename it in Windows File Explorer, and then add it to the project again.

It would be more convenient being able to do so within the project tree, similar to the ability to rename folders.

It has been suggested much earlier here, but obviously passed out of mind:

 

When using 'Go to Definition' (CTrl+I) while in release configuration, CVI tells that no source code information was found for the identifier '...', because 'Browse information is not available in the Release configuration'... (still true for CVI2010)

 

This can and should be improved!

 

And it might be a good opportunity to also add the reverse process, 'Goto Declaration', suggested here

Hello,

 

it was very nice to see clang updated to version 3.3 in CVI2015; I wish this support of current versions of clang will be continued in the future, so I am hoping that with CVI2017 we might get clang 3.9 or 4.0 because of the following issues:

- many many bug fixes in clang

- improved diagnostics

- support of C11

- full support of OpenMP 3.1 and beyond

 

Thanks!!

Hi,

 

The CVI runtime engine calls the Windows API function SetProcessDPIAware() that tells Windows that the application is DPI aware in Windows Vista and later.  This seems to be forced upon all applications built with CVI, whether they are actually DPI aware or not.  Most applications built in CVI using the default tools are not going to be DPI aware out of the box, and setting Windows to another DPI setting than what the programmer used to create the UI will cause many graphical glitches and possibly make the application unusable.  The purpose of this request is to suggest to NI that the CVI Runtime Engine not call SetProcessDPIAware() so that the programmer can handle (or not handle) DPI scaling as they see fit.  If the programmer does nothing, the application will then, by default, be scaled using Windows DPI Virtualization.  This is not optimal, but it would leave the application usable and looking like how the programmer intended.

 

This is per this discussion here:

http://forums.ni.com/t5/LabWindows-CVI/Forcing-DPI-Virtualization/td-p/3079742

 

Thanks.

If a file is listed in a project, but it is doesn't exist anymore on the filesystem, CVI doesn't mark it in any way in the project tree.

If the file is an .uir, this brings to a strange behavior with "Find UI object" (see here).

I think that files non-existent on the filesystem should be marked mark in some way (color, special icon, ...) in the project tree.

The check can be done when the user opens and closes the project.

As suggested by Daniel (D-Cubed) an improved version of GetCVIVersion is needed in order to determine the patch level programmatically. Right now, no simple approach exists for an executable to determine if the CVIRTE is a patched version or not. For example, GetCVIVersion returns 1300 both for the patched and the unpatched 2013 release.

 

Thanks.

I would like to see some statistic informations about my cws and or prj-files. Like the "LinesOfCodeWichtel"...

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

In CVI 2013 the array display has changed (for the worse, in my opinion).

 

There are two minor inconveniences and one acute shortage I would like to see improved (hopefully prior to CVI2020 Smiley Wink)

 

First, the right click context menu: If I want to see values of a numerical array, it offers a 'Graphical Array View' but no 'Array View', so one first has to chose 'View Variable Value' and then 'Array Display' - maybe one could save one step and already provide the 'Array Display' in the first case...?

 

Second, the new Array View table still is very slow, not extremely slow as prior to SP1 but still very slow...

 

Most importantly, at present it is impossible to debug large arrays, large meaning arrays with more than 10000 elements. The current implementation requires to select a slice of data - but this makes it impossible to check or compare say array indices 5, 10005, and 20005...

Of course I agree that there is no need to simultaneously see more than 10000 data values - but why not have a table with say 100 rows that can be turned over, e.g.  displaying either elements 1-100, 101-200, ... this way one could access and inspect all array values...