From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.

LabWindows/CVI Idea Exchange

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

Hello,

 

I am wondering if it would be useful to redefine the CVI callbacks using the const type qualifier to remind users that the parameters are read only, a strategy I use for all of my own function declarations as an extra safety measure.

 

E.g., instead of the current situation

 

int CVICALLBACK PanelResponse (int handle, int event, void *callbackdata, int eventdata1, int eventdata2)

 

have it declared as

 

int CVICALLBACK PanelResponse (const int handle, const int event, const void *callbackdata, const int eventdata1, const int eventdata2)

 

Where does NI stand on this????

NI no longer supports 32 bit OS, but hasn't ported their own toolkit to x64. Since NI is NOT committed to developing (or even maintaining) CVI toolkits, how about open sourcing these so that users and the community can move these forward.

I'm strongly interested in getting back a feature that has already been removed with CVI2013. Until last week, I had good old CVI9.0.1 installed on my PC which was perfect for maintaining my biggest project, a SW tool that has more than 50DLLs around a single executable for controlling lots of devices using a script interpreter for fully flexible process flows.

Some of these DLLs even have cross-references. When modifying a header file that is not only included in the current project but also in other projects of the workspace, I used to see red flagged files in the affected projects to tell me the need of these to be recompiled.

This was really, really helpful to keep the overview!

Unfortunately this feature I don't see anymore in CVI2019 which leads to the fact that I have to either create/maintain a separate list for all external references or the necessity of walking through all projects in my workspace and compile them without knowing the necessity.

Both variants are very uncomfortable and an enormous waste of time in my daily work.

 

I know that this subject has already been refused some time ago, but I really want to encourage you rethinking this "not only nice to have".

I hope you understand my situation.

 

Thanx for supporting. CVI is great and I'm using it since more than 17years!

 

Regards

Manfred

When we are on a string variable in the debugger (for instance in the Variables window or the Watch window or the Array View window), there is currently no way to copy or paste the content of said string. It would be nice to have this basic capability.

Can you add new argument for CVI CLI (i.e. ...\CVI2013\compile.exe)

which will dump the build output to a file (similar to the -log LOGFILE argument) ?

current options provide only PASS/FAIL for the compile without providing enough information 

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

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

LabWindows/CVI lags behind the more recent developments in its programming language, C. At present, it only partially supports the C99 standard, not to mention the improved Unicode support of the current standard, C11.

Since odds are that Unicode finally will be supported in a future version of LabWindows/CVI, this might be a good opportunity to also ask for support of the current standard of CVI's programming language, C11, allowing the use of UTF encoded strings and also including updated libraries (e.g., supporting complex or long long) and debugging tools (data tooltips and variable view supporting complex numbers, for example). It also would help to improve C/C++ compatibility for programs that use complex floating-point values.

 

I really would appreciate it if the LabWindows/CVI project will show some strong signs of development and accompany us for the next 30 years, too.

In cvicc (CVI compiler for Linux), there's an option -DDEFINE to define a macro, but no equivalent -U to undefine it. It would be useful because the macros defined in [Options][Build Options][Compiler defines] are indeed used by cvicc when compiling on Linux. If I need a project-level macro defined on Windows but not on Linux, I don't know how to remove it except by parsing it out of the prj file before compilation.

 

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

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

The most recent version of the C runtime that comes with the Phar Lap ETS is msvcr90 from 2008. That really restricts the usage of more recent third-party libraries on real-time targets shipping this operating system.

 

Support for msvcr{100,110,120,140}, even with stubs for most of their functions, would be greatly appreciated.

When building a project consisting of many files it would be much more convenient if the Build Output would jump to the line with the first file showing an error (or, if no error occurred, to the first warning).

 

Right now, if there is a build error I have to scroll through the (possibly long) list of files to see which file produced the error; only then I can click on the error message to have the IDE highlight the problematic line.

 

Thanks

Coupled with the Source Code Browser, there should be a 'Refactor' option to rename an identifier to something else. And only that one, not the homonyms from other contexts, which is something impossible to achieve with a search and replace.

My CVI application started to generate linker errors immediately after I upgraded from CVI 2012 to CVI 2013. A number of other people have reported exactly the same problem, with the linker unable to resolve symbols found in IMAQdx or nivision.

 

This means that the final release of the new version of CVI cannot have been tested when using the image acquisition or image processing add-ons.

 

I suggest that, in future, new versions of all tools are subjected to automatic regression tests against the examples distributed by National Instruments before release. Because it obviously doesn't happen now.

In earlier versions of CVI source files needing compilation were marked in a different color, unfortunately this feature has been removed in CVI2013. The suggestion is to re-introduce this feature...

 

Benefits:

Changing an include file immediately shows affected source files

It's always clear how time-consuming it is pushing the RUN button, i.e. if there are files *and how many) to be compiled first

Hello,

 

I don't know if it is possible technically but from a user's perspective it would be convenient for debugging a program (in debug configuration) if the UI constants could be provided in the data tooltips, too. Right now, if something is wrong with my UI I will have to do a lot of detective work to find out which control / control attribute is the problematic one...

 

Example: Consider the code

 

SetCtrlAttribute ( panel_handle, control_id, control_attribute, attribute_value );

 

Right now, if I hover over attribute_value, the tooltip will display something like "attribute_value = 24064". Then I will need to look up userint.h to find out which attribute value this is ( ATTR_CTRL_VAL ). It would be more convenient if the tooltip could include this information, too, and display something like "attribute_value = 24064 ( ATTR_CTRL_VAL )"

 

The same holds for control_id, because a number such as 14 will not immediately help me - I will have to go through the corresponding include file to find the respective UI control (e.g. TABPANEL_2_NUMERIC ).

 

 

The addition of structured exception handling (SEH) would be a welcomed addition to CVI. This would allow for much cleaner handling of complex exception situations.

 

 

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!

Wenn ein Rechner nicht am Nezt ist, vielleicht das Kabel nicht richtig drin oder am Platz kein Netz mehr frei ist, dann wird CVI mit einer eingeeschränkten Testlizenz gestartet und würde dann eine EXE generieren, welche in der Laufzeit eingeschränkt ist. Oft ist es der Fall, dass jemand CVI ohne Netzt started um im Quelltext etwas zu kontrollieren. Zu einem späteren Zeitpunkt erstellt jemand eine EXE neu und bemerkt nicht, dass das gestartete CVI keine Lizenz hat, obwohl der Rechner Netz hat. Er müsste erst CVI neustarten um die Lizenz zu holen.
Den Fehler bemerkt er erst am Folgetag, wo das Programm mit einem Fehler abgebrochen wird.
Es wäre aus meiner Sicht sehr sinnvoll, dass eine EXE, welche durch CVI ohne Lizenz erstellt wird, auch einen Popup mit eingebaut bekommt, welcher hiervor warnt.
Auch eine Abfrage, welche der Progrmmierer in sein Programm einbauen kann wäre sehr Hilfreich.

Greetings,

 

LabWindows/CVI 9.0.1's implementation of <stdio.h> *scanf and <stdlib.h> strtod functions appears not to support reading back "NaN", "Inf", "+Inf" or "-Inf" values, although printf() can generate them. May I suggest to add functionality like described below.

 

Practical use would be that it's easier to propagate "invalid measurement" through strings if strto*() and *scanf() understand all classes of strings that *printf() family functions will generate.

 

This suggestion is in alignment with ISO 9899:1999 (withdrawn) and its successor ISO 9899:2011, i. e. C99 and C11. Note that there is a "stronger" suggestion to implement all of the C11 standard library in the idea exchange already, which - if implemented - would subsume this suggestion, but as the bare minimum, I'd certainly appreciate seeing this in CVI 2012.

 

Demo code:

 

 printf("%g\n", -NotANumber());
 printf("%+g\n", PositiveInfinity());
 printf("%g\n", NegativeInfinity());
 double x = 0; int i;
 i = sscanf("NaN", "%lf", &x); printf("i=%d, x=%g\n", i, x);
 i = sscanf("Inf", "%lf", &x); printf("i=%d, x=%g\n", i, x);
 errno = 0; x = strtod("NaN", NULL); printf("x=%g, errno=%d\n", x, errno);

 

Desired result:

 

 -NaN

 +Inf

 -Inf

 i=1, x=NaN

 i=1, x=Inf

 x=NaN, errno=0

 

Actual result: we see that printf supports NaN/Inf, but scanf and strtod do not:

 

 NaN
 +Inf
 -Inf
 i=0, x=0
 i=0, x=0
 x=0, errno=0

 

Thank you.