LabWindows/CVI Idea Exchange

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

Under labwindows CVI 2015, I develop a program using a state machine. For this I use a "switch".
The program is voluminous, and in order to browse it more quickly, it would be very interesting to allow the collapse and the expansion of the boxes in a structure "switch"

There are many library functions that return several parameters. Many of which you may not care about. Some functions allow you to pass NULL to ignore some returned parameters, but many do not.

For instance:

LinFit (X, Y, NbP, NULL, NULL, &Intercept, &Err);

if you are only interested in the Intercept and error values, will crash on run with a "Null pointer argument to library function" fatal error.

The way it's currently written , you have to (correctly) declare plenty of dummy arguments for your calls.

Hi Everyone!

 

In these days, I have been debugging a complex application(almost 12,000 lines of code) and it was very hard to do a map showing the relationshing at least of some critical functions.

 

For this reason, I consider that a very helpful debugging tool could be to add in LabWindows/CVI, a window like the VI Hierarchy in LabVIEW; that shows the relationship beetween the functions inside all the module in a CVI project. This windows will show which functions calls a particular function.

 

Here, there is a very simple example:

Untitled.png

 

Regards!

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.

Hi,

 

It would be handy when automating the build process with the CVI ActiveX interface to have the ability to change the active distribution, as mentioned in this thread:

http://forums.ni.com/t5/LabWindows-CVI/Setting-active-distribution-kit-using-ActiveX/m-p/504888/highlight/true#M28708

 

Thanks.

Summary:

Data Tooltip should also display the name of the function, when displaying the value of a function pointer variable.

 

Description:

While debugging a CVI application, when hovering the mouse cursor over a function pointer variable, the Data Tooltip displays the address of that function, referenced by the variable.

It would be very useful in cases when you have multiple function pointer variables referencing several different variables, to have the Data Tooltip not only display the address of those functions, but the name of the functions as well.

 

Data Tooltip With Function Pointer

 

Hello,

 

right clicking in the source code brings up a popup menu, see below.

 

Some of its items are dimmed or adapted to the context. For example, 'Format File' versus 'Format Selection'. This is nice and as I would expect it for a context menu!

 

Unfortunately, there are some entries that are available even if they are more ore less superfluous.

 

For example, 'Edit DAQ task' shows up even if no DAQ is installed. Selecting this menu entry only shows 'This feature requires DAQmx' - so why not dim it if no DAQmx library is available?

 

The same is true for 'Edit IVI Specific Driver Attributes...' and the IVI library.

 

But also 'Recall Function Panel', 'Browse Identifier' and 'Find UI object' don't care about their context.

'Open Quoted Text' for example, does! (which is good)

 

So I would suggest to have the popup menu act more consistently and only provide commands that are meaningful.

 

Thanks

 

popup menu.png

I do like the improved editor features of CVI2013; maybe two toolbar icons could be added for the two new commands  'Goto Next Function' / 'Goto Previous Function' ?

At present CVI is missing a serious report printing facility that permits to create flexible, professional and good looking reports.

A quick search in CVI forum shows that periodically somebody posts questions about reporting but available instruments at the moment are not satisfactory in my experience.

 

As far as I can tell, a good reporting instrument:

 

  1. Should integrate easily with CVI
  2. Should be fully documented, with some example for the more typical types of reports (text + table, text + graph, text + image...)
  3. Should not rely on external programs (some customers have rigid constraints on the software installed on equipment machines; additionally, asking them to have full Word or Excel or Diadem installed only for reporting is just not serious)
  4. Should not rely on ActiveX controls to be licensed separately (same as above)
  5. Should permit to include text and graphics (images, graphs...) and define headers, footers, page numbering and other common features normally present in reports
  6. Should output data directly to the printer or in PDF format
  7. Should have a preview facility both for development and for the user (something that NIReports hasn't and will never have)

Implement HTTP Requests into a CVI Library that can perform get, head, put and post functions for connectivity to devices that are wireless or connected to an ethernet cable. Also provoide a mechanism for the body and header from the HTTP Request message. Currently LabView has this capability for HTTP Requests but Lab Windows CVI does not. The work around solution is to use .Net Controllers for HTTP Requests for Lab Windows CVI. See example: https://decibel.ni.com/content/docs/DOC-24802

IPv6 is becoming more ubiquitous each year.  More and more the US government is requiring it for defense designs.  Microsoft has supported it in Visual Studio since 2008.  Even Agilent Vee supports it. It should strongly be considered for both LabWindows CVI and Labview.  There are workarounds using dlls, but a company like NI shouldn't expect users to have to do that.  I am off to start my workaround.  Please give this not so new idea some serious consideration.  Thanks.

I thought I'd submitted that in the past, but I can't find it.

 

I would like to programmatically do what the F11 button does in the user interface editor: change the style of a control into another one of a similar category, keeping whatever attributes are compatible. For instance a numeric into a thermometer, etc...

 

Currently ATTR_CTRL_STYLE is not settable, and I tried to write some way to transform a control into another with NewCtrl/DiscardCtrl but the main problem is that the control number changes, which complicates the rest of the program needlessly (you can't use constant #defines).

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.

I was operating on Pop-ups,I felt need of feature like java.

 

In Java when we have display Message we can easily concatenate variable with message string by using '+' sign.

 

 

Ex.

    In LabWindows,when do message pop up,

  

   {

    int var = 3;

  

    MessagePopup("Message count","Message No : "+var);

    }

 

 

     such a feature should be there.otherwise we do some string operation then Display message like " Message No : 3".

 

    So it increases string operations and string operations gives problem in memory management.

 

So at least In API's such '+' sign for concatenation of string with variables should be available.

Even if it is C language supported.

 

Hello,

 

I am still happy that the tooltips have been moved from the Programmer's Toolbox to the UI editor. Smiley Happy

 

Now when using them on a more regular basis it turns out that the programmer might grant the user the option to show / hide them. As a result, I would need to programmatically browse through all controls to change the respective parameter (the same is true for the delay time).

 

Hence I propose providing two new, more or less global attributes (these could possibly be panel attributes) that set the tooltip enable/disable status and the on/off delay times for all tooltips (on a panel).

 

This feature is not urgent as it can be implemented already now with some effort, but it might make code a bit shorter and simpler Smiley Wink

 

The more 'urgent' tooltip requests are here...

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.

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!

"Build All/Batch" would be helpful if place on tool bar menu.   This feature would help developer who is familar with Microsoft Visual Studio development enviroment.  CVI is already an subset of MS Visual Studio.   

Hello,

 

I miss a display format that will automatically switch from Floating Point to Scientific if the displayed number exceeds a certain threshold.

 

Lets say, 1 234 should be displayed as 1234, but 123 456 789 123 456 789 should be displayed as 1.2345 E17 because typically such a large number of digits is not meaningful. This display format is considered to be useful both for regular numeric controls but also for graphs, because right now very long numbers increase the frame size and decrease the remaining graph size. Of course, one could do this automatically, after plotting a new plot analyze the new plot for maxima and minima and then adjust the display format accordingly. What I suggest that this is done automatically, similar to the good old 'G' formatting option.

 

As a consequence, this new display format would require an additional attribute when to change from Floating Point to Scientific and vice verse, say NUMBER_OF_USEFUL_DIGITS. Default might be 6 digits.

 

I consider this wish important because right now, when plotting functions on a graph where the range is not known in advance, this may result in much too many displayed digits. Even 17 digits (resolution of double) will not be meaningful in most cases, while for numbers such as 12.5 there is no need to use an exponent...

 

Thanks a lot!

In LabVIEW graphs there is a nice property called "Fill To" that can be used to get very cool features (see here, for example) to highlight different regions or data.

I think such a property should be introduced in CVI too, with the following options:

  • fill baseline: none, zero, +Inf, -Inf, plot #
  • fill color (with alpha channel too to achieve transparency effects)