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
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.
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
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.
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).
Improve the Breakpoints Window, so that breakpoints can be more easily managed.
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.
I would like to have the possibility to store the uir-file not as a tui-file (old-fashioned ini file), instead as a xml file.
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).
In few applications, while plotting multiple parameters on same graph,we should have multiple Y-axis insertion.
Like 1 parameter's axis limit is 0 to 50 while other has 0 to 5000 ,so when we plot both ,the change in parameter with smaller value is not seen properly.it look like plain line.
Also when we move cursor to graph it should show value at that position.
It has been suggested earlier (here) to provide the LabVIEW feature of a display format 'SI notation' allowing to directly enter 100 kHz (instead of 100000 or 1e5)
I am still happy that the tooltips have been moved from the Programmer's Toolbox to the UI editor.
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
The more 'urgent' tooltip requests are here...
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
searching through the C code for specific controls first and foremost requires the knowledge of the control's name... If there are some hundred it may get difficult to remember and thus I typically have to check the UI for the constant name. Clicking on the control shows its name in the status bar, a welcome feature, but unfortunately I cannot directly use this text for searching...
What I suggest is allow copying this status bar field using CTRL+C; then it's possible to switch to the C code, press CTRL+F and CTRL+V... (The property browser is not really useful here because it only lists 'NUMERIC_7' and misses the associated panel)
Another, even more powerful feature would be to add a right click popup menu either to this status bar field ('Search C code for this constant') or to the control popup itself: Besides 'Generate control callback' etc. I'd like to see another entry 'Find control in C code'
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.)
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.
Somewhat similar to SetBreakOnLibraryError, I suggest the addition of a function that does a breakpoint when the specific attribute of a panel/control changes.
It could work like this:
SetBreakOnCtrlAttributeChange(panel, control, Attribute)
ClearBreakOnCtrlAttributeChange(panel, control, Attribute) // Use -1 to clear them all
ClearBreakOnPanelAttributeChange(panel, Attribute) // Use -1 to clear them all
Example of use:
SetBreakOnCtrlAttributeChange(panel, control, ATTR_CTRL_VAL)
SetBreakOnCtrlAttributeChange(panel, control, ATTR_VISIBLE)
If the label area is fixed size (i.e. option "Size to text" disabled) and is higher than the font height, it would be useful to have an attribute to set the text vertical alignment:
Now the text can be justified only horizontally (left justified, centered, right justified)
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.
Even after using CVI for many years I still find the DirSelectPopup confusing, because it provides a file selector, displays files, and even allows to select files...
I would prefer an improved/modified function such that the DirSelectPopup only shows directories, does not provide a file selector, etc.... This should make it much more obvious that one is selecting a directory, not a file...
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.
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.