One nice feature of menu bars is their capability of grouping different items using a separator.
Having ring controls with many text entries it would be nice from a user perspective if these many entries also could be grouped using one or more separators.
What would be also convenient is the ability to dim or hide a specified entry; right now it is possible to rebuild the ring programmatically with one or several entries less (or more), but this is some overhead that could be minimized by simply hiding or showing an indexed entry.
The active configuration (Debug, Release, custom ones, ...) is shown in the bottom-right corner of the status bar (see attached config01.jpg).
I think that it would be better if this would be a menu ring that can be used to change the active configuration, without having to select Build >> Configuration >> xxxx (see config02.jpg)
If you have a Numeric Indicator, and you set "Range checking" to Notify, CVI will show an ugly popup when you enter a value out of range.
If you set this property to "Coerce", the value you enter is coerced in range, but no specific event is generated.
I think that an EVENT_VAL_COERCED would be really useful: using this event you could easily show a message popup, for example.
Currently, CVI sorts all the entries from the Source Code Browser alphabetically. While this is useful for finding items, it is less practical when tracking items.
If we have, for instance
int a = 0, c = 0;
// 1000 lines of code
int b = 0;
In the source code browser, under Variables, we will have:
a (line 3)
b (line 1000+)
c (line 3)
I believe that having an option to sort the items either alphabetically or by occurence would give users a better view of their code.
Make sure ALL the function panels use the right controls
For example in the CVIDynamicMemoryInfo function panel below, the "Options" parameter should not use the String Ctrl.
Instead it would be "safer" to use a list box, a ring or whatever make sense to display the two available choices : DYNAMIC_MEMORY_SHOW_ALLOCATED_MEMORY or DYNAMIC_MEMORY_SHOW_ALLOCATED_MEMORY_SUMMARY
This would help to reduce the typo errors etc.
The FileSelectPopup dialog in LabWindows/CVI does not allow the programmer to set attributes for the dialog, such as sort order for files in the dialog.
Similar functionality already exists for other functions in CVI, such as SetPrintAttribute to set attributes for a file to be printed. It'd be extremely convenient to have a SetFileSelectAttribute with options such as VAL_SORT.
It shouldn't be necessary to set these attributes to use the FileSelectPopup dialog; their use would simply change the settings from their default values.
The problem with the CVI standard controls is that once a feature is missing, it's VERY difficult to add for a normal user. What cruel hacks I had to implement to circumvent some limitation (like dynamically overlaying canvas controls over a scrollable table to simulate joined cells) is truly beyond description. Same with graphs controls (try implementing some with five distinct Y axes, fun for the whole family!). I always found you guys to be pretty responsive when it comes to feature requests, but some features are a) so application specific that I don't even dare requesting them and b) even if you'd agree to implement them, it takes about two to three years until they are released and the necessary runtime is deployed worldwide in my company.
So, please consider opening the source code of some of the more complex UI controls (like the table and graph controls), at the very least to some interested users like me (AFAIK my company even has a standing NDA agreement with NI). I already considered doing them from scratch, but then I noticed that I'd even have to re-invent the scroll bars that come with them! This was never a problem with any other platform I had used in the past (like Delphi), because they always came with full source code to the whole library.
When using the UI functions, a neat feature is the ability to pull up a dialog of valid control IDs when specifying the control:
clicking the elipses displays this dialog showing all valid control IDs:
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:
I think we should add this functionality in the function panel for any function that has a control ID parameter.
It would be convienent at times to have a way to know if timer callbacks had been suspended by another part of the program by
SuspendTimerCallbacks(), or if timers are running again from ResumeTimerCallbacks(). As far as I can tell there is currently no way to know this in CVI without manually keeping track of the last suspend/resume function called. Thanks.
We have a nice password control for user management. Alas, we are on our own when it comes to secure networking or saving/retrieving the data, passwords etc.
It would be nice to have some sort of cryptography.fp included. The simplest I found was the blowshish algorithm: it is fast and as far as I know, sound too. A crypto-module could be built around it. Moreover, it is available for Labview already...
I added the tab control into panel to my project. Overtime, I added 20 items into the single Tab Control. But since were so many items in the tab control, I decided to re-arrange items (indexes) in the tab control by either moving them left or right depending on the alphabetical order. But here is my problem.
Since I re-arranged the items (indexes), the indexes have all changed for all the items. Now I have to go everywhere the function GetPanelHandleFromTabPage is called and manually update the index numbers to match panel handles for the index. There are 20 different places where this could occur. The number of items (indexes) on the tab control could grow even more and may have to be re-arranged again in the future. Just a big pain.
Suggestion for improvement: Provide a another function that can obtain the index of the item on the tab control dynamically. This could be done by using the "Constant name:" issued in the edit tab panel of the edit tab control. So if the items (index) inside the tab control are re-arranged then the index value for that item is carried with the new index value.
Also the index would be included in the header file generated by the panel editor for CVI so that now the index value can be used thus eliminating the hard coded the index value.
I made this suggestion some time ago - but had it combined with another idea. Part of the suggestion was implemented so I am trying to revive the remainder here...
For me it would be useful to have at least two different line types for the separator in ring controls, i.e. not only a solid line, but also a dashed (and possibly a dotted) line: This would help to group different entries into groups (solid line) and subgroups (dashed line). The idea would be to provide some more escape codes resulting in the different line styles.
designing a screen layout I frequently encounter the wish to have not only rectangular (and circular) decoration elements, but also one of the type shown below.
Only the upper right rectangular shape can be realized now, while the more complex shape on the left is what I would like to see added in the future.
Instead of two parameters width and height four parameters would be required (two heights and two widths), may be even a fifth parameter specifying the orientation of the shape: as shown, mirrored in x, mirrored in y, mirrored in x and y.
Without doubt grouping control elements is useful; unfortunately these groups may differ in the number and type of control elements.
Thanks for consideration,
this is a very tiny suggestion, but still I would consider it a very convenient improvement:
Right now, if I am using the 'Find' command in the IDE with a typo in the search string (this happens frequently...!), press F3, I receive a popup message telling me that the string 'xxx' has no matches. After pressing OK the popup disappears, but also the Find window disappears! So I have to press Ctrl-F again just to correct my search string.
Hence I suggest that in case a search is not successful, (the popup disappears but) the Find window remains open. This is also true if the search was successful, so I would even consider the current behavior inconsistent
In previous applications, we would talk to our product using a telnet session.
CVI has libraries to do this, such as...
ConnectToTCPServer ((unsigned int *)&g_ShelfHandle[iSocketNumber], 23, sAddress, com_ClientTCPCB, NULL, 0);
In one of our new products, it only supports "ssh" which is similar to telnet, but is a "secured shell" connection.
One option is to use putty: http://digital.ni.com/public.nsf/allkb/C49602A7982
It is not the most straightforward way of doing things, but at the moment, it is what we have to deal with.
Since the ssh protocol is becoming the new standard in communications (used in all Linux machines, and windows), and most
of the new telnet programs (supporting ssh), I would like to request that a CVI library be created to support this protocol.
The additional columns of a tree can be hidden using SetTreeColumnAttribute() with ATTR_COLUMN_VISIBLE parameter. This is an easy and effective way.
For a table this attribute isn't supported, so you can use some workaround that requires more coding and have some disadvantages (for example if you set the width to the minimum value of 1, the user can increase it with the mouse...).
I think that the ATTR_COLUMN_VISIBLE parameter would solve this needs in the perfect way.
We hear all the time that should write code that is reuseable. It is difficult to plan so far ahead, so I listen to the preachers but seldom follow them.
However, it is clearely easier to use snippets, code fragments, that I put together for something, even tested them and I remember that I have done that once, but finding it again is too much hassle, it is just 3 lines, 5 lines of code. It owuld be nice to be able to manage such snippets, copy them, tag them,or even share them; I recon, there are snippet libraries out there;,out of sight, out of reach; but it would be really nice when the need arises, - you know that nagging dejavue feeling- than I could find them, bag them an use them... With time, even nice and practical libraries could grow out of them snippets... :-)
Tables are often used to display test results organized in columns, which means the user very often has to search a particular column for a specific value. At present the "search vertically" checkbox is not checked by default in Find in Table Cells dialog, which means the user has to explicitly select it otherwise the search could locate the wrong cell.
What I would like to have is the ability to programmatically set the relevant default options on the dialog before it is shown. With this I mean:
( Tested with CVI 2012SP1. Not yet installed 2013 )
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.