RELEASE NOTES LABWINDOWS/CVI VERSION 5.0 RELEASE NOTES FOR WINDOWS Contents Introduction to LabWindows/CVI ...................................................................................4 LabWindows/CVI Installation for Windows ...................................................................4 Minimum System Requirements for Windows 95/NT......................................4 Minimum System Requirements for Windows 3.1 ...........................................
Edit Instrument Attributes .................................................................. 13 Edit Function Tree .............................................................................. 14 Edit Function Panel ............................................................................ 14 Generate Source for Instrument Driver Functions.............................. 14 Go To Definition ................................................................................ 14 Go To Declaration ..............
Changes to the ANSI C Library.......................................................................................28 Time and Date Functions...................................................................................28 Time Zone Bugs Fixed on Windows 95/NT .......................................28 Modifying the DST Rules String: Clarification ..................................29 Changes to the RS-232 Library .......................................................................................
Introduction to LabWindows/CVI These release notes contain installation instructions, system requirements, new features, and updated information to help you begin using LabWindows/CVI, version 5.0. LabWindows/CVI Installation for Windows Before working on your data acquisition and instrument control applications, you must install LabWindows/CVI on your computer. The LabWindows/CVI setup program does this for you in a process that lasts approximately 10 minutes.
Installing LabWindows/CVI on a Computer 1. Make sure that your computer and monitor are on and that Windows is installed. 2. If installing from diskette, make back-up copies of your LabWindows/CVI diskettes and store the originals in a safe place. 3. Close all open Windows applications and leave the operating system in Windows. 4. Insert the installation CD into the CD-ROM drive or insert Disk 1 into drive A or drive B and close the drive door, if necessary. 5.
LabWindows/CVI Programmer Reference Manual for a description of the LabWindows/CVI Run-time Engine. Note The LabWindows/CVI 5.0 Run-time Engine for Windows 95/NT overwrites previous versions of the Run-time Engine. Thus, LabWindows/CVI 4.x-generated executables and DLLs use the new LabWindows/CVI 5.0 Run-time Engine. In addition, the LabWindows/CVI 4.x Create Distribution Kit feature includes the LabWindows/CVI 5.0 Run-time Engine instead of the LabWindows/CVI 4.
Changes to System Requirements If you want to run LabWindows/CVI 5.0 on Windows NT, you must have Windows NT 4.0 or higher. LabWindows/CVI 5.0 does not run on Windows NT 3.51. Note Version 5.0 is the final release of LabWindows/CVI for Windows 3.1. Toolslib Instrument Drivers Table 1 lists new instrument drivers. Table 1. New Toolslib Instrument Drivers Filename Description toolslib\ custctrl\cviogl.fp 3D OpenGL plotting control toolbox\asynctmr.
Table 2. New Sample Projects (Continued) Filename Description hiq\report.prj ActiveX Automation of HiQ 3.1/4.0 to generate a report hiq\xferdta.prj ActiveX Automation of HiQ 3.1/4.0 to transfer data ie\iedemo.prj ActiveX Automation of Microsoft Internet Explorer 4.0 labview\lvdemo.prj ActiveX Automation of LabVIEW 5.0 to run VIs word\worddemo.prj ActiveX Automation of Microsoft Word 97 samples\analysis\ 2dfft.prj Demonstrates using FFT to do a 2D FFT nlinfit.
Table 2. New Sample Projects (Continued) Filename Description samples\sdk\ stdio\demo.prj Uses SDK to change Standard Input/Output window appearance taskbar\taskbar.prj Creates icon on system taskbar printlst\printlst.prj Queries system for available printers glaux\glauxdem.prj Demonstrates using OpenGL Glaux library for 3D rendering samples\sdk\threads\ multipnl\multipnl.prj Demonstrates using UIR panels in multiple threads onepanel\onepanel.
In the LabWindows/CVI development environment, you can debug only DLLs you create in LabWindows/CVI with the DLL Debugging command enabled. Other development environments cannot debug DLLs you create in LabWindows/CVI. When you debug a DLL in LabWindows/CVI, you can use all the standard debugging features, but the run-time checking features are not available.
This feature is useful if you do not want to recompile all your source files each time you load your project. Debugging is not available for files with the O icon, so this feature also is useful when you want to suppress debugging on a source file. Create Dynamic Link Library Dialog Box The ring control Where to Copy DLL allows you to instruct LabWindows/CVI to copy the DLL to a different directory after you create it.
execution only if it was the active window at the time execution was suspended. If a LabWindows/CVI window, such as a Source window, was active at the time execution was suspended, LabWindows/CVI does not reactivate a window. For instance, if you suspend execution by selecting the Break Execution option from the Run menu in a Source window, LabWindows/CVI does not reactivate a window when you resume execution.
Create ActiveX Automation Controller (Windows 95/NT only) Use the Create ActiveX Automation Controller command to generate a new instrument driver for an ActiveX Automation Server. When you select the Create ActiveX Automation Controller command, the Select ActiveX Automation Server dialog box appears, which contains a list of the ActiveX Automation Servers on the current computer.
box, you can add or delete attributes, modify their properties, and enter help text for them. When you apply the changes, the command modifies the source, include, and function panel files for the instrument driver. If you use this command when the text cursor is over the defined constant name or callback function name for one for the attributes, the dialog box appears with that attribute selected in the list box.
Generate IVI C++ Wrapper Use the Generate IVI C++ Wrapper command to generate a C++ wrapper for an IVI driver. Refer to the LabWindows/CVI Instrument Driver Developers Guide for more information on IVI drivers. Context Menus You can access a context menu in the Function Tree Editor window by pressing the right mouse button. The context menu contains a selection of the most commonly used menu commands from the Function Tree Editor window menubar.
this information. In previous versions of LabWindows/CVI, you can specify the daylight savings time period only by modifying the cvimsgs.txt file in the cvi\bin directory. For information on the format of the DST rules string and how the time and date functions use it, refer to the Time and Date Functions section in Chapter 1, ANSI C Library, of the LabWindows/CVI Standard Libraries Reference Manual.
checking for events. Use this function if you require LabWindows/CVI to use more CPU resources so that other applications are given less processor time. Clarifications and Corrections The previous version of the manual incorrectly states that values for ATTR_XOFFSET and ATTR_YOFFSET are expressed in inches. In fact, they are expressed in tenths of millimeters. SetSystemPopupsAttribute and GetSystemPopupsAttribute do not apply to Windows dialog boxes the User Interface Library uses.
By using direct Windows printing, you can take full advantage of the higher resolution printers have over computer screens. This allows panels and controls to be scaled optimally to the printer coordinates, thus eliminating the aliasing that causes blocky text and graph plots. On the other hand, certain printers do not support the raster operations necessary for printing certain kinds of objects. Specifically, many printers are not capable of printing transparent bitmaps.
Using Windows System Printer Settings VAL_USE_PRINTER_SETTING applies to all print attributes for which corresponding Windows system settings exist. You can view and modify the Windows system settings for a printer in the Control Panel. The VAL_USE_PRINTER_SETTING value allows you to use the current settings of the operating system instead of the current values of the User Interface Library attributes.
Obsolete Value for X and Y Resolution For the ATTR_PRINT_XRESOLUTION and ATTR_PRINT_YRESOLUTION attributes, VAL_USE_PRINTER_SETTING replaces VAL_USE_PRINTER_DEFAULT, which is obsolete. The actual value, –1, remains the same. In previous versions of LabWindows/CVI, the VAL_USE_PRINTER_DEFAULT value does not have the same behavior that VAL_USE_PRINTER_SETTINGS does now. If you set an attribute to VAL_USE_PRINTER_DEFAULT, the attribute retains that value. This has two consequences.
Refer to the Using Windows System Printer Settings and Warning of Modified Behavior sections earlier in this document for more information.
New Panel Attributes LabWindows/CVI 5.
Resolution Adjustment When a panel is displayed on a screen with a different resolution than the screen on which you edited the panel, the panel might appear too large or too small. The Edit Panel dialog box in the User Interface Editor contains an option to scale the panel to the resolution of the screen. You can choose to make no adjustment or an adjustment of up to 100 percent. LabWindows/CVI saves your value for this option for each panel in the .uir file.
Changes to Existing Functions For GetPrintAttribute and SetPrintAttribute, the last parameter is the attribute value. In previous versions of LabWindows/CVI, this is an integer. Now the parameter is a variable type argument. This change does not require any modifications to your source code.
the function. The menu ID or menu item ID that you pass to User Interface Library functions is based on a depth-first traversal of all the items in the menu tree, starting at 2. For submenu items, the submenu itself has an ID that is one greater than the item ID of submenu entry in the parent menu. If you save a .tui file in the User Interface Editor in LabWindows/CVI 5.0 or higher and you have an up-to-date include (.
New Error Codes Table 3 lists the new User Interface Library error codes. Table 3. New User Interface Library Error Codes Code Error Message –129 The specified operation can be performed only in the thread in which the top-level panel was created. –130 The specified panel was not found in the .tui file. –131 The specified menubar was not found in the .tui file. –132 The specified control style was not found in the .tui file. –133 A tag or value is missing in the .tui file.
Details of User Protection The Avoid Unassigned Dynamic Allocation in Function Parameters section is new to the Details of User Protection discussion in Chapter 1, LabWindows/CVI Compiler, of the LabWindows/CVI Programmer Reference Manual. Linking Objects and Static Libraries in External Compilers When you use an external compiler to link a project that contains object or static library files created in LabWindows/CVI, there are several points to remember.
To solve this dilemma, you can use CVIRTEHasBeenDetached in the Utility Library. It is always safe to call CVIRTEHasBeenDetached. CVIRTEHasBeenDetached returns FALSE until the main Run-time Engine DLL, cvirte.dll, receives the PROCESS_DETACH message. Consequently, if CVIRTEHasBeenDetached returns FALSE, your DLL can safely call functions in the LabWindows/CVI Run-time Engine to release resources.
Modifying the DST Rules String: Clarification The LabWindows/CVI ANSI C Library uses the DST rules string to determine the period of each year in which daylight savings time is in effect. The Time and Date Functions section of Chapter 1, ANSI C Library, of the LabWindows/CVI Standard Libraries Reference Manual contains an improved discussion of the DST rules string and how you can modify the string. Changes to the RS-232 Library This section contains information on changes to the RS-232 Library.
The ReturnRS232Err function is multithread safe. It returns the error value (zero if successful) from the most recent RS-232 activity in the same thread. Because ComWrt can return before all bytes in the output queue have been written to the port, a write error can occur after ComWrt returns successfully. If ReturnRS232Err is then called, it returns a value that reflects the write error. The rs232err global variable does not reflect the write error.
Table 5. Obsolete DDE Library Error Codes (Continued) Obsolete Code Defined Constant –15 –kDDE_GeneralIOErr –29 –kDDE_Reentrancy New Error Codes Table 6 lists new DDE Library error codes. Table 6. New DDE Library Error Codes New Code Defined Constant –13 –kDDE_NotThreadOfServer –14 –kDDE_NotThreadOfClient Multithreading The DDE Library is now multithread safe when used on Windows 95/NT in a standalone executable or in a DLL called from a standalone executable.
• GetTCPHostName obtains the name of the computer on which your program is running. • GetTCPPeerAddr obtains the IP address of the computer on which a remote client or server is running. • GetTCPPeerName obtains the name of the computer on which a remote client or server is running. • GetTCPSystemErrorString obtains a system message that describes the error that caused a TCP Library function to fail.
declaration of the function pointer. For example, if you declare the function in the external module as int __stdcall SetADouble (double d); and the default calling convention is __cdecl, declare the function pointer as int (__stdcall * SetADouble_FnPtr)(double d) = NULL; Use the Compiler Options command in the Options menu of the Project window to determine the default calling convention.
should be. Thereafter, the value loses another 4,292,967.296 seconds for each 49.71-day period that passes. LabWindows/CVI, version 5.0 corrects this invalid result. Changes to the Easy I/O for DAQ Library The Analog Input functions that have high limit and low limit parameters are modified to allow you to make use of the default limits set in the DAQ Channel Wizard or the NI-DAQ Configuration Utility. These functions are AIAcquireWaveforms, AISampleChannel, AISampleChannels, and AIStartAcquisition.
The ActiveX Automation Library contains functions that do the following: • Help you work with the VARIANT parameters, SAFEARRAY parameters, and return values of the functions in the generated instrument drivers • Free resources dynamically allocated by the generated instrument drivers or by other ActiveX Automation Library functions • Display error information the library functions or the Automation server methods return The ActiveX Automation Library also contains low-level functions that the generat
For the functions CA_VariantGetSafeArray, CA_Array1DToSafeArray, and CA_Array2DToSafeArray, add the following text to the function parameter discussion: Use CA_SafeArrayDestroy to free the returned safe array.
Function Tree Layout for New Functions The following shows the new functions under their function tree classes.
General Information Using LabWindows/CVI Utility Library in the Borland Compiler When you use the LabWindows/CVI libraries with the Borland compiler, the utility.h header file in the Borland include subdirectory might be referenced incorrectly instead of the LabWindows/CVI utility.h header file.