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

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,

 

sometimes it is useful to know if the mouse cursor is above a certain control or not, e.g. a graph control where one might want to toggle the visibility of display coordinates, etc.

 

Right now, this can be accomplished by installing a timer that periodically calls GetRelativeMouseState() to get the current mouse coordinates which can then be compared to the control coordinates.

To me, this seems to be quite some overhead to have a timer busy all the time checking for various, possibly very many, control coordinates. It appears simpler to have two more events, similar to EVENT_GOT_FOCUS and EVENT_LOST_FOCUS, but triggered on mouse position alone.

 

The suggestion is also different from EVENT_MOUSE_POINTER_MOVE.

Currently, you can get two views of the same source/header file in the IDE by pulling down a second view from the top of the window.  It would be handy on occasion to be able to pull down more than two views in order to see more than two parts of the file.  Hopefully the attached mock-up screenshot will better show what I'm asking for.

 

Thanks.

multiplesplitmockup.PNG 

Here's my suggestion:

Change

SetAxisScalingMode(panel, control,  Axis, scaling, Min, Max)

to

SetAxisScalingMode(panel, control,  Axis, scalingMin, Min, ScalingMax, Max)

so that the lower limit of an axis can be VAL_MANUAL (for instance at 0) while the upper limit can be VAL_AUTOSCALE

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 love my CVI, but come on.  How great would it be to be able to debug your project inside VSCode?

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.

Hello,

 

I've used the serial port call back for many years, and it works great.

 

The XNET driver would benefit greatly for at least a receive call back function, and possible even a transmit call back function.

 

This would make communication with automotive ECUs easier to implement.

 

Regards,

 

Terry Moss

Robert Bosch

Charleston South Carolina

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.

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.

Several CVI functions exist that permit to add / install functions in the code. At present, we need to manually create the function prototype, and the fastest way I found is this one: open the function panel for e.g. InstallPanelCallback function, select Event Function parameter, right-click the field or press F1 to show the help, select the function prototype dragging with the mouse, Ctrl-C to copy it, close the function panel and paste the prototype in the code.

 

It would be *very* handy if a way existed to speed up the process: a "Generate Prototype" item could be added to Code menu that takes the function name set by the user in Event Fuction field and generates the appropriate function prototype in the source code.

 

There is a huge set of functions that could benefit with this addition, following is an initial list but I am sure I'm missing some more functions:

 

In the User Interface Library:

  • All Install*Callback
  • PostDeferredCall
  • PostDeferredCallToThread
  • RegisterWinMsgCallback

In the Utility Library:

  • CmtScheduleThreadPoolFunction
  • CmtScheduleThreadPoolFunctionAdv
  • CmtInstallThreadPoolCallback
  • CmtInstallTSQCallback

In RS232 Library:

  • InstallComCallback

In VISA library:

  • viInstallHandler

In DAQMx Library:

  • DAQmxRegister*Event functions

In TCP Library:

  • All Register* functions

In Network Variable Library:

  • All CNVCreate* function

In the ActiveX Library:

  • CA_RegisterEventCallback

In the Asynchronous Timer instrument driver:

  • NewAsyncTimer
  • NewAsyncTimerWithPriority

In the Programmer's Toobox:

  • InstallWinMsgCallback
  • PostDelayedCall
  • PostDeferredCallToThreadAndWait
  • ChainCtrlcallback

And don't forget all sorting functions that require a comparison function to operate:

  • qsort
  • SortTreeItems
  • SortTableCells
  • HeapSort
  • List*Sort fuctions for lists

Adding to the many pending feature suggestions for tooltips (here, herehere, here and here) I'd like to suggest one more: please make tooltips more beautiful, i.e., drawn with rounded rectangles and with a shadow, see below.

 

tt.png

As of CVI2013 data tooltips and variable view do some kind of automatic rounding but based on 15 digits only... This prevents tracking numeric / rounding issues. Unfortunately, no possibility exists to show the full precision of doubles... Phrased more drastically one you cannot use CVI to debug numeric issues...

 

So I suggest to urgently add

 

 

  • as a minimum version the possibility to show true numbers, not rounded numbers, allowing true debugging
  • as a more general version the possibility to adjust the precision of displayed numeric values

                 

 

CVI currently provides a way for alligning controls (using the dotted matrix). But, with large UIs, this method is inefficient and users must align controls over large distances by hand from the Property Browser. I propose an upgrade that would help users achieve alignment by drawing lines that unite the control being moved and any other control that happens to be close to alignment with it (Figure 1).

This feature would increase usability and productivity (which seems to be decreasing by increasing the size and complexity of UIRs).

 

 

Visual Studio's alignment for the C# Interface Editor

Figure 1: Control alignment in Microsoft's Visual Studio 2010, for the C# interface editor.

The place where tooltips are needed most is on menu bars, since the text you can put there is fairly limited and right clicks can not be used to provide help as can be done with buttons. I would love to see this added to CVI soon.

Hello,

 

The current features of the UI editor with respect to editing tooltips are VERY limited. I am not complaining because one has to start somewhere Smiley Wink

Instead I am adding yet another suggestion on this subject Smiley Happy

 

Please provide the possibility to enter tab stops, see my comment here

 

Because this is such a modest request, please also consider this one Smiley Wink

 

THANK YOU!

Starting from CVI2010, the User Interface Browser and the Attribute Browser are both located on the right of the UIR editor in the Workspace window.

 

I'd like to be able to hide these windows when required: when working on small screens like when you use a laptop these windows occupy a lot of space even if you reduce their size at the minimum.

 

In addition, the ability to choose which window to display on the bottom left could be a good option: up to version 2009 the bottom left side of the workspace window switched between the library tree (source editor) and the attribute browser (UIR editor).

 

Ideally, while in the UIR editor I would like to be able to:

  • Choose whether to show some window on the right side or not
  • In case nothing is shown on the right, choose whether to have the attribute browser, the library tree or the user interface browser in the bottom left angle

Hi,

 

Almost all function keys found on my keyboard have a corresponding keycode that can be used e.g. in FakeKeystroke () - except 'Print Screen'. It's not obvious why this one has been left out, it would be convenient to also have support for this key, e.g. for generating a screenshot or a printout.

 

Thanks.

Here in my company we use SVN as versioning tool for CVI projects.

 

It is working fine enough. However, when users add files to the project, the .prj file is strongly modified.

 

Even if the lots of changes are quite useless, it may be more usefull if the changes would be minimal.

 

The worst case is when 2 users are comitting changes to the project file at the "same time", it finally ends with some conflicts.

 

 

So, please consider minimal changes to the project file for simple changes in the project (my secret wish is to, at least, keep the .prj file as text...)

 

When using the UI functions, a neat feature is the ability to pull up a dialog of valid control IDs when specifying the control:

 

1.png

 

clicking the elipses displays this dialog showing all valid control IDs:

 

2.png

 

If you are using the function panel however, you cannot access this dialog and you are on your own for figuring out the correct control ID:

 

3.png

 

I think we should add this functionality in the function panel for any function that has a control ID parameter.