LabWindows/CVI Idea Exchange

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

Hello,

 

usually I work on my projects on two different computers (home/work or development/lab). I would like to see a possibility to more easily move my project back and forth, say by providing two new menu commands

 

File / Import Project and File / Export Project

 

I imagine that the Export command generates a zip file consisting of all files required to build the executable (and a distribution) and also exports the editor preferences (probably without the window positions because different computers may have different screen resolutions) etc. The Import command then should load the *c., .cds, .cws, *.fp, *.h, *.prj and *.uir files, import the editor settings, adjust the library menu and load any instruments.

 

Thanks!

As discussed here earlier I am using tooltips that show 'dynamic' information, e.g. the permitted data range of the respective control, available user actions..., These frequently depend on several other controls and parameters.

 

Right now, all other affected controls etc. need to call a function to re-build the tooltip text, and to more than 90% this is wasted effort because the tooltip text is changed again before it may get displayed...

 

Thus I would like to suggest a 'dimmer callback', similar to the menu dimmer callback. This 'tooltip dimmer callback' should be called just before the tooltip is going to be displayed, allowing to build/update the tooltip text only when needed.

 

Thanks

Hi,

 

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.

 

decoration.jpg

 

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,

 

Wolfgang

It would be great if one could define two colors for user functions, one color for functions declared local to a .c source file, and another color for functions declared globally like in a .h header file or linked file. User-functions are visually the same as all others, black text. Ugh.

If it's too much of a non-compiled linking challenge to apply, at least allow the user to select a section of working code text and change the font color by hand to get to the same place. Being able to change a text chunk background color would be great too. That would be of help to allow the programmer to, say, highlight sections of code that need later work, items for tomorrow, passing along working code to colleagues, etc. 

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/C49602A79827DDBE86256CE9005757D5?OpenDocument

 

 

 

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.

 

 

 

 

 

 

 

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.

Before CVI2012 a conditional breakpoint could be toggled between enabled and disabled with a single mouse click. The behaviour changed in that version so that a mouse click now deletes the breakpoint.

I understand that this is more consistent with the behaviour of an unconditional breakpoint, which is set and deleted with the mouse click; I understand also that Ctrl+F9 shortcut key has been introduced to toggle breakpoint state, but in my opinion this new arrangement is less user friendly than before.

 

The risk is that once you set a conditional breakpoint, possibily with a complicated condition and/or pass count set to match some particular operating condition, you can delete it with a single click while you would maybe simply disabling it.

 

The same applies if you press F9, so I suggest additionally that when F9 key is applied to a conditional breakpoint it disables the breakpoint instead of deleting it.

 

Hi,

 

just a little idea for a minor improvement of the status bar: Right now, the coordinates of UI controls are displayed in different ways: in the popup window, the sequence is Top Left, while in the status bar the sequence is Left Top - this is somewhat irritating...

 

So I'd suggest to change the status bar text from

 

(23, 873) to something like

 

Top: 873 Left : 23

 

Thanks.

 

 

UI.png

When editing a panel, you can locate every control in the User Interface Browser at the top right corner of the editor window. In order to highlight some elements in the panels/controls tree, you can collapse all elements and expand only the panel you are interested to. Not exactly a fast and easy process but useful in case of complex UIR files with several panels embedded (and the only way I have found to look at control arrays and their included controls). So far so good.

But if you happen to switch to another window, possibly to revise some code that references the controls you have elaborately selected, and then come back to the UIR editor you will find the UI Browser has reverted to fully expanded and the control you were looking at previously is not event the selected one! That is to say, you've lost all the time spent in tailoring the tree Smiley Mad

In my opinion the UI Browser should retain its state when you switch to another window so that what you were working on is still visible on screen and you don't have to locate it again.

It would be nice to be able to add some comments on UIR objects in the editor.

 

I'm mainly concerned about versioning: sometimes I happen to apply some modifications to existing panels / objects that are not self evident and I run the risk of forgetting them while revising the project after a couple of weeks.

As an example, I have recently modified some string and text message controls using "Greek" character set so that I can embed omega and delta symbols in them. At present I have a text file describing all modifications I have done in the project, including those in the UIRs, but it means I need to revise this file when I open the project again. It would be good if I could  add a comment on those controls and have a visual reminder of it directly in the editor (e.g. with a little symbol like when you add a comment on an Excel cell) so that every time I open the UIR I see the presence of comments at a glance.

At present the IniFile instrument permits to read an existing .INI file, modify it and re-save it preserving existing comments in the file, if any. It would be a great addition to permit to programmatically add comments to sections and/or items.

 

I have a rather complex application with several optional modules that can be added or tailored by setting appropriate items in a configuration file in .INI format. I have developed an application that helps me creating such configuration files with the proper elements added but if I want to add some comment for better documentation to the final user I need to manually add them after the file has been created with the risk of forgetting something: if I could add them while generating the configuration file I would avoid this risks.

Most user settings are kept in either the project or the workspace file. Unfortunately, this is not true for building a function tree (Options/Generate Function Tree). Starting CVI the previous entries are lost. Actually this is an old issue but may be not too old to be improved... Smiley Wink

 

So I suggest to save the information about Instrument name, Function prefix, Default qualifier, and Output function tree in the appropriate configuration file (prj or cws)

 

Thanks Smiley Wink

My company has begun placing incentives on Test Driven Development as fundamental to the code development process.  I expect this incentive will impact other companies where CVI applications are used in production.   It would be beneficial for NI to provide developers with a roadmap and definitive structures and methods and support for TDD within the CVI environment.

Hello,

 

building upon my earlier (but difficult to implement) suggestion and the forum discussion on event data here I can provide a hopefully improved suggestion.

 

The issues addressed by this idea:

  • receiving an EVENT_DATA_CHANGED event for a numeric control does not mean that the numeric value has changed
  • receiving an EVENT_DATA_CHANGED event for a numeric control does not provide information if the value has been increased or decreased
  • receiving an EVENT_DATA_CHANGED event for a numeric control does not provide information if the 'up' or 'down' arrow button has been pressed (which is not necessarily the same as the second issue)

Idea: Provide eventData1 and eventData2 information.

 

For example, eventData1 could tell about the numeric value:

  • eventData1 = -1: numeric value has been decreased
  • eventData1 = 0: numeric value is unchanged
  • eventData1 = 1: numeric value has been increased

eventData2 could tell about the increment/decrement arrow, e.g.:

  • eventData2 = -1: decrement arrow has been pressed by mouse
  • eventData2 = -2: decrement arrow has been pressed on keyboard
  • eventData2= 1: increment arrow has been pressed by mouse
  • eventData2= 2: increment arrow has been pressed on keyboard

Since so far no eventdata are provided this suggestion should not break backward compatibility.

The idea and the code has been originally posted by @nickb here.

This library handles a common need that I handled in a less elegant way as described here.

 

As suggested by @RobertoBozzolo the original code from Nick would be a great addition to the Programmer's Toolbox.

In this way all the users would benefit froma standard tool, without re-inventing the wheel (as I did) Smiley Wink

Summary:

Quickly find and open a file in your projects by typing in substrings of the name of the file.

 

Description:

Implement a quick way to find files in a CVI project, by typing substrings of the filename.

A certain keystroke combination should launch a popup-dialog (similar to the picture below), displaying the user a list of files that contain certain substrings. This helps significantly when having to deal with large projects containing many files.

 

Find File

Hello,

 

I miss an event that is fired whenever an axis, set to autoscale, changes its minimum/maximum values.

 

Imagine the following scenario: On a xy graph, I have several plots and also some 'regions of interest' that are visualized either by lines or rectangles. Now, if a new plot is added that results in a different axis scale, I also need to redraw my regions of interest. At present, this requires bookkeeping of xmin, xmax, ymin, ymax and comparing the current axes ranges with the previous ones. It appears to be simpler if one could rely on a suitable event that is fired whenever the axis range is changed.

 

Thanks Smiley Wink

 

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.

Regards, 40tude


fp.png

(Coming from this forum discussion)

 

If you double click on a UI browser element you'll go to the corresponding panel or control in the editor. That's good! Smiley Happy

There doesn't seem to be a way to go the opposite direction (i.e. from a control in the user interface editor to the corresponding item in the user interface browser tree) Smiley Sad : this could be useful in case of complex UIR files with several panels and controls, especially if you have more than one control array in it.

 

So I suggest to add two options to the control context menu to locate the control in the UI browser ad to locate in a control aray if it is included in any of them.

I'm thinking to something like that:

 

 Screenshot 2015-03-06 09.26.41.jpg

 

It would be handy if these new items could be assigned a shortcut key too: ctrl+U and ctrl+R could be a good choice (presently ctrl+U is not used in the UIR editor and ctrl+R is not active at design time)

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.