LabWindows/CVI Idea Exchange

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

Hi,

 

in many of my applications, I have to verifiy some conditions recursively and they can generate an error, for example when checking the presence of a file (see below).

Imagine to have a task doing this, and imagine the task is scheduled every 5 seconds or less.

This means you'll get the popup window continuosly and it makes almost impossible to debug your code.

I know I can reduce the Debugging level from Extended or Standard to No RunTime Checking in order to block that popup window, but sometime I need a deeper level of debug to fix my problems.

What do you think about adding a third button to ignore, for the current debugging session only, the run time errors generated from the same instruction?

More, what do you think about adding a fourth button to ignore, for the current debugging session only, the run time errors of the same type?

 

Regards

Sergio

The search function differentiates between "xxx(..." and "xxx (..."  or  "xxx[..." and xxx [...". Frequently you find both writings in the same file.

I did not even find a way to specify the an option to ignore blanks in the regular expression search (does it exist, and I didn't find it?).

I would appreciate if the search function would ignore blanks e.g. for function calls and arrays

Up to CVI 2012 the mode of the build was shown as "create release executable" or "create debug executable". This has been changed simply to "build" without showing the mode selected. Thus it not obvious anymore, which kind of executable is being built.

Please reinstall this important little note:

Switching between debug and release is a relatively frequent action, and it should be shown clearly which mode is being built

Add an option in FileSelectPopup() to escape the backslash (\) to (\\) in path names.  CVI and Win-7 do not work with single backslashes in path names.

 

example: 

  fp=fopen("C:\temp\TEST.txt","w"); // open the file for writing  *** Will not work. ***

 

  fp=fopen("C:\\temp\\TEST.txt","w"); // open the file for writing  *** Good ***

 

If we can add the backslash(s) in using a FileSelectPopup() option, this problem goes away.  

I feel that beginners might study the examples provided with CVI more frequently / in more detail if they were more aware of the Example Finder. Right now, it can be only found via the Help menu. I think that the Example Finder is as important as the Release Notes or the Readme and thus should be more visible.

 

Suggestion: Add the Example Finder to the Startup menu.

The PrintPanel function has the capability to display the print dialog box.  This would be a nice addition to PrintTextBuffer and PrintTextFile functions also.

I am facing an issue of crash using LabWindows 12.0.1 (on Windows 7 OS) with no error message at all.

Only the icon is changed into a blue-color ring, and nothing else.

Even Task manager is not able to kill LabWindows process.

The only way is to re-boot the computer.

I've contacted NI support, but I am not able to give to them any error message.

 

Hypothesis is that it is quiet long to access files, because the whole software project is stored throuh ClearCase onto a distant server.

 

This is why it could be usefull to add a mechanism which records several debug information for NI support team.

This feature is already included into other NI products, such as LabView.

For exemple, a log file could be created and filled-in with debug information each time an instance of LabWindows is loaded.

 

On the tab control property page there is no way to set the control mode as indicator.

However this can be done programmatically with SetCtrlAttribute (panelHandle, PANEL_TAB, ATTR_CTRL_MODE, VAL_INDICATOR); which has the effect of preventing the operator to change the shown page.

 

It would be handy to be able to set this attribute at design time too.

I noticed in LabView that there is a HTTP Client Palette library written with the underlying libcurl open source library. The one particular VI is the HTTP Post Multipart VI that I am interested in. Why can't Lab Windows CVI have a similar HTTP Client Library in future versions of Lab Windows CVI for HTTP Clients?

Hello,

 

when using the two subwindows of the source code editor I frequently need to scroll both windows the same way because my screen isn't high enough Smiley Wink This means that I scroll down one window, switch to the other window, and scroll again.

 

It would be much more convenient having the possibility of simultaneously scrolling both windows. I imagine that pressing the SHIFT key modifier would allow for synchronously scrolling both windows while scrolling without the SHIFT key would show the present behavior.

 

What do you think? I think it's no big deal of implementing it Smiley Wink

Some years ago I proposed this idea that has been partially implemented in CVI 2013.

For this reason I'm going to propose the third point of the original idea again:

 

  • the current function where the caret is, displayed in the toolbar. It will be nice if you use a combo so that the user can jump to a different function with a simple mouse click (see attached image)

 

I use this feature in an open source C/C++ editor (Code::Blocks) that I use for other projects, and I think it's really useful to reduce the coding time.

Not a big deal in my point of view...

 

  1. Create a new workspace
  2. Create a new .c file
  3. SHIFT F5
  4. Give a name to the c file when needed
  5. Make sure it does not have a capitalized first letter (dummy.c for example)
  6. CVI then create dummy.cws, dummy.prj and dummy.exe

However, the name of the project in the workspace tree has a first letter capitalized (upper case)

See below the screen capture

 

This may not be what the user want to see

This is purely cosmectic since opening the cws or the prj file with a text editor one can see the workespace/project use the correct name (no upper case letter)

The only solution so far is to manually go to Edit then "Project.." and modify the project label

 

Does it make sense?

  1. Yes because the user may have naming convention for project names, project hierachy on disk etc...  and he may want to be sure to see thoses reflected in the workspace tree 
  2. Yes because by default CVI should not act in the name of the user. If the user want upper case letter for the project name then he should type it otherwise CVI should simply follow the user instructions (and not add upper case letter at the begining of project filename)

 

Regards, Philippe

 

 

Capture.PNG

 

So far the documentation is written line by line with a tag at the begining of each line. See below : 

/// HIFN Document your function here.
/// HIFN You may use multiple lines for documentation.

 

It could be nice to add a tag attribute that helps to define regions (or blocks) of documentation. See below :

/// HIFN BEGIN
//  Document your function here.
//  HIFN You may use multiple lines for documentation.
/// HIFN END

 

Once done this would help to copy/paste large section of existing documentation. Regarding the "// " that need to be added I believe that a macro or a new editing option ("comment multiline" or "comment selection" like in VBA) could do the job 🙂

 

Regards, 40tude

 

 

Hi.  I find occasionally that it would be handy to be able to add items to the event que through the debugger.  Like, for example, to call a callback function as if the user had interacted with the user interface.  This would be especially handy for remote debugging, where I could add in an item in the que as if a button had been pushed on the user interface without having to physically walk over to the debuggee and push the button on the screen.  I'm not sure the best way to implement this, and I can picture some pretty sophisticated interfaces.  However, something simple could be perhaps a screen like the function panel for CallCtrlCallback(...) where I could enter in the Panel handle, Control ID, Event, etc. and have the event added to the event que?  Thanks.

During editing of large programs, I often find myself following a thread of logic through a program, through multiple routines, to find out where it is going. The problem occurs when I want to trace my steps back and take another fork in the program: the current bookmark scheme only lets to go to the next or previous bookmark in line-number sequence, not the order in which they were laid down.

 

It would be nice if there were some mechanism that could follow the bookmarks back and forth in the order that they were placed  - and allow multiple chains of bookmarks for following different threads of logic. Ideally, a graphical display on a special window  with the file, line number, and subroutine name for each bookmark; perhaps showing the line of code as a "tip" popup when I put the mouse over it.

I've been using multithreading a lot in a large data-acquisition and motion-control program that I'm working on. There are various reasons, but the speed (or rather lack thereof) in the GUI seriously slows down data acquisition and processing if I try to run everything in the main thread. So, I've got the main thread that handles the user interface; the DAQmx data acquisition thread; and a data processing thread that runs in the background, accepts the data (which comes in at regular intervals) from the DAQmx thread, processes it, and stores it for display and saving to disk.

 

Anyways, with all of this I make heavy use of the multithreading utilities in the utility library, especially the Thread Safe Queue functions, threadlocks, and the threadsafe scalar variable macros. They work nicely, but 45% of my debugging now consists of finding all of the spots where I forgot to release a variable after locking it, forgot to release a pointer after locking it, or forgot to close a queue after starting it.

 

Another 45% consists of finding places where I call a function from two different threads, for instance if I start up a window in one thread, and try to call a function for that window in another thread (for instance: calling the main callback function for a panel with the CLOSE event to force it to close when shutting down the main program, for forcing a button-press with the COMMIT event) which doesn't always work. Allocating a list in one thread and calling a function that reads from or writes to that list from another thread really doesn't work!

 

It would be very nice to have some help in CVI that can count the various threadlock and other thread-safe stuff openings and closings and tell me: "Hey, you forgot to release that one". Since 99% of the time these are locked and released in the same subroutine, it would be helpeful even if it just looked within routines.

 

It would also be very helpful to have some utility that can keep track of what thread a given function is executing in. Perhaps the best way to do this would be to simply implement a function call-tree utility, with some notation of threads in there; the main problems after all occur when one calls the same routine from two different threads, with different results for each.

Hi,

 

When attaching a graph to a splitter control where the splitter control sizes the graph, I've noticed a few things. 

 

1.  First, the legend is also attached to the splitter so that it moves.  This works well if the legend is located in the default location (at the bottom right corner of the graph control) but problematic when the legend has been located elsewhere.  I would like the option of having the legend move or not move when the graph control is attached to a splitter that sizes (I would imagine this might have to be a new graph control attribute). 

 

2.  In addition, it would appear that the label is not attached to the splitter so it doesn't react to the splitter control being operated.  It would be nice if there was some way that the label text could be attached to a splitter, or perhaps a setting so that the label text could be made to auto-center above the graph control when the graph control is resized by the splitter.  (a potential workaround for the moment is to not use the label with the graph control and instead use a text message control as the label that can then be attached to splitter controls independent of the graph itself).

 

Thanks.

Until now users can save as .csv file (not sure it works with locales differents than US - issues with '.' and ',' for example)

Anyway, could be nice to be able to CTRL+A then CTRL+C and then paste the content in Excel, .txt file ...

 

Regards, Philippe

This would allow user to have :

 

PrintfTextBox(ghPanel, PANEL_TEXTBOX, "%s %d", "Hello CVI ", 2018); 

  

In terms of implementation it could look like  :

 

#define DEFAULT_LEN 1024 // Quick'n dirty fix
// ---------------------------------------------------------------------------- void PrintfTextBox(int panel, int CtrlId, const char *format, ...){ char StrTmp[DEFAULT_LEN]; va_list args; int NumLines; va_start (args, format); // could be nice also to have _vscprintf function call in CVI vsnprintf (StrTmp, DEFAULT_LEN, format, args); va_end (args); InsertTextBoxLine (panel, CtrlId, -1, StrTmp); GetNumTextBoxLines (panel, CtrlId, &NumLines); SetCtrlAttribute (panel, CtrlId, ATTR_FIRST_VISIBLE_LINE, NumLines); ProcessDrawEvents(); }

 Regards, Philippe

 

If you design a table in the UIR editor including cell colouring and at a later time you want to switch the table from indicator to hot or viceversa, cell colouring is lost and all cells default to black text / white background.

 

I understand that there can be a reason for this to happen (i.e. follow colouring standards for controls / indicators) but it's a hassle being forced to apply every time all colouring effects on the whole table! At least add a dialog box to choose whether to preserve actual colouring or use default black/white.