LabWindows/CVI Idea Exchange

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

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

 

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!

Wenn ein Rechner nicht am Nezt ist, vielleicht das Kabel nicht richtig drin oder am Platz kein Netz mehr frei ist, dann wird CVI mit einer eingeeschränkten Testlizenz gestartet und würde dann eine EXE generieren, welche in der Laufzeit eingeschränkt ist. Oft ist es der Fall, dass jemand CVI ohne Netzt started um im Quelltext etwas zu kontrollieren. Zu einem späteren Zeitpunkt erstellt jemand eine EXE neu und bemerkt nicht, dass das gestartete CVI keine Lizenz hat, obwohl der Rechner Netz hat. Er müsste erst CVI neustarten um die Lizenz zu holen.
Den Fehler bemerkt er erst am Folgetag, wo das Programm mit einem Fehler abgebrochen wird.
Es wäre aus meiner Sicht sehr sinnvoll, dass eine EXE, welche durch CVI ohne Lizenz erstellt wird, auch einen Popup mit eingebaut bekommt, welcher hiervor warnt.
Auch eine Abfrage, welche der Progrmmierer in sein Programm einbauen kann wäre sehr Hilfreich.

Hello,

 

I just discovered a strange and unexpected behavior of EVENT_VAL_CHANGED which requires that I will have to double check all my previous software written in CVI...

For some reason I have assumed that if the EVENT_VAL_CHANGED is triggered on a numeric control the new value will be different from the old one. This may not be true - the value may be still the same!

 

Since for more experienced users this seems to be a well-known fact I doubt that NI will call it a bug, hence I am suggesting an improved behavior Smiley Wink: Please, for numeric controls, fire the EVENT_VAL_CHANGED event only if the numeric value has changed...

 

(Right now, if the numeric control displays 1.0000 and I enter '1 ENTER' the value remains the same (at least), but the EVENT_VAL_CHANGED event is triggered...)

 

Thanks

 

PS: Also the documentation seems to be misleading: It (in CVI2010) states:

 

The EVENT_VAL_CHANGED event is generated continuously while the user is performing an ongoing action which results in the value of a control changing.

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.

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.

     

Is there a configuration/source management system available for LabWindows/CVI? If not, one is desperately needed.

Hi,

 

it's an old question, see here, but so far I have not heard about a practical solution. The quest is to find all instruments on a local LAN that are switched ON (and connected to the LAN, of course). Unfortunately, viFindRsrc does not work. Pinging all possible addresses seems not a viable solution due to the required time, either. So it's possible to detect all serial instruments, all instruments connected via GPIB, but until now there is no standalone solution (i.e.without involving NI-MAX) to detect instruments on a local LAN... Smiley Sad

 

Thanks,

Wolfgang

 

 

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.

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.

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.

 

Hello,

 

if I move part of the code to another place in the file (to maintain a certain order) it would be nice if tags would be remembered. Right now, the cut operation removes the tag and I have to set it again manually after the paste operation.

Regarding NI Spy and its sequel NI I/O Trace,

 

Can we have a configuration option to set the length of exported strings?

 

Example: Current output of NI I/O Trace as shipped with NI VISA 5.1.2:

 

(.txt export)

149. viWrite (USB0::0x1234::0x1234::12... (0x073F41D0), "STATUS:QUESTIONABLE:E...", 26, 26)
(I've omitted thread/proc ID and timing information)

00000000: 53 54 41 54 55 53 3A 51 55 45 53 54 49 4F 4E 41 STATUS:QUESTIONA
00000010: 42 4C 45 3A 45 56 45 4E 54 3F BLE:EVENT?

 

(.csv export)

"viWrite (USB0::0x1234::0x1234::12... (0x073F41D0), ""STATUS:QUESTIONABLE:E..."", 26, 26)",Prozess-ID: 0x00001734 Thread-ID: 0x00001468,Startzeitpunkt: 16:59:33.749 Aufrufdauer 00:00:00.000,Status: 0 (VI_SUCCESS),

 

It would be extremely useful - especially for CSV export - to have a configuration option to let me configure how many characters to print before the string is truncated, so that I get this...

desired output in .csv or .txt file (untruncated string):

 

"viWrite (USB0::0x1234::0x1234::12345678::INSTR, ""STATUS:QUESTIONABLE:EVENT?"", 26, 26),process ID: 0x00001734 thread ID: 0x00001468,start time 16:59:33.749 duration of call 00:00:00.000,Status: 0 (VI_SUCCESS),"

 

Thanks for considering this.

I occasionally miss some UIR editor features that are often present in similar tools. All the features I expose should interest only

the editing phase.

 

1) Ability to center a control within a panel, in respect to either vertical or horizontal size

2) Ability to "group" a certain number of controls, in order to align the "group" with other objects, without changing the controls' respective positions

3) Ability to lock a control's position, so that it will not inadvertently move when clicking on it, as it casually happens

4) Ability to "evenly" distribute controls in a way that conservers the position of the extremities, allowing for small differences in each spacing

 

 

Hello,

 

Frequently I have the need to debug array elements, such as parameter [ 1 ].

 

Right now, the data tooltips only shows the address of this array, but not the individual value. For this I have to open the variable view and scroll to the element of interest. This is extra effort...

 

Hence I suggest to also show the value of the specific indexed element in the data tooltip, e.g. parameter = 0x00611990; parameter [ 1 ] = 2.0

 

Thanks Smiley Happy

 

 

Hello,

 

I'm using the 3D Graph ActiveX in order to display contour lines for a given parameter.

I would like to overlay this contour map with a Google earth image as shwon below.

 

Bitmap in 3D Graph.jpg

 

So it would be nice to consider adding the possibility to add a bitmap image to the 3D graph as it is possible to add a bitmap as background of a canvas control. The bitmap could also be used to replace the color of a surface plot.

 

 

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

Summary:

Implement and add easy access to multiple clipboards inside the CVI ADE.

 

Description:

The CVI ADE (at least the source editor) should keep the most recent sequences of text that had been copied (Ctrl+C) to the clipboard.

It should also allow access to the multiple clipboards through some pop-up menu, displayed at a certain keystroke combination.