LabWindows/CVI Idea Exchange

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

Hello,

 

I miss a display format that will automatically switch from Floating Point to Scientific if the displayed number exceeds a certain threshold.

 

Lets say, 1 234 should be displayed as 1234, but 123 456 789 123 456 789 should be displayed as 1.2345 E17 because typically such a large number of digits is not meaningful. This display format is considered to be useful both for regular numeric controls but also for graphs, because right now very long numbers increase the frame size and decrease the remaining graph size. Of course, one could do this automatically, after plotting a new plot analyze the new plot for maxima and minima and then adjust the display format accordingly. What I suggest that this is done automatically, similar to the good old 'G' formatting option.

 

As a consequence, this new display format would require an additional attribute when to change from Floating Point to Scientific and vice verse, say NUMBER_OF_USEFUL_DIGITS. Default might be 6 digits.

 

I consider this wish important because right now, when plotting functions on a graph where the range is not known in advance, this may result in much too many displayed digits. Even 17 digits (resolution of double) will not be meaningful in most cases, while for numbers such as 12.5 there is no need to use an exponent...

 

Thanks a lot!

In LabVIEW graphs there is a nice property called "Fill To" that can be used to get very cool features (see here, for example) to highlight different regions or data.

I think such a property should be introduced in CVI too, with the following options:

  • fill baseline: none, zero, +Inf, -Inf, plot #
  • fill color (with alpha channel too to achieve transparency effects)

 

 

I've been looking around for a way to open the LabWindows/CVI print dialog box. It appears when you call the PrintCtrl function, does NOT appear in the PrintTextFile or PrintTextBuffer functions, and there is no function to open it directly; I need to print from a text buffer and would like to open it directly from a Print Setup menu function. The best recommendations that I have received are either use the Windows PrintDlg function, or to kludge the text into a hidden control and print the control. I highly recommend either adding it to all user interface library print functions or allow the user to call it directly.

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.

How about...

 

- If control mode is indicator set ATTR_HILITE_CURRENT_ITEM to 0 per default

 

- Provide a code to set the background color of the whole line (from "here" on) instead of just where text is

This would make it far more easy to color alternating lines differently, now you have to append every text with lots of spaces to fake it if you use tabs

 

- Autoscroll option

Always jump to the last line if a new last one is inserted. Useful for logging purposes

 

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.

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)

Sometimes I want to complement standard UIR controls with custom graphics on my own. For instance an arrow linking two otherwise normal controls. One way to do those custom graphics is to draw them in a transparent canvas. But then if you place the canvas on top of the controls, it catches the clic events destined for the controls below.

 

There should be either:

- an attribute for the canvas (or maybe all controls) that basically says 'ignore me and pass the event to the control below me'

- a way for the canvas callback to say 'nope, this event is not for me, just pass it on to the control below me'

For God's sake please add a zoom function, the text and icons are so small that my eyes burn when looking at the block diagram window.

 

Or at least just a way to make icons/text bigger so it's easier to manage connections.

When working with large programs, especially those with involved user interfaces and the pernicious CallControlCallback or CallPanelCallback functions, it becomes very difficult to follow the program flow when trying to trace a program through all of the various levels of subroutines.

A tool for leaving breadcrumbs, in the order visited, could be very helpful. Right now I use the "breakpoints" as a sort of hyper-bookmark, since the breakpoint facility in LabWindows shows the line number and has the "go to breakpoint" capability in the dialog box. However, this is of limited utility since the dialog box sorts the breakpoints by line number and file, not in order of placement. The bookmark facility doesn't show line numbers nor does it have the goto capability.

 

What is needed is a way of showing the program flow, through routines, in the order visited, in a way similar to the "stack trace" window, except that it needs to be able to show multiple levels simultaneously. This could be done using the existing bookmark facility with the addition of a few items. 1) show file names and line numbers in the bookmark display; 2) allow them to be shown in the order that they were entered, not sorted by line number; 3) add the go-to capability so that I can jump to the location of any bookmark directly.

 

For instance, right now I'm trying to solve a memory problem. A dynamically allocated buffer is being de-allocated before being used, or at least when the error pops up the routine is trying to write to a NULL pointer. I've got to trace through from the starting point and try to understand where in the flow the buffer is being freed and why it's being freed before being written to. Since there are about a half-dozen levels of subroutines, trying to remember what the program flow is and where I'm coming from in trying to trace it can be difficult.

     

Hello,

 

right now, the length of the constant names assigned to tab panels in the UI editor seems to be limited to 10 characters, e.g. TABPANEL_10 does not work anymore.

 

I suggest to lift this limitation.

Hi,

 

I think it would be a nice tool to save a panel which is generated dynamically from a source code. If I have a database with many variables which I want to set on a panel as controls, I could write an import of this database, generate a panel automatically and could save this panel as UIR file. After this I could use this automatically generated UIR file in a project.

 

Greets

 

Thomas

Might it be possible to implement some utility so that the debug_printf function could print to a window (or even the debug-output window in LabWindows/CVI) from a program that is NOT running under the debugger? I'm workng on a program that does some near-real-time data acquisition, and running it with the debugger from within LabWindows/CVI slows it down too much, to the point where it can't respond to the DAQmx notifications and the program crashes. Since I have a multi-core machine, I can, however, run it as a separate process at the same time as LabWindows/CVI. 

One problem that I've had, while debugging a rather large program with a complex user interface and lots of panels, is that quite often, if (when) the program crashes (say, due to an operation on a NULL pointer) the pop-up that displays the error is hidden beneath the currently open program panel which, of course, cannot be moved or otherwise touched because the program is halted. Likewise, I often find myself moving the LabWindows panel around on the screen while in debugging mode,  trying to see the currently executing line which is hidden behind some GUI panel.

 

It would be most helpful if all error pop-ups (indeed the entire LabWindows/CVI interface) had the highest priority and display on top of anything else on the screen.

* It would be nice to have a tool that automatically generated and maintained .fp files for subroutine libraries. Keeping these up to date is a pain.

 

* It would be most helpful to have a subroutine call-tree analyzer tool built into LabWindows. I'm working with a rather elaborate user interface at the moment, and I am totally losing track of what routine calls what. It's especially difficult because I use the "CallCtrlCallback" function quite a bit, especially during initialization, and I'm very afraid of accidentally implementing a recursive loop without realizing it. such a tool would, of course, have to be able to follow through the callback functions of controls, and perhaps into NI libraries that use callbacks.

One of the more valuable tools within LabWindows is the ability of the editor to fill in struct elements given the struct name. I also work with Eclipse-based tools for embedded systems work, and it has a similar ability. Unfortunately, whereas Eclipse dynamically analyzes the code as it is written, and can provide stuct elements (and other variable information) as soon as the programmer types it in, LabWindows cannot provide this information until after the code has been successfully compiled. As this may or may not happen for some time after the file has been started, or major changes begun, it is almost useless.

 

Another useful tool that Eclipse offers that LabWindows does not is the ability to refactor variables and other symbols. Again, Eclipse dynamically tracks the code as it is written, not requiring compilation; refactoring is similar to global replace, except that it tracks the 'C' usage of the symbol and only changes the proper usage. So, for instance, if I use a local variable named "X1" in three different subroutines, and refactor "X1" to "X2" in one of them, only the variable in the particular routine gets changed.It works with any C symbol, including routine names, global and static variables, and structures.

 

As a matter of fact, I would encourage NI to look into the possiblity of basing LabWindows on the Eclipse platform, as Atmel did in replacing its proprietary Studio software with an Eclipsed-based version. This would enable users to take advantage of a large number of available Eclipse tools, such as source-code management.

Hello,

 

as discussed in this thread changing the map mode of a graph axis from linear to logarithmic scaling may perform sub-optimal if the graph shows plots containing zero or negative data values. Fortunately, there is a workaround.

 

The suggestion presented here is to make this workaround unnecessary... Ideally, the graph should take care by itself if plots need to be updated, i.e. changing the attributes ATTR_XMAP_MODE and ATTR_YMAP_MODE from VAL_LINEAR to VAL_LOG should result in updated plots.

A number of CVI applications I have written would benifit having the 'Save as type' option on the FileSelectPopup dialog (when the button label is save).

 

There are many simple workarounds, but these all result in a clunky and not so clean GUI.

 

It is fairly commonplace these days for an app to save a file in more than one format/filetype. For example, the dialog for saving a .uir file in the CVI IDE gives the option to save as an earlier version.

 

After loading a file file into the UIR Localization Tool you have the ability to show a preview of individual panels with the localized strings by pressing the "Open >>>" button. The problem is that, unless the panel is set to auto center in either direction, the preview honours the actual position (top, left) the panel has into the UIR file, with the effect that some panels cannot be previewed as they are out of the viewable screen area. As an example, see the attached UIR file, where PANEL_4 and PANEL_6 are not auto centered while the others are: you'll see that their position is not in the center of the screen.

 

In my opinion the goal of this tool preview ability is to show the final aspect a localized panel has, so it should automatically auto center each panel regardless the value these attributes have into the UIR file.

When working on laptops the room space in the UIR editor is relatively small compared to the size of actual wide desktop videos. Moreover, starting from CVI 2010 the user interface browser consumes additional room to the right of the editor, thus leaving only a few space to design/review panels.

It would be a good addition the possibility to preview an entire panel on the screen, with the ability to zoom in and out so that one can have an idea of the final aspect the panel will have.