Earlier Versions

Earlier Versions

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

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

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

Changes:

  • Replace tpriAppThread with direct calls to CreateThread and tpriCreateTimer (TSEN-37)

  • Add protection against malformed messages received by ProbeSvr (TSEN-43)

Upgrade Instructions:

  • Review project code for usage of tpriAppThread:

    • If calling StartAppThread with first two parameters set to non-zero then replace with call to tpriCreateTimer(..).

    • If calling StartAppThread with first two parameters set to zero then replace with call to CreateThread(..).  Remember to set appropriate thread priority on successful thread creation.

  • Update EGD driver initialization file:

    • [PRODUCE] section adds ‘ThreadPriority’ and ‘ThreadInterval’ parameters as shown below:

[Produce] ProducerId=10.0.0.1 ProducerPort=18246 ThreadPriority=101 (typically this will be higher than the task's priority) ThreadInterval=25 (ms rate)

Changes:

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

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

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

Changes:

  • Added TstartMgr utility

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

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

Changes:

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

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(..)

Changes:

  • Fixed variable entry on TriggerMgr screens

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

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

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)

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

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

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

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

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

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

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

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

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

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

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

© 2022 TelePro, Inc.
3811 Illinois Avenue, Suite 100, St. Charles, IL 60174