Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 6 Next »

TSENTRY Real-time Control System Platform
http://www.tsentry.com
Version, Change, and Upgrade Information

TelePro, Inc.
3811 Illinois Ave. Suite 100
St. Charles, IL 60174
(630) 513-9790
(630) 513-9794 Fax
http://www.tpri.com

Following is information about each official TSENTRY release, including a description of all the changes included with each release and instructions for upgrading from one version to the next. 


Upgrading TSENTRY

 Instructions

In general, upgrading TSENTRY from one version to another requires the following steps:

  • Stop any running TSENTRY processes

  • Backup existing TSENTRY files

  • Install new version of TSENTRY

    • For versions 2.29 and below, copy new \tpriNtRt\ directory over existing directory

    • For versions 3.00 and above, run the install wizard

  • Rebuild all application processes, screens, and the data dictionary

 

In some cases, however, additional changes are required; these are listed below by version.  In some cases some steps must be taken before performing the above instructions, so please read below before continuing.  If upgrading across more than one version (e.g. v1.4 to 2.0), steps for intermediate versions must also be performed.

TSENTRY Versions

 Overview

The major TSENTRY versions reflect support for the various versions of the Microsoft Visual Studio compiler:

Visual Studio Version

TSENTRY Version

Visual Studio 2017

TSENTRY v9.xx.x.xxxx

Visual Studio 2015

TSENTRY v8.xx.xxxx

Visual Studio 2013

TSENTRY v7.xx.xx

Visual Studio 2010

TSENTRY v6.xx.xx

Visual Studio 2008

TSENTRY v5.xx.xx

Visual Studio 2005

TSENTRY v4.xx.xx

Visual Studio .NET 2003

TSENTRY v3.xx.xx

Visual Studio 6.0

TSENTRY v2.xx & v1.xx

Version Details

 2022/7/20 - v9.47.6.718

Changes:

  • Fix logging of ProbeSvr variable changes (TSEN-38)

 2022/6/6 - v9.47.5.703

Changes:

  • Made various changes to the ProbeSvr task:

    • Added check to prevent message buffer overrun (TSEN-21)

    • Added requirement for Initialize(..) and Shutdown(..) methods in custom probe sources (TSEN-23)

    • Added support for writing new values back to custom probe sources (TSEN-27)

    • Added support for relaying requests to other probe servers (TSEN-25)

    • Fix server variable reference counting (TSEN-24)

  • Added new ProbeMir standard task (TSEN-29)

  • Increased maximum allowed sizes for data dictionary (TSEN-28)

  • Modified ControlLogix Producer/Consumer driver to use PLC’s Requested Packet Interval (RPI) when producing messages sent to PLC (TSEN-26)

  • Fixed unhandled exception in tpriGsmDDCom::saveAllStructs(..) (TSEN-30)

  • Fixed save/restore of bool types in data dictionary (TSEN-31)

  • Restructured LogMsg library to facilitate usage outside of Tsentry (TSEN-35)

  • Refactored tpriCreateTimer(..) so that multiple independent timers can be created from a single task (TSEN-36)

  • Updated RTX64 4.1 à 4.2

 2021/9/28 - v9.47.4.613

Changes:

  • Automatically set Windows timer resolution for tasks with rep rates less than 50 ms (TSEN-20)

  • Added a ValidatingClick event to SelectButton, CmdButton, LinkLabel, and Shape (TSEN-22)

  • Added deployment of OPC library and Client+Server applications (for x86 only)

  • Updated RTX64 4.0 à 4.1

 2021/4/30 - v9.47.3

Changes:

  • Added TstartMgr utility

  • Fixed Tsecurity installer to no longer create a local account named LOCALSYSTEM

 2020/11/13 - v9.47.2

Changes:

  • Added overload to TPRI.Process.GetState(..) in TPRI.NtRtControl.dll to specify application name

  • Fixed converting legacy trend data files

  • Removed support for v1.70 and older trend data files

  • Enable graphics double-buffering for LevelDisplay HMI control

  • Fixed 64-bit issue in ControlLogix producer/consumer library

 2020/8/19 - v9.47.0

Changes:

  • Updated versioning to 4 digits (Major.Minor.Build.Rev)

 2020/5/28 - v9.46

Changes:

  • Added support for RTX64 4.0

  • Updated tpriProcMgr tracking of active processes

  • Created new wrapper methods in tpriNtRtEx.dll

    • tpriCreateProcess

    • tpriOpenProcess

    • tpriGetExitCodeProcess

    • tpriCloseHandle

    • tpriTerminateProcess

  • Added various enhancements to the data dictionary & GsmPifBld:

    • Added support for bool types

    • Added support for bitfields

    • Added support for embedded structures

  • Added various enhancements to the GsmCsBld utility:

    • Added support for bool types & bitfields

    • Added helper methods to every structure class:

      • Allocate()

      • Zero()

      • Copy(..)

    • Added FromHexString(..) extension for strings

  • Added new tpriTimer functions:

    • Act*Timer(..)

    • Exp*Timer(..)

 2020/1/14 - v9.45

Changes:

  • Fixed variable entry on TriggerMgr screens

 2019/11/19 - v9.44

Changes:

  • Fixed trending structures size for compatibility between 32-bit and 64-bit library versions

  • Added Cryptor class to NtRtControl

  • Made various changes in the GsmCsBld utility:

    • Add IEnumerable<T> interface to array classes

    • Add comments to generated C# code using data dictionary variable descriptions

    • Add GSM boolean extension methods

  • Made various changes to GePlc driver:

    • Retry logic for handling errors during sending data

    • Additional debug log messages

    • Do not explicitly set socket to non-blocking

    • Set initial connection port pseudo-randomly

  • Added logging of Tsentry uptime

  • Increased limit of files paths used in sysProcs.ini file

 2019/2/26 - v9.43 / v8.43

Changes:

  • Added GsmCsBld utility

  • Exposed various methods in TPRI.NtRtControl.dll required for C# Tsentry tasks:

    • TPRI.Process.Create()\

    • TPRI.Process.PrIni(..)

    • TPRI.Process.PrWait()

    • TPRI.Process.GetState()

    • TPRI.Process.SetDispStatus(..)

    • TPRI.Process.Destroy()

    • TPRI.GsmDDCom.Create()

    • TPRI.GsmDDCom.MapGsm(..)

    • TPRI.GsmDDCom.Destroy()

  • Added support for Tsentry restart request

  • Added DelayBool utility function

  • Added 'Localizable' attribute to the text properties of various HMI controls

  • Added ability to update Texplore titlebar text

 2018/6/28 - v9.42 / v8.42 / v7.42

Changes:

  • Added support for VS2017 & 64-bit

  • Made various changes in the TPRI.NtRtControl assembly:

    • Fixed Debug::LogMsg(..) to properly support custom message queues

    • Added GsmDDCom::GetVarPtr(..) method

  • Changed Tsecurity authentication to call LogonUser(..) using LOGON32_LOGON_NETWORK instead of LOGON32_LOGON_INTERACTIVE

  • Fixed LogData(..) to properly handle buffer as binary data instead of a text string

  • Fixed ProbeSvr to prevent data corruption resulting from network delays and/or time skew

  • Removed DbgHelp.lib from Tsentry installation (now included on all Windows platforms)

 2017/1/16 - v8.41 / v7.41

Changes:

  • Added support for VS2015 & RTX2016

  • Made various changes to the Texplore application:

    • Fixed download of Texplore assemblies from host to prevent conflict if Texplore is already running with an older version of the assemblies

    • Fixed sequencing to return to ‘Connect’ screen if unable to start an HMI application

    • Fixed initialization of window positions from .ini file when automatically connecting via command line parameters

    • Fixed initialization of window size and position for normal, maximized, and kiosk modes

    • Disabled popup message if exception while saving Texplore settings to .xml file

    • Added option to specify different computer (from HMI host) for retrieving probe data

  • Made various changes to the ProbeX control/screen:

    • Allowed paste of a textual list of variable names

    • Fixed flickering/delay when adding or removing a large number of variables from the list

    • Fixed corruption of grid data when loading a very large probeset

    • Fixed display of 0’th element of array in graph

    • Fixed cut/copy/paste shortcut keys when editing variable names & values

    • Fixed left-justify of all text in cells

  • Made various changes to the TPRI.Debug class in the TPRI.NtRtControl assembly:

    • Fixed crash if calling Initialize(..) while Tsentry is not running

    • Added overloaded Initialize(..) function to support usage in processes that are not included in the sysVars.ini file

  • Added TPRI.GsmDDCom.SetVariable(..) method in the TPRI.NtRtControl assembly

  • Added auto-validation of min/max to TPRI.HMI.Controls.TextBox

  • Fixed TPRI.HMI.Controls.ComboBox auto-submit logic so that new value is only sent to host after the selection change is committed

  • Fixed TPRI.HMI.Controls.StateList to support use of control on sub-panels instead of only on forms

  • Fixed TPRI.HMI.Controls.DataSetLoader to ignore the mouse wheel when the dropdown list is collapsed

  • Fixed TPRI.HMI.Controls.LogMsg control so that it automatically reconnects if LogMsgName is changed at runtime

  • Fixed TPRI.HMI.Controls.StaticArrayGraph2D control so that data at x=0 is properly displayed

  • Added TPRI.HMI.Controls.DBViewer control

  • Removed deprecated controls and dependencies from the TPRI.Core assembly

  • Updated ComponentOne version to v2.6.20073.357

  • Made various changes to the ProbeSvr process:

    • Converted connection handling from dedicated threads to a thread pool

    • Fixed TCP/IP listen logic so that all pending connections are accepted at once instead of once per loop of the main thread

    • Fixed memory leak when handling requests for array or string variables

    • Added delay before retry if error opening listen socket

  • Fixed printing of Unicode text when displaying current NtRtSvc configuration parameters

  • Made various changes to the tpriGsmDDCom library:

    • Fixed getVarArrDimCnt(..) and getVarArrDim(..) to support complex types like array typedef’s

    • Fixed formatting of 64-bit integers when converting to a string

  • Added support for message number, object name, and user to the LogMsg(..) function library

  • Fixed concurrency issue when calling LogMsg(..) from multiple threads

  • Fixed tpriGsmOpcItem::ReadGsmOpcItem(..) so that value is only written back to global common if quality is ‘good’

  • Updated tpriVmic driver so that latest VMIC 5565 drivers are used in Win32 mode

  • Made various changes to the Tsentry and Tsecurity installers:

    • Fixed created shortcuts so that they have working folders configured correctly

    • Added silent installation command line switch (/S)

  • Fixed tpriProc::Create(..) so that the C runtime error report mode is set properly when compiling applications in debug mode vs. the release version of tpriNtRt.lib

  • Change RDCHANDLE typedef used by tpriRdc classes from unsigned to signed in order to support legacy code setting the value to -1

  • Fixed logging of stack trace information after crash (bug introduced with conversion to Unicode)

  • Fixed parsing of historical trend trigger files with headers larger than 16 kB

 2014/8/13 - v7.40.00

Changes:

  • Initial release for VS2013

  • Modified installer to deploy Release-mode versions of all executables and libraries

  • Rebuilt all executables and libraries for Unicode instead of MBCS

  • Changed all projects to use CRT and MFC as shared DLLs instead of static libraries

 

Upgrade Instructions:

  • Modify any application Visual Studio project properties to use CRT and MFC as shared DLLs instead of static libraries:

    • Configuration Properties à General à Use of MFC:
      Use Standard Windows Libraries if not using MFC
      Use MFC in a Shared DLL if using MFC

    • Configuration Properties à C/C++ à Code Generation à Runtime Library:
      Multi-threaded DLL (/MD) for Release builds
      Multi-threaded Debug DLL (/MDd) for Debug builds

 2014/5/30 - v6.35.00

Changes:

  • Made various changes to the Texplore application:

    • Moved Texplore.exe.config file from same folder as Texplore.exe to user-specific folder

    • Fixed restore of minimized/maximized window state when application is stopped & restarted

    • Added automatic retry of host connection after error

    • Fixed display of new & old windows when spawning a new instance of the executable

    • Automatically download all sub-folders and files when downloading application to client workstation

  • Removed user interface window from TrendSrv process

  • Fixed cleanup of socket handles in tpriCleip class

 

Upgrade Instructions:

  • Remove any Texplore.exe.config file from the folder(s) used to download Texplore & the associated HMI DLLs to client workstations (these folder are typically %TSENTRY_SYSDIR%\%TSENTRY_SYSNAME%\HmiConfig\*\Texplore.exe.config) since these Texplore.exe.config files are no longer used and if corrupted can cause problems for the application

 2013/12/18 - v4.34.00 / v5.34.00 / v6.34.00

Changes:

  • Made various changes to the TrendX screen & controls:

    • Changed automatic axis rescaling to use data between cursors rather than entire trend width

    • Added Rescale all axes popup menu item

    • Reworked logic for reallocating axis percentages when changing value for single axis

    • Fixed automatic update of displayed axis percentage when dragging axis in graph

    • Fixed TrendX error message following restarts when playing data backwards in ‘<’ mode

    • Fixed bug in auto-abbreviation of variable names listed in a trendset

    • Fixed display of time & axis min/max popup boxes when viewing on non-primary monitor

  • Fixed data dictionary form to properly display dictionary browser popup window when viewing on non-primary monitor

  • Fixed Texplore/Tsecurity handling of DefaultPrivileges key in application configuration XML files when Tsecurity is disabled

  • Made various changes to the Tsecurity GetPrivileges(..) function:

    • Fixed bug that would incorrectly set an error flag in SAK instead of return status

    • Added code to reset returned SAK and privileges upon function entry so that default values are returned in these variables in case of error

  • Fixed crash in Tsecurity service when authenticating domain users on Windows 2008 and later

  • Made various changes to the Texplore application:

    • Fixed saving/restoring of window size & position

    • Added code to automatically save/restore last 30 host/application connections & display in drop-down box on the connection page

  • Changed TPRI.HMI.Controls.Prober class ProberUpdated event declaration to explicitly specify a ProberUpdatedEventArgs argument instead of the generic EventArgs

  • Changed NtRtInfo.ReadFile(..) to open file for both read & write sharing

  • Added popup message to TPRI.HMI.Controls.LogMsg if error retrieving LogMsg text file

  • Added Prober and WriteProber properties to the TPRI.HMI.Controls.SelectButton class

  • Added new tpriLicense::VerifyWithPCName(..) and TPRI.License.VerifyWithPCName(..) functions

  • Added new tpriOpcClient class library

  • Added new TPRI.NtRtControl assembly

  • Fixed buffer overruns when logging messages longer than 512 bytes via LogMsg(..)

  • Made various changes to the tpriProc class:

    • Added new Attach(..) function

    • Added new getGroupState(..) function

  • Made various changes to the tpriGsmDDCom class:

    • Changed getVarDesc(..) function so that structure-based description is returned if variable is defined in the sysVars.ini file but description is left empty

    • Added new getVarTypeName(..) overloaded method

    • Added new getBaseVType(..) method

    • Added structDef::getStruct(..) method

    • Added structDef::getBaseStruct(..) method

    • Modified getVarArrDim(..) and getVarArrDimCnt(..) to retrieve parameters for base structure type to support cases where one structure is typedef’ed to another

    • Changed structDef::getBaseVType(..) to set VT_ARRAY bit instead of returning VT_ILLEGAL for array types

    • Added new additional optional parameters to the writeVariant(..) function

    • Added new logWriteVar(..) function

  • Fixed size of buffer passed to getsockopt(..) functions in tpriRdcTcp::open(..) function

  • Made various changes to the GsmPifBld process:

    • Added code to replace defines after closing braces (‘}’) and before the end of the line to remove attribute decorators required by non-Microsoft compilers

    • Fixed handling of commented pre-compiler directives in sections of header files already excluded due to a previous #if xxx statement

    • Fixed handling of #elif defined statements

    • Fixed parsing of compiler directives to prevent buffer overrun

    • Fixed string manipulation routines to guarantee proper null termination

  • Fixed NtRtMgr process so that process groups are correctly shown as stopped when shutting down the system

  • Fixed tpriCleanDir(..) function to prevent corruption of passed search pattern buffer

  • Fixed buffer overrun bug in tpriTrigFile::readTriggerDef(..) that would use previously loaded data for the current file

  • Added optional parameter to tpriCleip::SetTimeOut(..) function to set the internal polling interval

  • Changed buffer pointer parameter in DumpHex(..) function from signed/unsigned char * to void *

  • Added new tpriPing class to tpriNtRt and tpriNtRtApp libraries

  • Added support for hard real-time RTX 2012 under VS2010

  • Changed installers from Astrum to NSIS

 2011/5/3 v4.33.00 / v5.33.00 / v6.33.00

Changes:

  • Fixed TPRI.PIO.ControlLogix class to force cleanup of unmanaged memory

  • Added new tpriLicense class to the tpriNtRt library

  • Added new TPRI.License class to the TPRI.NtRtNET library

  • Fixed internal probe libraries to properly handle non-ASCII characters in string variables

  • Removed tpriCryptor class from RTSS version of tpriNtRt and tpriNtRtApp libraries

  • Fixed internal handling of process Pulse Timeout parameter to correct operation in various scenarios

  • Decreased priority of RTSS timer and shutdown threads from 127 to 120 to prevent conflict with higher-priority interrupt handlers

  • Removed dynamic memory allocation from LogMsg(..) function internals

  • Fixed TsecurityCfg application to prevent crash while editing browse users

  • Remove digital signature from ComponentOne assembly to prevent delay when opening HMI screens on computers w/out an internet connection

 2011/3/8 - v4.32.00 / v5.32.00 / v6.32.00

Changes:

  • Added functions to convert TrendSets to ProbeSets and vice-versa and added popup menu links to TrendCtrl and ProbeX TPRI.HMI.Controls classes

  • Fixed logic asking user to save changes to ProbeSet/TrendSet/TriggerDef to first check if user has privileges to save file

  • Fixed internal screen history tracking logic in Texplore when screen change is cancelled

  • Fixed initialization of internal pointers within TPRI.Trending.TrendSet classes

  • Added logic to TPRI.HMI.Controls.TrendCom to automatically resize internal buffers for extremely large TrendSets

  • Optimized grid repainting when performing multiple row operations in the TPRI.HMI.Controls.ProbeX control

  • Added GetLogMsgList(..) method to the TPRI.NtRtInfo.INtRtInfo interface and host/client classes

  • Added popup menu items to the TPRI.HMI.Controls.LogMsg control to support the download and display of old log files

  • Made numerous changes to the TPRI.HMI.Controls.TrendCtrl control:

    • Changed logic for default variable label to use shortest possible unique string instead of fully qualified variable name

    • Fixed axis min/max/pct editor control to automatically place focus in axis minimum cell rather than leaving active edit on axis label cell

    • Modified popup menu to display current trend source as part of text for “Change Trend Source” menu item

  • Modified initialization TPRI.HMI.Forms.TrendSrcSelectForm to automatically highlight last selected trend source

  • Modified NtRtMgr process and TPRI.NtRtCmd.ShutdownSystem(..) HMI function to support completely shutting down or rebooting the host system

  • Made various changes to the GsmPifBld process:

    • Added support for header file-based variable descriptions stored in the sysStruct.ini file for use by the data dictionary

    • Fixed processing of comments within compiler directives

    • Added support for #if defined, #if !defined, and #if !XXX compiler directives

    • Added deadlock detection to prevent process from entering infinite loop

  • Made various changes to the tpriGsmDDCom class:

    • Added & modified numerous functions to add support for header file-based variable descriptions

    • Increased size of memory allocated for data dictionary global common

    • Added static parseValue(..) functions to each varDef-derived class

    • Fixed internal data dictionary lookup function to properly indicate when a structure or variable property is not defined

    • Changed varDef::getDefaultFormat(..)  to return simplified formatting strings

    • Changed formatting for double-precision floating point variable return by varDef::getDefaultFormat(..)  to explicitly request 16 digits of precision

    • Fixed parsing of sysVars.ini file to truncate variable descriptions longer than the maximum allowed string length rather than generating an error

  • Fixed parsing of long command line parameters from sysProcs.ini in the tpriProcMgr class

  • Made various changes to the VarIniChk application

    • Added code to automatically populate variable descriptions using new data dictionary functions that extract comments from header files

    • Corrected default formatting string for 64-bit integers to “%I64d”

    • Changed default formatting string for single (4-byte) floating point variables to “%g”

    • Changed default formatting string for double (8-byte) floating point variables to “%.16g”

  • Fixed tpriIniFile::extractIniString(..) to prevent accessing outside of original string when called repeatedly processing a single buffer

  • Modified tpriXmlFile::WriteNodeStruct(..) to support outputting structure entries directly under the root XML node

  • Made numerous changes to probe system components:

    • Modified client-side message processing to prevent deadlocks when both client and server have large amounts of data to transmit

    • Fixed client-side mutual exclusion bug that could cause application to crash while processing variable updates from host

    • Modified tpriProbeSrcVar class to add support for locally-allocated variable data and updated internals of ProbeSvr process to support these variables

    • Optimized memory allocation and functions for internal variable collections

    • Added SendTimeout parameter to sysProbe.ini initialization file for ProbeSvr process

  • Made numerous changes to historical trending components:

    • Fixed playback routines so that variables recorded at different rates are properly synchronized in time when displayed in TrendX

    • Fixed data collection so that variables are saved to the historical trending file at the requested sampling period

    • Fixed timestamps of real-time data buffered to disk-based circular files

    • Fixed timestamps of recorded data so that they are not skewed by the extra invalid points added to the end of the file to fill the final 8-point block

    • Fixed routines that convert binary historical trend file to text so that invalid data points at the end of the buffer are omitted from the output text file

    • Fixed TriggerConditionList and TriggerTrendList to properly configure trend source for first variable when adding multiple variables with different trend sources from data dictionary

  • Made numerous changes to various Tsecurity components:

    • Added support for named privileges defined in the ASCF’s

    • Added GetPrivileges(..) and GetAppPrivileges(..) functions to the TPRI.Tsecurity.ITsecurity interface

    • Added Connect(..), GetPrivileges(..), and GetAppPrivileges(..) functions to the TPRI.Tsecurity.Client class

    • Added TPRI.Tsecurity.Controls.PrivilegePropertyEditor class for use in selecting required privilege levels in properties of numerous HMI controls

    • Added storage of full user names in ASCF’s

    • Added user access report generation in the ASCFEditor application

    • Added HostName, Initialized, and Connected properties to the TPRI.Tsecurity.Client class

    • Added NotConnected to the list of TPRI.Tsecurity.ErrorCode enumerated values

    • Modified ASCFEditor to automatically fill in user name and domain based on current Windows login credentials

  • Replaced old VB6 function calls with official .NET equivalents in various sections of code

 2010/10/11 - v4.31.00 / v5.31.00

Changes:

  • Fixed TPRI.HMI.Controls.TrendCom control to force IPv4 connection to host system

  • Fixed unhandled exception when deleting last axis in TPRI.HMI.Controls.TrendCtrl control

  • Changed display of date/time in trend source selection form to use 24-hour display of time rather than 12-hour with AM/PM

  • Added DefaultSource property to numerous TPRI.HMI.Controls and TPRI.HMI.Forms trending-related classes

  • Fixed popup message question in numerous TPRI.HMI.Controls classes when expansion of data dictionary name would produce too many new entries

  • Fixed display of [+/-] tree expansion icon for array variables in TPRI.HMI.Controls.ProbeX control after disconnecting and reconnecting to host

  • Changed all TPRI.DataDictionary.VariableNamePrefix known prefix constants from single characters to strings

  • Disabled display of historical trends when selecting trend source in TPRI.HMI.Controls.TriggerConditionList and TriggerTrendList controls

  • Made various changes to the NtRtMgr HMI screen:

    • Added additional debugging information for unhandled exception during updates

    • Changed display of system name to disable interpreting ‘&’ characters as a mnemonic

  • Made various changes to the Texplore application:

    • Added support for dynamically-created IProber objects added to collection of HMI application variables

    • Fixed auto-update functionality so that automatic updates will continue work after disconnecting from an HMI application

  • Modified tpriTimer routines so that absolute timer values can be referenced between machines using the wall clock at the time of system startup

  • Fixed memory leak in tpriTrigFile class

  • Fixed possible string buffer overrun while saving list of active triggers in tpriTrigTrend class

  • Change routines used to convert historical trend files to ASCII to format dates using 4-digit year

  • Made various changes to the tpriCleanDir function:

    • Added support for environment strings in directory name

    • Added support for multiple filters delimited by the ‘|’ character

  • Added new tpriCleanDirThread function

  • Made various changes to the tpriGsmDDCom class:

    • Changed default formatting of double-precision floating point variables use 16 digits of precision

    • Replaced sscanf(..) calls in restoreList(..) with type-specific string-parsing functions

 2010/5/4 - v4.30.00 / v5.30.00

Changes:

  • Made various fixes to the TrendFileMgr screen:

    • Fixed conversion to .csv functionality to properly process files in local folder

    • Added code to delete temporary files after conversion

    • Fixed file list to remove folder and file extension when displaying files from local folder

    • Fixed file list to retain highlighting of selected item even when control does not have focus

    • Fixed anchoring of file list object so screen displays properly at large screen resolutions

  • Made various fixes to the TPRI.HMI.Controls.HistoricalTrendList:

    • Modified AvailableSources property to remove from designer & properties window

    • Deprecated SelectedSource property

 2010/5/1 - v4.29.00 / v5.29.00

Changes:

  • Added new classes to the TPRI.DataDictionary namespace:

    • DataDictVariable

    • DataDictVariableCollection

  • Made various changes to the TPRI.DataDictionary.TranslateVariableEventArgs class:

    • Added InitialDict and TranslatedDict properties

    • Added new constructor and marked old version as obsolete

  • Added Variables As DataDictVariableCollection property to both the TPRI.HMI.Forms.DataDictForm and TPRI.HMI.Controls.DDVarSelect classes and updated dependent classes to take advantage of additional variable source (dictionary) information

  • Added TrendSetChanged events to both TPRI.HMI.Controls.TrendCtrl and TrendGraph controls

  • Changed BackColor property of TPRI.HMI.Controls.TextSelectBox and DDVarSelect controls to default to ambient value instead of White

  • Made various changes to the TPRI.HMI.Controls.TriggerScalarList control:

    • Marked the DataDictNames property as obsolete

    • Force data dictionary form to use “TsentryGsm” data dictionary

  • Fixed initialization of TPRI.HMI.Controls.TriggerEditor class to force File Tag entry field to use “TsentryGsm” data dictionary

  • Added TrendSourceChanged event to TPRI.HMI.Controls.TrendCtrl control

  • Made various changes to the TPRI.HMI.Controls.StaticArrayGraph3D control:

    • Added support for 3D surface contour plots

    • Added numerous new properties

  • Made various changes to certain StringCollection-type properties in numerous TPRI.HMI.Controls classes:

    • Changed property designer serialization to save content rather than using resource files

    • Added property editor attribute to use standard .NET StringCollectionEditor

    • Added checks for setting property value to Nothing and instead reset to empty collection

  • Made various changes to the tpriGsmDDCom::fmtVar(..) function:

    • Added check to confirm variable is scalar before formatting value

    • Added cross-check between variable type and variable formatting type

  • Fixed handling of shutdown options in NtRtMgr process to prevent application exception when shutting system down via Texplore with the console GUI disabled

 2010/4/13 - v4.28.00 / v5.28.00

Changes:

  • Made various changes to the NtRtInfo service and TPRI.NtRtInfo.INtRtInfo class:

    • Renamed WriteFile(..) overload with NtRtFileInfo parameter to WriteFile2(..)

    • Replaced GetFileSystemInfos(..) methods with new GetFileInfos(..) method

  • Made various changes to the TPRI.NtRtInfo.Client class:

    • Deprecated GetFileSystemInfos(..) in lieu of new GetFileInfos(..)

    • Updated WriteFile(..) overload to call WriteFile2(..) interface method

  • Modified Probe client objects to increase stale data timeout from 1 second to 3 seconds

 

   Upgrade Instructions:

  • Update all Texplore client workstations with the current version of Texplore as the latest NtRtInfo service is not backwards compatible with older clients in terms of automatically downloading the latest screens

 2010/4/5 - v4.27.00 / v5.27.00

Changes:

  • Made various changes to the TPRI.HMI.Controls.Prober class:

    • Implemented IAdjustableDataSource interface

    • Added new EnableAdjustDataSources property

    • Modified ProberName property to return class name if located on a form

  • Made various changes to the TPRI.HMI.Controls.StaticArrayProber class:

    • Implemented IAdjustableDataSource interface

    • Renamed MinInterval property to RequestDelayInterval

    • Added RequestDelayCount property

    • Added attributes to all designer properties so that the designer code for the parent object is correctly updated when a property value is changed

  • Removed IAdjustableDataSource interface from TPRI.HMI.Controls.StaticArrayGraphBase class

  • Made various changes to the TPRI.HMI.Controls.StaticArrayGraph2D class:

    • Changed internal graph object from standard to scientific graph

    • Fixed X-axis labels when ArrayStep is set to a value other than zero

    • Fixed cleanup of graph display when array data is reset

    • Added Autoscale option to right-click popup menu

    • Added numerous properties to support graph configuration in designer

  • Made various changes to the TPRI.HMI.Controls.StaticArrayGraph3D class:

    • Added Autoscale option to right-click popup menu

    • Added numerous properties to support graph configuration in designer

  • Made various changes to the TPRI.HMI.Controls.StaticArrayGraphContour class:

    • Added code to hide null data values

    • Added maximize and customization items to popup menu

    • Added numerous properties to support graph configuration in designer

  • Made various changes to the TPRI.HMI.Controls.ProbeGraph class:

    • Changed internal graph object from standard to scientific graph

    • Added support for automatically retrieving x-axis labels via new XPosProbeSource property

    • Added support for multiple plotted arrays with new AttachProber(..) method

    • Added code to automatically redraw the graph when changing the GridLineControl property

    • Removed IAdjustableDataSource interface (now directly handled by Prober)

  • Updated TPRI.HMI.Controls.ProbeGraphButton control for changes to underlying ProbeGraph

  • Made various changes to the TPRI.HMI.Controls.TrendCtrl class:

    • Added support for cut/copy/paste/delete of variables and axes

    • Fixed bugs in “Set Current Scaling as Original Scaling” functionality

    • Fixed bugs in auto-scale functionality

    • Automatically use last trend source when adding new variables

    • Added support for showing metadata for historical trends

    • Set graph font size to large

    • Fixed grid initialization to correctly use ColumnWidths property values

    • Updated trend variable color selector user interface

    • Added fixes to internal forms to prevent loss of focus when editing trendset

  • Made various changes to the TPRI.HMI.Controls.TrendGraph class:

    • Change class inheritance from SplitContainter to UserControl

    • Added DefaultValue attributes to numerous properties

  • Added Initialized property to the TPRI.HMI.Controls.DataSetLoader control

  • Made various changes to the TPRI.HMI.Controls.ActiveGrid control

    • Modified initialization sequencing so that GridSetLoader is only initialized once

    • Added support for multiple data source adjustment functions

    • Added Grid property to expose reference to internal grid object

  • Modified default values for TPRI.HMI.Controls.Shape ShapeFill and ShapeBorder properties to prevent Empty colors from appearing in designer code

  • Added new TPRI.DataDictionary.ExpandOptions enumerated type to the TPRI.Core.dll assembly and replaced ExpandArray properties in various classes with new ExpandOptions properties

  • Made various changes to the TPRI.HMI.Forms.TreeDataDict class:

    • Added new IsString(..) function

    • Enhanced variable expansion functionality to improve flexibility

  • Made various changes to the TPRI.HMI.Forms.VariableNamePrefix class:

    • Removed PrefixType enumerated type (users should use shared constant values)

    • Changed calling parameters to AddPrefix(..) method

  • Made various changes to the TPRI.HMI.Forms.DataDictForm class:

    • Optimized internal functions to improve performance when working with large data dictionaries and historical trend files

    • Modified data dictionary search functionality to allow dots and brackets in search strings

    • Fixed internal logic to prevent variable expansion if multiple variables are not allowed

    • Changed list of available data dictionaries to use sortable multi-column display

  • Modified TPRI.HMI.Forms.TrendSrcSelectForm to use sortable multi-column display for list of historical trend files

  • Made various changes to the TPRI.NtRtInfo classes:

    • Added new GetHistTrendMetaData(..) functions

    • Added new GetUtcTime(..) functions

  • Added new control classes to the TPRI.HMI.Controls namespace in the TPRI.Core.dll assembly:

    • ProberCollection

  • Added new TPRI.Trending.TriggerFile class to the TPRI.NtRtNET.dll assembly

  • Modified TPRI.HMI.Controls.ArraySelector MinIndex and MaxIndex properties to automatically adjust Index if outside new min/max

  • Added new global function TPRI.HMI.Controls.FormatValue(..)

  • Modified TPRI.HMI.Application.Explorer.AdjustVariableIndex(..) function to check for forward slashes in the variable name and ignore all characters preceding the slash

  • Added new TPRI.HMI.Application.Explorer.AdjustDataSourceDelegateCollection class to the TPRI.Core.dll assembly

  • Removed TPRI.HMI.Forms.TrendInsDelForm class from TPRI.Core.dll assembly

  • Added BadValue to the TPRI.Probe.ErrorCode enumerated type

  • Made various changes to the TPRI.Probe.ProbeMgr class:

    • Fixed WriteProbe(..) method to properly set returned request status

    • Fixed WriteProbe(..) to set return status to BadValue if unable to convert variable value

  • Modified NtRtMgr screen to support small display sizes

  • Fixed NtRtProcEd screen to support extremely long file names

  • Made various changes to the ProbeX screen:

    • Fixed stack overflow exception when highlighting large number of array variables in grid

  • Made various changes to the Texplore application:

    • Fixed Texplore.AdjustDataSources(..) function to find all objects implementing the IAdjustableDataSource interface (instead of only finding child controls controls)

    • Fixed auto-download functions to prevent exception if %APPDATA% environment variable does not exist

    • Updated ‘Tools’ toolbar icon

  • Modified NtRtInfo and Tsecurity service installers to support running as LocalSystem, LocalService, or NetworkService accounts

  • Modified NtRtSvc service to support installation for LocalSystem user

  • Made various changes to the historical trending functionality:

    • Added support naming historical trend files using variable values from global common

    • Added support for recording scalar variable values

    • Added [MetaData] section to historical trend data files

    • Added ability to drag-and-drop rows in various grids of historical trigger editor screen

    • Increased maximum number of triggers from 100 to 1000

  • Fixed string overrun exception in TrendSrv process

  • Fixed tpriXmlFile::ReadNodeStruct(..) to properly validate child node data

  • Added new tpriVmic::getMemAddr() function

  • Made various changes to the tpriGsmDDCom class:

    • Added new fmtVar(..) function

    • Fixed restoreList(..) function to properly restore single-byte variables

  • Updated version of Microsoft Visual C++ 2005 Service Pack 1 Redistributable Package included with installer

  • Updated various procedures & scripts to support installation on Windows XP Embedded

 

   Upgrade Instructions:

 2009/12/21 - v4.26.00 / v5.26.00

Changes:

  • Modified TPRI.Tscreen.TscreenMgr class so that SDI forms are completely docked to the MDIClient and use the AutoScroll and AutoScrollMinimumSize properties instead of manually trying to resize the form and enable/disable scroll bars

  • Modified TPRI.Tscreen.TscreenInfo class to use the form’s MinimumSize property if configured before defaulting to the form’s initial size when determining the minimum size for scroll bars

  • Made various changes to the TPRI.NtRtInfo.INtRtInfo interface and the TPRI.NtRtInfo.Host and Client classes:

    • Replaced WriteFileOptions class with NtRtFileInfo class

    • Deprecated existing GetFileSystemInfos(..) method and replaced with new method using NtRtFileInfo class (all calls to original GetFileSystemInfos(..) now return ‘NotSupported’)

  • Fixed various TPRI.Trending.TrendSet classes to properly set variable references to parent axes when serializing from form designer code

  • Modified internal storage of trend variable data in the TPRI.HMI.Controls.TrendCtrl class to improve performance and reliability

 2009/12/13 - v4.25.00 / v5.25.00

Changes:

  • Made various changes to Texplore

    • Fixed login panel to auto-display current user domain even if domain is not in list

    • Added display of variable dictionary (source) to list of returned variables

    • Added functions to automatically show/hide and resize various items for narrow displays

    • Force application to run in 32-bit mode even on 64-bit systems (required for run-time compatibility with TPRI.NtRtNet.dll assembly on 64-bit systems)

  • Changed type of TPRI.Tscreen.ActivateInfo.Argument property from String to Object

  • Made numerous changes to the TrendX screen and related controls to improve ease-of-use

  • Made numerous changes to the TriggerMgr screen and related controls to improve ease-of-use

  • Made various changes to the ProbeX screen:

    • Fixed display of tree expand/collapse icon after host disconnect/reconnect

  • Changed background color on all standard Tsentry screens to black

  • Added new control classes to the TPRI.HMI.Controls namespace in the TPRI.Core.dll assembly:

    • ColorPicker

    • StaticArrayGraphBase

    • StaticArrayGraph3D

    • StaticArrayGraphContour

  • Changed TPRI.HMI.Controls.StaticArrayProber from Control to Component to be consistent with standard Prober object

  • Modified TPRI.HMI.Controls.StaticArrayGraph2D to inherit from StaticArrayGraphBase

  • Fixed TPRI.HMI.Controls.Prober to completely disconnect from probe manager when requested

  • Changed TPRI.Probe.ProbeMgrBase to call DisconnectProbes(..) on IProber objects passing Nothing for the probe manager reference when trying to disconnect permanently from an IProber

  • Changed TPRI.Tscreen.TscreenMgr to call Form.Dispose when trying to remove screen from memory

  • Added BarWidths and BarWidthsProber properties to the TPRI.HMI.Controls.BarGraph class

  • Added CounterRotate property to the TPRI.HMI.Controls.LevelDisplay control

  • Modified TPRI.HMI.Controls.ActiveGrid to use BackColor property to set grid background color

  • Made various changes to the TPRI.HMI.Forms.DataDictForm form

    • Fixed handling of double-click on variable to add variable to list rather than replacing list

    • Added display of variable dictionary (source) to list of returned variables

    • Added ExpandArray property

    • Added TranslateVariable event

  • Made various changes to the TPRI.NtRtInfo.INtRtInfo interface and the TPRI.NtRtInfo.Host and Client classes:

    • Added new DirectoryExists(..) functions

    • Added new CreateDirectory(..) functions

    • Added new DeleteFile(..) functions

    • Added new MoveFile(..) functions

    • Added new SharedFolderExists(..) functions

    • Added overloaded WriteFile(..) functions to support additional write options

    • Added new ParseSharedFolder(..) function to TPRI.NtRtInfo.Client class

  • Fixed numerous TPRI.HMI.Controls classes to remove links to external object when disposed in order to eliminate event handlers from preventing garbage collection of in-memory objects

  • Fixed TPRI.HMI.Forms.TrendSrcSelect to enable use of the historical trend Filter function

  • Made various changes to the TrendTrig process & libraries:

    • Added support for configurable sampling periods for trended variables

    • Added code to set minimum values for pre- and post-trigger trend times to 1 second to prevent trigger data collection restarts due to jitter in non-real-time data collection

  • Made various changes to the tpriXmlFile library:

    • Added ReadTableStruct(..) and WriteTableStruct(..) functions

    • Added support for environment variables in file names

    • Optimized various functions to improve processing speed

  • Changed tpriIniFile class to use local buffers for calls to tpriEnvStr(..) instead of relying on the shared/static buffer inside of tpriEnvStr(..)

 2009/9/25 - v4.24.00 / v5.24.00

Changes:

  • Fixed global common variable initialization to properly handle cases where a variable cannot be found in the save-by-name file but does not have an initial value

  • Made various changes to the GsmPifBld data dictionary builder utility:

    • Fixed handling of compiler directives that use backslashes to span multiple lines

    • Fixed handling of #pragma once directives to use case-insensitive comparison of file names

  • Fixed crash during initialization of GsmExpSvr process

  • Added support for custom probe source DLLs to the ProbeSvr process

  • Made several additions to the tpriNtRt library:

    • Added tpriAppThread application thread class

    • Added StartTimer(), ElapUTimer(..), ElapMTimer(..) and ElapSTimer(..) functions

    • Added tpriProbeSrcVar class to support custom probe sources

    • Added tpriXmlFile class to support reading/writing XML files w/ data dictionary

  • Made various changes to the tpriGsmDDCom class in the tpriNtRt library:

    • Added additional overloaded mapGsm(..) function

    • Added structDef::getChild(..) function

    • Added structDef::getTypeStruct(..) function

    • Added varDef::getSize(..) function

    • Fixed getVarXxxPtr(..) functions to return correct size for strings

  • Added new GetDiagInfo(..), GetConnectInfo(..), and GetStatementInfo(..) functions to the tpriDbio class in the tpriNtRt library

  • Modified tpriIniFile::extractIniString(..) to replace all \” tokens in the output string with a single double-quotes character

  • Added code to tpriProcMgr class in the VS2008-version of the tpriNtRt library to force processor affinity to prevent issues related to high-speed clocks for different CPU cores drifting apart on hypervisor systems

  • Added tpriEgd GE EGD PLC driver class to the tpriPio library

  • Made various changes to the tpriVmic class in the tpriPio library:

    • Fixed bytes-per-second calculation to support different variable refresh rates

    • Fixed board initialization to detect actual memory size from board registers

    • Added getNodeID() and getMemSize() functions

  • Removed function declaration of non-existent tpriRdcSer::xmitMsg(..) function from header file to prevent compile & link errors

  • Fixed tpriTrendSrc::setTrendData(..) function to keep the memory buffer in sync with the disk buffer when the memory buffer rolls over due to a long delay in data collection

  • Made various changes to the tpriTrendTrig class:

    • Decreased in-memory trend times and increased on-disk trend times for requested variables

    • Add protection against corrupted trigger files

  • Added VarIniChk utility process to list global common variables not present in a sysVars.ini file

  • Added VarIniSort utility process to alphabetically sort variables in the sysVars.ini file

  • Fixed ProbeSvr process to properly handle requests for variable min/max/init values

  • Fixed TrendMgr process to properly store all in-memory trend data when shutting down

  • Made various changes to support changing local Tsentry user password:

    • Added additional command line parameters to the NtRtSvc service process

    • Added ChangeTsentryPassword.cmd script

    • Modified CreateTsentryUser.cmd, CreateUser.vbs, and ConfigureTsecurity.cmd scripts

  • Added InstallNtRtSvc.cmd script for installing main Tsentry service

  • Made various changes to the TPRI.HMI.Controls.Shape and ActiveShape control:

    • Integrated codebase together so that ActiveShape inherits from Shape

    • Fixed Value property so that object is only updated & repainted if the value has changed

    • Fixed painting routines to prevent double paint calls while shape is blinking

    • Fixed blinking so that it remains consistent (if possible) when value has changed

  • Fixed TPRI.DataDictionary.VariableNamePrefix.StartOf(..) function to properly validate inputs

  • Made various changes to the TPRI.HMI.Controls.BarGraph class:

    • Added drawing of vertical axis ticks and labels to the TPRI.HMI.Controls.BarGraph control

    • Fixed various probe source properties to automatically request data for new variable

    • Added checks to prevent exceptions if multi-dimensional array is returned from host

    • Added BackBarProber and FrontBarProber properties

  • Modified TPRI.HMI.Controls.TrendAxisList to set the default axis label as the axis number

  • Modified TPRI.HMI.Controls.TrendPlayback to inherit BackColor and ForeColor from container

  • Made various changes to the TPRI.HMI.Controls.TrendCtrl control

    • Fixed TrendInit(..) method to run without releasing CPU

    • Implemented IAdjustableDataSource interface

  • Added ColumnWidths property to TPRI.HMI.Controls.LogMsg control

  • Added new control classes to the TPRI.HMI.Controls namespace in the TPRI.Core.dll assembly:

    • ActiveGrid

    • ArraySelector

    • BarGraphCollection

    • BlockDrawingBase

    • GridSetLoader

    • Label

    • LabelCollection

    • LevelDisplay

    • Line

    • MinMaxCutoff

    • MinMaxLimit

    • Multiplier

    • NumericUpDown

    • NumericUpDown2

    • ProbeGraph

    • ProbeGraphButton

    • Prober

    • ProbeX

    • SelectButton

    • StateList

    • StaticArrayProber

    • StaticArrayGraph2D

    • SummingJunction

    • Toggler

    • TrendGraph

  • Added new TPRI.Grid.GridSet class to the TPRI.Core.dll assembly

  • Added new TPRI.HMI.Forms.ProbeGraphForm class to the TPRI.Core.dll assembly

  • Added C1.Win.C1FlexGrid.2.dll assembly to distributed files

  • Made various changes to the TPRI.HMI.Controls.TextBox control:

    • Added AutoSubmit property

    • Added WriteValue property

    • Added EnableSAK property

    • Added VisibleSAK property

    • Changed SendBatchUpdates method to use internal probe manager reference is none is passed to the function

  • Made various changes to the TPRI.HMI.Controls.ComboBox control:

    • Added AutoSubmit property

    • Added EnableSAK property

    • Added VisibleSAK property

    • Changed SendBatchUpdates method to use internal probe manager reference if none is passed to the function

  • Made various changes to the TPRI.HMI.Controls.DataSetLoader control:

    • Added SaveSAK property

    • Added DeleteSAK property

    • Changed DataSetName property to be configurable at design time

    • Added DataSetNameChanged event

    • Modified Initialize(..) function to automatically load DataSetName file if defined

    • Added code to reset modified flag when user chooses not to save changes

    • Fixed data set load sequence so that requested data set is still loaded after user saves unsaved changes to the previous data set

  • Changed TPRI.HMI.Controls.TriggerDefLoader class so that trigger name is set when the data set name is changed instead of when the file is written to disk

  • Made various changes to the TPRI.HMI.Controls.CmdButton control

    • Added SendBatchUpdates property

    • Added CancelBatchUpdates property

    • Added EnableSAK property

    • Added VisibleSAK property

  • Made various changes to the TPRI.HMI.Controls.LinkLabel control:

    • Added EnableSAK property

    • Added VisibleSAK property

  • Made various changes to the TPRI.HMI.Controls.ToggleButton control

    • Added EnableSAK property

    • Added VisibleSAK property

  • Made numerous changes to the TPRI.HMI.Forms.DataDictForm form to support selection of multiple variables at once

  • Added new VariableNames property to the TPRI.HMI.Controls.DDVarSelect control

  • Made various changes to the TrendX screen & support classes:

    • Updated Gigasoft libraries to pegrp32d.dll v6.0.0.74

    • Increased the maximum number of trend axes from 6 to 16

    • Added ability to identify/highlight specific trend variables in graph

    • Added support for automatically scaling axes in trend graph

    • Added ability to clip variables to associated axis in multi-axis trends

    • Enhanced validation of graph width and sampling period in trend setup screen

    • Fixed determination of the number of significant digits used for the display of trend times

    • Fixed unhandled exception when setting AxisMin and AxisMax without any axes defined

    • Changed TrendX.UpdateTrendSet() from a private to a protected function

  • Made various changes to the ProbeX screen:

    • Added support for graphing scalar and 1-dimensional arrays to the screen

    • Added hotkeys for new variable, edit variable, edit new variable, and delete variable

    • Fixed initialization of format style when changing a comment to a variable

  • Fixed NtRtProcEd screen so that requested process is always selected by default

  • Made various changes to the Texplore screen browser:

    • Added support for automatic download & update of application files from host system

    • Added support for running in kiosk mode

    • Added display of date/time to title bar

    • Added print screen support

    • Fixed delayed updates of newly added Probe variables in situations where the specific variable had already been requested

  • Added GetFileSystemInfos(..) function to TPRI.NtRtInfo.INtRtInfo interface and TPRI.NtRtInfo.Host and Client classes

  • Fixed TPRI.DatabaseIO.DBIOServer and DBIOClient classes so that .NET remoting security is not required

  • Added global FindKnownColor(..) function to the TPRI.Core.dll

  • Optimized display update & repaint code in numerous HMI components to minimize CPU overhead and associated flicker when updating display

  • Added property description and category attributes in numerous HMI components

 2008/10/23 - v4.23.00 / v5.03.00

Changes:

  • Added TPRI.DataDictionary.VariableNamePrefix class to encapsulate data dictionary naming prefixes and functionality

  • Fixed automatic expansion of data dictionary variable names (e.g. in ProbeX) to check for and handle variable name prefixes

  • Changed ProbeX, TrendX, and TriggerMgr screens to check for unsaved changes prior to navigating away from the screen

  • Fixed validation of trigger definitions on TriggerMgr screen to prevent infinite error loop

  • Fixed TPRI.HMI.Application.Explorer.AdjustVariableIndex(..) to support variable name prefixes

  • Changed TPRI.Tscreen.ScreenChangedEventArgs class AllowChange property from read-only to read/write

  • Modified TPRI.Tscreen.TscreenMgr to raise BeforeScreenChanged event before deactivating old screen

  • Made various changes to the GsmPifBld data dictionary builder utility:

    • Fixed handling of array indices that are specified with arithmetic operations that result in fractional values

    • Fixed handling of closing braces when parsing functions defined in header files

  • Made various changes to the NtRtMgr process:

    • Changed handling of delayed startup aborts to skip handling of GuiOptions .ini file parameter

    • Fixed error handling on startup to prevent conditions where main display is not shown

    • Fixed processing of sysProcs.ini file to support long command line parameter strings

  • Made various fixes to the tpriGsmDDCom class:

    • Changed PERSIST_APPENDONLY value to properly represent a single unique bit

    • Changed PERSIST_FLAGMASK to add future support for additional flags

    • Added testMinMax(..) function for validating value against known min/max values

    • Added additional error logging

  • Fixed TrendMgr bug causing trend data to be improperly buffered to disk files

  • Modified TrendTrig so that temporary historical trend buffer files are closed in between read/write operations rather than continuously holding files open

  • Fixed tpriIniFile::setKeyValue(..) to properly place key entry after section name when saving to a completely new section

  • Added SAFE_DELETE(..) and SAFE_DELETE_ARRAY(..) macros to tpriUtilMacs.h

  • Modified VmicDrv to read/write variables to reflective memory at individually specified frequencies

  • Added SetTsentrySystem.cmd and SetEnvVariable.vbs scripts to the distributed procedures

  • Fixed TsentryConfig.cmd script to forcibly uninstall the NtRtInfo service before reinstalling in order to support changes to the installation directory

  • Modified TsentryConfig.cmd script to write results to disk log file (%TSENTRY_SYSDIR%\%TSENTRY_SYSNAME%\logs\TsentryInstall.log)

  • Cleaned up TSENTRY and Tsecurity command-line scripts

  • Modified TSENTRY installer to support runtime-only installations

 

   Upgrade Instructions:

  • Modify any VMIC configuration files to specify the refresh period (in milliseconds) for each variable as shown in the example below:

# ------------------------------------------------------------------------
# Variable definitions
# ------------------------------------------------------------------------

[VarDef]
#VariableName             #Read/Write  #Offset  #RefreshPeriod(ms)  #RemoteType
MyWriteStruct.MyWriteVar  W            0x1000   20
MyReadStruct.MyReadVar    R            0x2000   100                 VT_I2
 2008/8/4 - v4.22.00 / v5.02.00

Changes:

  • Made various changes to the TriggerMgr screen and underlying controls:

    • Fixed internal logic to properly allow saving of new historical trend trigger definitions

    • Added checks to prevent trigger names that start or end with whitespace

    • Modified error reporting during validation to eliminate duplicate error messages

  • Made various changes to the TrendX screen Trend Setup form and underlying controls:

    • Fixed logic for inserting a new axis to properly insert before the clicked item

    • Added code to automatically add an empty variable when creating a new axis

    • Fixed validation of axis percentages to prevent unhandled exception

    • Fixed copying and pasting of trend variables within the variable list

    • Fixed unhandled exception when trying to copy an axis node within the variable list

    • Added more details to warning message when trying to define a graph with too many points

  • Added support to ProbeX screen for use of up/down arrow buttons while editing a variable value

  • Fixed Probe client to eliminate unnecessary expansions of the receive buffer size

  • Made various changes to the TPRI.HMI.Controls.TrendCtrl class:

    • Changed AxisMinBox and AxisMaxBox property types from TextBox to Control

    • Moved internal code from InitializeDefaultTrendGraph(..) method to TrendLib module

    • Fixed InitializeDefaultTrendGraph(..) to set the graph Desk color so that it matches the parent’s BackColor rather than forcing Navy

  • Made various changes to the TPRI.HMI.Controls.DataSetLoader class:

    • Changed file list retrieval error handling to display message in combo box rather than as a popup message

    • Added code to automatically resize dropdown box if dropdown text is wider than the control

    • Added code to validate file names before saving

  • Made various fixes to the TPRI.HMI.Controls.BarGraph class:

    • Fixed processing of bar data arrays to prevent array index exceptions

    • Fixed handling of changes to BarCount value while displaying data

    • Fixed sizing of bars so that border will always be visible

    • Fixed handling of control background color

    • Modified BarLabels property to be editable via the designer

    • Added BarLabelsStartIndex property for auto-numbering bars

    • Changed BoundaryInfo.TextBox property type from TextBox to Control

    • Added window titles to all popup error messages

  • Made various changes to the TPRI.HMI.Controls.ToggleButton class:

    • Added ValidatingClick event to provide mechanism to cancel button clicks

    • Removed default value from BackColor property serialization and added code to initialize value as KnownColor.Control

    • Removed nuisance message in design mode when setting BackColor

  • Removed default value from TPRI.HMI.Controls.TextBox BackColor property

  • Completely reworked the TPRI.HMI.Controls.CoverageBar class for use under VB.NET

  • Added numerous control property description and category attributes

  • Fixed tpriIniFile class to replace environment variables in the file name before saving the file

  • Fixed tpriTrendTrig class to support trigger definitions whose names contain spaces when restoring the active triggers following a system restart

  • Added additional error logging to VmicDrv when unable to map physical memory

  • Made various fixes to the GsmPifBld process:

    • Added code to ignore 'signed' specifier

    • Enhanced error messages processing #define statements

  • Reset all WINVER and _WIN32_WINNT preprocessor defines in internal Tsentry Visual Studio projects to 0x0500 for continued support of the Windows 2000 operating system

 2008/4/14 - v4.21.00 / v5.01.00

Changes:

  • Added GrantThreadAccessToConsole() function to tpriNtRtApp static library

  • Changed various static variables in tpriRdc libraries to class variables so that multiple instances of the same class in a single process each have their own copy of data

  • Added support for PCI-5565 card to the tpriVmic process I/O library class

  • Added new VmicDrv Win32 and RTSS processes

  • Made various changes to the ProbeSvr process:

    • Added new TextChangeLog parameter to [General] section of .ini file to support configuration of text-based logging of variable changes received from client connections

    • Renamed existing LogMsgQueue parameter in [General] section of .ini file to BinaryChangeLog (the original LogMsgQueue parameter name is still supported)

    • Added support for text-based change logging of signed and unsigned 8-byte integer values

    • Fixed text-based change logging of unsigned 2- and 4- byte integer values

  • Fixed Probe client so that it will properly process multiple incoming messages in a single pass

  • Added new TPRI.Process class to TPRI.NtRtNET assembly

  • Fixed IOComp licensing in Texplore so child screens do not display licensing dialog

  • Made various changes to the TPRI.Tsecurity.TsecurityAD class:

    • Modified authentication routine to explicitly close all network connections before each authentication attempt

    • Fixed logging of messages to the event log

 

   Upgrade Instructions:

  • Modify the ProbeSvr .ini file (typically sysProbe.ini in the \pif\ folder) as follows:

    • Rename the LogMsgQueue parameter in the [General] section to BinaryChangeLog

    • Add the new TextChangeLog parameter to the [General] section to specify the appropriate LogMsg queue if text-based logging of variable changes is desired

    • A sample [General] section for this file is shown below:

#--------------------------------------------------------------
# General probe parameters
#--------------------------------------------------------------

[General]
# Specify the local host to which the ProbeSvr server socket should bind,
# or leave blank to bind the socket without specifying a local host.
LocalHost=192.168.0.1

# Specify the LogMsg queue for text-based variable change logging,
# or leave blank to disable text-based change logging.
TextChangeLog=LogMsg

# Specify the LogMsg queue for binary variable change logging,
# or leave blank to disable binary change logging.
BinaryChangeLog=ProbeLog
 2008/1/29 - v4.20.00 / v5.00.00

Changes:

  • Added TPRI.Tsecurity.EncryptedTcpChannel class to allow encrypting of .NET Remoting channels without requiring authentication

  • Changed all .NET Remoting servers & clients (Tsecurity, NtRtInfo, etc.) to use the above new TPRI.Tsecurity.EncryptedTcpChannel class to encrypt data  rather than registering channels using the default .NET Remoting security (which only allows authenticated domain users to connect)

  • Added monitor icon to Texplore resources

  • Removed encoding specification from of default Tsecurity.exe.config file

  • Modified and added various logged messages in tpriProbe libraries to enhance debugging

  • Fixed parsing of MaxDays parameter for custom LogMsg queues in sysLogs.ini file so that old log files for custom queues will be properly deleted from the hard drive

  • Added function prototypes for DumpHex(..) functions to LogMsg.inl inline header file for use with tpriNtRtApp.lib

  • Fixed tpriProcMgr::Destroy(..) function so that it properly returns zero if successful

  • Made various changes to the tpriIniFile class:

    • Added getNextKey(..) and cleanFile(..) functions

    • Modified success return value of createSection(..) and insertChars(..) to indicate number of characters inserted rather than always zero

    • Modified deleteLine(..) to return negative value if characters cannot be removed from file

    • Optimized internal buffer allocation to improve performance when writing data to file

    • Optimized cleanSection(..) function to improve speed

  • Made various changes to the tpriGsmDDCom class:

    • Added support for default variable formatting strings if one is not provided in the .ini file

    • Added saveAllStructs(..) and restoreList(..) functions

    • Added varDef::getDefaultFormat(..) static functions

    • Modified varDef::fmtValEx(..) function to provide multiple static overloads that support default as well as custom formatting strings

  • Modified TSENTRY installer so that Hard-Real Time installation option will not be presented if not supported by a specific version of TSENTRY

  • Modified TSENTRY and Texplore installers to use Microsoft Visual C++ 2005 Redistributable Package (x86) rather than manually installing required Visual C++ assemblies onto target system

 

   Upgrade Instructions:

  • Modify any applications that employ custom .NET Remoting components in addition to Tsecurity, DBIO, or NtRtInfo so that the custom .NET Remoting channels are registered with the enableSecurity flag set to False (reversing the change required by TSENTRY v4.11.00 and v4.12.00)

  • If installing over a previous version of TSENTRY, modify the Tsecurity.exe.config file to replace the first line of the file:

<?xml version="1.0" encoding="Windows-1252"?>

with:

<?xml version="1.0"?>
 2007/11/26 - v4.13.00

Changes:

  • Fixed tpriRdcTcp class to prevent socket creation if unable to resolve host name

  • Changed probe server and client libraries to use getaddrinfo(..) rather than gethostbyname(..)

  • Modified ProbeSvr process to add support for specifying a local host name for the TCP/IP server via the LocalHost parameter in the [General] section of the .ini file.

  • Fixed ProbeX screen to properly process changes to multiple elements of multi-dimension arrays

  • Updated all code to use StopWatch class rather than system clock for internal timing in order to prevent errors when the system clock is changed or daylight savings transitions occur

  • Made various fixes to the TPRI.HMI.Controls.ActiveShape class:

    • Changed internal processing of data and boundaries so that comparisons are made in the native format of the host data rather than forcing conversion to floating point

    • Changed type of Value property from Single to Object

    • Changed type of ActiveShapeSetup.BoundMax property from Single to Object

    • Deprecated tLocked property in favor of new Locked property

    • Added DisplayMode property

    • Added LiveValueChanged event when data from host is updated

    • Fixed code to correctly fire ValueChanged event when value is changed

  • Made various fixes to the TPRI.HMI.Controls.LimitDisplay class:

    • Deprecated ShowUpperLimit and ShowLowerLimit properties in favor of new UpperLimitVisible and LowerLimitVisible properties

    • Added ValueTextBox, UpperLimitTextBox, and LowerLimitTextBox properties to allow full customization of text boxes

    • Fixed resize/layout handling to correctly position textboxes within control and to account for the control border

  • Added shadowed Enabled property to the TPRI.HMI.Controls.ToggleButton class to support disabling the control completely regardless of whether or not it is receiving live data

  • Removed TPRI.Tsecurity.Controls.AutoCompleteComboBox class as the AutoComplete functionality is now provided directly by the System.Windows.Forms.ComboBox class

  • Made various fixes to the TPRI.Tsecurity.TsecurityDomainsList class (and the Tsecurity service):

    • Fixed the FindDomains(..) functions to correctly interpret ‘types’ parameter

    • Fixed memory leak and potential crash while enumerating the list of trusted domains

 2007/9/28 - v4.12.00

Changes:

  • Added Enabled property to the TPRI.HMI.Application.Explorer.IndicatorMgr class to enable/disable automatic indications

  • Modified the TPRI.HMI.Application.Explorer.IDataSourceIndicator  interface to add new EnableDataSourceIndicator property and modified all classes implementing this interface accordingly

  • Made various fixes to the TPRI.HMI.Controls.ActiveShape class:

    • Redesigned text display to directly draw text rather than implementing a text box child control

    • Removed LabelControl property

    • Fixed drawing code to properly draw background for non-rectangle shapes

    • Fixed drawing code to properly draw right and bottom borders when border width is set to 1

    • Changed default blink period from 0 to 1000 ms

    • Fixed internal Click handling to correctly generate event regardless of where on the control the mouse is clicked

    • Deprecated tValue property in favor of new Value property

    • Deprecated tNumTextLines property

    • Added LiveValue property

    • Modified internal processing of probe updates to use common code with other controls

  • Made various fixes to the TPRI.HMI.Controls.ActiveShapeSetup class:

    • Modified Converter class to provide more meaningful information when converting to a string

    • Modified Font property to inherit value from parent ActiveShape control

    • Fixed Font property so that the designer properly serializes value to form source code

  • Made various fixes to the TPRI.HMI.Controls.TextBox class:

    • Added code to set focus to the TextBox and select all text if there is an error converting text to the appropriate value type while trying to send batch updates

    • Added code to automatically switch to EditActive mode if Text is modified while live

    • Modified internal processing of probe updates to use common code with other controls

  • Made various fixes to the TPRI.HMI.Controls.ComboBox class:

    • Added LiveValue property and renamed ValueChanged event to LiveValueChanged

    • Added code to set focus to the ComboBox and select all text if there is an error converting text to the appropriate value type while trying to send batch updates

    • Added logic to hide drop-down when ComboBox is put into ReadOnly mode

    • Fixed Items property editor form to force serialization of object when list of Items is changed

    • Modified internal processing of probe updates to use common code with other controls

  • Made various fixes to the TPRI.HMI.Controls.ToggleButton class:

    • Added LiveValue property and LiveValueChanged event

    • Added InvalidVariableType to ToggleButtonDisplayMode enumeration & added logic to set DisplayMode to this value when the live variable value cannot be converted to an integer type

    • Modified internal processing of probe updates to use common code with other controls

  • Modified Converter class for TPRI.Shape.ShapeBorder class to provide more meaningful information when converting to a string

  • Modified Converter class for TPRI.Shape.ShapeFill class to provide more meaningful information when converting to a string

  • Modified signatures of events generated by the ActiveShapeCollection, CmdButtonCollection, ComboBoxCollection, ShapeCollection, TextBoxCollection, ToggleButtonCollection, and TrendVarSelectCollection classes in the TPRI.HMI.Controls namespace to change the ‘sender’ parameter from ByRef to ByVal in order to be consistent with .NET coding standards

  • Added TPRI.HMI.Application.Explorer.AdjustVariableIndex(..) function

  • Reworked NtRtProcEd screen to support new HMI control objects

  • Modified GsmPifBld process to ignore ‘volatile’ variable specifier

  • Fixed various calls to vsnprintf_s(..) and snprintf_s(..) throughout code to prevent buffer overrun exceptions by forcing truncation of the output strings if the output buffer is too small

 

 2007/9/18 - v4.11.00

Changes:

  • Made various changes to Texplore application:

    • Added functionality to display variable names as tool tips for probe-enabled objects

    • Added functionality to display error messages using an ErrorProvider

    • Added functionality to programmatically adjust all data sources

    • Added screen name to application window title to help discriminate between multiple instances of the application pointed at different screens

    • Modified popup window when double-clicking screen title to display screen parameters along with class and assembly information

  • Added checks to TPRI.Probe.ProbeClientVar class to return an error if attempting to write an updated variable value that cannot be converted to the original variable type

  • Fixed TPRI.Probe.ProbeMgrBase class to prevent internal corruption when an IProber with only probe changes the variable name associated with a given tag

  • Made various fixes to the TPRI.HMI.Controls.ActiveShapeSetup class:

    • Set default property values for all properties

    • Changed type converter to remove conversion to and from strings

  • Added TPRI.HMI.Controls.ActiveShapeSetupCollection class

  • Made various fixes to the TPRI.HMI.Controls.ActiveShape class:

    • Added ActiveSetup collection property and deprecated ActiveShapeSetup array property

    • Changed designer serialization to save individual properties rather than as a full array

    • Fixed Click handler of internal label control to call OnClick(..) method rather than raising the click event directly

    • Added LinkedScreen and LinkedScreenArguments properties to automatically navigate to other screens when the object is clicked

    • Fixed various ActiveSetup and DisconnectSetup properties to correctly update display when the property values are changed

    • Fixed internal logic for DisplayMode when ProbeSource is set to an empty string

    • Fixed requesting of probe variables to handle cases where probe is already active

    • Changed error reporting to implement the IErrorIndicator interface rather than message boxes

  • Made various fixes to the TPRI.HMI.Controls.TextBox class:

    • Removed design-time message box warning of the use of the BackColor property

    • Modified display logic to correctly draw control while in design mode

    • Added LiveValue and LiveText properties

    • Fixed internal logic for DisplayMode when ProbeSource is set to an empty string

    • Fixed CancelBatchUpdates(..) to process only if an update is pending

    • Changed error reporting to implement the IErrorIndicator interface rather than message boxes

  • Made various fixes to the TPRI.HMI.Controls.ComboBox class:

    • Modified class to inherit directly from System.Windows.Forms.ComboBox

    • Renamed various properties for new naming convention

    • Fixed internal logic for DisplayMode when ProbeSource is set to an empty string

    • Changed error reporting to implement the IErrorIndicator interface rather than message boxes

  • Made various fixes to the TPRI.HMI.Controls.ToggleButton class:

    • Fixed requesting of probe variables to handle cases where probe is already active

    • Changed error reporting to implement the IErrorIndicator interface rather than message boxes

  • Made various fixes to the TPRI.HMI.Controls.BarGraph class:

    • Changed error reporting to implement the IErrorIndicator interface rather than message boxes

  • Added TPRI.HMI.Forms.ComboBoxItemsEditorForm and TPRI.HMI.Controls.ComboBoxItemsPropertyEditor classes to support new ComboBox class

  • Removed events from TPRI.HMI.Controls.ComboBoxCollection class

  • Fixed internal logic for TPRI.HMI.Controls.ToggleButton.DisplayMode when ProbeSource is set to an empty string

  • Added TPRI.HMI.Controls.LimitDisplay classes

  • Made numerous changes to the TPRI.Shape.ShapeBorder, TPRI.Shape.ShapeFill, and TPRI.HMI.Controls.Shape classes in order to improve serialization in the designer

  • Fixed TPRI.HMI.Controls.TrendCom class to prevent error if passed an invalid host name

  • Added TPRI.HMI.Application.Explorer.FindSubControls(..) utility function

  • Made various changes to ProbeX screen:

    • Fixed automatic expansion of arrays and structures in to support cases where only one variable is produced from the expansion

    • Added logic to enable highlighting of cells whose variable name is an empty string

  • Changed NtRtInfo service Host and Client classes to use a pure TCP channel rather than an HTTP channel in order to support encryption and security

  • Enabled security & encryption for all .NET Remoting connections

  • Replaced various deprecated .NET functions in code with new .NET functions

  • Modified tpriCleip class to increase maximum allowed size of file name and host name strings

  • Changed RTSS builds of TrendGsm and MillSim to use the fast floating point model (/fp:fast) for improved real-time performance

  • Upgraded Glacial Components GlacialTreeList to v2.5.1.22512

  • Upgraded Glacial Components GlacialListView to v2.1.0.22283

 

   Upgrade Instructions:

  • Modify any applications that employ custom .NET Remoting components in addition to Tsecurity, DBIO, or NtRtInfo so that the custom .NET Remoting channels are registered with the enableSecurity flag set to True (see the MSDN documentation for the ChannelServices.RegisterChannel(..) method)

 2007/7/5 - v4.10.00

Changes:

  • Added support for new Probe protocol, including:

    • Added new standard TSENTRY process ProbeSvr

    • Added tpriProbeChange class to the tpriNtRt libraries

    • Added numerous classes to TPRI.Core.dll assembly

    • Modified Texplore to communicate with ProbeSvr rather than GsmOpcSvr for the exchange of global shared memory variable data

    • Modified all screen control objects to use new IProber interface

  • Added LogData(..) global functions to logging binary data to LogMsg queues

  • Modified various internal functions to support LogData(..) functionality

  • Increased size of LogMsg message buffer size from 256 bytes to 512 bytes

  • Modified tpriLogMsg class and sysLogs.ini file format to support LogMsg queues that do not generate files on disk

  • Fixed DumpHex(..) functions to send logs to requested queues rather than always only to default “LogMsg” queue

  • Made various fixes to the tpriCryptor class:

    • Fixed Win32 encryption function calls to use machine keysets and named containers

    • Modified EncryptString(..) and DecryptString(..) functions to format error string as output when an error occurs

  • Changed LogMsg for receive data timeout in tpriRdc class from DBERR to DBSEQ

  • Fixed tpriDbio::ExecSql(..) to dynamically allocate local buffer for SQL statement to prevent buffer overruns

  • Rewrote tpriEnvStr(..) function to eliminate buffer size and reentrancy issues

  • Fixed GsmPifBld process to delay replacement of a matched #define string that falls at the end of the read buffer until more data has been read from the file

  • Added EncryptString(..) and DecryptString(..) functions to the TPRI.Cryptor class

  • Made various fixes to the TPRI.NtRtInfo.Client class:

    • Modified.WriteFile(..) function to allow writing empty (size = 0) files

    • Fixed Connect(..) function to correctly handle exceptions generated when registering a .NET Remoting channel that has already been registered

    • Fixed Connect(..) function to clean up properly after an exception while registering the .NET Remoting channel

    • Added code to clear cached data when disconnecting from host

  • Modified TPRI.NtRtInfo.Host.GetTrendSourceList(..) function to return the list of real-time trends even if unable to retrieve the list of historical trends

  • Fixed TPRI.DataDictionary.TreeDataDict to prevent unhandled exception if an empty variable is added to a ProbeX ProbeSet

  • Updated TPRI.HMI.Controls.DataSetLoader GUI to make it more intuitive for users

  • Made various fixes to the TPRI.HMI.Controls.TextBox class:

    • Modified class to inherit directly from System.Windows.Forms.TextBox

    • Renamed various properties for new naming convention

  • Made various fixes to the TPRI.HMI.Controls.ActiveShape class:

    • Renamed various properties for new naming convention

    • Replaced TPRI.HMI.BaseControl.OnActiveUpdate event with new ValueChanged event

  • Made various fixes to the TPRI.HMI.Controls.CoverageBar class:

    • Changed LeftEdge, LeftData, RightData, and RightEdge readonly properties to read/write

    • Renamed various properties for new naming convention

    • Removed ErrorTerminate event

  • Made various fixes to the TPRI.HMI.Controls.ToggleButton class:

    • Modified class to inherit directly from System.Windows.Forms.Button

    • Replaced TPRI.HMI.BaseControl.OnActiveUpdate event with new ValueChanged event

    • Renamed various properties for new naming convention

  • Fixed TPRI.HMI.Controls.TrendAxisList to prevent unhandled exception if internal timer to check axis percents runs before a trend set has been defined

  • Changed TPRI.HMI.Controls.TrendCom, TrendCtrl, TrendPlayback, TriggerEditor, and TriggerStatusList classes to inherit from System.Windows.Forms.UserControl rather than TPRI.HMI.Controls.BaseControl

  • Removed TPRI.HMI.Controls.BaseControl and TPRI.HMI.Controls.OpcMgr classes

  • Fixed tracking of the internal ‘modified’ flag in the TPRI.HMI.Controls.ProbeSetLoader, TrendSetLoader, and TriggerDefLoader classes

  • Added Changed event to the TPRI.HMI.Controls.TriggerEditor class

  • Modified ProbeX, TrendX, and TriggerMgr screens to ask the user to save unsaved changes when leaving the screen

  • Made various fixes to the ProbeX screen:

    • Fixed handling of invalid variables when sending data back to host

    • Added removal of previous ProbeSet’s variables when changing to a new ProbeSet

    • Allowed reordering of columns in variable display

    • Added code to check if a string specified for the variable name is illegal and, if so, format the displayed line as a comment

    • Fixed the changing of a variable name to remove variable from the list of probes before adding a new probe

    • Fixed text color for highlighted items when list loses focus

    • Added code to add a single empty variable by default to any new ProbeSet

    • Added ‘Set Values’, ‘Revert to Live Values’, and ‘Set Formats’ menu items for modifying multiple variables simultaneously

  • Modified TrendX screen so that new TrendSets will be created by default with a single axis containing a single empty variable

  • Modified TriggerMgr screen so that new trigger definitions will be created by default with a single empty condition and a single empty trend

  • Modified TPRI.Trending.TriggerDef class to initialize MaxTrendTime to 3600 seconds by default

  • Modified TPRI.HMI.Forms.TrendSetupForm class to display an error message to the user if unable to retrieve the list of available trend sources from the host system

  • Added design-time support for data dictionary window when selecting variable name for control properties such as TextBox.ProbeSource and modified various TPRI.HMI.Controls classes to use this object for design-time selection of variable names

  • Removed pauses from installation scripts so that installer now runs to completion without periodically requiring key presses to continue

  • Made various fixes to the Tsentry development and release environment:

    • Moved all source code into single solution and configured project dependencies

    • Changed all VB.NET projects to output to \bin\Debug\ and \bin\Release\ rather than just \bin\

    • Updated all scripts to reflect new project folder locations

 

   Upgrade Instructions:

  • Modify application screens to replace obsolete OPC interfaces for host data with the new Probe interfaces and classes as follows:

    • Remove references to TPRI.OpcCom.dll assembly

    • Implement the TPRI.Probe.IProber interface if direct access to host variable data is required

  • Modify sysProcs.ini file to add the ProbeSvr host process

  • If custom logging of variable changes made through the ProbeSvr process is desired:

    • Modify the sysLogs.ini file to add a specialized LogMsg queue such as ProbeLog for probe variables changes:

#--------------------------------------------------------------
# LogMsg Initialization File
#--------------------------------------------------------------

[General]
# LogMsg file directory
LogMsgDir=%TSENTRY_SYSDIR%\%TSENTRY_SYSNAME%\Logs

[Queues]
ProbeLog       *

- Create and configure sysProbe.ini configuration file for the ProbeSvr process and specify the new LogMsg added above:

#--------------------------------------------------------------
# ProbeSvr Initialization File
#--------------------------------------------------------------

#--------------------------------------------------------------
# General probe parameters
#--------------------------------------------------------------

[General]
# Specify the LogMsg queue for variable change logging
LogMsgQueue=ProbeLog
 2007/1/14 - v4.06.00

Changes:

  • Modified tpriCryptor class to add new functions utilizing true encryption/decryption

  • Removed deprecated TPRI.HMI.Screens.BaseScreen class

  • Added GetVarArrDimCnt(..) and GetVarArrDim(..) functions to TPRI.DataDictionary.GsmDDCom class

  • Added VariableArrayDimensions(..) to TPRI.DataDictionary.IDataDict interface

  • Added VariableArrayDimensions(..) to TPRI.DataDictionary.ListDataDict class

  • Added VariableArrayDimensions(..) and ExpandAllVariables(..) functions to TPRI.DataDictionary.TreeDataDict class

  • Made various fixes to the TPRI.HMI.Screens.ProbeX screen:

    • Added code to check changed variable names to see if they are structures or ill-defined arrays and offer to automatically add variables for all structure sub-variables and array indices

    • Fixed naming of array elements when parent variable does not have enough empty array indices

    • Added popup menu items to expand and collapse all nodes

  • Modified TPRI.HMI.Forms.DataDictForm so that array indices will be kept if possible when changing from one variable to another in the tree

  • Fixed tpriGsmDDCom::getVarArrDim(..) function to correctly find array dimension for variable names corresponding to multi-dimensional arrays with only partially filled array indices

  • Fixed TsecurityCfg application to correctly process changes to various user lists

  • Fixed Texplore login screen to display language-specific labels & buttons

  • Added additional exception handling to Tsecurity service functions that search for available domains

 2006/11/29 - v4.05.00

Changes:

  • Made various fixes to the Texplore application:

    • Fixed connection logic to prevent unhandled exception if the Tsecurity service is not running

    • Added code to display hourglass cursors during connection & authentication

  • Fixed TPRI.HMI.Application.LoginMgr.LoginNotRequired(..) function to correctly set internal property values to prevent subsequent security timeouts

  • Added TestSAK(..) function to TPRI.Tsecurity.LoginSession class

  • Made various fixes to the TPRI.HMI.Controls.ActiveShape class:

    • Added code to check for changes to underlying ActiveShapeSetup configurations and automatically update display accordingly

    • Optimize painting routines to speed processing

  • Made various internal modifications to TPRI.Shape classes to support above ActiveShape changes

  • Made various fixes to the TPRI.HMI.Forms.DataDictForm class:

    • Fixed initial display of form to prevent warning message if previous search string fails to find any results

    • Added code to clear the search results any time the current data dictionary is changed to prevent accidental selection of a variable name not actually available in the current dictionary

    • Fixed initial display of form to prevent changing original value of variable when it cannot be found in the data dictionary tree

  • Fixed TPRI.HMI.Screens.ProbeX screen to properly check user’s SAK for various privileges

  • Made various changes to the TPRI.NtRtCommand.NtRtCmd class:

    • Changed subroutines to integer functions returning NtRtInfo.ErrorCode values

    • Added message box display to user to indicate errors writing files to host

  • Made various fixes to the TPRI.Tscreen.TscreenMgr class:

    • Modified MaxBackgroundTime property so that setting property to a value of TimeSpan.MaxValue disables automatic disposal of the screen while in the background

    • Optimized routines to resize child forms to reduce total number of form layouts required

  • Made various changes to the TPRI.DatabaseIO.DBIOHost class:

    • Added overridable property ConnectionString to allow derived classes to customize the specification of the database connection string

    • Added Shutdown() function to forcibly reset the database service connection

    • Added code to periodically clean up the database query cache

  • Added overridable properties ServerName, PortNumber, and HostType to the TPRI.DatabaseIO.DBIOServer class to allow derived classes to customize the specification of the various connection parameters

  • Made various changes to the TPRI.DatabaseIO.DBIOClient class:

    • Added public Shutdown() function to allow for destruction of communications channel

    • Added code to trap exceptions while unregistering .NET remoting channel

  • Modified tpriGsmDDCom class to add additional error handling while formatting global common variable values with formatting strings listed in sysVars.ini

  • Modified tpriProc class to move initialization of crash & invalid parameter handlers from Create(..) function to the class constructor to support special case uses of class

  • Fixed restoration of TRENDCOM buffers in tpriTrendMgr to eliminate incorrect error messages

 2006/9/1 - v4.04.00

Changes:

  • Fixed bug in Tsecurity that would occasionally return authentication failure even when proper credentials are supplied

  • Added TPRI.HMI.Controls.BarGraph and TPRI.HMI.Controls.RotatedLabel class

  • Made various fixes to the TPRI.HMI.Controls.TextBox class:

    • Fixed display of focus rectangle

    • Fixed default value of BorderStyle property so that setting the value to BorderStyle.None will force it to be written to the source code

  • Modified TPRI.HMI.Forms.DataDictForm to remember and restore previous variable name and search string

  • Fixed TPRI.HMI.Controls.TriggerConditionList and TPRI.HMI.Controls.TriggerTrendList to properly update display after change to cell values

  • Numerous changes to trending HMI components to internally store times as integers rather than floating point numbers

  • Made various fixes to the TPRI.HMI.Controls.TrendPlayback class:

    • Renamed various events to conform to .NET naming conventions

    • Fixed handling of End Time checkbox clicks to properly update displayed check state

    • Added attributes to numerous properties to prevent display in properties window and serialization in the designer

    • Added attributes to numerous properties to prevent display in properties window

    • Modified PlaybackMode property to be read-only (mode is set via SetPlaybackMode(..))

  • Made various fixes to the TPRI.HMI.Controls.TrendCtrl class:

    • Renamed various events to conform to .NET naming conventions

    • Added DataUpdatedEventArgs class and changed parameters to DataUpdated event

    • Renamed updData(..) function to UpdateData(..)

    • Modified display of times to automatically determine number of significant digits to display

    • Fixed display of Delta Time to correctly show values greater than 60 seconds

    • Fixed display of Delta values when data is not available for one of the cursors

    • Modified graph initialization so that the time between the first and last points displayed in the graph is exactly the specified width

    • Added code to automatically force graph width to be an integral multiple of sampling period

    • Added attributes to numerous properties to prevent display in properties window

  • Renamed TPRI.Trending.PB_1SECPERSEC constant to PB_REGULATESPEED

  • Fixed TPRI.Trending.TrendSetConverter classes to prevent exception when loading empty TrendSet

  • Fixed TPRI.Trending.TriggerDef and TPRI.HMI.Controls.TriggerStatusList classes to properly read and write trigger save times in various disk files

  • Fixed TPRI.HMI.Screens.TriggerMgr screen to correctly lock down Activate and Deactivate buttons based on user’s security level

  • Modified tpriLogMsg class to allow shared read operations when opening log files

  • Modified tpriIniFile::extractIniFileString(..) to return an error if a quote-delimited string is not immediately followed by a whitespace character

  • Added RemXTimer(..) functions to tpriTimer libraries

  • Added dynamic trend time and dynamic trend timeout variables to TRENDCOM global common

  • Made various changes to tpriTrendSrv class:

    • Fixed processing of trend data requests to correctly interpret a relative start time paired with an absolute end time that comes before the latest recorded data

    • Modified requests for dynamic trend variables to allow data storage on disk and to use sysTrend.ini file variable to specify trend storage time

  • Modified tpriTrendMgr to parse both dynamic trend time and dynamic trend timeout variables from sysTrend.ini file into TRENDCOM global common

  • Fixed tpriGsmDDCom data dictionary initialization to remove check and warning message during parsing of variable formatting string as error detection is now in tpriIniFile::extractIniFileString(..)

  • Fixed parsing of __int64 variable init/min/max values during data dictionary initialization

  • Added error messages to tpriProc::shutdownMgr(..) if invalid mode passed to function

  • Changed shutdown request processing in NtRtMgr to use InitiateSystemShutdownEx(..)rather than ExitWindowsEx(..)to shutdown and/or reboot the system

  • Made various changes to GsmPifBld process:

    • Fixed parsing of union variables that explicitly specify the ‘union’ keyword

    • Fixed parsing of C-style comments that are broken across multiple header file reads

    • Fixed parsing of multi-line C-style comments started on the same line as a compiler directive

  • Made various changes to NtRtSvc process:

    • Added support for '$'-enclosed environment variables in installation strings to allow specifying environment variables in the registry entries

    • Modified installer to update binary path and command line parameters if service is already installed

    • Modified installer to specify .\Tsentry user for service

    • Added additional event log messages and error code returned to user if service fails to start

    • Added additional configuration feedback when displaying installation information

  • Updated components to support Ardence RTX 7.0

 

   Upgrade Instructions:

  • Modify project properties for all RTSS versions of all processes as follows:

    • Remove the “/QIfist” flag from the C/C++ → Command Line setting

    • Set Manifest Tool → Input and Output → Embed Manifest to No

 2006/5/25 - v4.03.00

Changes:

  • Fixed TPRI.HMI.Screens.NtRtMgr class to prevent exceptions when right-clicking on white space in the process list

  • Fixed TPRI.Tscreen.TscreenMgr class to initialize ScreenTrackingEnabled to True by default

  • Fixed TPRI.Languages.LanguageTable class to trap exceptions generated by passing an invalid culture name to the class constructor

  • Added additional exception trapping to TPRI.NtRtInfo.Host for reading HMI configuration files

  • Added additional error messages displayed to user in Texplore while attempting to connect to a given host and application

  • Made various fixes to the TPRI.HMI.Screens.ProbeX class:

    • Fixed Paste operation in to properly update underlying ProbeSet object

    • Fixed handling of escape key to revert a modified probe variable to its unmodified value

  • Added Debug versions of static link libraries tpriNtRtAppd.lib and tpriNtRtNETd.lib to TSENTRY distribution files

 2006/5/12 - v4.02.00

Changes:

  • Modified NtRtMgr initialization logic so that if there is an error processing the sysVars.ini file but the system is allowed to start anyway (AllowBadDDComVars=Yes) then the warning message box will not be displayed and the system will start immediately (LogMsg will still be called)

  • Modified GsmOpcRSvr so that it cannot be registered as a server (passing /regserver on the command line is now equivalent to /regclient)

  • Modified GsmOpcSvr to use true path to executable for registering service rather than default path

  • Fixed internal variable initialization and logic error causing occasional exceptions in TPRI.HMI.Controls.OpcMgr.WriteTscItem(..)

  • Fixed bug ProbeX screen that would display the Format selection box for elements within an array

  • Added Cut, Copy, & Paste operations to ProbeX screen

  • Added Cut operation to TPRI.HMI.Controls.TrendVarList for TrendX screen

  • Fixed internal function shared by TPRI.HMI.Controls.CmdButton and ...LinkLabel to correctly return whether or not the link to a new screen has been handled

  • Fixed bug in Texplore that would occasionally prevent the application from closing

  • Added VerifyAppClose property to TPRI.HMI.Application.Explorer.TexploreSettings class and added code to Texplore to check app.config file setting before asking user to verify close requests

  • Added support for changing user password to Texplore

  • Fixed TPRI.DatabaseIO.DBIOHost class destructor to prevent exception generated if database has already been closed

  • Renamed and changed scope of friend class TPRI.HMI.Forms.SharedFolderListForm to public class TPRI.HMI.Forms.OpenSharedFileForm and made various internal changes to add greater flexibility in use

  • Changed scope of TPRI.NtRtCommand.NtRtCmd class from private to public to facilitate generation of LogMsg messages from HMI screens

  • Added TPRI.NtRtCommand.DebugLevel enumeration for generating LogMsg messages

  • Updated the TPRI.HMI.Controls.RpsEditor class to be fully compatible with NtRtInfo service

  • Fixed TPRI.HMI.Controls.TrendingVarList, TPRI.HMI.Controls.TriggerStatusList, and TPRI.Tsecurity.Controls.AppSecurityEditor classes so that the tool tip text is not immediately displayed when the mouse moves over various nodes

  • Changed copies of tpriNtRtApp.lib and tpriNtRtNET.lib distributed with Tsentry from Debug to Release versions

  • Upgraded Glacial Components GlacialTreeList to v2.5.0.18486

  • Upgraded Glacial Components GlacialListView to v2.1.0.22279

 2006/3/1 - v4.01.00

Changes:

  • Added #include “tpriUtilMacs.h” to tpriNtRt.h file

  • Made various changes to the tpriProcMgr class:

    • Moved NtRtCmd processing code directly into NtRtMgr process itself

    • Changed scope of parseGrpdef(..), parseProdef(..), and parseTrapCrash(..) from private to public

  • Modified macros in tpriUtilMacs.h to surround all function arguments with parentheses to prevent unexpected results when calling functions as part of a larger expression

  • Fixed Release versions of tpriNtRtApp.lib and tpriNtRtNET.lib to correctly use 32-bit time functions rather than new 64-bit time functions

  • Made various changes to the NtRtMgr process:

    • Added code to optionally delay TSENTRY startup and display a countdown timer to allow console user time to cancel startup

    • Fixed shutdown option processing to correct potential multithreading pitfalls

  • Made various changes to the NtRtSvc process:

    • Added numerous logs during service installation

    • Added ‘-installdefault’ command line option to simplify service installation

  • Fixed non-RTX version of tpriCreateSharedMemory(..) to properly set the last error code to ERROR_ALREADY_EXISTS when shared memory already exists

  • Fixed TPRI.HMI.Controls.ActiveShape to force text and shape to be visible when changing from an blinking state to a non-blinking state

  • Modified TPRI.HMI.Controls.TextBox so that text will not be automatically reset when OPC disconnects if the tDataSource member is an empty string

  • Added TPRI.Trending.TrendMgrStatus enumeration

  • Added Status property to TPRI.HMI.Controls.TrendCom class

  • Added TPRI.Trending.ProbeMgrStatus enumeration

  • Added Status property to TPRI.HMI.Controls.TrendCom class

  • Made various changes to the TPRI.HMI.Controls.TrendVarList class:

    • Fixed processing of Label cell changes to correctly update the Label, not the Variable

  • Fixed the Trend Setup form on the TrendX screen to update the trend sources displayed on the Trend Variable list when the Set All Variables button is clicked

  • Changed the data dictionary form so that it is not displayed in the Windows taskbar

  • Created new TPRI.HMI.Controls.TextSelectBox class as base class for text box with a [*] button to display popup selection box and completely reworked DDVarSelect and TrendSrcSelect classes to inherit from this parent class

  • Made various changes to the TPRI.HMI.Controls.OpcMgr class:

    • Added public RestartComm() method

    • Modified trapped exception handling during data updates so that error message boxes are generated only one at a time

  • Fixed TPRI.HMI.Screens.ProbeX screen to properly display elements of multi-dimensional arrays

  • Fixed TPRI.HMI.Screens.TrendFileMgr screen to use correct shared folder name for historical trend data files

  • Added TPRI.NtRtCommand namespace and ShutdownOptions, AppShutdownOption, and AppShutdownOptionCollection classes as well as AppShutdownOptionType and AppShutdownOptionFunction enumerated types to that namespace

  • Modified TPRI.NtRtInfo.INtRtInfo interface and TPRI.NtRtInfo.Client and TPRI.NtRtInfo.Host classes to add GetShutdownOptions(..) functions

  • Added Shutdown button and code to send request to host to TPRI.HMI.Screens.NtRtMgr form

  • Fixed TPRI.HMI.Application.TsecurityMgr so that Accessed events raised by secured objects only reset the expiration time if the object is not yet expired

  • Made various changes to the Texplore application:

    • Added code to save size and position of window and restore on restart

    • Added code to save most recently used host and application names and restore on restart

    • Added indicators for OPC and Trend communications

    • Fixed window sequencing when Tsecurity host cannot be reached during login

    • Added code to handle Enter key presses from domain combo box on login screen

    • Disabled Change Password button for functionality not yet completed

    • Added default icon for application

  • Added code to TPRI.Tscreen.TscreenMgr to detect when the parent container is closing and disable auto-navigation that is normally processed when the active form is closed

  • Added additional error handling to TPRI.Tscreen.TscreenInfo to trap exceptions during creation of custom application screens

  • Added icons to Tsecurity and TsecurityCfg processes

  • Updated code base to use various secure CRT functions under VS2005

 

   Upgrade Instructions:

  • Update the \tpriNtRt\bin\NtRtInfo.exe.config file to add a <SharedFile> key with the name set to SysIni and Path set to the system.ini file, as in the following:

<SharedFile>
   <Name>SysIni</Name>
   <Path>%TSENTRY_SYSDIR%\%TSENTRY_SYSNAME%\pif\%TSENTRY_SYSNAME%.ini</Path>
</SharedFile>
  • Update the sys.ini file to configure a DelayStartupTime parameter in the [AppParams] section, if desired

 2006/1/31 - v4.00.00

Changes:

  • Updated compiler support for Visual Studio 2005 and .NET Framework 2.0

    • Visual Studio .NET 2003 and Visual Studio 6.0 are no longer supported in any way by versions of  TSENTRY v4.00.00 or greater

  • Moved HMI environment from Internet Explorer to Tsentry Screen Explorer (Texplore)

  • Removed following portions of TSENTRY:

    • TSENTRY and application \wwwroot\ folders no longer required or created by installation

    • TSENTRY \Modules\ folder is no longer supported of created by installation

    • All application file shares (DataSet, Trigger, NtRtCmd, etc.) no longer required as the NtRtInfo service now provides enhanced functionality

    • Local tpriHmi user no longer required or created by installation

    • tpriPublisher no longer required or included with installation

    • tpriTrigText application removed in favor of standard TSENTRY screen TrendFileMgr

    • Removed all HMI-related assemblies in favor of classes exposed by TPRI.Core.dll

    • Removed Probe, ProbeA, and ProbeV screens in favor of ProbeX

  • Several standard TSENTRY functions are temporarily excluded from this release, including:

    • tpriNtRtAdmin application not included with release

    • Custom HMI screens not yet explicitly supported

  • Added links to ASCFEditor and TsecurityCfg application to both TSENTRY and Tsecurity installers

  • Updated Workstation Configuration document in TsentryHelp to support Texplore installation

  • Integrated classes from TPRI.Cryptor assembly into TPRI.NtRtNET assembly

  • Updated all scripts to require and use the .NET Framework v2.0 rather than v1.1

  • Moved .NET components from tpriNtRt.lib into separate tpriNtRtNET.lib library

  • Removed CreateShares.cmd, ExportDataDict.cmd, InstallFiles.cmd, InstallIISCustom.cmd, InstallIISCustomFiles.cmd, and InstallIISCustomSite.cmd scripts

  • Added TPRI.HMI.Application.AppVariableCollection class

  • Made various changes to the TPRI.HMI.Application.AppConfig class:

    • Added HmiConfigSharedFolder constant field

    • Added CurrentCulture, CurrentLanguage, and Title properties

    • Changed AppVariables property from StringDictionary to AppVariableCollection

  • Removed LoadStringDictionary(..) function from TPRI.HMI.Application.AppLib module

  • Added TPRI.HMI.Application.Explorer namespace, including ITexplore interface and FindExplorer(..) function

  • Added LinkLabel class to TPRI.HMI.Controls namespace

  • Added TPRI.HMI.Application.TsecurableObject class

  • Moved login-releated portions of TPRI.HMI.Application.TsecurityMgr into new LoginMgr class and reworked TsecurityMgr to better manage security session

  • Moved shape-related enumerated types and classes into TPRI.Shape class

  • Renamed TPRI.Shape.Shapes enumerated type to TPRI.Shape.ShapeTypes

  • Updated TPRI.HMI.Controls.ActiveShape and TPRI.HMI.Controls.BarGraph classes to work with new TPRI.Shape namespace

  • Made various changes to the TPRI.HMI.Controls.CmdButton class:

    • Modified class so as to inherit directly from System.Windows.Forms.Button

    • Deprecated tURL property and replaced with LinkedScreen property

    • Deprecated tText property in favor of standard Text property

    • Removed unnecessary ButtonControl property

  • Changed pMgr internal variable of TPRI.HMI.Controls.BaseControl class from generic Object type to TPRI.HMI.Controls.OpcMgr

  • Made various changes to the TPRI.HMI.Controls.CmdButtonCollection class:

    • Added CmdButtonCollectionEventArgs subclass

    • Modified Click event signature to pass reference to CmdButtonCollectionEventArgs object

    • Added IndexOf(..) function

  • Made various changes to the TPRI.HMI.Controls.DDVarSelect class:

    • Completely reworked class so as to inherit directly from System.Windows.Forms.Button

    • Removed various old class events exposed directly by System.Windows.Forms.Button

  • Remove all events from TPRI.HMI.Controls.DDVarSelectCollection class

  • Made various changes to the TPRI.HMI.Controls.OpcMgr class:

    • Completely reworked class to support switching between screens in Texplore

    • Added StopComm() and Reset() methods

    • Changed existing parameter to StartComm(..) to pass by value and added additional parameter to point to the root control to search for active objects

  • Made various changes to the TPRI.HMI.Controls.TrendCom class:

    • Completely reworked class to support switching between screens in Texplore

    • Changed existing parameter to StartComm(..) to pass by value and added additional parameter to point to the root control to search for active objects

    • Added StopComm() method

  • Removed TPRI.HMI.Screens.BaseScreen class

  • Implemented internals of TPRI.NtRtInfo.Host.GetHmiConfig(..) function

  • Added TPRI.DatabaseIO namespace and classes

 

   Upgrade Instructions:

  • Before installing the new version of Tsentry:

    • Uninstall previous version of Tsentry via Control Panel→Add/Remove Programs

    • Uninstall previous version of Tsentry HMI via Control→Add/Remove Programs

    • Download and install .NET Framework v2.0 from Microsoft

    • Remove \tsentry\ and custom application virtual web shares from IIS

    • Copy the existing %TSENTRY_SYSDIR%\tpriNtRt\wwwroot\web.config file into %TSENTRY_SYSDIR%\%TSENTRY_SYSNAME%\HmiConfig\ or equivalent folder and rename as TsentryHmi.xml

    • Copy the existing web.config file from any custom application virtual web shares into %TSENTRY_SYSDIR%\%TSENTRY_SYSNAME%\HmiConfig\ or equivalent folder and rename as <Application>.xml, where <Application> matches the name of the old virtual web share

    • Remove the folders used as the virtual web shares for any custom HMI applications (typically only %TSENTRY_SYSDIR%\%TSENTRY_SYSNAME%\wwwroot\)

    • Using Windows explorer perform the following to %TSENTRY_SYSDIR%\tpriNtRt\

      • Remove the \Apps\ subfolder

      • Remove all files from the \bin\ subfolder except NtRtInfo.exe.config

      • Remove the \Modules\ subfolder

      • Remove the \wwwroot\ subfolder

  • After installing the new version of TSENTRY:

    • Remove any post-build operations that copy data dictionary files to web shares from data dictionary project settings in application development environment (web shares no longer exist)

 2006/1/30 - v3.12.00

Changes:

  • Modified TSENTRY installer to save flags for real-time installation and copying HMI files so subsequent installations default to the same values

  • Made various changes to the tpriProc class:

    • Moved initialization of crash handler from PrIni(..) to Create() in order to support processes not listed in sysProcs.ini file

    • Modified Create() function to disable popup message boxes for ASSERTs

    • Changed destructor so that process state is left as tpriProcStopping rather than resetting to tpriProcStopped (NtRtMgr/tpriProcMgr will reset the value when process exits)

  • Made various changes to the tpriProcMgr class:

    • Modified function that checks if processes are still alive to withhold log message indicating that process is no longer alive if process state is tpriProcStopping (due to above change to tpriProc destructor)

    • Modified function to adjust the internal clock drift rates to disable RTX clock tracking if RTX is not installed on the system (prevents error message on non-RTX systems)

  • Fixed AddXTimer(..) function prototypes in tpriTimer.h

  • Changed LogMsg(..) so that displayed process name is taken from sysProcs.ini file or executable file name rather than first passed function name

  • Fixed logging of memory buffer rollovers in TrendMgr to log correct memory buffer size

  • Changed calling parameters to tpriGsmDDCom::varDef::fmtXXX(..) functions to include size of destination buffer

  • Removed try/catch from tpriGsmDDCom::varDef::fmtXXX(..) in tpriNtRt.RTSS.lib library

  • Removed tpriLogMsg::fileLogMsgs(..) function from tpriNtRt.RTSS.lib library

  • Fixed tpriGetClockTime(..) function to correctly use RTX timer for Win32 processes on an RTX system so that absolute timer values are consistent between Win32 and RTSS processes

  • Fixed non-RTX version of tpriCreateSharedMemory(..) to properly set the last error code before function returns

  • Increased size of error message buffer in tpriSvrSock constructor to prevent buffer overruns

  • Made various changes to the GsmPifBld process:

    • Added support for use of sizeof(..) in array bounds

    • Added support for mixed hexadecimal and decimal math in array bounds

  • Reorganized code in main(..) function of NtRtSvc to clean up sequencing

  • Fixed Tsecurity installer to include Interop.ADSecurity.dll in \bin\ folder

  • Fixed TPRI.Tsecurity.Client class so that internal .NET remoting channel is properly disposed

  • Made various changes to the TPRI.Tsecurity.LoginSession class:

    • Added Copy(..), CopyTo(..), CreateCopy(), and UpdateExpiration(..) methods

    • Added Expired, Timed, ExpireTime, and AllowedAcces properties

    • Removed UsingDefaultSAK property

    • Changed name of ResetLogin() function to Logout()

    • Changed name of SessionTimeout property to Timeout

  • Changed default property values in TPRI.Tsecurity.TsecuritySettings class from shared properties to simple public constants

  • Modified TPRI.Tsecurity.Host class so that user information will not be removed from the cache if authentication fails because the network is unreachable

  • Fixed HMI security functions in SecurityDef module to properly treat SAK as a 64-bit integer

  • Changed securityLevel parameter on all SecurityScreen(..) functions to a 64-bit integer

  • Upgraded Glacial Components to GlacialListview v2.0.3.2204  and GlacialTreeList v2.3.2.21597

  • Fixed TPRI.DataDictionary.TreeDataDict class to properly create, track, and destroy references to the tpriGsmDDCom classes

  • Made various changes to the TPRI.HMI.Application.AppConfig class:

    • Changed initial value of TsecurityHost property from MachineName to an empty string

    • Changed initial value of TsecurityPort property from hardcoded 8080 to TsecuritySettings.DefaultPortNumber

    • Fixed parsing of TsecurityPort from config file to force default value if exception occurs

  • Fixed TPRI.HMI.Application.ScreenConfig class to properly load ClassName from XML file

  • Made various changes to the TPRI.HMI.Application.ScreenConfigCollection class:

    • Implemented ISerializable interface and added constructor for serialization

    • Removed unnecessary ScreenConfigs property

  • Added BarGraph, ComboBox, ComboBoxCollection, CoverageBar, and LogMsg classes to TPRI.HMI.Controls namespace

  • Made various changes to the TPRI.HMI.Controls.DDVarSelect class:

    • Modified DataDictNames property set method to automatically choose first data dictionary name as current data dictionary if none has already been chosen

    • Added InitialDataDictDisplay property

    • Added ShowDataDict() method

  • Added check to TPRI.HMI.Controls.OpcMgr to verify valid internal references before processing data updates to eliminate potential null reference exception

  • Added Remove(..) method to TPRI.HMI.Controls.TextBoxCollection class (shadowed Remove(..) base class function) to unhook event handlers when removing items from collection

  • Completely reworked all trend-related classes in TPRI.HMI.Controls namespace to use GlacialControls lists and trees rather than TelePro-developed objects

  • Removed TrendVarListBase, TrendingVarListBase, TrendingVarDateTimeList, ListViewEditor, and OwnerDrawnListView from TPRI.HMI.Controls namespace

  • Fixed TPRI.HMI.Controls.TriggerStatusList.ColumnWidths property set method to validate inputs

  • Made various changes to the TPRI.HMI.Forms.DataDictForm class:

    • Added several checks for valid data to prevent null reference exceptions

    • Added Enter key handler for variable name box to process like an Accept button press

  • Changed name of TPRI.HMI.Forms.QueryContinueForm.Continue property to Result in order to avoid conflict with known keyword ‘Continue’

  • Implemented ISerializable interface and added constructor for serialization to TPRI.Languages.LanguageTable class

  • Made various changes to the TPRI.Languages.LanguageTable class:

    • Implemented ISerializable interface and added constructor for serialization

    • Added FindPhrase(..) method

  • Renamed the TPRI.NtRtInfo.INtRtInfo.GetAppConfig(..) function to GetHmiConfig(..) and added additional security-related parameters

  • Made various changes to the TPRI.NtRtInfo.Host class:

    • Added DefaultPort constant field

    • Changed GetAppConfig function to GetHmiConfig to conform to updated INtRtInfo interface

    • Fixed GetSharedFilePath(..) function to catch illegal attempts to access parent directories of shared folders

  • Changed ServiceName of NtRtInfo service from Service1 to NtRtInfo

  • Fixed TPRI.Probe.ProbeSet class to properly read/write Format string from/to ProbeSet files

  • Added Tag property to TPRI.Trending.TrendSet class and completely reworked helper classes

  • Changed name of TPRI.Trending.TriggerDef.Operator property to Comparator in order to avoid conflict with known keyword ‘Operator’

  • Made various changes to TPRI.HMI.Screens.ProbeX class

    • Changed text in popup menu items to read ‘Variable’ rather than ‘Probe’

    • Added ‘Edit Variable’ popup menu item

    • Fixed display position of popup menu to correspond with mouse position

    • Added automatic retrieval of variable description in far-right column of display

    • Added protected properties VariableName(..) and RequestedVariableName(..)

    • Changed scope of InsertVariable(..), RemoveVariable(..), and RefreshArray(..) methods from public to private

    • Changed scope of StartVariable(..) from public to protected

    • Changed edit activation of variable name from single-click to double

    • Added Escape key processing in variable value text box in order to reset modified state and restore live value updates

    • Added check to prevent selection of rows in tree display that are not root variables

    • Added code to automatically display data dictionary when editing a new variable name

    • Added code to automatically stop editing the variable name when a variable is selected from the data dictionary form

    • Added code to automatically stop editing the variable format when a new selection is made in the dropdown box

    • Added support for displaying integers as unsigned values

  • Changed scope of PopulateHostTriggers() and PopulateLocalTriggers() methods in TPRI.HMI.Screens.TriggerFileMgr class from public to private

  • Moved TPRI.OpcCom class into the TPRI.Probe.OPC namespace

  • Added TPRI.Tscreen.ActivateInfo class

  • Made various changes to the TPRI.Tscreen.ITscreen interface:

    • Moved ActivateScreen(..), GoBack(..), and GoForward(..) events into new TPRI.Tscreen.INavigator interface

    • Changed OnScreenActivated parameter from a TscreenInfo object to an ActivateInfo object

  • Added TPRI.Tscreen.FindTscreen public function

  • Modified TPRI.Tscreen.ScreenChangingEventArgs and TPRI.Tscreen.ScreenChangedEventArgs classes to use ActivateInfo rather than TscreenInfo as primary data class

  • Made various changes to the TPRI.Tscreen.TscreenHistory class:

    • Added BackToMenu(), FindStepsToAlternateScren(..), RemoveScreen(..), and Clear() methods

    • Added Item(..), CurrentItem, CurrentIndex, and Count properties

    • Modified various existing functions to use ActiveInfo class rather than TscreenInfo

  • Added TPRI.Tscreen.TscreenResizeStyle enumerated type

  • Added new TPRI.Tscreen.TscreenInitInfo class

  • Made various changes to the TPRI.Tscreen.TscreenInfo class:

    • Modified class definition to inherit from TPRI.Tscreen.TscreenInitInfo class and removed local MaxBackgroundTime property (now inherited from TscreenInitInfo)

    • Added Navigator, InMemory, Active, and IsDisposingScreen properties

    • Changed Steps property from ReadOnly to Read/Write

    • Enhanced error trapping and reporting during creation of actual screen object

    • Added code to record initial size of screen to internal data

    • Fixed DestroyScreen() function to prevent function from indirectly calling itself and to clean up destruction sequencing

    • Fixed detection of form closure to update internal class data

  • Added RemoveByID(..), RemoveByClass(..), and RemoveAt(..) methods to the TPRI.Tscreen.TscreenInfoCollection class

  • Made various changes to the TPRI.Tscreen.TscreenMgr class:

    • Added ActivateInfo, AllowAutoRegister, ScreenInitInfo, CanGoBack, CanGoForward, and ScreenTrackingEnabled class properties

    • Added UnregisterAllScreens(), HideAllScreens(), ShowCurrentScreen(), and GoBackToMenu(..) methods

    • Replaced ScreenChanged(..) event with separate BeforeScreenChanged(..) and AfterScreenChanged(..) events

    • Replaced ScreenDisposed(..) event with separate BeforeScreenDisposed(..) and AfterScreenDisposed(..) events

    • Added overloaded RegisterScreen(..) method to accept a TscreenInitInfo object

    • Added support for automatically registering screens based on screen ID and namespace of current screen

    • Added overloaded ActivateScreen(..) method and support for screen activation arguments

    • Changed sequencing in internal ActivateScreen(..) to always force screen activation even if the TscreenMgr believes the requested screen is already active

    • Added support for automatically disposing screens when they have been idle longer than the time specified by the MaxBackgroundTime property

    • Changed OnScreenChanged(..) method from public to private

    • Added various options for sizing screens when container form is resized

  • Made various changes to the TPRI.Tscreen.ActivateScreenEventArgs class:

    • Added Argument property

    • Added new constructor to support navigating with arguments

    • Changed Steps property from ReadOnly to Read/Write

    • Changed ScreenID property from ReadOnly to Read/Write

  • Made various code-level changes to improve compatibility with Visual Studio 2005, including:

    • Initialized local function variables to eliminate warnings

    • Removed unused variables

    • Verify all function code paths return a valid value

    • Fixed incorrect types specified in various native Win32 function calls

 

   Upgrade Instructions:

  • Re-run the HMI client installer (http://hostaddress/tsentry/ → Hmi Setup → Step #3) on any workstation where .NET Framework v2.0 has been installed

 2005/10/28 - v3.11.00

Changes:

  • Made various changes to NtRtMgr process:

    • Modified process initialization to check for failure to create data dictionary GSM and display message to user

    • Modified initialization of LogMsg window update timer so that it runs on a non-zero interval under all conditions

  • Made various changes to GsmPifBld process:

    • Replaced code to evaluate mathematical expressions with true expression processor

    • Changed processing of #defines to hold off replacing text until required so that handling of header files with #undef statements are processed correctly

    • Changed code so that mathematical expressions in #defines are not evaluated until they are used so that compound expressions in #defines are evaluated correctly

    • Fixed incorrect calculations for structure alignment under certain circumstances

    • Added support for hexadecimal array indices

  • Added check to TrendGsm initialization to verify that all global commons are properly mapped

  • Made various changes to tpriGsmDDCom class:

    • Added check to data dictionary initialization for invalid variable formatting string in vars.ini file

    • Added optional fullSize parameter to tpriGsmDDCom::getStructInfo(..) function

  • Fixed historical trend data collection so that if one or more of the recorded variables in a trigger must be reset (e.g. if another trigger requires larger data buffers) the trigger will properly clean up its internal data, close the historical trend file file, and reinitialize without crashing

  • Fixed calculation of process interval percent utilization in tpriProc class so that changes to RepRate update filter constant in smoothing filter accordingly

  • Added AddXTimer(..) function to tpriTimer library

  • Modified NtRtHmiSetup installer so that OPC DLLs are always updated with version from installer, and hence are always registered upon the completion of the installer

  • Made various changes to TPRI.Core.dll assembly:

    • Modified TPRI.HMI.Controls.OpcMgr so that it can find TPRI.HMI.Controls.BaseControl-derived objects stored in sub-objects (e.g. GroupBox’es) on the parent form

    • Added following new namespaces, classes, & modules

      • TPRI.HMI.Controls.ToggleButton and TPRI.HMI.Controls.ToggleButtonCollection

      • TPRI.HMI.Controls.ProbeSetLoader

      • TPRI.Probe.ProbeSet, TPRI.Probe.ProbeSetConverter, and TPRI.Probe.ProbeLib

      • TPRI.HMI.Screens.ProbeX

      • TPRI.HMI.Application.AppConfig, TPRI.HMI.Application.AppLib, TPRI.HMI.Application.LoginConfig, and TPRI.HMI.Application.TsecurityMgr

      • TPRI.Languages.LanguageTable and TPRI.Languages.LanguageTableCollection

    • Renamed ShapeArray class to ShapeCollection and moved into TPRI.HMI.Controls namespace

    • Moved ActiveShapeCollection, ShapeCollection, and TextBoxCollection in TPRI.Core.dll assembly into TPRI.HMI.Controls namespace

    • Improved error logging in TPRI.HMI.Controls.DataSetLoader class

    • Modified TPRI.HMI.Screens.BaseScreen so that security is disabled until the screen is actually started in order to prevent errors during development

    • Added support for security on TPRI.HMI.Screens.TrendFileMgr screen

    • Added readonly ActiveInfo property to TPRI.Tscreen.TscreenMgr class

    • Numerous minor code fixes to eliminate errors during strict compilation

  • Integrated TPRI.Cryptor and TPRI.CryptClient classes into TPRI.NtRtNet.dll assembly

  • Made various changes to Tsecurity service:

    • Changed logging of login errors to display error string instead of error number

    • Fixed caching of user info so that data is not inadvertently removed from the cache file if a login fails with a bad password that does not match the hashed password stored in the cache

    • Fixed calculation of password expiration date for a given user so that the user flags are first checked to determine if the password is set never to expire

    • Fixed security hole in encryption/decryption of values in cached user info file

    • Added DisableAuthentication key to Tsecurity service to facilitate testing

    • Modified algorithm to search for available domains so that trusted domains will always be included

    • Added TsecurityDomains lists to configuration file to support filtering of available domains

    • Moved location of available domains file into same folder as service executable

    • Removed LocalMachineDomain parameter from configuration file and added code to automatically determine correct value

    • Moved ASCFFolder and PortNumber parameters into TsecuritySettings class

  • Made various changes to ASCFEditor application:

    • Modified application close sequence to ask user to save unsaved changes

    • Changed various domain comboboxes to allow user-entry of domains

    • Fixed saving of known Tsecurity hosts to ASCFEditor.exe.config file

    • Improved error logging

    • Remove various sections of unused code

  • Added TsecurityCfg application for configuring the Tsecurity service

  • Made various changes to the TPRI.Tsecurity.dll assembly in addition to those required for the above changes:

    • Moved all Tsecurity Application and ASCF related classes into the TPRI.Tsecurity.TsecurityApps namespace

    • Moved all controls into the TPRI.Tsecurity.Controls namespace

    • Renamed all “Dialog” classes as “Form” classes and moved into the TPRI.Tsecurity.Forms namespace

    • Added TPRI.Tsecurity.BrowseUser and TPRI.Tsecurity.BrowseUserCollection classes

    • Added TPRI.Tsecurity.TsecurityDomainList and TPRI.Tsecurity.TsecurityDomains classes

    • Added TPRI.Tsecurity.Client.GetDomains(..) overloaded function to retrieve domains as a TsecurityDomains list

    • Modified TPRI.Tsecurity.TsecuritySettings class to allow direct access to data outside of application configuration files

    • Added NoNetwork error code and code to detect condition during user authentication

    • Modified TPRI.Tsecurity.TsecurityApps.ASCF class to retrieve ASCFs from arbitrary folder not specified by registry key

    • Moved various utility functions from specific classes into the TPRI.Tsecurity.UtilLib module

  • Completely redesigned HMI Login page:

    • Reworked Login page as a true ASP.NET page

    • Moved all configuration from tpriScreens.ini file to application-specific web.config file

    • Added various Login sequencing configuration options

    • Removed all references to tpriScreens.ini file from tpriNtRtAdmin, installers, and procedures

    • Removed all references to TSENTRY_HMI_PIF and TSENTRY_HMI_LOG system environment variables

    • Modified tpriScreens.net.htm.template for compatibility with new Login architecture

  • Updated CleanExtinctTsentryComponents.cmd script for latest changes

  • Added ntrights.exe to distributed \Procs\ folder and modified CreateTsentryUser.cmd script to call ntrights.exe to give Tsentry user the right to log on as a service

  • Added DeleteByDate.vbs scripts to distributed \Procs\ folder

  • Made various modifications to .NET screen htm/aspx template:

    • Updated template for new login architecture

    • Updated cookie functions

    • Fixed potential bug during string parsing in OnLinkTo(..) function

  • Migrated help documentation to new Web Works platform

 

   Upgrade Instructions:

  • Before installing the new version of TSENTRY:

    • Delete all files and subdirectories from %TSENTRY_SYSDIR%\tpriNtRt\TsentryHelp

  • After installing the new version of TSENTRY:

    • Delete all application screen *.htm, *.asp, & *.aspx files and re-publish using tpriPublisher

    • Port all HMI security settings from old tpriScreens.ini file to new web.config file format for all virtual web shares

      • Port settings for Tsentry web share as well as any application web shares

      • See \tpriNtRt\apps\tpriNtRtAdmin\template\web.config.template for the correct web.config file format

      • Save web.config using UTF-8 encoding (open file in notepad, File→Save As, choose UTF-8 in the Encoding dropdown box, and click Save)

    • Run the new Tsecurity configuration tool (\tpriNtRt\Tsecurity\bin\TsecurityCfg.exe) to configure all Tsecurity parameters, browse users, domains, and administrators

 2005/5/2 - v3.10.00

Changes:

  • Modified TrendTrig process to successfully initialize if sysTrend.ini file does not contain [TrendTrigDefs] section

  • Added tpriTrigText to tpriNtRt libraries

  • Fixed domain filtering on HMI login screens

  • Modified tpriTrendSrc::setTrendData(..) to add checks for valid input parameters

  • Added NtRtInfo service for exposing data from TSENTRY host

  • Renamed TsecurityUser to TsentryUser to generalize user for multiple uses

  • Modified CreateUser.vbs script to accept command line arguments and move DeleteUser code into its own script DeleteUser.vbs

  • Added scripts to clean up extinct Tsentry and Tsecurity components and modified installer to call scripts during installation/uninstallation

  • Added tpriTrendSrc::isCompactVarBuf(..) function to return if a trend buffer is fully compacted

  • Added createSection(..) functions to tpriIniFile class for creating a new section in an ini file

  • Made various changes to tpriTrendTrig class:

    • Modified saveTriggerList(..) to automatically create .ini file section if needed

    • Modified chkAddDel(..) to return number of files processed

    • Removed concept of ‘active’ vs. ‘inactive’ triggers; triggers are either loaded into the system or not

    • Modified trigger initialization so that trigger is loaded into the system even if there is an error so that its status will be displayed on the trigger status screen

    • Added support for recording error messages for display on the trigger status screen

  • Added tpriTrend::getTrendVarStatusMessage(..) function to get text description of trend status

  • Modified TrendTrig process to save trigger list after any changes, not just when process exits

  • Added DynamicTrendTimeout parameter to sysTrend.ini file to specify max timeout for dynamic variables and modified tpriTrendMgr class to parse this parameter from the ini file

  • Added checks to timestamp subtraction operator overload functions to prevent negative values

  • Created TPRI.Core.dll VB.NET assembly to provide many common objects in a single assembly

    • Set up hierarchical namespace tree for various classes

    • Imported copies of many of the existing HMI classes and assemblies into TPRI.Core.dll

    • Massive modifications to existing classes and structures to take advantage of .NET constructs and capabilities

  • Modified existing TrendX and TriggerMgr screens to use TPRI.Core.dll assembly and classes rather than older individual assemblies

  • Created new TrendFileMgr screen for managing historical trend files

  • Updated NtRtMenu screen to include link to TrendFileMgr screen

 2005/3/8 - v3.09.00

Changes:

  • Completely reworked Tsecurity subsystem

    • Tsecurity now packaged and installed as an integral part of TSENTRY

    • Removed TSecurityAD.dll, TSecurityASCF.dll, TSecurityClient.dll, and ITSecurity.dll assemblies from distribution

    • Redesigned Tsecurity classes and moved all common code into single Tsecurity.dll assembly

    • Modified file format for ASCF files

    • Redeveloped ASCFEditor as a completely new application

    • Renamed TSecurityService.exe to Tsecurity.exe

    • Added several configuration parameters to Tsecurity service configuration file

    • Modified authentication sequence to use multiple threads and caching of user credentials

    • Optimized authorization sequence to speed Active Directory lookups of group memberships for domain users

    • Integrated Tsecurity documentation and installation in with TSENTRY

  • Made various fixes to tpriNtRtAdmin VC++ task project template

    • Modified Output and Intermediate Directories for RTSS Debug and RTSS Release configurations to use underscore between RTSS and Debug/Release

    • Replaced RtxSdkDir environment variable with RtxDir to conform to RTX 6.0 installation

  • Made various changes to tpriTrendSrc class:

    • Modified constructor to allow NULL passed as trend source name

    • Make compactVarBuf(..) a protected virtual function

    • Changed cleanDeadVars(..) to check return value from cleanDeadVar(..)

    • Modified setTrendData(..) to force sampling times to lie on multiples of the trend variable sampling period, not the base period of the trend source

    • Added checks to various functions for fully initialized internal data

  • Made various changes to tpriPci::findPci(..) function:

    • Modified logging of all hex numbers to prepend output with ‘0x’

    • Modified debug levels so all messages are displayed while scanning for PCI cards

  • Added tpriGsmDDCom::getTypeFromTypeName(..) function to parse type strings

  • Fixed binary & hex formatting on Probe/ProbeA/ProbeV to display values properly

  • Temporarily reversed v3.08.00 change to tpriNtRtEx.dll so that RTX timers are only used if running under RTSS

 

   Upgrade Instructions:

  • Before installing the new version of TSENTRY, completely remove any previous Tsecurity installation as follows:

    • First, uninstall the old TsecurityService application by running the uninstall script:
      <InstallDir>\Procs\UninstallTsecurityService.cmd <InstallDir>\bin
      where <InstallDir> is replaced with the base installation directory of the old version of Tsecurity, such as D:\tpriNtRt\Tsecurity

    • If the latest version of TSENTRY has already been installed before removing the previous version of Tsecurity, the above uninstall script may not work; in this case, the old TsecurityService service can be removed by manually executing the following two commands from the command prompt:
      cd /d %Windir%\Microsoft.NET\Framework\v1.1.4322
      installUtil.exe  /u  <InstallDir>\bin\TsecurityService.exe
      where <InstallDir> is replaced with the base installation directory of the old version of Tsecurity, such as D:\tpriNtRt\Tsecurity

    • If the old Tsecurity package was uninstalled before the uninstall script was executed, the TsecurityService entry in the service control manager can only be removed by deleting the following entries from the registry:

      • HKLM\SYSTEM\CurrentControlSet\Services\ Eventlog\Application\TSecurityService

      • HKLM\SYSTEM\CurrentControlSet\Services\TSecurityService

    • Uninstall the old Tsecurity package through the Control Panel→Add/Remove Programs

    • Rename the old Tsecurity installation directory; this directory may be deleted if no Application Security Configuration Files (ASCFs) are to be transferred to the new installation

  • Once the new version of TSENTRY has been installed, configure the Tsecurity administrator by inserting the appropriate user as an Owner into the Tsecurity.xml file in the \ASCF\ subdirectory in the Tsecurity installation directory

  • For each existing ASCF that is to be transferred to the new system:

    • Copy the existing ASCF from the old Tsecurity installation directory tree (renamed above) into the new installation directory tree (in both cases the ASCF file should be located in the \ASCF\ subdirectory off of the installation directory)

    • Modify the copied ASCF to conform to the new ASCF file format; use ExampleASCF.xml as a template for the proper file format

    • Verify proper ASCF format by using the ASCFEditor to view the file and check all configuration settings (must log in to the ASCFEditor as the Tsecurity administrator or as the application owner for the ASCF in question)

  • Modify any existing Tsecurity client applications using the TPRI.TsecurityClient class in the TsecurityClient.dll assembly to instead use the TPRI.Tsecurity.Client class provided in the Tsecurity.dll assembly

 2004/11/4 - v3.08.00

Changes:

  • Rearranged this TsentryVersion.rtf document so that the most recent changes are listed at the top

  • Fixed buffering of trend variables to disk to properly initialize disk-based trend buffers

  • Modified tpriPublisher to process ASP.NET pages

  • Added encryption and decryption functions to tpriNtRt.lib

  • Made all required changes to implement new TSECURITY package

    • Replaced classic ASP Login/Security front-end HMI screens with new ASP.NET screens

    • Changed all links on standard screens to reference <screen_name>.aspx instead of <screen_name>.asp

    • Updated tpriScreen.net.htm.template to support ASP.NET screens

    • Replaced TPRI.Cryptcom COM+ encryption object with TPRI.Cryptor.dll .NET object

    • Removed all references to deprecated TPRI.ADSecurity object

    • Added optional ability to use custom title string on HMI login screen

    • Added optional ability to select a preferred language on HMI login screen

    • Added sample template Apps\tpriNtRtAdmin\template\HmiLangTable.ini.template for configuration of multilingual login strings

    • Modified installation scripts to correctly process various security objects

    • Added TSECURITY package installer as component of TSENTRY installation

  • Made various changes to GsmPifBld process.NET screen htm template:

    • Added support for #pragma once compiler directives

    • Added support for #pragma pack (push, x) and #pragma pack (pop) compiler directives

    • Modified processing of all other #pragma statements to ignore compiler directive

    • Added support for long int and short int type specifiers

    • Fixed processing of arrays of structures declared using the struct keyword to function identically to those declared without the struct keyword

    • Added display of line number within header file of processing errors

    • Modified logged messages during errors to help improve readability and comprehension

    • Added detection of pointer declarations and allow (but ignore) if extern or typedef

    • Changed process return codes to positive values so they are trapped by Visual Studio

  • Fixed tpriTrigText to properly process multiple variables from historical trend data files

  • Removed calls to unnecessary security auditing functions in GrantThreadAccessToConsole(..) to speed execution of function

  • Fixed tpriConnSock class to dynamically allocate large enough buffer size as needed

  • Added option to tpriNtRtAdmin task for creating a new task that uses managed extensions

  • Fixed tpriNtRtAdmin VB.NET screen template to properly reference HMI library DLLs in \tbin\

  • Created SHUTDOWNMGR_XXX defines as flag to pass to tpriProc::shutdownMgr(..) function

  • Added tpriLiteralStr(..) function for processing literal character sequences from strings

  • Fixed tpriStringToChar(..) to correctly check for valid passed buffer size

  • Changed calling format of HmiShare functions to pass-by-value rather than pass-by-reference

  • Added GetFiles(..) function to TPRI.DataDict assembly to expose data dictionary files

  • Made various changes to variable compare function library (cmpVar):

    • Added parseCmp(..) function to parse comparison string

    • Added string comparison functions

    • Changed comparison defines from TRIGVAR_XX to CMPVAR_XX

  • Made various changes to variable conversion function library (cvtVar):

    • Added support for unsigned __int64 variable types

    • Added functions for conversion between signed and unsigned integers of the same size

  • Added fmtVar(..) function for printing variables of a specified type

  • Added variable operator function library (oprVar)

  • Added tpriVop class for parsing and processing arbitrary variable operations

  • Added rules processing system (tpriRpsXXX) classes and functionality

  • Added TPRI.RpsHmi assembly for rules processing system HMI functionality

  • Updated documentation for rules processing system

  • Added TSECURITY_MODIFYRPSRULE security mask to TPRI.SecurityDef HMI library class

  • Added checks to timestamp structure operator functions to avoid divide-by-zero exceptions

  • Added float and double multiply operator functions to timestamp structure

  • Fixed parsing of AllowBadDDComVars flag from sys.ini file during initialization

  • Fixed both tpriDataSetInfo.ocx control and TPRI.DataSetInfo.dll assembly so that axis settings are properly parsed from dataset files

  • Updated workstation configuration instructions on NtRtHmiSetup.aspx web page

  • Moved LogMsg queue definition parameters from s_LOGMSGCOM structure into new s_LogMsgInfo substructure

  • Added tpriLogMsg::getLogMsgInfo(..) function to retrieve info about LogMsg commons

  • Added non-static functions to tpriLogMsg class so it can be used as base class for classes requiring internal logging and message storage functionality

  • Added LogMsg list popup menu in main NtRtMgr application to allow user to easily view current LogMsg queue disk file or explore log file directory

  • Added tpriNtRtApp.lib library for applications requiring access to subset of tpriNtRt.lib functions without requiring TSENTRY running in background

  • Added LogMsg.inl file to standard distribution to provide dummy LogMsg functions for use by applications referencing tpriNtRtApp.lib

  • Added optional parameter to DumpHex(..) to optionally compress output for repeated bytes

  • Fixed binary search of tpriGsmDDCom structure types to correctly set upper bounds of search

  • Modified tpriTrend::reqTrendVar(..) function so that the buffer sizes are not decreased when replacing an existing trend variable that is not forced to the passed trend parameters

  • Made various fixes to tpriTrendTrig class (affecting TrendTrig process):

    • Fixed saving of trigger list to sysTrend.ini file on system shutdown so blank lines aren’t inserted between entries

    • Fixed restore of trigger list on system restart so that all triggers are loaded

    • Added checks for errors opening temporary trigger data files to prevent process crash

  • Changed InstallIISCustomFiles.cmd script so that an existing web.config file is not overwritten

 

   Upgrade Instructions:

  • Before installing, delete all existing files and subdirectories from tpriNtRt\wwwroot and application wwwroot shares

  • Change all screen links to use the .aspx extension instead of .asp

  • Unregister obsolete file: regsvr32 /u %SYSTEMROOT%\system32\TPRI.Cryptcom.dll

  • Delete obsolete files from %SYSTEMROOT%\system32\: TPRI.Cryptcom.dll, TPRI.ADSecurity.dll, TPRI.ADSecurity.tlb, and Interop.ADSecurity.dll

  • If HMI security is enabled:

    • Run latest TSECURITY installer

    • Modify the web.config file in the application wwwroot directory to set the AppName key as the system name (typically this matches the name of the virtual web share)

    • Use the ASCF editor program included in the TSECURITY package to create an ASCF file for the TSENTRY HMI and configure security as desired (see TSECURITY documentation for more info)

    • Use the ASCF editor program to create an ASCF file for the application screens and configure security as desired

  • Upgrade the %TSENTRY_HMI_PIF%\tpriScreens.ini file to the newest template in \tpriNtRt\Apps\tpriNtRtAdmin\template\; instructions for each key, new or old, in the file are contained in the comments of the file

  • Republish all screens with the new screen template using tpriPublisher

  • Review any flat htm screens (e.g. menu pages) files to verify desired named sections match corresponding named sections in specified screen templates

 2004/5/27 - v3.07.00

Changes:

  • Fixed tpriPublisher command line processing to print instructions if no valid options are supplied

  • Changed tpriNtRtEx.dll to use RTX timers if running under RTX, not just if running under RTSS

  • Fixed cleanup of existing Win32 timers so that changing process rep rate properly works

  • Fixed buffering of trend variables to disk to prevent overflows under rare circumstances

  • Fixed trend server to prevent long delays and high cpu utilization processing variables that have failed to properly buffer values to disk

  • Fixed exception during trend graph initialization for backwards playback under conditions where data returned for different variables have very different timestamps

  • Fixed color of left cursor in TPRI.TrendCtrl (and TrendX) to match background of values

  • Fixed TPRI.TrendCtrl to properly format all internationalized dates and times

  • Moved calcSigDigs(..) function from TPRI.TrendCom object to TPRI.TrendDef module

  • Fixed tpriSvrConn library to prevent ALT-F4 closures when user is not allowed to close window

  • Changed format of NtRtCmd/LogMsg files generated by NtRtMgr screen to support empty strings

  • Changed tpriProcMgr class to parse new NtRtCmd/LogMsg file format

  • Made various changes/fixes to TPRI.BaseControl:

    • Added ActiveMode property to allow objects to be ignored by active processing

    • Added IsInitialized() and OnInitialized() methods to indicate when object is initialized

    • Added call to SetDisconnected() in OnInitialized() for proper display upon initialization

  • Changed TPRI.OpcMgr to use ActiveMode property to decide which objects to manage

  • Changed TPRI.DataDict and TPRI.TriggerEd to use .txt extension for data dictionary initialization filenames and configured default value attributes for object properties

  • Changed ExportDataDict.cmd script to export data dictionary files with .txt extension

  • Comment out commands in ExportDataDict.cmd script to copy data dictionary files to application wwwroot directory

  • Made various changes/fixes to tpriPublisher:

    • Fixed crash when searching for group directory that does not exist

    • Fixed bug preventing proper publishing of VB.6-style screens

    • Changed /bin/ to /tbin/ for default subdirectory in web root for VB.NET screen DLLs

    • Added code to support retrieval of .NET screen file versions

  • Added NtRtConfig.xml to NtRtHmiSetup installed files to speed screen download process

  • Made various changes/fixes to .NET screen htm template:

    • Moved window_onLoad procedure to tpriCtrlInclude named section to allow easier removal of security code on screens that should not be secured

    • Added link reference to NtRtConfig.xml config file to speed screen download process

    • Replaced TSENTRY version number in screen title with screen version number

    • Changed /bin/ to /tbin/ for subdirectory in web share for VB.NET screen DLLs

  • Removed login requirement from NtRtMenu and NtRtHmiSetup screens

  • Fixed TPRI.DataSetInfo to properly save/restore files on internationalized systems

  • Made various changes/fixes to TPRI.TriggerEd:

    • Fixed to properly save/restore files on internationalized systems

    • Added additional validation of variable names to prevent file parsing errors

  • Modified CreateUser.vb script to check for existing account instead of deleting old

  • Modified CheckValidation.inc script to display useful message when passing through security using an unauthenticated account

  • Added savePersistByList(..) and restorePersistByList(..) functions to tpriGsmDDCom class

  • Made various fixes to variable persistence functions in tpriGsmDDCom class

  • Fixed tpriTrendCtrl ActiveX object to properly format international dates and times

  • Fixed tpriTrendCtrl to reference correct web locations and names for data dictionary files

  • Built new tpriStdControls.cab file to distribute tpriTrendCtrl fixes

  • Add tpriStringToChar(..) .NET function to tpriNtRt.lib library

  • Add tpriUtilNet.h header file to distribution for .NET utility function prototypes

  • Fixed NtRtMgr dialog object to reduce flicker in other applications when updating LogMsgs

 

Upgrade Instructions:

  • Delete \bin\ subdirectories from all wwwroot shares

  • Delete gsmStruct.ini and gsmVars.ini files from \pif\ subdirectories in all wwwroot shares

  • For each application screen project:

    • In Solution Explorer, highlight project, right-click, and choose Properties

    • Choose Common Properties→Reference Path

    • For each reference path pointing to an *\wwwroot\bin\ subdirectory, highlight the entry, change the Folder to refer to *\wwwroot\tbin\ ('tbin' instead of 'bin'), and click the Update button

    • Click OK

    • Rebuild project

  • Delete all application screen *.htm & *.asp files and re-publish using tpriPublisher

 2004/4/7 - v3.06.00

Changes:

  • TSENTRY version numbers changed to x.xx.xx format

  • Fixed TPRI.TrendCtrl to properly track cursor values

  • Fixed tpriABPlc connection logic to return connect successful on WSAEISCONN

  • Fixed refresh of file name display as installation is being executed

  • Minor cosmetic fixes to installer

  • Changed TPRI.TriggerEd to use TPRI.DDVarSelectArray class rather than internal private class

  • Modify various scripts to run without prompting for user input

  • Fixed credential conflict problem in TPRI.ADSecurity.dll when executing SetSecurityLevel method for a domain account other than APMSDG account (in mfGetSecurityLevelOther)

  • Added command line version of tpriPublisher (tpriPublisher.com)

  • Modified scripts in NtRtHmiSetup to check for .NET framework installed

 2004/3/8 - v3.05

Changes:

  • Modified ExportDataDict.cmd script to use fully qualified instead of relative paths

  • Modified ExportDataDict.cmd script to print description of operations

  • Modified data dictionary project template to remove description of Post-Build event

  • Made various changes/fixes to InstallIISComponents.cmd:

    • Fixed to make virtual directories Tsentry and TsentryHelp on website “1” to eliminate problem finding website on foreign language Windows installs

    • Changed script to use local versions of mkwebdir.vbs and adsutil.vbs

    • Fixed to ensure TPRI.CryptCom.dll has appropriate security rights for tpriHmi user even after reboot

  • Moved contents of InstallIISCustom.cmd into two separate scripts InstallIISCustomFiles.cmd and InstallIISCustomSite.cmd to facilitate manual execution of scripts on target systems

  • Added user callable procedure TsentryConfig.cmd that will re-configure Tsentry after a change in the TSENTRY_SYSNAME variable

  • Fixed all issues installing TSENTRY on an arbitrary drive instead of always on the D: drive

  • Made various changes/fixes to TSENTRY installer package:

    • Upgraded Astrum installer to v2.02

    • Added option to copy required screen updates (Login, Probe, TrendX, NtRtMgr,...) to application virtual directory

    • Added mkwebdir.vbs and adsutil.vbs scripts to installed procedures

  • Fixed CreateShares.cmd to ensure read/write/change access rights properly set for user tpriHmi on shares DataSet, NtRtCmd, and Trigger

  • Fixed memory leak cleaning up internal variables in tpriTrendSrc class

  • Added error detection and handling to tpriConnSock class to prevent invalid memory access

  • Fixed tpriTrend library to restrict a request for a dynamic variable if a previous request for that variable has yet to be serviced

  • Fixed tpriTrend library to properly destroy a requested variable that hasn’t yet been serviced

  • Modified tpriTrendMgr library to more aggressively clean dead/unused trend variables as trend variable resources become more scarce

  • Fixed tpriLogMsg class to make sure file is open before logging lost messages to the disk

  • Fixed infinite loop in tpriHtm class handling pages with fields exceeding the size of internal buffer

  • Fixed logic in GsmPifBld for handling embedded parentheses in #define math

  • Modified WtClient.dll to optimize speed while reading items from local cache

  • Made various changes/fixes to tpriPublisher app:

    • Added warnings if user tries to Rebuild a VB.NET or flat htm screen

    • Added message if user tries to Rebuild or Publish without selecting any screens

    • Fixed infinite loop if error reading group info for first group in section

  • Fixed NtRtMgr screen so that the process list does not flicker while attempting to connect to host

  • Made various changes/fixes to TrendX screen:

    • Added border to trend graph on TrendX screen

    • Fixed TrendX to properly handle TrendPlayback object events

  • Made various changes/fixes to TPRI.BaseControl:

    • Added Sender parameter to OnActiveUpd(..) event

    • Changed internal variable mgrIdx as Integer to pMgr as Object to provide direct reference to manager object

    • Changed 1st parameter of InitActiveVars(..) function from manager index to manager reference

    • Added checks to InitActiveVars(..) function for consistency between lists

    • Added AddActiveVar(..) subroutine

  • Modified all OPC-enabled classes to use BaseControl.AddActiveVar(..) routine

  • Made various changes/fixes to TPRI.BaseScreen:

    • Fixed function ReadCookie(..) to correctly parse last cookie in string

    • Changed name of GoToURL(..) event to OnLinkTo(..)

  • Made various changes/fixes to TPRI.TrendCtrl:

    • Renamed TrendInfoObject property to TrendInfo

    • Fixed invalidation of display following property changes at runtime

    • Fixed runtime object initialization to properly use TrendInfo object set at design time

    • Added InitDefaultTrendGraph(..) function to provide default trend graph initialization

    • Modified to support trend cursors w/out requirement of code on screen

    • Modified value displays to display more significant digits

  • Made various changes/fixes to TPRI.TrendCom:

    • Modified to store TrendCtrl objects internally by reference instead of by parent index

    • Added exception handling to various functions to prevent crashes while reloading screens

  • Made various changes/fixes to TPRI.ADSecurity:

    • Improved error handling

    • Added code to clean up references to objects to avoid user credential collision

  • Made various changes/fixes to TPRI.TrendPlayback:

    • Fixed conversion of internal DateTime to time used by trending system

    • Fixed background and text color painting on initialization

    • Fixed detection of changes in start/end times so checkboxes are correctly grayed

    • Changed type of property playbackMode changed from short to integer

    • Properly invalidate display following runtime property changes

  • Made various changes/fixes to TPRI.LogMsg:

    • Changed various update functions from public to private

    • Modified to use BaseControl manager object reference instead of index

    • Enhanced detection of complete log message received to prevent updates from sticking

  • Made various changes/fixes to TPRI.DataSetInfo:

    • Changed various public methods parameters from ByRef to ByVal

    • Changed SaveDataSet(..)to create unique temporary file name instead of fixed file name

    • Changed file read/write routines to use english color strings in dataset files

  • Changed various TPRI.CoverageBar public methods parameters from ByRef to ByVal

  • Made various changes/fixes to TPRI.DataDict:

    • Added error detection and recovery during initialization file download

    • Changed default pif files to /tsentry/pif/*.ini

    • Modified all other objects using TPRI.DataDict to explicitly use pif files /tsentry/pif/*.ini

  • Made various changes/fixes to TPRI.TextBox:

    • Fixed formatting of values using .NET-style formatting strings

    • Fixed logic when user presses escape key in a modified TextBox so that correct latest value is displayed and object is correctly marked as unchanged

    • Added TPRI.TextBoxArray class

  • Made various changes/fixes to TPRI.Shape:

    • Fixed painting of borders of width 1

    • Added TPRI.ShapeArray class

  • Made various changes/fixes to TPRI.ActiveShape:

    • Fixed refresh code to properly center label inside object

    • Fixed mouse click event handle to catch clicks outside internal textbox

    • Fixed invalidation of display following property changes at runtime

    • Fixed painting of borders of width 1

    • Changed default background solid fill color from Transparent to Gray

    • Changed default BoundIncludeEquals to True

  • Made various changes/fixes to TPRI.ComboBox:

    • Fixed detection of user edits/changes selection to correctly modify background color

    • Fixed parsing of last value/description from tValueList property

    • Added code to allow property tValueList to be set to Nothing

    • Fixed invalidation of display following property changes at runtime

    • Added TPRI.ComboBoxArray class

  • Made various changes/fixes to TPRI.ToggleButton:

    • Fixed invalidation of display following property changes at runtime

    • Modified to use BaseControl manager object reference instead of index

    • Added TPRI.ToggleButtonArray class

  • Made various changes/fixes to TPRI.DDVarSelect:

    • Fixed invalidation of display following property changes at runtime

    • Added TPRI. DDVarSelect Array class

  • Increased TPRI.OpcCom main loop timer interval from 1 ms to 20 ms to reduce CPU overhead

  • Made various changes/fixes to TPRI.OpcMgr:

    • Modified to store BaseControls internally by reference instead of by parent index

    • Fixed to ignore exceptions during checks for new messages and updates from OpcCom

    • Increased main loop timer interval from 1 ms to 20 ms to reduce CPU overhead

    • Decreased connection reattempt period while waiting for previous connection to close

    • Removed getRandomId(..) public method

  • Made various changes/fixes to TPRI.BarGraph:

    • Fixed update of displayed back color when changing tBackColor

    • Fixed positioning and sizing of bar zone numbers

    • Modified property update routines so bar offsets and percents can be set in any order

    • Forced repainting of bars immediately following any bar graph property change

 

Upgrade Instructions:

  • Review above change descriptions for all HMI libraries and make corresponding required changes to screen code (any problems will be listed as errors when HMI screens are rebuilt)

  • Reinstall NtRtHmiSetup package from the NtRtHmiSetup.asp page on all HMI clients

 2004/1/21 - v3.04

Changes:

  • Fixed TPRI.TrendCtrl and TPRI.ActiveShape objects to correctly persist properties on web pages

  • Modified TPRI.ActiveShape to move Font property into ActiveShapeSetup class

  • Added ActiveShapeArray class to TPRI.ActiveShape.dll

  • Fixed logic in ActiveShape to properly detect value updates following an opc reconnect

  • Added CmdButtonArray class to TPRI.CmdButton.dll

  • Changed TPRI.CmdButton Click event handler parameters to include Sender and EventArgs

  • Improved error handling and logging in TPRI.OpcMgr object

  • Changed name of BaseScreen.Link(..) function to BaseScreen.LinkTo(..)

  • Added BaseScreen.LinkToMenu() and BaseScreen.LinkBack() functions for screen navigation

  • Removed tURL property from TPRI.ActiveShape object

  • Modified various timestamp class functions to prevent overflows and negative timestamps

  • Modified NtRtMgr process so that NtRtCmd files are only processed at most twice per second

  • Modified tpriNtRtAdmin task to allow underscores in system IDs, task names, and screen names

  • Added display and check for system environment variables to tpriNtRtAdmin task

  • Fixed buffer overrun in GsmPifBld process causing #defines to be incorrectly parsed

  • Fixed logic in GsmPifBld process for matching #defines that contain underscore characters

  • Modified InstallIISComponents.cmd script to grant tpriHmi user access to TPRI.CryptCom.dll

  • Moved inline functions from timestamp.h into timestamp.inl

  • Updated TSENTRY class overheads and TSENTRY exercises documents with latest information

  • Updated TSENTRY documentation to reflect above changes and various .NET changes

 2004/1/19 - v3.03

Changes:

  • Modified tpriNtRtAdmin task to allow creating a new system into a directory structure that already exists (as that created by the Tsentry installer)

  • Modified tpriEnvStr(..) function to assume default buffer size if third parameter is not passed

  • Fixed ValidateUser.asp and PwdChange.asp scripts to correctly reference TPRI.ADSecurity object

  • Fixed TPRI.TriggerStat object to handle conditions where status file does not exist

  • Fixed tpriLogMsg class so that disk file is only opened when messages need to be written

  • Modified NtRtMgr process so that messages are only logged to disk at most twice per second

  • Decreased width of status column of process listbox display on NtRtMgr so scroll bars are not displayed by default

  • Fixed validation errors in NtRtMgr process options editor when various waits and delays are set less than zero

  • Fixed virtual web directory creation script to properly setup tpriHmi user password

  • Fixed virtual web directory creation script to properly set application friendly name

  • Fixed installation script to ensure \pif\ subdirectories exist in various \wwwroot\ directories

  • Fixed TPRI.CryptCom.dll version number to match TSENTRY version number

 2004/1/8 - v3.02

Changes:

  • Upgraded all TSENTRY standard HMI controls and screens to Visual Studio .NET 2003

  • Removed necessity for TSENTRY standard .NET screens to run in virtual directory ‘std’

    • Modified all login and security scripts

    • Modified tpriPublisher screen template files

    • Modified provided names for data dictionary files in TPRI.DataDict, TPRI.TrendCtrl, and TPRI.TriggerEd

  • Updated tpriPublisher to support .NET HMI objects and screens

    • Added functionality to create container web pages and link to appropriate DLLs

    • Added functionality to support publishing of flat .htm and .asp pages

    • Modified tags in *.htm.template to replace ‘ocxXXX’ with ‘screenXXX’

  • Fixed bug in tpriHtm class causing incorrect publishing of .asp pages via tpriPublisher

  • Updated tpriNtRtAdmin to support .NET HMI objects and screens

    • Created templates for VB.NET screens

    • Modified system creation process to create new directory structures for .NET screens

    • Modified system creation process to build Screens.sln solution

  • Updated tpriADSecurity.dll to .NET and renamed as TPRI.ADSecurity.dll

  • Fixed bug in TPRI.ADSecurity.dll for handling users whose passwords never expire

  • Updated tpriCyptCom.dll to .NET and renamed as TPRI.Cryptcom.dll

  • Changed name of virtual web directory for standard VB.6 distributions from ‘std’ to ‘tsentry’

    • Modified installation scripts

    • Modified tpriPublisher screen template files and cab template files

    • Changed VC.6 tpriDataDict control to reference correct virtual directory

  • Rebuilt VC.6 tpriDataDict control to incorporate changes made to data dictionary library in v2.29 but which were mistakenly not included in the tpriDataDict control released with v3.01

  • Changed NtRtMenu screen from VB-based screen to pure .asp page

  • Added new NtRtHmiSetup page to provide links for HMI client setup

  • Added links on NtRtMenu screen to NtRtHmiSetup page and TsentryHelp documentation

  • Modified TPRI.DataDict control to pre-download data dictionary upon initialization

  • Updated WtOpcSvr.dll and WtClient.dll source code to Visual Studio.NET 2003

  • Added GetSvrShutdown() exported function to WtClient.dll

  • Fixed tpriTrend library to use default buffer sizes if trend global common is not mapped as in applications like tpriTrigText

  • Removed $(RtxSdkDir)\include from include path for Debug and Release versions of tpriNtRtAdmin task project file template

  • Updated tpriTrigText to convert multiple files in a single batch

  • Fixed NtRtMgr screen to immediately update active process info when process goes inactive

  • Modify tpriProc and tpriProcMgr classes to put an RTSS task into error state if attempt is made to activate task w/out RTSS support

  • Fixed NtRtMgr process to allow changing of process options for processes with Start Order >= 50

  • Fixed tpriGsmDDCom table searching functions to correctly compare passed names in cases where one complete element name matches the beginning of another (e.g. MYCOM and MYCOM1)

  • Increased maximum allowed structure definitions in data dictionary from 5000 to 7500

  • Modified LogMsg text logged when internal clocks drift too far from wall clock

  • Fixed tpriProc::getWallTime(..) function to ensure reported time never runs backwards

  • Modified calling parameters to tpriEnvStr(..) to force caller to pass size of optional buffer

  • Added tpriRdcSer serial driver class to tpriRdc library

  • Added tpriRdcTcp::listen(..) TCP/IP server function to library

  • Document list of “C” constructs not supported by GsmPifBld and data dictionary

  • Merged TsentryVersion.doc with TsentryUpgrade.doc and converted to TsentryVersion.rtf

  • Modified installer to display TsentryReadme.rtf as readme during installation

  • Fixed tpriPublisher and tpriNtRtAdmin tasks to display correct version number in help dialog

  • Added optional third parameter to tpriEnvStr(..) function to specify buffer size

 

Upgrade Instructions:

  • Erase all existing post-build instructions in project settings for sysDataDictionary at:

sysDataDictionary → Properties → Build Events → Post-Build Event → Command Line

and replace with the following command (or alternative batch procedure for systems with non-standard file naming conventions):

..\..\..\tpriNtRt\procs\ExportDataDict.cmd
  • Remove sysDataDictionary from list of project included in build for all Solution Configurations:

    • Build → Configuration Manager → Active Solution Configuration = Debug

    • Remove check in Build column for sysDataDictionary

    • Repeat for Active Solution Configuration = Release, RTSS Debug, and RTSS Release

This will prevent Visual studio from examining the data dictionary project while looking for projects that are out of date before starting a debugging session.  However, the data dictionary will need to be manually rebuilt when header files are changed.

  • Modify any custom tpriPublisher htm templates to replace “ocxXXX” tags with “screenXXX”

 2003/8/7 - v3.01

Changes:

  • Included changes for v2.29 that were excluded from v3.00

  • Modified tpriLogMsg control to display date along with time

  • Fixed formatting of time difference in tpriTrendCtrl to support international use of commas instead of decimal points for representing fractional seconds

  • Fixed compiler options for RTSS versions of tpriPio and tpriRdc libraries

  • Updated to support VenturCom RT-TCP/IP v2.0

  • Removed RtxTcpIp.lib from TSENTRY distribution libraries

  • Changed all tpriPio.rtss.lib classes using sockets to call WSAStartup(..) for RTX TCP/IP v2

  • Removed tpriGePlc setsockopt() call to turn the IPPROTO_TCP timestamp off since this is not supported in RTX TCP/IP v2

  • Fixed TCP/IP connection routines in A/B PLC, A/B ControlLogix, GE PLC, and Modnet PLC drivers to use select(..) calls for detecting success of non-blocking connection attempts

  • Modified A/B ControlLogix driver to add readClCip(..) and writClCip(..) functions

  • Added detailed error messages during connects, reads, writes, and disconnects to A/B ControlLogix driver

  • Eliminated long delays when authenticating foreign domains for HMI security

  • Fixed tpriTriggerStat control to map share directory before attempting to read status file

  • Modified tpriHmi.bas module to attempt to connect with password tpri#1Hmi before trying old password tpriHmi

  • Rebuilt tpriDataSetInfo, tpriTriggerSrc, tpriTriggerEd, and tpriTriggerStat to include above change to tpriHmi.bas module

  • Fixed HMI security to properly authenticate local machine accounts and user groups

  • Modified GsmOpcRSvr to eliminate requirements for MFC and MSVC runtime DLLs

  • Modified tpriCryptCl.dll to eliminate requirement for ATL runtime DLLs

  • Added checks to tpriPublisher to verify all constituent files exist before building an included cab

  • Added delay when automatically restarting TSENTRY to allow O/S to clean up killed processes

  • Added numerous checks to tpriGsmDDCom functions to verify global common is already mapped

  • Removed chapter and section numbers from TSENTRY manual

  • Made copious corrections to TSENTRY manual to reflect latest installation procedures

 

Upgrade Instructions:

  • Change password for tpriHmi user to tpri#1Hmi

  • Edit \locNtRt\sys\pif\tpriScreens.ini file to move 'Pwd Expiration Notice' key from the [Domain Setup] section into the [Setup] section

  • Copy the following files from the tpriNtRt\wwwroot\ distribution to your application \locNtRt\sys\screens\wwwroot\ directory:

    • global.asa

    • Logout.asp

    • Login.asa

    • PwdChange.asp

    • ValidateUser.asp

    • include\*

  • Delete all application screen *.htm & *.asp files and re-publish using tpriPublisher

 2003/7/6 - v3.00

Changes:

  • Note: v2.29 was release after v3.00, so the changes listed for v2.29 were not included in v3.00

  • Initial release under Visual Studio .Net 2003

  • Updated tpriNtRtAdmin task and templates to support Visual.Net 2003

  • Fixed bug in tpriNtRtAdmin task failing to properly create tpriScreens.ini file from template when generating a new system

  • Updated to support VenturCom RTX 5.5 (RT-TCP/IP not supported)

  • Fixed calculation of timer interval percent for processes with non-zero timer delay but with rep rate set to zero

  • Added support for ProEssentials graphs v5, including cab files and tpriPublisher templates

  • Upgraded TrendX and ProbeV to use ProEssentials graphs v5

  • Increased max updates per request on TrendX to 600 to support 1 ms trending

  • Fixed tpriActiveShape to properly format text via the tFormat property

  • Added tpriProc::isValidProc(..) function to check for valid application names

  • Added application-defined shutdown options to NtRtMgr dialog

  • Optimized portions of GsmPifBldr to speed data dictionary builds for very large systems

  • Fixed tpriTrend::getDataValidPtr(..) to check return value before setting bit index

  • Modified NtRtMgr task to display date along with time

  • Fixed tpriTrendCtrl control to support trending NaN values

  • Add log of description of failure in case of error mapping shared memory

  • Modified TrendGsm and TrendTrig processes to set process into error state if failure to map shared memory occurs and TrendMgr task is not up and running

 

Upgrade Instructions:

  • Open existing tasks development workspace in Visual.Net 2003 and convert all existing project configurations to Visual Studio .Net 2003

  • Verify that project settings for RTSS versions of all processes have the following Configuration Properties set in the Project Properties dialog:

    • C/C++ → Code Generation → Basic Runtime Checks = Default

    • C/C++ → Code Generation → Buffer Security Check = No

    • C/C++ → Command Line = /QIfist

    • Linker → General → Enable Incremental Linking = No (/INCREMENTAL:NO)

    • Linker → Input → Additional Dependencies must have $(NoInherit) as the first item

    • Linker → Input → Ignore Specific Libraries = libc; libcd; libcmt; libcmtd

    • Linker → Advanced → Target Machine = MachineX86 (/MACHINE:X86)

    • Linker → Command Line = /DRIVER /SUBSYSTEM:NATIVE /align:0x20

  • Upgrade any existing screens using ProEssentials v3 to use v5 controls.  Alternatively, if v3 is still desired, verify that all screen sections in %SYSTEMROOT%\system32\tpriNtRtAdmin.ini file have a includeCabs key value that includes pe3, such as:

includeCabs=tpriStdControls,pe3
  • Copy the [AppShutdownParams] section from the latest template file \tpriNtRt\apps\tpriNtRtAdmin\template\sys.ini and modify as desired (in most cases, this section will be left empty except for the comments)

 2003/7/21 - v2.29

Changes:

  • Added GrantThreadAccessToConsole(..) function for to allow threads to access the console desktop while running NtRtSvc service

  • Modified tpriSvrConn library to call GrantThreadAccessToConsole(..) function for all threads to prevent TrendSrv and GsmExpSvr crashes when running NtRtSvc

  • Fixed all tpriSvrConn, TrendSrv, and GsmExpSvr derived classes to call default constructors

  • Added event logging to NtRtSvc for errors and start/stop

  • Added checks for running out of data dictionary memory

  • Increased scratch memory size for data dictionary

 2003/6/17 - v2.28

Changes:

  • Fix tpriProcMgr class to correctly delay starting a process with startTime > 0

  • Increased maximum number of processes from 50 to 100

  • Optimized tpriDataSetInfo control to parse data sets more quickly

  • Fixed tpriTrendCom control to handle sporadic errors when server disconnects unexpectedly

  • Added automatic system restart option to NtRtMgr

  • Fixed tpriTriggerEd control to handle errors saving trigger files

  • Fixed tpriTriggerEd control to always read and write fully qualified variable names

  • Added TriggerStat.txt status file output from historical trend system

  • Created tpriTriggerStat control for displaying trend trigger status files

  • Added tpriTriggerStat control to TriggerEd screen to display trigger status files

  • Added documentation for setting up Windows XP clients to connect to OPC

  • Fixed tpriDataSetInfo control to use correct %APPDATA% define for locating local disk files

  • Fixed tpriDataSetInfo and tpriTriggerEd controls to handle errors writing files to controller

  • Fixed tpriSecurity.bas module to support various internationalized time formats

  • Fixed Menu button on NtRtProcEd screen to correctly link to previous menu

  • Changed return value from tpriCleip::Disconnect(..) to indicate if FwdClose operation failed

  • Corrected string formatting of time in tpriTrend.bas module to prevent rounding fractional seconds up over the one second boundary

  • Added timestamp::to1601(..) function to convert timestamps to FILETIME values

  • Added function tpriCleanDir() to tpriNtRt library to delete all files in a directory older than a specified time

  • Added options to sysLogs.ini file to specify maximum number of days to keep log files on disk

  • Modified sysLogs.template.ini file to add default values for above option

  • Added ‘/q’ option to installSystem32-XXX.bat procedures to run without user intervention

  • Fixed bug in trending system causing application crashes when using > 25% of trend memory

  • Fixed bug in NtRtProcEd screen failing to reset debug level after submitting changes

  • Added data validation for priority and rep rate on NtRtProcEd screen

  • Added feedback for submit button on NtRtProcEd screen

  • Added support to WtOpcSvr.dll for registration with a NULL string provided for executable path

  • Added /regclient support to GsmOpcSvr/GsmOpcRSvr

  • Changed tpriStdControls.cab to install GsmOpcRSvr using /regclient parameter

  • Changed tpriGsmDDCom initialization to check for sysVars.ini file errors after reading entire table and sorting for fast searches

  • Rebuilt tpriDataDict control to reflect changes to initialization of tpriGsmDDCom class

  • Fixed bug in tpriGsmDDCom::getVarType(..) occasioning incorrectly returning VT_ARRAY

  • Added optional parameter to tpriGsmDDCom::getVarTypeName(..) to request the structure name instead of the base type name

  • Added getVarArrDimCnt(..) and getVarArrDim(..) functions to tpriGsmDDCom class

  • Added calls to tpriProcMgr::updTime(..) during NtRtMgr initialization so LogMsg’s display the correct time following long operations

  • Modified NtRtSvc to parse environment variable strings from command line arguments

  • Added ability from HMI security to change user password (if using Active Directory)

  • Added support for incomplete tpriScreens.ini file as long as security is disabled

  • Modified tpriADSecurity.dll to reduce window for credential collision errors

 

Upgrade Instructions:

  • Update existing \sys\pif\sysLogs.ini file to specify max number of days to keep log files similar to template \tpriNtRt\apps\tpriNtRtAdmin\template\sysLogs.ini file

  • Delete all temporary files in \locNtRt\sys\temp\*

  • Integrate the existing \sys\pif\tpriScreens.ini file with the latest template file \tpriNtRt\apps\tpriNtRtAdmin\template\tpriScreens.ini.template

    • Add “Pwd Expiration Notice=14” key/value pair to the [Domain Setup] section

    • Replace existing comments in header section with latest comments from template file

  • Copy the following files from the tpriNtRt\wwwroot\ distribution to your application \locNtRt\sys\screens\wwwroot\ directory:

    • global.asa

    • Logout.asp

    • Login.asa

    • PwdChange.asp

    • ValidateUser.asp

    • include\*

  • Delete all application screen *.htm & *.asp files and re-publish using tpriPublisher

 2003/5/8 - v2.27

Changes:

  • Added trending cursor differences column to tpriTrendCtrl

  • Changed tpriProc::getWallTime(..) function to return approximate UTC wall time as last value set in global common by NtRtMgr

  • Added tpriProc::getUndriftedClockTime(..) function to return UTC wall time estimated from real-time clock with drifting effects taken into account

  • Restored Probe.ocx CLSID to that used in versions <= v2.22

  • Added support for user-defined HMI security and timeout groups

  • Changed security level variable from 2-byte integer to a 4-byte integer

  • Changed use of security level from an incremental number to a bitmask for various different rights

  • Implemented new security rights on all TSENTRY screens

  • Updated tpriScreens.htm.template to call checkValidation(..) on screen startup

  • Updated A/B Control Logix PLC driver to support additional variable types and forward close

  • Added tpriSvrApp::getPortNum(..) function to return current port number

  • Corrected tpriConnThread::AttachSocket(..) to properly convert port numbers from TCP/IP network byte order to host byte order

  • Modified NtRtProcEd screen to edit and write to the procs.ini file all configurable parameters also available through the console NtRtMgr

  • Added documentation for NtRtProcEd screen

  • Changed TrendX to force unpause when changing trend source

  • Removed pre-fetch from tpriLogMsg control to eliminate improper message display

  • Fixed WtClient.dll to prevent crashes during repeated disconnects/reconnects

  • Add code signing tools to tpriPublisher distribution

  • Removed various customer-specific documentation from Tsentry documentation

 

Upgrade Instructions:

  • Integrate the latest \tpriNtRt\apps\tpriNtRtAdmin\template\tpriScreens.ini.template file with the existing \sys\pif\tpriScreens.ini file

    • Copy the section [Domain Setup] and all subkeys to the existing file

    • Copy the section [Allowed Domains] to the existing file

    • Copy the section [Security Groups] to the existing file

    • If HMI security is turned on, fill in the appropriate keys in these sections as instructed in the Installation chapter of the TSENTRY documentation

    • Change ‘Default Security’ key to appropriate bitmask value (no security = 0x7FFFFFFF)

    • Restart IIS by running ‘iisreset’ from the command line

  • Copy the following files from the tpriNtRt\wwwroot\ distribution to your application \locNtRt\sys\screens\wwwroot\ directory:

    • global.asa

    • Logout.asp

    • Login.asa

    • ValidateUser.asp

    • include\*

  • Delete all application screen *.htm & *.asp files and re-publish using tpriPublisher

 2003/4/17 - v2.26

Changes:

  • Removed tpriProc::time(..) and tpriProc::ftime(..) functions

  • Changed tpriProc::lcltime(..) to tpriProc::localtime(..)

  • Added tpriProc::getWallTime(..) functions to retrieve current UTC wall time

  • Modified Win32 internals of tpriNtRtEx.dll function tpriGetClockTime(..) to use performance counters instead of ftime(..) function

  • Corrected tpriTrend RTX timers to account for drift in RTX clock vs. wall clock

  • Added timestamp::from1601(..) function to convert FILETIME times to timestamps

  • Changed trending system to make the number of trend sources, number of trend variables, and overall size of global common configurable via sysTrend.ini file

  • Updated trend system documentation to reflect ini file additions

  • Modified sysTrend.ini.template file to include new parameters to support above changes

  • Changed TrendMgr to provide warnings and suggestions when near capacity of internal buffers

  • Optimized tpriLogMsg class to reduce overhead involved in opening and closing files

  • Implemented domain-based security on TSENTRY HMI web pages

  • Added security modifications to tpriNtRtAdmin screen templates

  • Changed location of distributed tpriNtRtEx.dll to accommodate additional dll’s

  • Added ‘installSystem32-XXX’ batch files to automatically install required system32 components

  • Fixed tpriPublisher to support new client encryption/decryption dll

  • Modified tpriPublisher to add ‘Cancel’ button for most errors

  • Updated tpriNtRtAdmin to create tpriScreens.ini from template when generating a new system

  • Updated tpriNtRtAdmin to instruct use of ‘installSystem32-XXX’ batch files

  • Added Insert/Delete form to tpriTrendCtrl to allow insertion/deletion of multiple rows and special array insertion

  • Added button to tpriTrendCtrl to sort variables according to the axis to which they are assigned

  • Added tpriProc functions to set process priority and rep rate

  • Modified NtRtMgr to allow modification of all configurable process options and option to write parameters back to procs.ini file

  • Added functionality to ProbeA and ProbeV to view arrays larger than 128 elements

  • Added button to reset trending cursors to outside boundaries of current view

  • Fixed tpriDataDict control to remove requirement for additional undistributed msvcp60.dll

 

Upgrade Instructions:

  • Clean out \tpriNtRt\bin\ directory before installing new \tpriNtRt\ directory

  • Copy \tpriNtRt\apps\tpriNtRtAdmin\template\tpriScreens.ini.template to system pif directory as \sys\pif\tpriScreens.ini

  • Create system environment variable TSENTRY_HMI_PIF and set its value to the fully qualified directory name of your \sys\pif directory (no trailing backslash)

  • Modify all application screens to support security

    • Add module ..\..\..\tpriNtRt\modules\tpriSecurity.bas to screen

    • Add timer to screen, set its name to tmrSecurity, and set its interval to 10000

    • Add the following two functions to the screen code

' This event is raised by the timer to periodically check if
' the screen's security mask has timed out
Private Sub tmrSecurity_Timer()
   If (checkSecurityTimeout) Then
      ' timeout has occurred, so reset screen controls
      Call secureScreen(getSecurityLevel)
   End If
End Sub

' Lock down the controls that should be locked based on the security mask
Private Sub secureScreen(ByVal securityLevel As Long)
   ' lock down controls as desired
End Sub
  • Fill in internals of the second function above, secureScreen(..), to enable or disable screen components based on the passed security level

    • Add following code to the top of startComm(..)

' initialize security
Call initSecurity(window.location.hostname)
Call secureScreen(getSecurityLevel)
  • Copy the following files from the tpriNtRt\wwwroot\ distribution to your application \locNtRt\sys\screens\wwwroot\ directory:

    • global.asa

    • Logout.asp

    • Login.asa

    • ValidateUser.asp

    • include\*

  • Delete all application screen *.htm & *.asp files and re-publish using tpriPublisher

 2003/2/20 - v2.25

Changes:

  • Fixed tpriVmic improper variable indexing for checking overlaps

  • Fixed Allen-Bradley handler to properly read and write large buffers containing short integer data types

  • Fixed benign buffer error in NtRtMgr that caused message on startup under Visual.NET

  • Fixed tpriIniFile class to prevent possible infinite loops when searching for key/value pairs

  • Added additional error messages to tpriPublisher when specifying non-existent htm templates

  • Fixed bug in GsmPifBld processing #defines that equate to negative values

  • Fixed bug in GsmPifBld mistaking bad variable definitions for function definitions

  • Added property to tpriDataSetInfo control to allow disabling of save/delete buttons

  • Added ReadWriteCookie.bas VB module

 2003/1/16 - v2.23

Changes:

  • Further modifications to tpriSvrConn library to manage multithreaded windows issues

  • Add variable descriptions as tooltips to Probe/ProbeA/ProbeV pages

  • Corrected error in binary display of certain numbers in Probe/ProbeA/ProbeV

  • Fixed tpriGsmDDCom to correctly retrieve min/max/init variants for variable names with undefined indices

  • Corrected typo in tpriNtRtAdmin.ini.template file

  • Added additional error messages to tpriPublisher

  • Added LogMsg to indicate when NtRtMgr is shut down from console

  • Added tpriVmic support for new PCI-5576 card

  • Added tpriVmic ini file parameter to automatically write the I/O description table and to set endian swap settings

  • Added tpriVmic support for bit explode/implode to and from vmic memory

  • Added bit set and reset write types to tpriVmic driver

  • Added VmicDrv example driver process to samples

  • Added TsentryUpgrade.doc document for version upgrade instructions

  • Changed tpriLogMsg control to pre-fetch LogMsgs to speed updates

  • Reworked tpriOpcMgr and all opc-enabled controls to migrate control-specific updates back into the controls themselves

  • Added events to opc-based tpriStdControls to allow screen to translate variable requests

  • Add environment variable processing for #include files in GsmPifBld process

  • Corrected data dictionary sorting and variable initialization for generalized indices

  • Corrected errors in trend trigger subsystem for triggers with zero post-trigger trending times

  • Fixed tpriTriggerEd control to display an error for bad trending times

  • Changed tpriCtrl::findParentControls to not accept empty control names, fixing bugs in tpriTrendCtrl, tpriTextBox, and tpriComboBox

  • Fixed memory leak in tpriOpcCom control

  • Modified GsmOpcSvr self-registration for Windows XP support

  • Changed tpriBarGraph control to improve initial update speed

  • Changed tpriTrendCtrl to display a border on the trend color indicator if the trend color is the same as the tpriTrendCtrl background color

  • Added sys.ini file parameter ‘AllowBadDDComVars’ to allow system to start even if bad variables exist in sysVars.ini file

  • Added tpriIniFile::getFileName() function to return current file name, if available

  • Added tpriIniFile::getSectName() function to return current section name, if available

  • Added tpriIniFile::findNextSection() function to find the next section, if one exists

  • Fixed tpriTextBox control to format times correctly

  • Updated Allen Bradley Plc driver with additional methods for PLC reads and writes

  • Updated Tsentry Class Overheads to v4

  • Updated and expanded TsentryExercises

  • Fixed tpriProcMgr process alive detection to support processes that have terminated but still have process handles open

  • Removed unnecessary logging from tpriTimer routines

  • Fixed Clear Error process command from NtRtMgr web page

  • Added form feed and LogMsg buttons to NtRtMgr web page

  • Various code-level changes to support Visual.NET

  • Removed debug level DEBUG from dbgdef.h

  • Changed maximum opc connections to 100

  • Added display of number of static and dynamic variables to TrendGsm status line

  • Added additional time formatting to tpriTextBox controls

  • Changed tpriDataDict control to recover if vars.ini file contains errors

 

Upgrade Instructions:

  • Check for and fix typo in c:\winnt\system32\tpriNtRtAdmin.ini file; section name should read [tpriStdControls], not [tpriStdContarols]

  • Create NtRtCmd/LogMsg subdirectory in your \sys\ directory or equivalent

  • Change all LogMsg calls using debug level DEBUG to some other debug level (e.g. DBDEBUG)

 2002/9/23 - v2.22

Changes:

  • Added error messages to NtRtMgr startup

  • Updated command line help for GsmPifBld

  • Updated tpriTextBox and tpriComboBox for tooltips and special time formatting

  • Changed to tpriPublisher to allow user cab files

  • Improved tpriPublisher error reporting

  • Added optional parameter to tpriEnvStr function to export modified string

  • Added process priority to both NtRtMgr displays

  • Fixed trend display bug pausing/restarting/unpausing and not getting any data

  • Changed tpriTrendPlayback control to automatically unpause when user pushes reset button and to adjust real-time playback rate as user updates value

  • Changed tpriTrendCom to not update display if playback mode has changed since last request

  • Modified tpriSvrConn library to prevent ASSERT errors when creating new connection windows

  • Updated NtRtScreen.htm.template to provide a more descriptive error if screen fails to load

 

Upgrade Instructions:

  • Clean out \tpriNtRt\Docs\ directory before installing new \tpriNtRt\ directory

  • Copy [tpriStdControls], [vs7], and [pe3] full sections from template configuration file \tpriNtRt\apps\tpriNtRtAdmin\template\tpriNtRtAdmin.ini.template into active configuration file c:\winnt\system32\tpriNtRtAdmin.ini

  • Delete all application screen *.htm & *.asp files and re-publish using tpriPublisher

 2002/9/13 - v2.21

Changes:

  • Added error messages to NtRtMgr startup

  • Fixed error activating/deactivating/etc process names containing .’s from web page

  • Added error messages if failure processing NtRtMgr web page commands

  • Added error messages if failure activating/deactivating group from NtRtMgr console

  • Fixed GsmPifBld bug detecting false end-of-file conditions

  • Fixed GsmPifBld parsing bug for structs/unions/etc spanning multiple lines

  • Added optional parameter to tpriGsmDDCom::searchTree(..) to specify searching only variable names or descriptions

  • Added seconds timer function SetSTimer(..)

  • Fixed $LIBPATH$ and $INCPATH$ template processing in tpriNtRtAdmin task

  • Changed tpriDataSetInfo to store files in c:\Documents and Settings\user\Application Data\TPRI

  • Fixed tpriLogMsg class for 100% cpu utilization when invalid LogMsg directory is specified

  • Added mutual exclusion in multithreaded sections of tpriConnSvr library to prevent ASSERT

  • Cleaned up thread shutdown sequence in tpriConnSvr library

  • Added tpriEnvStr function to translate environment variables

  • Changed tpriProcMgr to parse environment variables from procs.ini file

  • Changed tpriIniFile to parse environment variables from file name before opening (Win32 only)

  • Changed tpriTrendMgr to parse environment variables from trend directories

  • Changed tpriLogMsg to parse environment variables from LogMsg directories

  • Change NtRtMgr to parse environment variables from command line and splash image file name

  • Changed tpriPublisher to parse environment variables from the tpriNtRtAdmin.ini file

  • Added getKeyValueEnv(..) functions to tpriIniFile class

  • Fixed tpriIniFile::deleteSection(..) to not destroy the file if the section doesn’t exist

  • Added tpriModPlc::SetPduMaxIoDataBytes(..) to set max data bytes in a single Ethernet frame

 

Upgrade Instructions:

  • Manually fix $LIBPATH$ directory specifier in link options of any applications created from template with v2.20 version of tpriNtRtAdmin.exe

  • Manually fix $INCPATH$ directory specifier in include directory options of any applications created from template with v2.20 version of tpriNtRtAdmin.exe

 2002/8/13 - v2.20

Changes:

  • Added support for include directories to GsmPifBld command line parameters

  • Modified return type of TstTimer(..) function for backward compatibility

  • Updated tpriGePlc driver for tpriTimer changes

  • Fixed process group startup sequence when group contains no processes

  • Changed variable persistence to avoid processing variables set for no persistence

  • Fixed getVarInit/Min/Max functions for variable names without fully qualified indices

  • Changed tpriConnSock to use non-static buffer for TCP/IP receives

  • Added ini parameter to turn off the option to kill existing processes when starting system

  • Added LogMsgs when starting a system while one already exists

  • Added check in NtRtMgr for invalid LogMsg times to display as ‘Unknown’

  • Fixed VC++ project template to link Win32 Debug and Release processes against user32.lib

  • Fixed WtOpcSvr.dll to prevent removal of OPC variables on fast disconnect/reconnects

  • Filled in the holes in 04StandardTasks.doc

  • Added NtRtProcEd screen to list of standard screens

  • Updated NtRtMgr screen to support process control via web screen

  • Added tpriComboBox control to standard controls

  • Updated tpriOpcMgr to support tpriComboBox control

  • Add cursors to TrendX displays

  • Updated documentation for trending system

  • Added user selectable destination directories for task generation in tpriNtRtAdmin task

  • Added optional compiler and linker flags to tpriNtRtAdmin task

  • Added creation of NtRtCmd directories and shares to tpriNtRtAdmin task

  • Added tpriNtRtVersion identifier to text portion of historical trend files

  • Added ‘-display’ option to NtRtSvc to print current command line

  • Added TSENTRY web-based help to standard distribution

 

Upgrade Instructions:

  • Make changes to support the updated NtRtMgr screen:

    • Create NtRtCmd directory under your \sys\ directory or equivalent

    • Share NtRtCmd directory as NtRtCmd

    • Create NtRtCmd/Proc subdirectory

    • Add NtRtCmdPath key/value to [AppParams] section of sys.ini file using \tpriNtRt\apps\tpriNtRtAdmin\template\sys.ini.template as as example

  • Create web share TsentryHelp to \tpriNtRt\TsentryHelp directory

 2002/7/11 - v2.19

Changes:

  • Additional optimization to tpriActiveShape control

  • Added additional tpriPci::findPci(..) override function to allow scanning for device ID range

  • Fixed tpriPci::findPci(..) to properly handle index parameter

  • Modified DumpHex(..) to add LogMsg queue support

  • Modified DumpHex(..) to check debug level up front

  • Added additional DumpHex(..) override functions

  • Updated AllenBradly ControlLogix driver

  • Added Modicon PLC driver over TCP/IP network under Win32 only (RTSS not yet supported)

  • Updated tpriHmi VB module to speed up establishing shared connections

  • Fixed tpriVmic library to correctly produce variable I/O maps

  • Added ppLed(..) function to tpriNtRt library

 2002/6/14 - v2.18

Changes:

  • Increased maximum number of trends on a screen and variables in a data set from 256 to 768

  • Added unhandled exception processing to optionally provide process crash information

  • Added pulse timer to detect when a process becomes non-responsive

  • Added NtRtMtr task for high-priority process monitor functions

  • Modified NtRtMgr to allow editing of Trap Crash flags and Pulse Timeout value

  • Modified sysProcs.ini template file for Trap Crash and Pulse Timeout support

  • Updated documentation for Trap Crash and Pulse Timeout ini parameters

  • Added GsmPifBld support for #define statements spanning more than one line

  • Optimized tpriActiveShape to minimize CPU requirements for updates

  • Optimized tpriTextBox to minimize CPU requirements for updates

 

Upgrade Instructions:

  • Add user32.lib to link libraries for all Win32 Debug and Release project settings

  • Modify sysProcs.ini file to support new file type using \tpriNtRt\apps\tpriNtRtAdmin\template\sysProcs.ini.template as example:

    • Import updated comments in file header from template file

    • Change ‘Record’ column to ‘Trap Crash’

    • Add ‘Pulse TmOut’ column between ‘Kill Wait’ and ‘CTail’

    • Add NtRtMtr task to list of system processes

 2002/6/4 - v2.17

Changes:

  • Added Allen-Bradley Control Logix PLC handler to the tpriPio library

  • Corrected tree traversal in tpriGsmDDCom for array variables

  • Added wait cursors around long drive mappings in standard controls

  • Changed tpriHmiMap to use localhost\tpriHmi so function doesn’t try a domain logon

  • Changed tpriDataSetInfo, tpriTrendSrcSelect, and tpriTriggerEd to keep share connections open

  • Added standard timer functions to tpriNtRt library

  • Corrected startup sequencing error waiting for tasks to initialize

  • Fixed bug in tpriRdcTcp::rdClean(..) when > 256 bytes exist to be read

  • Updated GE PLC handler for Win32 non-blocking connections

  • Added check in GsmPifBld to prevent setting default packing size to zero

 2002/5/16 - v2.16

Changes:

  • Added fix to ignore ‘Esc’ key processing in NtRtMgr if running with GuiOption=NoStopSystem

  • Added support for CoBox terminal servers to tpriRdc classes

  • Updated documentation for tpriRdcCbx class

  • Fixed overflow error in tpriLogMsg control

  • Optimize tpriOpcMgr control to use binary searching on OPC updates

  • Corrected GsmExpRcv to allocate large enough receive buffer before sending initial request

  • Modified NtRtSvc to allow running service as specified user

 2002/5/13 - v2.15

Changes:

  • Updated GE PLC handler so Win32 version does not call unsupported setsockopt for timestamp

 2002/4/30 - v2.14

Changes:

  • Add NoConsoleLogMsg as GUI option

  • Fixed OPC dll to allow requests for the same variable twice on a single connection

  • Move check for debug level earlier in LogMsg to speed no-op return

  • Modified tpriProcMgr to support group-based process management

  • Modified template sysProcs.ini to support group-based process management

  • Added tpriProc functions to start and stop process groups

  • Modified NtRtMgr.exe to support user-defined process groups

  • Added tpriProc function to completely stop system and optionally shutdown or restart Windows

  • Modified NtRtStop process for new tpriProc shutdown API

  • Fixed initialization of init/min/max for string variables that do not completely specify the buffer

  • Added tpriGsmDDCom function to initialize all variables in a GSM to their initial values

  • Fixed NtRtMgr to recognize difference between session logging off and system shutting down

 

Upgrade Instructions:

  • Modify sysProcs.ini file to support new file type using \tpriNtRt\apps\tpriNtRtAdmin\template\sysProcs.ini.template as example:

    • Add [AppGroups] section with keys for all defined application groups

    • Ensure that TSENTRY processes are listed in [System] group

 2002/3/15 - v2.13

Changes:

  • New website commissioned at http://www.tsentry.com

  • Implemented RTX v5.1.1 official release

  • Updated tpriDataDict control to support data dictionary fixes in v2.12

  • Enhanced tpriDataDict variable search to allow quotes, commas, and spaces

  • Fixed tpriProc::setDispStatus(..) to prevent access violation if tpriProc not initialized

  • Changed tpriTrendCom to work around ProEssentials bug when setting full screen of trend data

  • Fixed tpriTrendCtrl to prevent rescroll of trend variable list when deleting or inserting

  • Changed name of save trending buffer file to TRENDCOM.bin

  • Fixed restoring of TRENDCOM to allow a source to change its base period

  • Prevent restoring of trend variables whose sampling period is incompatible with the base period

  • Set tpriSvrConn classes to set keep-alives on client connections

  • Updated documentation for NtRtMgr web page

  • Updated documentation for GsmExpSvr and GsmExpRcv tasks

  • Updated courseware slides with some cosmetic fixes

  • Updated documentation for tpriIniFile class

  • Added more instructions on tpriNtRtAdmin Generate XXX windows

  • Added explanations each of the sections in the courseware exercise cookbook

  • Cosmetic changes to default process NtRtTask.cpp.template

  • Fixed OPC DLLs so that the number of OPC client connections does not grow unchecked

  • Fixed OPC DLLs to prevent segment faults under numerous connects and disconnects

  • Updated OPC DLLs to radically improve variable update speed

  • Fixed GsmOpcSvr to prevent referencing item handle after its removal

  • Updated GsmOpcSvr to update variables using lists

  • Fixed tpriGsmDDCom::mapGsm(..) to use the GSM variable name, not GSMName

  • Changed interface of tpriGsmDDCom to simplify internals and updated documentation

  • Fixed incorrect variable sizing for typdef’d arrays in data dictionary

  • Fixed improper lookup of min/max/init value when GSM and structure have different names

  • Added sorting and binary search to data dictionary to radically improve lookup speed

  • Added data dictionary support for unions

  • Added logging for errors parsing/creating data dictionary variables

  • Corrected data dictionary to always give true variant type, if appropriate

  • Trap exceptions caused by inappropriate format strings assigned to data dictionary variables

  • Corrected GsmPifBld crash parsing structures with no members

  • Changed command line parameters to GsmPifBld

  • Do not allow process to initialize itself if another instance is running

  • Corrected LogMsg to correctly handle printing strings that contain formatting strings themselves

  • Fixed LogMsg to correct timestamping for skew in RTX clock

  • Fixed LogMsg to prevent crash from passing strings that are too long

  • Updated VB screen template to reference latest tpriLogMsg control

  • Changed title of NtRtMgr to show TSENTRY version number

  • Fixed crash when starting NtRtMgr while other processes are active

  • Added check to prevent NtRtMgr from being suspended

  • Fixed failure to display files when loading DataSet

  • Added optional text display to tpriToggleButton

  • Added config file options to modify GUI options

  • Fixed NtRtStop to properly stop system in various non-standard cases

  • Added automatic startup with system via NtRtSvc service

  • Added automatic creation of \cab\ directory by tpriPublisher if it doesn’t already exist

 

Upgrade Instructions

  • Upgrade RTX-enabled systems to RTX v5.1.1

 2001/12/7 - v2.12

Changes:

  • Changed intervalPct process common variable to intervalPctAvg

  • Added intervalPct value to process common for storage of current interval

  • Corrected intervalPctAvg and intervalPctMax statistic calculations

  • Update NtRtMgr.ocx to reflect intervalPct changes

  • Fix improper removal of unrequested variables on all three Probe screens

  • Turned down logging to DBLOG of invalid trend buffer points to disk

  • Add ability to configure length of build timeouts in tpriPublisher

  • Increase timeout of dynamic trend variables to 60 minutes

  • Removed call to WSAStartup(..) from RTSS I/O drivers and examples

  • Added base sampling period to trend source definition to fix logic forcing new dynamic trends

  • Fixed problem restoring requested but unclaimed variables

  • Fixed problem logging messages to disk when message buffer gets overrun

  • Fixed data dictionary to allow tabs in vars.ini file

  • Enhanced data dictionary to allow different specifications of init/min/max variables

  • Increased max number of variable definitions in data dictionary

  • Increased minimum trend time to 10 min for dynamic trigger & historical trend variables

  • Initial release of GsmExpSvr and GsmExpRcv data mirroring processes

 

Upgrade Instructions:

  • Add #ifdef UNDER_RTSS and #endif around all calls to WSAStartup(..) in RTSS applications as shown in \Example\Tasks\DemoLts\DemoLts.cpp

 2001/11/29 - v2.10

Changes:

  • Implemented RTX v5.1 official and patch

  • Fixed initialization of trend width, sampling period, and line color in tpriDataSetInfo control

  • Fixed tpriTrendCom control to request proper sampling period

  • Allowed dynamic trends to reinitialize upon request with faster trending periods

  • Fixed Flat Win32 tpriNtRtEx.dll to create “Global\xxx” GSM segments

  • Added JWC Honorary LogMsg button to NtRtMgr console

  • Changed tpriLogMsg class to store date/time, process, function, and text independently

  • Upated tpriLogMsg documentation to reflect new interface

  • Changed tpriLogMsg and tpriOpcMgr controls to handle new tpriLogMsg class interface

  • Updated ini file error reporting for tpriPublisher

  • Update error handling for tpriIniFile class

  • Fixed VC++ project template to define UNDER_RTSS properly

 

Upgrade Instructions:

  • Upgrade RTX-enabled systems to RTX v5.1

  • Ensure all RTSS_Debug and RTSS_Release build settings define UNDER_RTSS, not _UNDER_RTSS

 2001/11/9 - v2.02

Changes:

  • Fixed call to WSAGetLastError() if WSAStartup fails in tpriRdcLts examples

  • Fixed tpriProc::Deactivate(..) logic that was occasionally returning a mistaken error

  • Added check not to start RTSS tasks under w/ Flat Win32 version of tpriNtRtEx.dll

  • Prevent tasks marked as tpriProcError from being automatically restarted

  • Add console option to clear error associated with a process

  • Added reconnect delay for tpriRdc classes

  • Fixed detection of disconnect during tpriRdcTcp::read(..)

  • Updated documentation for standard libraries

  • Fixed error handling on system startup, added more descriptive messages

  • Corrected VMIC driver for true RTSS operation

  • Added remote address and port number member variables to tpriConnThread class

  • Pulled out debug statements from tpriRdc classes to prevent forced logging

 2001/10/26 - v2.01

Changes:

  • Handle #pragma pack (x) directives in data dictionary header files

  • Removed use of strtok(..) from LogMsg functions

  • Fixed LogMsg parsing of multiple queues

  • Add number of opc variables to GsmOpcSvr process status string

  • Added/changed many tpriProc functions to make static and useful

  • Changed creation of shared memory to give everyone full access

  • Changed tpriProcMgr to assume process is alive if security failure opening process handle

  • Fix return value for non-blocking tpriRdcTcp::read when no data is present

  • Changed non-blocking tpriRdcTcp::open to use select(..) to detect connection completion

  • Increased maximum number of GSM structure entries from 3000 to 5000

  • Change GsmPifBld to ignore #include files that it cannot find

  • Added tpriRdcLts::resetConn(..) function to tpriRdc library

  • Added getLineCount(..) functions to tpriIniFile class

  • Added option for connection thread timers in tpriSvrConn library

 2001/10/11 - v2.00

Changes:

  • Expanded max OPC items per page

  • Added support for multiple LogMsg queues

  • Changed tpriNtRtAdmin templates to include sysLogs.ini template file

  • Added tpriLogMsg to standard ActiveX controls

  • Added documentation for tpriLogMsg class and control

  • Various other documentation fixes and touch-ups

  • Added process common to data dictionary

  • Added NtRtMgr web screen (system observation only)

  • Implemented RTX v5.1 beta-release

  • Removed kernel32.lib from link list in template process makefile

  • Added RTSS shutdown handler for Windows BSODs

  • Added tpriVmic process I/O driver and documentation

Upgrade Instructions:

  • Remove kernel32.lib from link list in RTSS_Debug and RTSS_Release build settings for all application processes

  • Add tpriProc.h and tpriLogMsg.h to data dictionary root header file as shown in \tpriNtRt\apps\tpriNtRtAdmin\template\sysGsm.ini.template

 2001/8/7 - v1.71

Changes:

  • Fixed buffering of trend variables to disk

 2001/8/1 - v1.70

Changes:

  • Initial deployment of website http://www.tpri.com/tsentry

  • Fixed Public Function ‘Link’ in VB screen template

  • tpriCmdButton handles error if no Link function is provided in parent function

  • Updated documentation for adding new user in Windows 2000

  • Updated documentation for installation of Windows 2000 Server system (errors in VCI install)

  • Updated documentation for installation of RT-TCP/IP stack and configuration of 2nd NIC

  • Updated documentation for configuring GsmOpcSrv for access via web screens loaded in terminal services sessions

  • Added no-items indication on tpriOpcMgr control

  • Fixed min/max validation in tpriTextControl

  • Turn off redundant messages from TrendSrv if historical variable doesn’t exist

 2001/7/9 - v1.6

Changes:

  • Trending documentation revised with screen shots

  • Revised v2 of class notes

  • Class exercises enhanced with screen shots

  • Cosmetic fixes to various screen and task templates

  • Updated release of WinTech OPC dll’s

  • Added tpriOpcMgr property to allow connection to alternate OPC servers

  • Initial release of static interface to Lantronix terminal server with example

  • Initial release of RDC interface to Lantronix terminal server with example

  • Added support for GE PLC RTSS driver

 2001/6/22 - v1.5

Changes:

  • Fixed OPC for string I/O

  • Probe/ProbeA/ProbeV fixes for reading/writing binary data

  • Fixed trend system for backwards playback

 2001/6/4 - v1.4

Changes:

  • First official release of TSENTRY

  • Initial release of soft real-time and development versions running w/ tpriNtRtEx.dll

  • Added tpriNtRtAdmin process to facilitate creating a new system/task/screen

  • Added class notes and exercises

  • Initial release of Win32 GE PLC driver

  • No labels