NI Home
Cart Cart | Help
Hello Events Academic NI Developer Zone Support Solutions Products & Services Contact NI MyNI
You are here: 
NI Home > NI Developer Zone > NI Discussion Forums


LabWindows/CVI Idea Exchange

Announcements
The NI Idea Exchange is a product feedback forum where NI R&D and users work together to submit ideas, collaborate on their development, and vote for the ones they like best. View all of the NI Idea Exchanges to post an idea or add your opinion on an existing one today!
New Idea
RobertoBozzolo

Add a serious report printing tool to CVI!

Status: New
by Trusted Enthusiast on ‎04-19-2013 03:35 AM

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)

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

I discovered through trial and error that the CNVCreateBufferedWriter function, while it does provide buffering when necessary to preserve data until it can be written within a process, it does not provide for arbitration between writes originating from multiple processes.  Stated another way:  As far as I am aware, a single Network Variable process is not designed be written to by more than one application.

   

The documentation was not clear on this point.  It states “You can buffer data to be written to the network variable by calling CNVPutDataInBuffer. The system automatically writes the buffered data to the network variable.”  This suggested to me that arbitration of some kind existed to handle asynchronous writes by multiple applications.  I confess, my interpretation may have been driven by wishful thinking to support my application needs.

 

Nevertheless, my suggestion is that future versions of this library include a capability to arbitrate asynchronous writes from multiple applications to a single network variable.  i.e., that two, or three, or more applications can successfully connect to and write to the same network variable.

Include a function to programmatically re-start the NI Variable Engine if it is found to be stopped.

Although the NV libraries include a function to detect whether the NI Varible Engine service is running, there is no function included in the library to facilitate re-starting the NI Variable Engine service. 

For those The method that I am aware of to restart this service is to use the ANSI C system() function with an embedded command line:

 

 

Index = 0;                                           

CNVVariableEngineIsRunning(&running);

while((!running) && (index++ < 5))

{

System(“net start \"NI Variable Engine\"");

                Delay(0.1);

                CNVVariableEngineIsRunning(&running);

}

if(!running) return -1;

 

Learning this required some time spent on the web, looking through old posts on how to solve the same problem in LabView.  Rather than spending that time, it would have been more productive to just pull it out of the library.

ptb_nmK

Improved Source Code Control

Status: New
by Member ptb_nmK on ‎05-01-2013 02:38 PM

Hello everybody,

I tried to use a source code / version control for projects in which I  use LabWindows and Visual Studio.

One possible solution would be to implement support for the team foundation server, which already has be added to LabView.

Another would to provide an independent solution.

 

Best regards,

tstanley

Font installation on Windows Vista/7/8

Status: New
by Active Participant tstanley on ‎04-30-2013 10:02 AM

It appears that when adding a font to the installation package by having the installer copy the font file to the [Fonts] installation directory, all the installer appears to do is copy the font to the C:\Windows\Fonts directory.  This is good enough for Windows XP, but in later versions of Windows additional steps must be performed for the font to be recognized by Windows.  It would be nice if the installation package could perform these steps when installing fonts on these versions of Windows.

Wolfgang

Provide opacity attribute for graph elements

Status: New
by Active Participant Wolfgang on ‎03-24-2013 07:27 AM

Hello,

 

building on this suggestion of Bertrand I'd like to extend it as follows:

 

Please provide an opacity/transparency attribute not only for xy plots, but also for graph annotations (texts, glyphs), PlotLine, PlotRectangle, PlotText etc.

I noticed that LabVIEW has two ways to download instrument drivers: direct downloads from IDNET and through the NI Instrument Driver Finder.

 

[NI Instrument Driver Finder Menu Option Image]

 

instr1.png


[Alternative NI Instrument Driver Finder Menu Option Image]
instr2.png

 

 

When downloading drivers directly from IDNET, the file must first be unzipped and then placed in the <National Instruments>/labview xxxx/instr.lib folder.

 

The easier option when working with LabVIEW, the NI Instrument Driver Finder, downloads the files, unzips them, and instantly gives you access to example code or palette of VIs for communicating with said instrument.

 

If possible, could we add a similar tool to LabWindows CVI?  It would be nice to have a menu option which would open a CVI Instrument Driver Finder.

 

The interface could then allow users to easily find a driver, download it to their Instruments Folder, see example code and start work.

 

Since probably 30% of all LabVIEW adoption comes from driver downloads and driver development, maybe this is an investment of resources worth looking into?

 

[Image of NI Instrument Driver Finder]

IDfinder.png

 

 

[Image of Instrument Driver Finder example code, project access, and palette access]

IDfinderexample.png

 

Cheers,


Shawn Shaw

ElectroLund

function list

Status: New
by Member ElectroLund on ‎04-15-2013 12:18 PM

I would like to suggest a function tree view in CVI.  I feel this is sorely missing.  Many times, I want to jump right to a function, but I don't remember where it is.  In a single C file with 1,000+ lines, this can be very aggravating.

 

For this reason, I tend to use Notepad++ for the heavy lifting, along with the Source Cookifier plugin.  See attached screenshot of that plugin.

 

There are options in the plugin to enable certain features, such as the global and local variables in addition to the function names.  When you are inside a function in the souce editor, the tree updates with a selection to show that you are inside that function.  This is very helpful with functions that have more lines than available veritcal screen space.  This way, I don't have to scroll up to see what function I'm looking at.  I simply look at the tree with a glance and I know.

Wolfgang

Improved 'Edit Label/Value Pairs' popup panel

Status: New
by Active Participant Wolfgang on ‎01-19-2013 10:56 AM

Hello,

 

building on this suggestion I'd like to see a more comfortable panel of the UI editor for editing label/value pairs, see below:

 

LABEL.png

 

Suggested changes:

 

  1. Add the possibility to dim / hide the selected entry
  2. Add the possibility to insert separators in the GUI editor, not only programmatically
     
    Thanks!

 

LucianoAssirelli

Find / Replace parameters and lost time

Status: Under Consideration
by Member LucianoAssirelli ‎05-11-2012 11:20 AM - edited ‎05-11-2012 11:22 AM

I have had severe problems in development, due to a high synergy between my lack of attention and CVI behavior in search/replace dialogs.

I am talking about the fact that Find/Replace parameters [namely search directories] are stored at REGISTRY level, so that they remain the same across different workspaces.

Having to work with different version of the same software product, I have found myself looking into the wrong sources, or even doing mass updates, due to the fact that different projects have identically named sources and includes, just in different directory trees, and rapidly switching from one workspace

to the next I didn't "mind the step"

My suggestion, thus, is to store find/replace parameters at workspace or project level, so as to avoid the aforementioned inconvenience

Wolfgang

More predefined command buttons

Status: Under Consideration
by Active Participant Wolfgang on ‎01-14-2012 10:25 AM

Hi,

 

there has been the valuable suggestion of a "Picture and Text" button allowing more modern buttons.

 

For all those focusing on programming instead of UI design it would be also nice if CVI could provide more default buttons ready to use as some examples shown in the image below (taken from the NI community).

 

As they seem to be already available in LabVIEW it shouldn't be much effort for NI to adapt them to CVI... - hopefully :smileywink:

 

 

buttons.jpg 

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.

Summary:

Display more struct member information during source editing and during debug.

 

Description:

While editing source code, CVI only displays the struct members, but no information regarding the type of the member (or declaration information, line file and line).

Add a tooltip to the right of the pop-up displaying the struct members in the source editor to display this information. Similar to this picture:

struct.jpg

Also add support for displaying nested structs and even display the member values while debugging, in form of a tree, when execution is suspended (CVI currently only displays the memory address of that struct variable).

 

Felicy

Adding C++ programming abilities to CVI

Status: New
by Member Felicy on ‎08-15-2012 02:28 PM

Customer who has used CVI for years and likes it was looking a Mstudio for the reason that a lot of his new engineers can't or don't do the regular C programming.  He likes Mstudio as an idea but, with the extra cost of adding MS Visual Studio and dealing with a they support/We support issues of having two SW pkg from 2 different companies gives him pause about purchasing.  He stated he likes CVI because if there is an issue (even if rare) he know that NI will help to figure it out. I let him know I'd provide the feedback.

SetAnnotationAttribute permits you to pass -1 in AnnotationIndex parameter to apply the attribute to all annotations on the graph, while SetCursorAttribute does not. It would be good that this command too permits someway to operate on all cursors in a single pass.

 

As an example, when I want to print a graph on a black-and-white printer I prepare the control for this changing all elements to black. 

I can use a single instruction for annotations:

   SetAnnotationAttribute (panelHandle, PANEL_GRAPH, -1, ATTR_ANNOTATION_CAPTION_COLOR, VAL_BLACK);

 

On the other hand, I need to iterate on all elements for cursors

   GetCtrlAttribute (panelHandle, PANEL_GRAPH, ATTR_NUM_CURSORS, &numCursors);
   for (k = 1; k <= numCursors; k++) SetCursorAttribute (panelHandle, PANEL_GRAPH, k, ATTR_CURSOR_COLOR, VAL_BLACK);

 

Hello,

 

because I had installed CVI2010 on a brand new Windows 7 machine, I was curios to find out about all the service processes running on the system.

It seems that there are quite a few NI services that start after log-on. Some of  them seem superfluous, such as the Lookout Citadel service (no LabVIEW, no Lookout installed), but due to the lack of any information I did not bother trying to stop them

 

Suggestions:

1) NI should critically review the services and only start the services that are absolutely needed.

2) Services that are optional might be selected by a checkbox during installation or from the Options / Environment setting

3) NI should provide some documentation / explanation of each service and why it is needed.

 

Thanks!

jdubs

Auto Indent Code

Status: In Beta
by Member jdubs on ‎11-16-2011 12:34 PM

While developing code, having correct indentations is very helping in making sure you have all the right brackets and to see where your structures are nested easily.  Sometimes, whether by copying and pasting or just rapidly getting out a section of code, a whole segment might have incorrect indentation, which is tedious to correct.

 

This is where an auto indent tool could be a big time saver.  From somewhere like the Edit menu, where similar functionality is located in other development environments, you could select Format Selection to do a highlighted section or Format File to do the whole file.  Then, CVI can format the tabs for you:

 

autoindent.png

 

Although this is a simple example, auto indent becomes even more useful when you have multiple nested structures and decide, for instance, to add or remove another nested loop.

Status: In Beta

There is an option to display the default display format for integers and floating point, but no such option to set the default format for
"String Display" or "Array display". Strangely, "Array display" shows my arrays as decimal numbers even though I have the default display format for integers set to Hex.

Ideally, I would like to be able to set them separately for char and unsigned char strings. For example:
                char strings I prefer to display as Ascii, null-terminated strings (the current default).
Unsigned char strings I prefer to display in Hexadecimal, with Options==Display Entire buffer. This is because my unsigned char strings are actually arrays of bytes.

I've been using CVI for a long time and it's frustrating to setup these options each and every time I look at one of my unsigned char strings. Even if it can't be setup separately for signed/unsigned  chars, I would like the option to set some sort of default.

 

Another aside, would it be possible to display the array/string as hex characters with the Ascii equivalent just below it? A dual display would be even nicer!

jay_tee

Improve Breakpoints Window

Status: Under Consideration
by Member jay_tee on ‎03-13-2012 04:46 AM

Summary:

Improve the Breakpoints Window, so that breakpoints can be more easily managed.


Description:

1. Change the Breakpoints Window, from a modal dialog to a dockable window (similar to the Watch Window). Debugging can be more easy this way.

2. Allow breakpoints to be grouped, disabled/enabled and edited in user defined categories. This allows users to easily collectively manage several breakpoints at a time. It also helps the user to logically group breakpoints, depending on various issues issues that he might be working on.

3. Breakpoints could also be sorted from a pop-up menu by filename, line, hit count, etc.

 

Breakpoints Window

About LabWindows/CVI Idea Exchange

Do you have a feature idea for how to improve LabWindows/CVI? Submit and vote on ideas now!
  1. Browse by label or search in the LabWindows/CVI Idea Exchange to see if your idea has previously been submitted. If your idea exists, be sure to vote for the idea by giving it kudos to indicate your approval!
  2. If your idea has not been submitted click New Idea to submit a product idea. You should submit a separate post for each idea. Watch as the community gives your idea kudos and adds their input.
  3. Give kudos to other ideas that you would like to see implemented!
  4. NI R&D will review ideas that have been submitted and update the status.

Note: the LabWindows/CVI Idea Exchange is not the appropriate forum to submit technical support questions.

The LabWindows/CVI R&D team is committed to reviewing every idea submitted via the LabWindows/CVI Idea Exchange. However, we cannot guarantee the implementation of any LabWindows/CVI Idea Exchange submission.

Idea Statuses
Top Kudoed Authors
User Kudos Count
2
2
1
1
By using this web site, you accept the Terms of Use for this web site. Please read these Terms of Use carefully before using any part of this site. Please go here for information on ni.com's copyright infringement policy.
My Profile | Privacy | Legal | Contact NI © 2011 National Instruments Corporation. All rights reserved.    |    E-Mail this Page E-Mail this Page