NI Home > Community > NI Discussion Forums

LabWindows/CVI Idea Exchange

Showing results for 
Search instead for 
Do you mean 
Announcements
The NI Idea Exchange is a product feedback forum where NI R&D and users work together to submit ideas, collaborate on their development, and vote for the ones they like best. View all of the NI Idea Exchanges to post an idea or add your opinion on an existing one today!
New Idea

It has been discussed here.

I suggest to add a note to the documentation, for example

 

WARNING!

_TARGET_PRODUCT_VERSION_ and _TARGET_FILE_VERSION_ values are updated only when the file that contains them is recompiled.

So be sure to include them only in files that are recompiled at every build.



 

Status: Completed
Added in CVI 2013

Hello NI,

 

during program development and debugging typically there is more than just the source window visible, i.e. the lower part of the screen is used by the find or the build output window. Now, if I switch to a different tab/window to edit the UIR file, this build output window will still be there and take valuable space, although it is completely useless for editing the UI. If I close it, it will remain closed even if I switch back to the source code.

 

I would prefer that 'context sensitive' wndows such as 'find results' / 'build output' ... only show up if meaningful, while they are automatically hidden if not needed, i.e. when a UIR window is displayed, and automatically redisplayed if the source code window is back.

 

Thanks for possible consideration,

Wolfgang

TECHNOFASE

CVI work as web server

Status: New
by Member TECHNOFASE on ‎10-03-2012 02:45 PM

Please consider the possibility to enable the use of CVI application as web server so that the application will accessible to the web.

Its open one new world (wide  web..).

 

Consider the opportunity to ope to all smartphone device....

vix

Add FP_Max() and FP_Min() functions

Status: New
by Active Participant vix on ‎10-02-2012 01:07 AM

Comparison between floating point numbers is best done using FP_Compare() - see CVI help for details.

Often you need to choose the maximum (or the minimum) of the two floating point numbers, and the most common approach is:

if (a > b) {

choose a

} else {

choose b

}

If you use FP_Compare instead of ">" you'll notice that FP_Compare is much slower than ">" (because it involves calculation of the ratio between the two numbers). This is extremely evident if you have to choose the maximum of several couples of numbers.

I think that the maximum (or the minimum) between two floating point numbers could be found in a more effective way, comparing the exponents of IEEE representation (for example), and calculate the ratio only if the exponents are equal.

For this reason I suggest two new functions FP_Max() and FP_Min() that would much more performant than the easy approach.

vix

Handling of NAN values in PlotScaledIntensity()

Status: New
by Active Participant vix on ‎09-26-2012 01:15 AM

In this thread it has been discussed how PlotScaledIntensity() handles NAN values.

In CVI 2010 SP1 NAN values are plotted with the center-scale color (and this is a bug).

Unfortunately the fix is not easy, and there could be different ideas on how NAN values should be handled.

 

I suggest not to plot NAN values, or to plot them transparent so that the plot area size is visible under NAN pixels.

When you use NAN values in PlotY(), for example, this points are not plotted.

Wolfgang

EVENT_SORT for table control

Status: Under Consideration
by Trusted Enthusiast on ‎07-09-2011 08:19 AM

Hello,

 

I would consider it useful to have an event for table controls notifying the program if the user has sorted a column, in analogy to the event EVENT_SORT available for tree controls.

 

Thanks :smileywink:

I thought I'd submitted that in the past, but I can't find it.

 

I would like to programmatically do what the F11 button does in the user interface editor: change the style of a control into another one of a similar category, keeping whatever attributes are compatible. For instance a numeric into a thermometer, etc...

 

Currently ATTR_CTRL_STYLE is not settable, and I tried to write some way to transform a control into another with NewCtrl/DiscardCtrl but the main problem is that the control number changes, which complicates the rest of the program needlessly (you can't use constant #defines).

This issue has been discussed in other threads:

When a stripchart is horizontally resized, the X-scale range can't be changed, so that visible data in shrunk or stretched to the new dimension. But this behavior is not so useful.

It would be better if resizing the chart changed the X-scale accordingly, so that a larger or shorter period would be displayed.

 

But if you set ATTR_POINTS_PER_SCREEN parameter all the data history is cleared, so that it's impossible to resize the chart.

 

I think that resizing a chart in the way I described is a quite common need, so I suggest to implement ATTR_POINTS_PER_SCREEN in a way that doesn't clear the whole data history.

ClearStripChart() should be the only function that clears the chart.

vix

ATTR_DIMMED for SetTreeItemAtribute()

Status: Under Consideration
by Active Participant vix on ‎05-13-2011 06:59 AM

A tree control can be used to implement radio button controls;

in this situation you can't completely dim one of the items (so that it is grayed and the user immediately sees it is inactive) because the function SetTreeItemAttribute() doesn't allow ATTR_DIMMED attribute.

You can dim the item label using SetTreeCellAttribute(), but the check box stays active (see this discussion).

The EVENT_MARK_STATE_CHANGE can be swallowed, but the check box has the aspect of an active check box, even if nothing happens when you click over it.

 

I suggest to add the attribute ATTR_DIMMED to SetTreeItemAttribute() so that the whole item can be dimmed (its check box too)

Wolfgang

up/down control

Status: New
by Trusted Enthusiast ‎04-07-2011 06:18 AM - edited ‎04-07-2011 06:28 AM

Hi,

 

I'd suggest to provide a simple up/down control, i.e. the arrows found in numeric or ring controls, but without the numeric / ring field.

 

For example, they might be used to adjust cursor position or scroll through a list.

 

Right now, it's not possible to set the numeric field width to zero, so there will always be a numeric control attached to the arrows (same is true for rings)

 

When I tried to accomplish something like this (following the discussion here) by putting two controls on top of each other, see below, I had to realize that z-plane order is not maintained. While this might be a bug, it's also not nice because the dashed line indicating the focus is disturbing, too.

 

Two controls on top of each other:

 

ctrl-1.jpg

 

After clicking on the numeric control:

 

ctrl-2.jpg

 

Thanks! 

 

 

Summary: I am looking for this control:  up-down.jpg

Wolfgang

Improved variable view

Status: Completed
by Trusted Enthusiast on ‎03-30-2011 03:08 AM

Hello,

 

Lets' assume a small structure or small array that one would like to have a look at during debugging. Selecting 'View Variable Value' (or Shift+F7) in the IDE puts the cursor on the corresponding line in the variable editor. If there are several variables, the variable of interest typically is in the last line of the variable editor. Now if one is interested in any element of the structure, it is always necessary to scroll down, which is quite inconvenient.

 

Hence I suggest to place the selected variable at the top of the variable view, allowing to see its first elements without scrolling.

 

Thanks

Status: Completed
Introduced in LabWindows/CVI 2013

There is no way in the current Serial Com functions to determine where a BREAK or FRAMING (or other) error occurred in the input steam (see Reference#7355407).  Add a new "ComRdStatus" to log the UART Status for each and every character individually.

Your "driver" code would be:

     When CHR received in UART

          Get STATUS from UART and put in ComRdStatus buffer     // New array of Status bytes for each character

          Get CHR from UART and put in ComRD buffer                   // Same as it is now

          Increment count returned by GetInQLen                            // Same as it is now

Then user S/W can be:

     While (GetInQLen(port) > 0)    // characers and their status's in queue

          ComRd (port, &chr, 1)                // read character

          ComRdStatus (port, &status, 1)     // read character's status

          if (status != 0)    // check if any status bits set

               if (status & BREAK_BIT)     // Check if this character is a BREAK

                    // Process BREAK condition at the point it happened

               if (status & FRAMING_BIT) // Check if this character had a Framing error

                    // Process Framing Error at the point it happened

               if (status & OVERRUN_BIT) // Check if this character had a Framing error

                    // Process Framing Error at the point it happened
               // ETC to handle all errors at the point in the stream they happened

          else // no status bits set so this Char is "normal"

               j// Process "normal" chr

 

This would let the user know EXACTLY where the BREAK (or Framing or Overrun or ...) condition occured in the queue.

 

Right now, if you have 15 characters in the queue and GetComStat says there is one or more "status" bits you have *NO IDEA* whcih character(S) had the status issue.

     E.G. if there is 15 chars in the queue and 5 are 0x00 and BREAK_BIT is set in GetComStat you have no idea which 1 or 2 or 3 or 4 or 5 of the 0x00 bytes where the BREAK and user's need to know this!

There is no way in the current Serial Com functions to determine where a BREAK or FRAMING (or other) error occurred in the input steam (see Reference#7355407).  Add a new "ComRdStatus" to log the UART Status for each and every character individually.

Your "driver" code would be:

     When CHR received in UART

          Get STATUS from UART and put in ComRdStatus buffer     // New array of Status bytes for each character

          Get CHR from UART and put in ComRD buffer                   // Same as it is now

          Increment count returned by GetInQLen                            // Same as it is now

Then user S/W can be:

     While (GetInQLen(port) > 0)    // characers and their status's in queue

          ComRd (port, &chr, 1)                // read character

          ComRdStatus (port, &status, 1)     // read character's status

          if (status != 0)    // check if any status bits set

               if (status & BREAK_BIT)     // Check if this character is a BREAK

                    // Process BREAK condition at the point it happened

               if (status & FRAMING_BIT) // Check if this character had a Framing error

                    // Process Framing Error at the point it happened

               if (status & OVERRUN_BIT) // Check if this character had a Framing error

                    // Process Framing Error at the point it happened
               // ETC to handle all errors at the point in the stream they happened

          else // no status bits set so this Char is "normal"

               j// Process "normal" chr

 

This would let the user know EXACTLY where the BREAK (or Framing or Overrun or ...) condition occured in the queue.

 

Right now, if you have 15 characters in the queue and GetComStat says there is one or more "status" bits you have *NO IDEA* whcih character(S) had the status issue.

     E.G. if there is 15 chars in the queue and 5 are 0x00 and BREAK_BIT is set in GetComStat you have no idea which 1 or 2 or 3 or 4 or 5 of the 0x00 bytes where the BREAK and user's need to know this!

I would like an option for "Next Breakpoint" and "Previous Breakpoint" in the menus somewhere, similar to the existing "Next Tag" and "Previous Tag" items.  The reason why I ask is so I can then bind these new menu items to shortcut keys so I can bounce between where I have breakpoints set more easily.  It might also be convienent if there were also toolbar buttons that could be added for next/previous breakpoint.  Thanks.

Wolfgang

Event log

Status: Under Consideration
by Trusted Enthusiast on ‎06-21-2012 06:07 AM

Hello,

 

debugging an event-driven software sometimes might be easier if there would be a possibility to log all events (e.g. to a log file) because it happens that the sequence of events occurring is different from the sequence expected ...

 

What I have in mind is an additional checkmark in the Build Options panel, 'Log events'. As a further option, events could either be logged to a debug window or to a file, with information such as

 

system time, thread_id, event_type (e.g. VAL_CHANGED), event source (e.g. panel_handle, control_id)

 

Thanks!

A file other than standard type can be added to the project at any time. However, if a text file is clicked in the project tree that is not a source or include the external editor opens by default (notepad or so); to have these file opened in a IDE editor window you need to right-click on it and choose "Edit" ("Open" option is the default one and is bolded).

 

I'd like to have an option added to Envirnoment settings to enable automatic editing of project text files in a IDE editor window.

Hello,

 

sorry for the strange title, I couldn't find a better one:

 

Right now, if I toggle a tag or set a breakpoint, these actions cannot be undone using 'Undo (CTRL+Z)'.

 

Similarly, if I want to discard any changes I have made in a project this may not be especially simple... If I simply close CVI then I am asked if I want to save or discard my changes - this is fine - unfortunately this does not include breakpoints, tags, etc. So even if I select 'discard', tags, breakpoints etc. are not undone.

 

I'd like to have a possibility to close a project in the state I have opened it.

CVI provides useful scanning / formatting functions, e.g. Fmt, which in part complement the ANSI functions. This means that some features can achieved using one library, but not (or not conveniently) using the other. Hence I would be happy to see some additional modifiers allowing the Fmt functions to provide some additional capabilities that are available in printf etc

 

In particular I suggest introducing

 

- + modifier to always denote the sign '+' or '-' of a number

- e/E to display the exponent 'e' as a small/large character

 

Thanks

When using tab controls on a panel, every time you change the active tab in the UIR editor the file is marked as modified even if no real modification has been made on panels/controls. This is particularly annoying when you are simply looking at a UIR file but you don't want its date/time to be modified (e.g. in case the project has already been deployed to the customer and you want to keep the local copy of the UIR with the original date/time).

 

If your file is marked as read-only (same scenario as before: the application has already been deployed and you want to prevent modifications to it) you cannot even change the active tab page, neither in edit mode nor in operate mode (F4 - operate visible panel)!

 

It would be better in my opinion that a simple tab page switch does not forces the UIR to be saved.

Status: Declined
Declining, based on Jared's earlier comment
Wolfgang

movable windows within the IDE

Status: Under Consideration
by Trusted Enthusiast on ‎12-16-2010 04:57 AM

Following the discussion with Luis here I want to suggest

 

  1. a possibility to confine the variable view
  2. allowing to move confined windows within the IDE, i.e. position the source code browser to the left (or right) of the code window, similar to the workspace window.

Wolfgang

About LabWindows/CVI Idea Exchange

Do you have a feature idea for how to improve LabWindows/CVI? Submit and vote on ideas now!
  1. Browse by label or search in the LabWindows/CVI Idea Exchange to see if your idea has previously been submitted. If your idea exists, be sure to vote for the idea by giving it kudos to indicate your approval!
  2. If your idea has not been submitted click New Idea to submit a product idea. You should submit a separate post for each idea. Watch as the community gives your idea kudos and adds their input.
  3. Give kudos to other ideas that you would like to see implemented!
  4. NI R&D will review ideas that have been submitted and update the status.

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.