TestStand for Windows 2000/NT/XP/Me/9x, Version 2.0.1f1 Documentation File (c) Copyright 2002 National Instruments Corporation. All rights reserved. Product and company names listed are trademarks or trade names of their respective companies. April 10, 2002 For patents covering National Instruments products, refer to the appropriate location: Help»Patents in your software, the patents.txt file on your CD, or ni.com/patents. Problems/Changes addressed in TestStand 2.0.1f1 --------------------------------------------- 1) TestStand 2.0.1f1 fixes a problem where a Multiple Numeric Limit Test step may return incorrect pass/fail results in TestStand 2.0.1. The problem can occur when TestStand 2.0.1 opens a sequence file that was run and subsequently saved after running in TestStand 2.0. TestStand 2.0 would have modified the step in the sequence file to contain the pass/fail results from the last run. When you run this sequence file in TestStand 2.0.1, the step incorrectly returns the result previously saved in the sequence file instead of the correct result from the run. The \Components\NI\StepTypes\CommonSubsteps\CommonSubsteps.dll file was modified to fix this problem. Note that this problem only applies to Multiple Numeric Limit Test steps. Problems/Changes addressed in TestStand 2.0.1 --------------------------------------------- 1) The sequence editor tree view properly updates the status bar indicator for the index of the selected step. 2) You can now enable the Paste button in the MainSequence - Preconditions dialog box. 3) The Multiple Numeric Limit Test step type does not contain an incorrect initial Status expression. 4) The Execution Flow tooltip shows the Pre, Post, and Status Expressions. 5) TestStand dialog boxes no longer have incorrect tab colors after installing the LabWindows/CVI 6.0 Run-Time Engine. 6) The main Execution window for all operator interfaces comes to the front when you use the Batch process model and execution is complete. 7) When you invoke the PropertyObjectFile.ReadFile method on the object returned by the Engine.ConfigFile method, TestStand will not crash. 8) The LabVIEW Operator Interface does not report an illegal menu error when you load the application in LabVIEW 6.1. 9) If you execute "SeqEdit.exe /?" from the command line, the sequence editor will not hang. 10) The sequence editor will not hang when you copy a step that calls a LabVIEW-built DLL. 11) The semaphore that protects the UIMessage loop in the LabVIEW Operator Interface releases correctly in error conditions. 12) When you call some DLLs built with LabVIEW 6.1, TestStand no longer crashes. 13) A DLL called from a substep is not unloaded if the Engine.UnloadAllModules method is called when you execute a function in the DLL. 14) When TestStand calls the Exists method on a subproperty of a Multiple Numeric Limit Test step result that does not exist, TestStand does not return an error. 15) The Call Executable step finds the file when the path for the executable contains a predefined system variable, e.g. %ProgramFiles%\Windows NT\ Accessories\WORDPAD.EXE. The Engine.FindFile method replaces the system variable paths with the actual paths. 16) The MFC Modal Dialog Box example, \Examples\ModalDialogs\MFC, works correctly on all systems. 17) The options available for the Direction ring control on the Column/Parameter tab in the Database Options dialog box are correctly restricted based on the type of the currently selected statement. 18) When you do not specify a source code control provider in the Step Properties dialog box for a workspace, changing tabs will not generate an error. 19) If a large array is defined as a Station Global, Sequence File Global, or Local variable in the Edit Numeric Limit Test dialog box, TestStand will not take an unusually long time to switch to the Data Source tab. 20) You can now specify the Help and Window menus as menu hints for the Configuration and Execution entry point sequences. 21) The Assemble Test VIs tool does not produce an error when you try to package a VI that has its priority set to subroutine. 22) The Assemble Test VIs tool does not generate an error when you try to package a sequence that does not contain steps. 23) The UIMsg_StartExecution object correctly returns the reference to the thread that generates the message. 24) The LabVIEW Operator Interface does not produce an error when you log out and shut down after you start and complete an execution. 25) When you install TestStand 2.0.1 over an existing TestStand 1.0.3 installation, TestStand correctly retains the Show Hidden Properties option in the Station Options dialog box. 26) TestStand correctly retains DLL code module prototype and parameter information for custom step types created in older versions of TestStand. 27) The LabVIEW Operator Interface correctly honors debugging privileges for the Technician user profile. 28) The Convert LabVIEW Test Executive Sequence tool correctly converts sequences created using LabVIEW Test Executive 5.1 in Windows NT. 29) Calling RunState.Engine.GetUIMessagePollingEnabled will not always return True from within the sequence editor. 30) The TestStand IVI step type works correctly with the following IVI specific drivers: NI-SWITCH, NI-DMM, NI-SCOPE, and NI-FGEN. 31) The SQL Statement step type returns a -1 value when the step is unable to determine the number of records returned. Typically, this occurs when the default cursor location is server. 32) The format of the Number property is no longer lost in some situations after you save and reload a sequence file. 33) TestStand now ships the following LabVIEW and LabWindows/CVI add-on packages: - LabVIEW SPC Toolkit, Rev. C - LabVIEW Database Connectivity Toolset 1.0 - LabWindows/CVI SPC Toolkit 1.1.1 - LabWindows/CVI SQL Toolkit 2.05 34) You can now include any character in a TestStand project folder name. Previously, you could not use spaces, periods, commas, etc.. 35) The TS_StartModalDialog and TS_EndModalDialog functions correctly return invalid handle errors when appropriate. 36) The TS_OpenFileDialog function properly frees elements for the Absolute Path Array parameter in the call to the TS_EngineDisplayFileDialog method. 37) The TSUtil resource string functions now take Engine or Sequence Context handles. 38) The TS_EndModalDialogAndDiscard function does not hang in specific circumstances when you use Windows 2000/NT. 39) You can now create a relative path control when you use the TSUtil function, TS_RelativePathCtrl_Create. 40) The LabVIEW Structure Passing example, \Examples\ StructPassing\LabVIEW, correctly locates all dependent DLLs. 41) When a remote execution attempts to attach the ResultList from a remote system to the local system, TestStand does not return an error. 42) When you use the new LabWindows/CVI 6.0 controls, the TS_LoadPanelResourceStrings function does not return an error. 43) The Multiple Numeric Limit Test step type correctly sets the Status property rather than the StatusExpression property. 44) Boolean values are correctly stored in IVI steps as True or False on non-English systems. 45) The IVI/VISA "Session to Refnum" and "Refnum to Session" VIs have been removed from the TestStand palette, and replaced with "Session to Refnum" and "Refnum to Session" functions. 46) When you log data to a database, the values in the ORDER_NUMBER column are in order when you use a shared data link from multiple executions. 47) The FileDialogDirHistoryList Engine property works correctly. 48) IVI examples work correctly with NI-FGEN devices. 49) Database logging errors are correctly reported if an error occurs when you evaluate expressions for step results. 50) TestStand obtains the correct number of references to reentrant VIs. 51) Selecting Browse Sequence Context from the shortcut menu of an array property element no longer gives an error. 52) Cleanup steps execute after a run-time error occurs in a client sequence file and the model contains a ProcessModelPostResultListEntry callback. 53) TestStand correctly logs arrays of custom data types whose element is an intrinsic value such as Number, String, or Boolean. 54) When you create a subproperty in a new data type property object, Teststand does not generate an error. 55) The Differences window correctly displays parameters with different flags in the left-hand pane. 56) You can enter the numeric values NAN, INF, and IND correctly in several TestStand dialog boxes. 57) When the worskpace read from disk does not become the current active workspace, the Workspace.GetAbsolutePath method does not contain an empty value. 58) A type mismatch error no longer occurs for the TestSocket data type when type checking for parameters is enabled in any process model. 59) You can now disable the Primary Key option on the Column/Parameter tab in the Database Options dialog box once it is enabled. 60) The PropertyObject.Evaluate method does not fail when you evaluate a property path that ends with a subproperty name 'Value', such as 'RunState.Root.Locals.UUT.SerialNumber.Value'. Previously, this was supported in TestStand 1.0.x. 61) The DLL Flexible Prototype Adapter does not add an extra reference to ActiveX reference variables passed as parameters. 62) The All Sequences Listview properly refreshes and displays the list of sequences after you enable/disable the Show Hidden Properties option in the Station Options dialog box. 63) Threads waiting for an internal lock to run non-reentrant VIs now process Windows messages to avoid deadlock cases. 64) The Step.Results.Units value is included in the report when a Property Loader step sets the value at run-time. 65) When you execute a Property Loader step type, the Property Loader step returns the correct number of updated properties. 66) If the default database logging schemas encounter a step result for the Numeric Limit Test or String Value Test steps and the steps do not contain the comparison result property, TestStand will not return an error. 67) The limit flag for the NumericArray property in the Multiple Numeric Limit step type is now set correctly. 68) When you shutdown using the Parallel process model and the sequence file property Sequence File Globals is set to All Executions Share the Same File Globals, TestStand does not produce an error. - TestStand 2.0 released Sequence File Globals when the execution closed. - TestStand 2.0.1 releases Sequence File Globals when the execution completes. 69) When you load a file that contains an instance of a new type, and the new type contains a subproperty of a previously loaded type that has changed, the type conflict is properly resolved. 70) The values in the API wrappers for the following OpenFileDialogOption constants now match the TestStand API: Environment Constant Name Value ---------------------------------------------------------------- LabVIEW OpenFile_ResolveNonExistentFile 0x8 (8) OpenFile_FileMustNotExist 0x10 (16) CVI and MFC OpenFile_ResolveNonExistentFile 0x8 (8) OpenFile_FileMustNotExist 0x10 (16) OpenFile_UseAbsolutePath 0x83 (131) OpenFile_UseRelativePath 0x5 (5) - You can find the LabVIEW constants in LabVIEW\vi.lib\AddOns\TestStand.llb\ TS API Numeric Constants.vi. - You can find the LabWindows/CVI constants in \API\CVI\tsapicvi.h. - You can find the MFC constants in \API\MFC\tsapimfc.h. 71) If you attempt to assign a property object that already has a parent to another container, the SetPropertyObject method will return an error. Typically, you call this method only for objects that you create. 72) The examples in \Examples\Demo\LabVIEW have been packaged using the Assemble Test VIs tool. You can now run the examples without a LabVIEW development system installation. 73) The description for the Call Executable step in the sequence editor includes the arguments the step passes to the executable. 74) The Property Loader step type now requires a full word match for start and end markers. - In TestStand 2.0, the Property Loader step read lines from a text file within markers based on a character by character match, i.e. the string "MARKER1" matches the file marker of "MARKER12". - In TestStand 2.0.1, the Property Loader step requires the match to be performed on a word boundary, i.e. "MARKER1" matches "MARKER1 REST-OF-LINE". 75) The Specify Module dialog box for the ActiveX Automation Adapter now opens HTML help files that use the .chm file extension. 76) The Value of the StepType_LimitLoader constant is "NI_VariableAndPropertyLoader". - You can find the LabVIEW constants in LabVIEW\vi.lib\AddOns\TestStand.llb\ TS API String Constants.vi. - You can find the LabWindows/CVI constants in TestStand\API\CVI\tsapicvi.h. - You can find the MFC constants in \API\MFC\tsapimfc.h. 77) The installer for the Automotive example, \Examples\UserSolutions\Automotive, works correctly. 78) TS_InteractiveContextAsPropertyObj is defined differently in the tsapicvi.c and tsapicvi.h files. 79) The wait cursor is visible when you delete a large array type variable. 80) The Delphi and Visual Basic Operator Interfaces now disable the open workspace menu when you are not logged in. 81) The Delphi Operator Interface uses an intuitive, multiselect listbox and does not contain a memory leak. 82) TestStand does not display an error message after you select the Help»TS Web Resources menu item when Netscape is the default Web browser. 83) The LoadPanelResourceStrings function now supports LabWindows/CVI tables. In the table, you can replace row/column labels and string cell values. 84) The /Examples/Database/WritingAndReadingTableData.seq sequence correctly discards the create and drop table statement handles fixing the previous memory leak. 85) The NotDeletable edit flag is now honored for step and data types in the sequence editor. 86) When you select Break All while an execution is completing, the sequence editor does not return an error. 87) You can no longer set the shared or unstructured flag for a step type in the sequence editor. 88) The DLL Flexible Prototype Adapter does not show duplicate function names for DLLs which have type library information that are built with Microsoft Visual Basic. 89) You can now rename object array elements if the array is contained within a type in the sequence editor. 90) The sequence editor displays escaped characters as spaces, instead of box characters. 91) The sequence editor properly disables the appropriate controls when you reenter the Numeric Format dialog box and the Custom Format option is enabled. 92) The Read and Serialize methods for the Property Object class automatically increment the change count for the object so that the sequence editor refreshes the display accordingly. 93) Case changes in data type names are properly saved to file. 94) The sequence file converter menus are properly enabled in the Delphi Operator Interface. 95) When you clone a SequenceFile object, the file is properly placed the cache. 96) The LabVIEW Operator Interface does not issue an extra release on model sequence files. 97) You can now reload a loaded sequence file after the file is externally modified in the LabVIEW Operator Interface. 98) The TestStand engine Open File dialog box executes within a single threaded apartment thread to ensure that it properly displays the drives and contents of the MyDocuments folder. 99) The sequence editor properly activates windows when you use the More Windows option in the Windows menu. 100) The Delphi Operator Interface enables the Resume All menu option when multiple executions are paused. 101) During an interactive execution, TestStand reexecutes the current step when the PostStepFailure callback sets the value of Runstate.NextStepIndex back to the step that caused the failure. Setting Runstate.NextStepIndex to a value other than the failing step or the next step is not supported. 102) In the LabVIEW Operator Interface VI, TestStand - Build Tools Menu.vi, the following enums are used as input to the IEngine.GetToolMenuItemInfoEx() method: - In TestStand 2.0 the enums are: GetSeqFile_UpdateFromDisk GetSeqFile_PreloadModules - In TestStand 2.0.1 the enums are: ToolMenuItem_SeparatorBefore ToolMenuItem_Enabled 103) The Verify Prototype button on the DLL Flexible Prototype Adapter properly finds the function prototype after lines which have C-style commented lines. 104) LoadPanelResourceStrings supports on/off text in binary switches and toggle buttons. 105) The LabWindows/CVI Operator Interface supports the runEntryPoint command line option. 106) The GetSequenceFileEx method handler type constants are incorrect in the LabWincows/CVI TSAPI function panel file. 107) The DLL Flexible Prototype Adapter Specify Module dialog box does not display an error when you add a function call that uses a struct type parameter. Previously, an error indicated that the parameter information could not be read due to an unsupported type. The dialog box now warns the user and uses integer as the parameter default. 108) The Edit dialog boxes for IVI step types now properly display variables in the ring control after creating a new variable using the Browse Sequence Context dialog box. 109) The Database Options command in the Configure menu no longer fails if the Disable Result Recording for All Sequences option is enabled in the Station Options dialog box. 110) The LabWindows/CVI TSUTIL functions, TS_SetCtrlToPropertyValEx and TS_SetPropertyToCtrlValEx, support all numeric LabWindows/CVI control datatypes. 111) When you edit and increment the version of a type, the modified flag is automatically reset and clearly displayed on the Version tab in the Type Properties dialog box. 112) The sequence editor does not truncate the details for error messages that it displays at 1023 characters. 113) When you highlight a syntax error, the combo box expression controls on the IVI step type dialog boxes dropdown correctly. 114) The Sequence Adapter does not leak memory when a Sequence Call step specifies a value for the BreakOnEntry and ExecutionTypeMask settings. 115) TestStand properly saves any changes to the workspace source code control provider in the project files. 116) TestStand allows a step type to mark the TS subproperties as shared. 117) When you pass an invalid path, the Engine FindFile method returns an error. 118) TestStand properly re-evaluates the status of a step after calling a Post Step Failure callback. 119) You can now reorder the indices of the Data Source expressions, using the Multiple Numeric Limit Test step type. 120) The sequence editor does not crash if you close an Execution window before TestStand completes generating the report. 121) The path controls on the Sequence File Properties and Specify Module dialog boxes properly refresh when the Browse button adds a new directory to the search directories. 122) The Edit Numeric Limit Test dialog box automatically updates the numeric format when one of the limits is changed, unless the format is specified. 123) TestStand does not interpret the file version 0.0.0.0 as newer than 0.0.1. 124) TestStand correctly displays type names after you merge types using the Rename option. 125) The Sequence Editor properly displays an error when the system clipboard is locked by another process.