LabVIEW 8.x comes with the User Interface Event Handler template by default to process user interface events. But in some complicated applications, there will be so many jobs to do at the same time, and this default template is not enough. For example, in one of my projects, UUT’s power supply monitor and serial communication with UUT is running all the time while some tests are performed. If only with the default template in this case, the user interface will freeze when the application is performing some time-consuming jobs like serial communication or DAQ.
A few Tips on Improving the Performance of Table Controls in LabWindows/CVI
Here are two tips to improve the performance of table controls:
1. Try to update multiple cells at the same time with SetTableCelRangeVals function. This reduces the overhead of updating cells greatly.
2. If you need to update a single cell at a time (as may be the case if you want to update a row with different datatypes, use the SetTableCellAttribute (…,ATTR_CTRL_VAL,…) function instead of the SetTableCellVal function. Note: This will only make a difference if the table is not the active control on the panel. So if it is the active control, programmatically make another control active before updating the table, and then make the table active again. This will update the table without displaying the updates until the next call to ProcessDrawEvents or upon the exiting the current callback. This is ideal when making repeated updates.
The New Features of LabWindows/CVI Version 9.0
It’s about a month since NI released LabWindows/CVI version 9.0. And some of this version’s new features are very exciting. I think this is a milestone for CVI. The exciting new features include:
New Resource Tracking Window
Locate potential resource/memory leaks earlier in the development process with the Resource Tracking Window. This new tool records and tracks all resources allocated at run time including dynamic memory, file handles, panels, GPIB/TCP handles, and thread pools. With this tool, you can also easily go to source code, view memory, break on deallocation, and log tracked resources to disk for later review.
I think this feature is quite useful in the project development and verification process. Read more »