LabWindows/CVI Idea Exchange

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

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

void foo()
{
    int a = 0, c = 0;
}

// 1000 lines of code

void bar()
{
    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.

  1. Open a project
  2. Go to Options
  3. Select Build Options...

 

If all the "C Language Options" are unchecked

Checking "Build with C99 extensions" check box should automatically check the "Require function prototypes" check box. If not, if a function is not prototyped before invoked then the compiler will generate an error (which is good and safe for the user).

This idea is similar to the fact that one cannot check "Enable OpenMP support" until C99 option is checked

 

Later on, if a user load a project with C99 support set but "Require function prototype" uncheck I guess CVI should let him know that it will set the "Require function prototype" for him in the Build options (simple dialog box for example).

 

Regards, Philippe

 

Capture.PNG

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:

  • Show/Hide/Dim some elements
  • Preset some value (like checking the Search Vertically option)

 

FindInTable.png

 

( Tested with CVI 2012SP1. Not yet installed 2013 )

Bonjour,

This is a minor thing (I mean aesy to improve)

 

On the Welcome page when you click the "Browse" folder icon the file dialog looks for .prj by default :

 

Capture.PNG

I believe it make sense to look for "Workspace" by default

Doing so one can find out his workspaces directly (NewSamples.cws for example) rather than get the Open File dialog box on screen, then select workspace in the type list then look for his .cws

 

Does it make sense?

Yes because even single project based project are included in a workspece so it does not change anything for the one looking for "simple" project

Yes because more and more CVI users have more than one project in a workspace and so changing the default behavior will save time (1 or 2 seconds) for most of us.

 

Regards, Philippe

 

So far there is no way to take advantage of the CVI  style sheet when embedding HTML tags in the documentation of our functions 

The situation is as follow : 

1 - If the user does not use HTML tags every thing looks good BUT, for example, there is no way to display correctly a sample source code as it is done in the documentation of LoadPanel for example (see below). Same thing for the icons and other cool stuff available in "../cvi2013/bin/libref/tooltp.css"

 

Capture.PNG

2 - On the other hand, if the user use HTML tags in the function documentation then the display look "weird" and there is no easy way to improve the display.

 

My proposals

1 - Alow the users to leverage the .css file that come with CVI. This mean document/explain the style and the ressouces available (icon etc). This also mean that when the users embed HTML tags in the documentation then the help should include the CVI .css file and then the user documentation (like it is done for the CVI function call documentation)

2 - Another option could be to create a new documentation tag that help users to describe their own .css file. The problem here is that it would break the consistency within the documentation. I prefer option one.

 

I hope its understandable... 🙂

Regards, Philippe 

As discussed here, the new and nice auto indent feature does not always work consistently. I suggest to improve this:

 

  • at present auto indent considers the first 40 characters of a line only; if indentation is later, say at column 44, auto indent fails. I suggest to loosen this restriction and consider up to 100 characters
  • at present, different comment styles are treated differently. Although /* */ is THE valid C comment, auto indent can be configured only for the // style comment, it ignores this setting for /* */ comments. I suggest to treat both types of comments the same way

Thanks!

 

 

CVI2013 does not seem to save debug information, instead it has to generate it every time a project is loaded. For large projects this can take some time...

Prior to CVI2013 we were used to a large *.cdb file with browse information which is now gone.

 

I suggest to save debug information (function list,...) to a file that is loaded on starting CVI so one can make use of this information 'immediately'.

 

I do like the improved editor features of CVI2013; maybe two toolbar icons could be added for the two new commands  'Goto Next Function' / 'Goto Previous Function' ?

Hello,

 

a long standing issue with the function GetGlobalMouseState is that it does not detect the <alt> key modifier (contrary to the documentation).

 

I'd like to suggest adding the capabilities to detect the key modifiers

 

  • <alt>
  • <shift> + <alt>
  • <ctrl> + <alt>

Of course this can be done with the Win32 function GetKeyboardState, and this is how I do it right now, but this means that I have to include <windows.h>.

 

Thanks!

When writing a large amount of functions for CVI, I use the View>> Collapse All / Expand All options quit a lot.  It would be incredibly useful to have a keyboard shortcut to do this. 

 

That's all, but I can't stress how much I use these menu items and how incredibly helpful it would be to have a shortcut.  All of my coworkers agree.  Thanks.

Hello everybody,

I tried to use a source code / version control for projects in which I  use LabWindows and Visual Studio.

One possible solution would be to implement support for the team foundation server, which already has be added to LabView.

Another would to provide an independent solution.

 

Best regards,

I'd like the following options being added to FileBrowser tollslib control:

 

  • Ability to hide / tailor popup menu for the right portion of the FileBrowser (file list): at present, even if I disable the popup menu on the tree control (regardless it is made before or after converting the tree into a FileBrowser) the rightmost part of the control has its own popup menu enabled
  • In case the menu is shown, it would be a good thing to be able to add / change / hide items in that menu
  • Ability to programmatically set the width of columns in the file list section of the FileBrowser
  • Ability to programmatically set the label of columns both sections of the FileBrowser: this is particularly necessary in case you need to localize the user interface in a language other than English, as FileBrowser cannot be treated by the Localization Utility since it is created at runtime

Hello,

 

This suggestion is about an improved handling of tab panels. Let's assume there are several tab panels, but only 3-4 tabs fit in a row. Selecting 'Single Row Scroll' will show say 3.5 tab panels and the row selector. Now I'd like to access say tab panel 5: Right now this requires clicking on the row selector to show the desired tab AND then click on this tab to show the tab panel. It would be more convenient if clicking the row selector would automatically show the next tab, too.

 

Let me give an example: The desired tab is not shown in the scroll list below, so one has to click on the right arrow...

 

step1.png

 

... until the tab shows up:

 

step2.png

 

But still the first tab panel is displayed, so another mouse click is required:

 

step3.png

 

It is not just that one more mouse click is needed, but the mouse needs to moved, too, to click on the respective tab... It would be much more convenient to simply click a few times at the same position...

Hello,

 

even today source code needs to be printed (to paper, to PDF...). So for a given font and font size there is a maximum number of characters per line that can be printed without forcing a line break.

Accordingly, I have arranged my source code that none of the lines exceeds this limit. I would consider it convenient to have a faint grey vertical line indicating this limit. So I suggest adding a 'ruler' with user settable vertical guides.

 

Thanks for consideration.

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!

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.

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.