LabWindows/CVI Idea Exchange

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

The CVI Full Development System supports Microsoft's Software Development Kit.

I'd like to suggest to update this support to Windows 10 SDK.

Please conisider supporting multi-touch screen gestures in a similar manner to the mouse events.  Windows 7 Mulittouch capabilities are a good place to start. http://msdn.microsoft.com/en-us/magazine/ee336016.aspx

 

The GUI of the future will most certainly be touch screens, and users expect to be able to use gestures such as pinch, fling, spread, rotate, etc.

 

 

 

 

The JIT debugger option in CVI 2010 is a nice step in the right direction, but only being able to debug builds that were compiled in "Debug" mode pretty much defeats the whole purpose of the idea. Debug builds are much too slow to be used in production and on my machines, if I ever use a Debug build, it probably already runs under the debugger anyway! Seeing that CVI is not even an optimizing compiler I cannot understand why release builds cannot be properly debugged. 

 

Thing is, the crashes in production are the important ones that I absolutely need to be able to investigate, and CVI does not provide ANY assistance in this area apart from being able to at least generate a MAP file. This is what I currently have to do: I have included code in my application that creates a memory dump and sends it to me when the application crashes or hangs. This dump I can then load into WinDbg and with a few tricks I can at least import the CVI MAP file to get some functions names in the stack traces, but that's it, all investigations have to be done on the assembly level. To quickly decipher stack frames, e.g. to have a look at local variables, I often even have to throw my OWN code into a disassembler (IDA Pro)! I'm really glad that this way I am now at least able to debug most crashes at all, even when they happen far away in a different country, but this aren't the 80s anymore and you can probably imagine that this process is hard and time consuming and very much annyoing. With code compiled in VC on the other hand I can load a MiniDump and have a look at the stack trace, variables and code on the source level without much hassles. 

 

Some ideas that could help:

 - Let me (JIT) debug release builds

 - Let me load MiniDumps into the debugger or

 - create PDB files that I can use together with a debugger that can load MiniDumps (WinDbg, VS)

 - Let me not only use an external compiler but also an external linker that generates PDB files for release builds (I don't like this solution as I use C99 features VC does not support, but I'm desperate here)

 

Okay, rant over for now, I think I really needed to vent a bit. Thanks for reading this far 😉 

 

All the best, Marcel 

It appears that cvi.exe can run into serious memory problems for larger projects due to a memory-hungry generation of source code browse information.

The solutions suggested (* don't generate browse information for larger projects or * don't use larger projects) are not too helpful. In my opinion, a much better solution would be to provide cvi.exe as a 64 bit application.

Because a crashing CVI is a serious limitation I hope this wish will make it soon.

Thanks...

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 am feeling that LabWindows/CVI lacks a feature that leads to confusion and to minor lack of productivity. When opening the Project File from Windows Explorer or another manager, CVI will start and open that particular project. However, if an instance of CVI is currently running, it will close the project that’s opened and open up the new project. This doesn’t seem right. Let’s say your’re working on a project and you want to open a reference project or an example from ‚Samples’ in order to find some information. Your project automatically closes and you must open it again. You have to search the project on the disk and wait for it to load each time you want to look for something in another project. But you only want to take a look at that example (or reference project), you don’t want to work on it! A workaround exists: open up an instance of LabWindows/CVI and then open your second project. And you must do that for each supplementary project you want to open, while not losing you project of interest.

The feature I think should be implemented would allow the following behavior: when opening a project, LabWindows/CVI will check to see if that project is opened in one of its running instances. If it is, that particular instance is brought into view. If it isn’t, a new instance of LabWindows/CVI will be started and the project will be opened. That way you reduce waiting times (especially when a big project is involved in this switch) and increase productivity.

Starting CVI the IDE uses cpu resources even if sleeping, i.e. doing nothing except waiting for user input. It seems that the IDE is also using the scheme of SetSleepPolicy...

 

Today most other software does better and I would like to see an improved behavior: use cpu (and thus energy...) only if something actually needs to be done

Hi,

 

in my application, several panels exist. Their size is fixed and can not be changed by the user, but they can be minimized and restored by the user. It would be nice to have the possibility to programmatically react to these MINIMIZE and RESTORE events. Right now, I have to poll the panel zoom attribute.

 

Thanks!

 

 

Hello,

 

  • Right now, the Break on»Library Errors function break happens for all library errors. I would like to suggest a more granular setting, i.e. break on file I/O errors, math errors, etc.

 

  • An additional (and most relevant) feature I suggest is the option to allow to temporarily exclude certain errors; let's say I have a loop doing some calculations and these calculations result in an ERANGE error, then it would be useful to get notified by the debugger, but only once for this loop, not 500 times... Hence after a break on library error I would like to have the (right click) option 'exclude further breaks of this function'. This should be valid for the current execution and be automatically reset when the program is restarted.

 

  • Also, the menu command should provide the possibility to override all SetBreakOnLibraryError functions.

 

Many thanks!

Please consider the possibility to make one option to set the application as Windows service, so i can start it on windows server BEVORE the logon is done.

Very usefully !!

Hi,

 

following the discussion here it turns out that at present there is some ambiguity in using the taskbar button of applications created with CVI: Clicking on the taskbar button gives the visual impression of minimizing all panels of the application, in fact the panels are just hidden, not minimized. As a result, the application will behave differently if you really minimize panels using the _ panel button, or if you hide the panels by clicking on the taskbar. In the latter case the new EVENT_PANEL_MINIMIZE event does not get triggered and the application cannnot know that all panels are hidden (for the user appearing to be minimized). Hence this new event is required to complement this functionality.

Summary:

Implement CVI Service API for creating and managing Windows Services (and Unix daemons).

 

Description:

Add specialized CVI functions that users can use for creating, installing and managing the entire life-cycle of long-running user services.

Users can thus have a more uniform interface to the system service API and benefit from a higher level of abstraction across multiple platforms (Windows vs. Unix). These services can contain user code for various tasks, that are running in the background.

Hi,

 

in many of my applications, I have to verifiy some conditions recursively and they can generate an error, for example when checking the presence of a file (see below).

RecursiveWarning.JPG

Imagine to have a task doing this control and imagine the task is scheduled every 5 seconds or less.

This means you'll get the popup window continuosly and it makes almost impossible to debug your code.

I know I can reduce the Debugging level from Extended or Standard to No RunTime Checking in order to block that popup window, but sometime I need a deeper level of debug to fix my problems.

What do you think about adding a third button to ignore, for the current debugging session only, the run time errors generated from the same instruction in the same thread?

More, what do you think about adding a fourth button to ignore, for the current debugging session only, the run time errors of the same type?

 

Regards

Sergio

Tables are often used to display test results organized in columns, which means the user very often has to search a particular column for a specific value. At present the "search vertically" checkbox is not checked by default in Find in Table Cells dialog, which means the user has to explicitly select it otherwise the search could locate the wrong cell.

 

What I would like to have is the ability to programmatically set the relevant default options on the dialog before it is shown. With this I mean:

  • Show/Hide/Dim some elements
  • Preset some value (like checking the Search Vertically option)

 

FindInTable.png

 

( Tested with CVI 2012SP1. Not yet installed 2013 )

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.

In this thread it has been discussed how PlotScaledIntensity() handles NAN values.

In CVI 2010 SP1 NAN values are plotted with the center-scale color (and this is a bug).

Unfortunately the fix is not easy, and there could be different ideas on how NAN values should be handled.

 

I suggest not to plot NAN values, or to plot them transparent so that the plot area size is visible under NAN pixels.

When you use NAN values in PlotY(), for example, this points are not plotted.

As discussed here: 

http://forums.ni.com/t5/LabWindows-CVI/how-to-make-visibal-and-disable-a-control-within-a-tab/td-p/1073548#

LuisG called out that the ProcessSystemEvents() may or may not clear all of the System events queue. Could this callback return a percentage scorecard or a Boolean reply on the status of events?

Hi,

 

in many of my applications, I have to verifiy some conditions recursively and they can generate an error, for example when checking the presence of a file (see below).

Imagine to have a task doing this, and imagine the task is scheduled every 5 seconds or less.

This means you'll get the popup window continuosly and it makes almost impossible to debug your code.

I know I can reduce the Debugging level from Extended or Standard to No RunTime Checking in order to block that popup window, but sometime I need a deeper level of debug to fix my problems.

What do you think about adding a third button to ignore, for the current debugging session only, the run time errors generated from the same instruction?

More, what do you think about adding a fourth button to ignore, for the current debugging session only, the run time errors of the same type?

 

Regards

Sergio

Hi.  I find occasionally that it would be handy to be able to add items to the event que through the debugger.  Like, for example, to call a callback function as if the user had interacted with the user interface.  This would be especially handy for remote debugging, where I could add in an item in the que as if a button had been pushed on the user interface without having to physically walk over to the debuggee and push the button on the screen.  I'm not sure the best way to implement this, and I can picture some pretty sophisticated interfaces.  However, something simple could be perhaps a screen like the function panel for CallCtrlCallback(...) where I could enter in the Panel handle, Control ID, Event, etc. and have the event added to the event que?  Thanks.

After doing Find operation,Discard find results on next compile.

We do find operation lots of time and we see its find results below.

In same result area, we also see error and other messages.

But once we do find operation its results are retained till we close project.

Its actually confusing for programmer,when he compile he feels that there is error.It should be discarded on next compilation.It has no use once user see find result.So it should be discarded.