LabWindows/CVI Idea Exchange

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

When you have a function to install a callback, for example InstallMainCallback, NewAsyncTimer, InstallComCallback, viInstallHandler, DAQmxRegisterDoneEvent, DAQmxRegisterEveryNSamplesEvent, DAQmxRegisterSignalEvent, etc... it would be nice if the prototype was inserted directly in the source code by pressing Ctrl-D like for variables. Currently you have to open the documentation and do some copy/pasting.

Where does NI stand on this????

NI no longer supports 32 bit OS, but hasn't ported their own toolkit to x64. Since NI is NOT committed to developing (or even maintaining) CVI toolkits, how about open sourcing these so that users and the community can move these forward.

Adding a example code in CVI for CAN FD in CVI is very important for the customers , sending a CAN FD frames in CVI is not as easy as labview , it requires deep knowledge of pointers .

Please include example for sending different payloads like 8, 12, 20, 24, 64.

 

Thanks

Now I have done this function to do it, you surely can do it better with extended error detection.

 

 

void CmtWriteTSQDataInFirstPosition(CmtTSQHandle Queue_Handle, const void *Buffer, size_t Number_of_Items, int Timeout_ms, int *Number_of_Items_Flushed)
{
	CmtTSQHandle Queue_Handle_Temp = {0};
	const void *BufferTemp = {0};

	size_t ItemsInQueue = {0};
	size_t ItemsSize = {0};
	
	CmtGetTSQAttribute (Queue_Handle, ATTR_TSQ_ITEMS_IN_QUEUE, &ItemsInQueue);
	CmtGetTSQAttribute (Queue_Handle, ATTR_TSQ_ITEM_SIZE, &ItemsSize);

	CmtNewTSQ(ItemsInQueue + Number_of_Items, ItemsSize, 0, &Queue_Handle_Temp);
	CmtWriteTSQData (Queue_Handle_Temp, Buffer, Number_of_Items, Timeout_ms, NULL);
	
	BufferTemp = calloc(ItemsInQueue, ItemsSize); 
	while(ItemsInQueue > 0)
	{
		int CmtStatusOrItemRead = {0};
		CmtStatusOrItemRead = CmtReadTSQData (Queue_Handle, BufferTemp, ItemsInQueue, 0, 0);
		CmtWriteTSQData (Queue_Handle_Temp, BufferTemp, CmtStatusOrItemRead, Timeout_ms, NULL);
		ItemsInQueue -= CmtStatusOrItemRead;
	}
	free(BufferTemp);
	BufferTemp = 0;

	CmtGetTSQAttribute (Queue_Handle_Temp, ATTR_TSQ_ITEMS_IN_QUEUE, &ItemsInQueue);
	CmtGetTSQAttribute (Queue_Handle_Temp, ATTR_TSQ_ITEM_SIZE, &ItemsSize);
	
	BufferTemp = calloc(ItemsInQueue, ItemsSize); 
	while(ItemsInQueue > 0)
	{
		int CmtStatusOrItemRead = {0};
		CmtStatusOrItemRead = CmtReadTSQData (Queue_Handle_Temp, BufferTemp, ItemsInQueue, 0, 0);
		CmtWriteTSQData (Queue_Handle, BufferTemp, CmtStatusOrItemRead, Timeout_ms, Number_of_Items_Flushed);
		ItemsInQueue -= CmtStatusOrItemRead;
	}
	free(BufferTemp);
	BufferTemp = 0;

	return;
}

 

Hi,

 

In 2015 and 2017 CVI, the horizontal scroll wheel of the mouse was working.

 

In 2019, the horizontal scroll wheel is not working now.


Since we don't have all extra-wide/extra-size screen, it is a very important feature we are missing.
The shift/alt or even the vertical scroll wheel of the mouse on the horizontal scroll bar does only vertical movement.

I'm strongly interested in getting back a feature that has already been removed with CVI2013. Until last week, I had good old CVI9.0.1 installed on my PC which was perfect for maintaining my biggest project, a SW tool that has more than 50DLLs around a single executable for controlling lots of devices using a script interpreter for fully flexible process flows.

Some of these DLLs even have cross-references. When modifying a header file that is not only included in the current project but also in other projects of the workspace, I used to see red flagged files in the affected projects to tell me the need of these to be recompiled.

This was really, really helpful to keep the overview!

Unfortunately this feature I don't see anymore in CVI2019 which leads to the fact that I have to either create/maintain a separate list for all external references or the necessity of walking through all projects in my workspace and compile them without knowing the necessity.

Both variants are very uncomfortable and an enormous waste of time in my daily work.

 

I know that this subject has already been refused some time ago, but I really want to encourage you rethinking this "not only nice to have".

I hope you understand my situation.

 

Thanx for supporting. CVI is great and I'm using it since more than 17years!

 

Regards

Manfred

When we are on a string variable in the debugger (for instance in the Variables window or the Watch window or the Array View window), there is currently no way to copy or paste the content of said string. It would be nice to have this basic capability.

Moving from CVI 2017 to 2019, I really miss the feature where, in 2017, if the editor cursor was placed within the confines of any variable name, uses of that variable would be highlighted in all the locations it is being used on the display. With 2019 that same feature exists, but you now have to select the entire name of the variable as opposed to just having the single cursor within the confines of the variable name. It really slows things down for me.

 

I still use 2017 a lot of times for that reason, along with the lack of a line delineating the editor proper from the breakpoint diamond vertical area. I can't count how many times I've clicked and defined a breakpoint when all I wanted to do was have the editor cursor to the full left of the display. Argh E10!

It would be great if one could define two colors for user functions, one color for functions declared local to a .c source file, and another color for functions declared globally like in a .h header file or linked file. User-functions are visually the same as all others, black text. Ugh.

If it's too much of a non-compiled linking challenge to apply, at least allow the user to select a section of working code text and change the font color by hand to get to the same place. Being able to change a text chunk background color would be great too. That would be of help to allow the programmer to, say, highlight sections of code that need later work, items for tomorrow, passing along working code to colleagues, etc. 

At the moment the maximum panel and control name length is limitted to 32, if you set them programmatically.

 

Because of longer customer system signal names it is not possible to use them directly as control names. If the maximum length could be raised to 64 or to the maximum label length, it would help to avoid to generate new control names and the additional mapping between costumer system signal names and the generated control names in the test environment.

When editing a panel, you can locate every control in the User Interface Browser at the top right corner of the editor window. In order to highlight some elements in the panels/controls tree, you can collapse all elements and expand only the panel you are interested to. Not exactly a fast and easy process but useful in case of complex UIR files with several panels embedded (and the only way I have found to look at control arrays and their included controls). So far so good.

But if you happen to switch to another window, possibly to revise some code that references the controls you have elaborately selected, and then come back to the UIR editor you will find the UI Browser has reverted to fully expanded and the control you were looking at previously is not event the selected one! That is to say, you've lost all the time spent in tailoring the tree Smiley Mad

In my opinion the UI Browser should retain its state when you switch to another window so that what you were working on is still visible on screen and you don't have to locate it again.

The idea and the code has been originally posted by @nickb here.

This library handles a common need that I handled in a less elegant way as described here.

 

As suggested by @RobertoBozzolo the original code from Nick would be a great addition to the Programmer's Toolbox.

In this way all the users would benefit froma standard tool, without re-inventing the wheel (as I did) Smiley Wink

Hello,

watch expressions support the possibility to monitor changes of variables by placing the variable in the watch window. Unfortunately, at present it seems impossible to put a 2 D variable in the watch window, e.g., x_data [  2  ] [  3  ].

The new idea is to allow this Smiley Happy

Thanks!

Code refactoring is a common need for C developers and availability of eiter automated or semi-automated tools can be really helpful.

Since LabWindows/CVI now uses llvm+clang, probably a tool like "include-what-you-use" can be integrated.

This is the github page for the tool.

 

From the documentation:

"Include what you use" means this: for every symbol (type, function variable, or macro) that you use in foo.cc, either foo.cc or foo.h should #include a .h file that exports the declaration of that symbol. The include-what-you-use tool is a program that can be built with the clang libraries in order to analyze #includes of source files to find include-what-you-use violations, and suggest fixes for them.

The main goal of include-what-you-use is to remove superfluous #includes. It does this both by figuring out what #includes are not actually needed for this file (for both .cc and .h files), and replacing #includes with forward-declares when possible.

 

Here you can find this topic discussed in LabWindows/CVI forum.

Please add NI DataPlugin Capabilities to Labwindows/CVI. Of specific use to me would be the equivalent functionality of the following 2 VIs:


1. Convert to TDM or TDMS.vi


2. List DataPlugins.vi

Hello,

 

CVI 2017 introduced the possibility to change the source code editor font size using the mouse wheel.

 

I suggest to provide this feature also for other IDE windows, e.g. the Build Output or Variable View window.

 

Thanks Smiley Wink

When compiling projects with several files the build output window sometimes is flooded with warning and error messages. Typically I focus on one file at a time and then have to scroll through this long list searching for the file of interest. In such a situation I would consider it useful having an additional menu entry in the right click menu (shown below) such as 'Collapse All', reducing the many lines in the build output window to one line per file, greatly simplifying the search for a specific file.build.png

 

Thanks!

Hello,

when closing CVI or switching between two projects a popup is displayed for every modified file asking if changes should be saved or discarded.

 

clsoeall.png

 

If more than one or two files have been modified I would consider it convenient having a 'Save All' button - or alternatively a checkbox 'Do this for all files'.

Thanks.

In the .NET Controller creator, it would be nice:

  • to be able to give a pre-defined list of the only classes it is useful to wrap,
  • or that CVI memorizes the already checked classes it is useful to wrap

in order to generate the wrapper quickly.

 

Because it is very boring to have to regularly check manually only 22 classes among plenty of not collapsed classes.

a screenshot of the CVI dotNET Controller wizard.png

 

Note: I check only desired classes to reduce the compilation time of the wrapper (which is very big with all its classes: 350 000 lines of code in the resulting C file!), as suggested by the CVI manual.

 

Thanks.

Hello,

there are the menu commands 'Save File' and 'Save All Files', and the toolbar can be configured to show a 'Save File' button, but no 'Save All Files' button exists.

For larger projects I would find it convenient to save all modified files after a successful compile and run and thus would enjoy the possibility of a one-click action via a toolbar button.

Thanks.