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
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.
Using CVI I can't find an easy way of moving inside a source code file.
Based on my experience with other C editors, I suggest these 3 little features that I think are really useful:
I have thease features in an open source C/C++ editor (Code::Blocks) I use for other projects, and I think they're really useful to reduce the coding time.
When you have large source files with a lot of functions, with CVI is't difficult to easily see where you are inside the file; moreover it's quite common scrolling the file jumping from a function to another.
We have recently dropped CVI (as of 2009) as an option for use with our many data visualization applications. The graphic performance is just too slow and clunky to put up with any longer and gets worse as we add features or try to make 'native looking' applications (that resize, animate, etc).
Things like dragging/updating cursors is noticably clunky when you have more than one graph updating (linked cursors across more than one graph).
Updating datasets in large tables is slow enough to watch it step through the rows. Even using suggest tips like using ATTR_CTRL_VAL instead of SetTableCellVal, when a large table has to update... it's painfully noticeable. Basically any operation that updates a large portion of the UI.
Another example, try to resize and move controls (as most other applications do) on the EVENT_PANEL_SIZING?
I'm going to go out on a limb and guess that CVI doesn't use any graphics card acceleration? since workstation or netbook doesn't seem to make much difference in graphic performance.
Our clients notice when our applications look 'clunky' and 'slow' when compared to smooth, responsive apps/interfaces from competitors. It's often the little things that make a big difference in appearance.
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
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:
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.
we are daily dealing with "constant name" field's values that canNOT exceed 21 characters due to restriction on labwindows/CVI.
even the latest CVI/2009 SP1 v9.1.1 (450) has this restriction.
this is very tedious because our software makes use of this value to make cross searches in the registers' table of our component.
as such, if the "constant name" field's value must be trimmed down to <=21 chars to comply with CVI restriction above, this makes the cross-search unusable.
please increase this limit up to 32 chars (at least).
STMicro Grenoble France.
Similiar to LabVIEW, I would like to have a "save as" option to store all files within the prj-file to a new location (maybe also for store a cws, res all mentioned prj-files).
Would make it easier to handle over a CVI-project.
imho the nice tool tips feature provided by the Programmer's Toolbox leads a miserable existence, because it is extra effort integrating it into a GUI.
I would love to see the tool tips integrated into the IDE, that is, when editing a control in the GUI editor, I would like to be able to also set the tool tips text and if it is initially enabled, just like it is possible to enter a control label text. This would include moving the tool tips from the Toolbox to the regular user interface library.
In CVI there are two kind of buttons:
But if you try to design a modern interface (like the MS Outlook 2010 ribbon, for example) you need a button where you can have both
Even in the new CVI 2010 SP1 there isn't a convenient workaround (see here, for example).
In LabVIEW, otherwise, this kind of buttons can be easily created.
An interesting feature would be also a setting to set the text position referred to the picture (top, bottom, left, right).
I know we used to have this web server feature 6-7 years ago.
I would request a function where we can export designated panel which user can control from web. Also provides an option to have read only or read/write access. Also password options.
Something like this.
ExportPanelToWebServer (panelHandle, READ_ONLY_FLAG, PASSWORD_FLAG, PASSWORD);
//This starts web server automatically and ready for connection on port 80.
This opens door to lots of applications which requires web control. I think LabVIEW has similar feature. (Web publishing tool)
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
Seriously, NI should look over the newer Visual Studio IDE's as well as NetBeans for some good ideas ...
Here's a few:
1. When using the F2 function to find a previously marked spot, you can't easily look for the next bookmark going backwards or restricitng the search to the current module. You can in Viusal Studio.
2. There's no clue offered for the extent of a block - other IDE's either backlight the match braces (VS 2008) or draw vertical lines showing the block extent (a popular VB add-in tool does this).
3. Refine the search selection to be current module, current project, or current workspace ...
4. Allow concurrent builds of multiple projects within a workspace - VS 2008 allows this, in fact, the default is to build everything in the current solution (solution = workspace).
5. Allow toggled commenting of multiple lines of selected text, rather than the "exclude" option that won't let you save excluded lines without commenting them - then the IDE lets you comment them, but not until then. Same thing with un-comment.
6. Implement a lazy background re-compile that re-compiles as you type - saves you a jillion CTRL-K keystrokes to do it yourself. Couple this with near real time notification of compile errors as you type.
7. Fix the &*!)$@^ CVI linker to allow 16 byte alignment.
8. Implement full C99 (MS hasn't done this though and apparently never will).
9. Dim conditionally compiled source that isn't going to compile - nothing is more irritating to me when editing than forcing yourself to ignore conditionally compiled code that's not going to compile. It's tricky to make this work right but it'd stil be worth a try. VS 2008 kind of does this.
10. Provide a pull down menu of functions within a module - this is better than the CVI source browser which is a PITA to use - ti's no wonder to me that this is the most requested improvement so far.
Display more struct member information during source editing and during debug.
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:
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).
Currently, there is no way to access the historical data on a stripchart. The only way to manage this data is to maintain a separate buffer and update it whenever you add data to the strip chart, which is inefficient and tedious. Accessing data is possible for graph controls using the data attribute:
GetPlotAttribute (panel, PANEL_GRAPH, plotHandle, ATTR_PLOT_XDATA, &data);
Something similar should be implemented for the strip chart, either as an attribute in the getTraceAttribute function, or as a standalone function (getTraceData, etc.)
When designing a UI it is sometimes necessary to have text composed of indices and superscripts, e.g. R^2, chi^2, ...
Right now this can be accomplished only by using several texts in different sizes and by manually aligning these text fragments. This is quite tedious
Hence I would suggest permitting simple control sequences to automatically have text parts in superscript, subscript, italics and bold within the very same text message (possibly similar to HTML)
At present, the only option to jump to a panel callback is Ctrl-P shortcat from the UIR editor (or Code >> View >> Panel callback menu selection). Even longer is to generate a panel callback, which can only be done via Code >> Generate >> Panel callback menu chain.
I'd like to have added two options to panel context menu in the UIR editor: Generate Panel Callback and View Panel Callback, in the same way as those options are present in a control context menu; something like this:
I realize that there may be open source solutions for this but I would love a robust easy to use email function on completion. Essentially, I am gearing up to run some larger batched analysis routines on a remote workstation for our user group. The analysis time and queue length will vary from minutes to hours (hopefully not days yet). I would love the option to email the user on completion, failure, or email me if something really goes crazy.
The problem with the current simple email solution (unless authentication was really recently implemented) is that almost every SMTP server requires additional authentication to combat spammers I suppose.
It has been suggested much earlier here, but obviously passed out of mind:
When using 'Go to Definition' (CTrl+I) while in release configuration, CVI tells that no source code information was found for the identifier '...', because 'Browse information is not available in the Release configuration'... (still true for CVI2010)
This can and should be improved!
And it might be a good opportunity to also add the reverse process, 'Goto Declaration', suggested here
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.
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.