Skip to content

GSF v2.3.435 Release Notes

J. Ritchie Carroll edited this page Apr 27, 2021 · 1 revision

Grid Solutions Framework (GSF) Release v2.3.435

Find GSF on NuGet
  • AzureEventHubOutputAdapters: Updated event hub adapter to not wait on pushes.
  • ConfigEditor: Added "WaitForStatus" operation with 30 second timeout to restart service action.
  • CreateOutputStream: Updated path lookup to check current folder as well parent folder to support multiple deployment scenarios
  • CreateOutputStream: Updated to target 64-bit OS
  • CSVDataManager: Updated build path to target proper location for 64-bit platform builds.
  • DeviceStatAdapters: Updated adapter to statically restore embedded SQL scripts when accessed.
  • DeviceStatAdapters: Updated embedded SQL script.
  • DeviceStats: Updated database connection string to default to local connection when no other connection is defined.
  • DeviceStats: Updated to allow a custom database operation to run on a specified schedule.
  • DNP3Adapters: Added new configuration setting for ChannelRetry configuration called reconnectDelayMs.
  • DNP3Adapters: Fixed issues with conversion to new DNPTime utilizations.
  • DNP3Adapters: Removed unused "using" statements
  • DNP3Adapters: Updated DNP3 initialization steps to accommodate recent API changes.
  • DNP3Adapters: Updated example comms.xml configuration to accommodate new setting.
  • DNP3Adapters: Updated example configuration files
  • DNP3Adapters: Updated mapping and comms file path parameters to adjust paths to absolute location (defaulting to host exe path) and validated that files exist before attempting to load.
  • DNP3Adapters: Updated project to copy example configurations to build output.
  • DNP3Adapters: Updated TimeSeriesSOEHandler to accommodate recent changes in ISOEHandler interface
  • DNP3Adapters: Updated to latest opendnp3 build and changed reference to be NuGet based
  • DNP3Adapters: Updated VC redistributable.
  • DNP3ConfigGenerator: Added required OpenSSL DLLs to embedded resources to be extracted on demand.
  • DNP3ConfigGenerator: Updated application to auto-request admin elevation.
  • DNP3ConfigGenerator: Updated generator to include a sample mapping.xml file and to restore latest VC redistributable from embedded resources
  • DynamicCalculator: Added 'SystemName' as a new reserved, always available variable. Also updated GetKey to lookup variables by PointTag if Guid and MeasurementKey fail.
  • DynamicCalculator: Exposed variable dictionary with current values for benefit of derived classes and added LOCALTIME and UTCTIME as reserved variables that always evaluate to current system time.
  • DynamicCalculator: Updated e-mail notifier to use run-time string interpolation for variable values in e-mail body.
  • eDNAAdapters: Fixed issue with IP parsing when connection monitoring is enabled.
  • EmbedFile: Updated tool to default to producing headers with "#pragma once" leaving old-style include guards as an option
  • GrafanaAdapters: Added initial implementation of ad-hoc filters feature.
  • GrafanaAdapters: Collapsed OH 1.0 data service into single implementation (no long splitting out Mono version)
  • GrafanaAdapters: Fixed Grafana Alarm Query to work for Filter Expressions
  • GrafanaAdapters: Fixed null reference exception when ad-hoc filters are missing in query request.
  • GrafanaAdapters: Fixed Slice operations to appropriately return same number of series that exist in base query
  • GrafanaAdapters: Improved filter expression parsing to better ignore DataRow filtering key words and functions
  • GrafanaAdapters: Removed unused partial keyword from data service interface
  • GrafanaAdapters: Renamed unused decimate parameter to be used for new opt-in "IncludePeaks" command that determines if decimated data should include min/max interval peaks over provided time range.
  • GrafanaAdapters: Separated Grafana data source functionality into three files as partial class for easier maintenance.
  • GrafanaAdapters: Separated non-query specific ancillary Grafana functions
  • GrafanaAdapters: Updated Interval function with zero interval to properly set target query resolution to zero, i.e., full resolution.
  • GrafanaAdapters: Updated Regex operations to operate without locks.
  • GSF: Fixed parameter validation in yielding method for GetColumn extension
  • GSF: Globally fixed all GSF.Units.Time ToString() usages to properly show elapsed time instead of seconds as a double (where appropriate) and consistently applied second precision as 3 digits.
  • GSF: Updated PostgreSQL dependencies to latest version that support .NET 4.6 to fix authentication issues with latest PostgreSQL version
  • GSF.Communication: Added more resilient ServerUri reporting for UdpClient.
  • GSF.Communication: Added RequestNextServerIndex method to IClient implementations to allow for end-use server index increments.
  • GSF.Communication: Added ServerIndex property to IClient/ClientBase to support indication of which end point is in use when multiple server end points are configured.
  • GSF.Communication: Fixed connection time display in client base status.
  • GSF.Communication: Improved null reference checks in TlsServer
  • GSF.Communication: Removed statistic updates since these values never get published.
  • GSF.Communication: Updated Tls client and server sockets to only log a warning for protocols in use less than Tls12 allowing for use of Tls13 without warnings when enabled.
  • GSF.COMTRADE: Added support for single combined format files (.cff)
  • GSF.Core: Added common transmission voltage levels enumeration.
  • GSF.Core: Added DirectoryInfo and FileInfo overloads for file enumeration in FilePath.
  • GSF.Core: Added functions to StringExtensions for runtime string interpolation.
  • GSF.Core: Added GetValues extension for SerializationInfo.
  • GSF.Core: Added LogicalThread extensions to integrate with async/await patterns.
  • GSF.Core: Added more detailed error message to update file/directory enumeration functions.
  • GSF.Core: Added optional parameter to Enum.GetDesctiption extension to allow for null return
  • GSF.Core: Added reset functionality to file processor to enable reprocessing of files.
  • GSF.Core: Added reverse lookup for voltage level enumeration.
  • GSF.Core: Added TaskSynchronizedOperation to the solution.
  • GSF.Core: Added WhereAttribute() and Is() methods to XmlExtensions.
  • GSF.Core: Cleaned up max path length displays.
  • GSF.Core: Fixed RemoveLeadingString with char param overload to properly return prefixed truncated value.
  • GSF.Core: Fixed XML comment syntax error in StringExtensions.
  • GSF.Core: Improved null handling for InterprocessReaderWriterLock and InterprocessCache; and general code cleanup.
  • GSF.Core: Made improvements to file enumeration in FileProcessor.
  • GSF.Core: Moved improved sync-byte based frame alignment stream initialization up to base class level when sync-bytes are being used.
  • GSF.Core: Removed filter method from FileProcessor.
  • GSF.Core: Removed persistent lookup table from FileProcessor.
  • GSF.Core: Simplified the regular expression used by StringExtensions.Interpolate().
  • GSF.Core: Updated byte-based VoltageLevel enumeration to start at 1 so that a zero value can be interpreted as not being valid.
  • GSF.Core: Updated file enumeration functions in FilePath to handle errors in enumerator.MoveNext().
  • GSF.Core: Updated voltage level value extension to default to 0 when no level can be parsed.
  • GSF.Data: Updated DataExtensions to use is with named type variable.
  • GSF.Diagnostics: Updated performance counters to allow for a manual sample adjustment function Used the function to apply a fix to overflow issue related to .NET logical thread counts
  • GSF.Identity: Updated WindowsUserInfo to always use legacy group lookups for local accounts or when enabled in settings.
  • GSF.InstallerActions: Added exception trapping around new critical regions to prevent possible installation failures.
  • GSF.InstallerActions: Corrected and simplified operation of CompanyInfoAction, which is executed in deferred fashion, for acronym validations.
  • GSF.InstallerActions: Updated acronym validation to skip property value updates for null or empty string which are not allowed.
  • GSF.InstallerActions: Updated company info actions to include a SystemName parameters and acronym validation
  • GSF.InstallerActions: Updated CompanyInfoAction to better handle possible null exceptions.
  • GSF.InstallerActions: Updated system name to be trimmed and removed of spaces.
  • GSF.Net: Added common OID values and SNMP send trap functions.
  • GSF.Net: Added initial structure for abstract FTP client to support FTP or TFTP and allow for future implementations, e.g., FTPS or SFTP.
  • GSF.Net: Added namespace doc and cleared documentation warnings.
  • GSF.Net: Added overloads to support multiple variables from SendTrap functions
  • GSF.Net: Added SNMP engine components for hosting
  • GSF.Net: Added SNMP library.
  • GSF.Net: Added Trivial File Transfer Protocol (TFTP) implementation.
  • GSF.Net: Renamed AbstractFtpClient to VirtualFtpClient.
  • GSF.Net: Updated default SNMP IP end point to use loop-back address.
  • GSF.Parsing: Updated MultiSourceFrameImageParserBase to properly update cached stream initialization state based on base class updates.
  • GSF.PhasorProtocols: Added config clone method for C37 frames.
  • GSF.PhasorProtocols: Added config frame 3 fragmentation operation to IEEE C37.118-2011 implementation.
  • GSF.PhasorProtocols: Added DataModified flag and property implementations to DataCellBase.
  • GSF.PhasorProtocols: Added GlobalID field to attribute dictionary (for listing in PMU Connection Tester, etc.) Also updated coordinate fields to display "INF" for infinity type values.
  • GSF.PhasorProtocols: Added GlobalID to config cell 3 serialization implementation.
  • GSF.PhasorProtocols: Added IEEE C37.118 Std2011 specific frame parser to MultiProtocolFrameParser implementation.
  • GSF.PhasorProtocols: Added initial implementations of config frame 3 sub-components.
  • GSF.PhasorProtocols: Added new bit-based enumerations, flags and updates to revision options to IEEE C37.118 implementation in Common.cs.
  • GSF.PhasorProtocols: Added new TimeQuality enum and DataModified flag implementations to IEEE C37.118 DataCell.
  • GSF.PhasorProtocols: Added properties to ConfigurationCellBase for controlling automatic label image padding operations.
  • GSF.PhasorProtocols: Added required version parameter to CommonFrameHeader of IEEE C37.118 implementation.
  • GSF.PhasorProtocols: Added revision parameter to all CommonFrameHeader constructions used by IEEE C37.118 frame implementations.
  • GSF.PhasorProtocols: Added trimming for digital labels in CFG-3 frame
  • GSF.PhasorProtocols: Completed analog definition 3 (of config frame 3)
  • GSF.PhasorProtocols: Completed config cell 3 (of config frame 3)
  • GSF.PhasorProtocols: Fixed frequency parent cell reference in CFG-3 scenarios
  • GSF.PhasorProtocols: Fixed IEEE C37.118-2011 digital definition channel name serialization of configuration frame 3
  • GSF.PhasorProtocols: Implemented new phasor definitions of config frame 3
  • GSF.PhasorProtocols: Improve Device data model handling of long analog and digital labels for config cell 3 imports.
  • GSF.PhasorProtocols: Improve GlobalID deserialization in config cell 3
  • GSF.PhasorProtocols: Improved length generation of cell header (station name)
  • GSF.PhasorProtocols: Improved MPFP status display.
  • GSF.PhasorProtocols: Improved phase guess operations during setup wizard
  • GSF.PhasorProtocols: Marked config frame 3 as sealed.
  • GSF.PhasorProtocols: Truncated new source connection info in MPFP status.
  • GSF.PhasorProtocols: Updated "SendDevice" command in MPFP to downgrade frame requests for CFG-3 to CFG-2 when not supported
  • GSF.PhasorProtocols: Updated anonymous analog definition to not restrict label lengths.
  • GSF.PhasorProtocols: Updated anonymous ConfigurationCell implementation to have no predefined fixed length for station names.
  • GSF.PhasorProtocols: Updated BinaryImage implementation
  • GSF.PhasorProtocols: Updated CFG3 config frame to properly parse serialized Infinity values from cached configuration.
  • GSF.PhasorProtocols: Updated channel base implementation to better handle possible null header / body / footer implementations.
  • GSF.PhasorProtocols: Updated collection implementations to all support optional fixed element size binary lengths
  • GSF.PhasorProtocols: Updated config cell 3 with properties and functions to support decimal / float conversions for longitude and latitude coordinates.
  • GSF.PhasorProtocols: Updated config frame 3 to allow base class to check CRC of full frame when parsing with cumulated frame images
  • GSF.PhasorProtocols: Updated config frame 3 to expose FrameHeaderLength constant that includes CONT_IDX length
  • GSF.PhasorProtocols: Updated ConfigurationCellBase to better accommodate variable length station names.
  • GSF.PhasorProtocols: Updated Device data model to apply updates analog, digital and fixed measurements for config refresh
  • GSF.PhasorProtocols: Updated frame image collection parsing to not validate CRC for each frame.
  • GSF.PhasorProtocols: Updated frame parser to accommodate fragmented config frame 3 instances that span multiple frames
  • GSF.PhasorProtocols: Updated IEEE C37.118 channel definitions for configuration frame 3 to properly encode / decode length prefixed strings.
  • GSF.PhasorProtocols: Updated IEEE C37.118 classes to fully accommodate new ancillary data in config frame 3
  • GSF.PhasorProtocols: Updated IEEE C37.118 digital definition to not restrict digital bit labels to 16 characters when using Std2011 version.
  • GSF.PhasorProtocols: Updated IEEE C37.118 frame parser to accommodate configuration frame 3 operations.
  • GSF.PhasorProtocols: Updated IEEE C37.118 frame realignment to be handled more gracefully during stream initialization - this is especially helpful with read-only serial connections.
  • GSF.PhasorProtocols: Updated IEEE C37.118 frequency definition to also expose a config 3 parent cell to use when applicable.
  • GSF.PhasorProtocols: Updated IEEE C37.118 PhasorValue and FrequencyValue implementations to set unassigned unscaled integer values to -32768 to match NaN for floating-point versions.
  • GSF.PhasorProtocols: Updated InputWizardDevices to use longer config 3 labels and optional scalars for analog and digitals when available.
  • GSF.PhasorProtocols: Updated MPFP to provide a notification event when a client server index is updated and allow for manual requests for server index increments.
  • GSF.PhasorProtocols: Updated MPFP to request CFG-3 when available
  • GSF.PhasorProtocols: Updated MultiProtocolFrameParser to expose ServerIndex from underlying IClient based communication channels; also, general code clean-up
  • GSF.PhasorProtocols: Updated output streams to accommodate filtered phasor outputs.
  • GSF.PhasorProtocols.UI: Added IEEE C37.118-2011 to output stream configurations and updated frame maximum frame size calculations.
  • GSF.PhasorProtocols.UI: Added optional analog scalars collection to Device save operations.
  • GSF.PhasorProtocols.UI: Added target configuration type to output stream connection string (for 2011 vs 2005 outputs).
  • GSF.PhasorProtocols.UI: Fixed issues with output stream type lookup associations using unsorted enumeration.
  • GSF.PhasorProtocols.UI: Removed undefined TypeName property changed notification.
  • GSF.PhasorProtocols.UI: Updated Device model to apply incoming unique ID values to new device adds, when available.
  • GSF.PhasorProtocols.UI: Updated OutputStreamDeviceAnalog data model to support Analog Labels of 200 characters
  • GSF.PhasorProtocols.UI.WPF: Added an "Accept Phase Guesses" button to allow continuation of wizard with low confidence phase guesses
  • GSF.PhasorProtocols.UI.WPF: Added last selected output stream phase filter to isolated storage to remember last value
  • GSF.PhasorProtocols.UI.WPF: Added magnitude multiplier and angle adder fields from config frame 3 input.
  • GSF.PhasorProtocols.UI.WPF: Added UI control elements to accept a filter list for output stream phases
  • GSF.PhasorProtocols.UI.WPF: Improved CFG-3 config size feedback.
  • GSF.PhasorProtocols.UI.WPF: Improved phasor label phase guessing algorithm with case-sensitivity improvements. Helps with APP device phase label matching
  • GSF.PhasorProtocols.UI.WPF: Increased spacing around new phase accept button text.
  • GSF.PhasorProtocols.UI.WPF: Moved zero sequence phase to second check since values should be very unique.
  • GSF.PhasorProtocols.UI.WPF: Updated config frame 3 longitude / latitude operations float / decimal conversions to handle infinite values.
  • GSF.PhasorProtocols.UI.WPF: Updated input device wizard functions to better handle config frame 3 fields
  • GSF.PhasorProtocols.UI.WPF: Updated output stream device wizard to accept single clicks for checkbox operations That's been annoying me for years :-p
  • GSF.PhasorProtocols.UI.WPF: Updated phase guess operation: since positive sequence is the default and always treated with accuracy suspicion, it's value is tested first
  • GSF.PQDIF: Fixed comments on TitleTag and SubjectTag properties in ContainerRecord.
  • GSF.Scheduling: Updated cron schedule part parsing to mod user input by max value so support day 7 and hour 60 style scenarios.
  • GSF.SELEventParser: Modified CEV parsing logic to apply case-insensitive matching when parsing the command line at the beginning of the file.
  • GSF.ServiceProcess: Added cancellable SendingClientResponse event to ServiceHelper so service implementations can intercept client responses as needed.
  • GSF.ServiceProcess: Added error logged try/catch wrappers for all event raising functions.
  • GSF.ServiceProcess: Improved null reference checking on shutdown; also, general code clean-up
  • GSF.ServiceProcess: Updated primary status update function to ignore string format operations when no args are provided.
  • GSF.TimeSeries: Added "AlternateTag" as a customizable auto-measurement-creation field expression.
  • GSF.TimeSeries: Added configuration option to auto-forward published statistics via SNMP.
  • GSF.TimeSeries: Added DataType field to Statistic model.
  • GSF.TimeSeries: Added description attributes to SecurityMode enumeration elements to support UI display.
  • GSF.TimeSeries: Added GetInputMeasurements and GetOutputMeasurements services commands
  • GSF.TimeSeries: Added mutual subscription flag to data publisher.
  • GSF.TimeSeries: Added mutual subscription mode to data subscriber. This serves the use case where a remote subscriber can add new measurements associated with a source device, e.g., creating new calculated result measurements on a remote machine for load distribution that should get associated with a device on the local machine, thus becoming part of the local measurement set.
  • GSF.TimeSeries: Added MutualSubscription DataSubscriber setting to Initialize function connection string parsing.
  • GSF.TimeSeries: Fixed a race condition when requesting temporal Iaon session Under heavy loading conditions after a configuration reload the temporal support table would not yet be added before a remote request for temporal data causing a null reference exception resulting in temporal request to fail.
  • GSF.TimeSeries: Fixed error parsing Device.UniqueID GUIDs from publisher data set during metadata synchronization.
  • GSF.TimeSeries: Fixed typo in SQL Server schema
  • GSF.TimeSeries: Fixed unique constraint violation in subscriber metadata synchronization when devices upstream are deleted and re-added.
  • GSF.TimeSeries: Improved alternate tag format for independent action adapter collections for automated tag creation, when enabled
  • GSF.TimeSeries: Improved status output for independent adapter collections
  • GSF.TimeSeries: Simplified bulk adapter input initialization sequence for independent action adapter managers.
  • GSF.TimeSeries: Update independent action adapter manager classes to support a target parent device for grouping outputs which gets automatically added. This helps support auto-transport from STTP/GEP.
  • GSF.TimeSeries: Updated all schemas to version 13 to extend OutputStreamDeviceAnalog Label length to 200.
  • GSF.TimeSeries: Updated data subscriber to allow for new measurements, e.g., remotely calculated results, to be added to a local device in a mutual subscription scenario.
  • GSF.TimeSeries: Updated date time format for SNMP traps.
  • GSF.TimeSeries: Updated default configuration reload timeout of independent adapter collections to 10 seconds to better accommodate larger configurations and/or slower systems.
  • GSF.TimeSeries: Updated GetInputMeasurements and GetOutputMeasurements request handlers to accommodate cases where measurement collections can be null.
  • GSF.TImeSeries: Updated GetInputMeasurements and GetOutputMeasurements request handlers to separate actionable and non-actionable responses.
  • GSF.TimeSeries: Updated GSF initial data sets to include NOJA and SSE to default companies, and updated Entergy default acronym to ENT
  • GSF.TimeSeries: Updated independent adapter manager automatic point creation to key off signal reference instead of point tag so that point tag names can be manually renamed without creating new tags.
  • GSF.TimeSeries: Updated InputAdapterBase and OutputAdapterBase to cache connection info before possible failure in case implemented connection switches to another target
  • GSF.TimeSeries: Updated PostgreSQL DeviceAlarm View to include Device ID and updated schema version to 12 to bring schema in sync with other database types
  • GSF.TimeSeries: Updated serialized schema
  • GSF.TimeSeries: Updated service remote clients to default to Tls12 only when no configured protocols are defined.
  • GSF.TimeSeries: Updated ServiceHostBase GetInputMeasurements and GetOutputMeasurements to use byte-level signal ID serialization instead of string and pass parameter as an attachment; also, general code cleanup
  • GSF.TimeSeries: Updated ServiceHostBase to better handle and log service events.
  • GSF.TimeSeries: Updated SQL Server schema to mark Device UniqueID with a unique constraint
  • GSF.TimeSeries: Updated SQLite schemas
  • GSF.TimeSeries: Updated StatisticsEngine adapter to report SNMP forwarding enabled state via Status text.
  • GSF.TimeSeries: Updated TLS-mode to still use subscription flag filtering even when filter output measurements is false
  • GSF.TimeSeries.UI.WPF: Added any applied description from enum element attributes to adapter display for improved user option feedback.
  • GSF.TimeSeries.UI.WPF: Fixed Enum selection operations in Adapter control screens.
  • GSF.TimeSeries.UI.WPF: Fixed random null reference exception during subscription control screen load.
  • GSF.TimeSeries.UI: Fixed null reference exception in common functions windows service connect when user is unauthenticated and no password has been provided.
  • GSF.TimeSeries.UI: Fixed property validation logic in DataModelBase.
  • GSF.Web: Added "DebugBuild" boolean to view bag when using a custom Razor error template
  • GSF.Web: Added additional logging to web host authentication.
  • GSF.Web: Added comments and sample code WebPageController This helps document how to use an Ajax post with anti-forgery token for pages served through web page controller.
  • GSF.Web: Added common Error template.
  • GSF.Web: Added count predicate to Array prototype in gsf.web.client.js
  • GSF.Web: Added hosted web server option to allow use of a template CSHTML file for displaying Razor exceptions.
  • GSF.Web: Added minify exclusion expressions for Javascript and CSS to support cases where default minification fails.
  • GSF.Web: Added new AJAX header to allow for non-form based anti-forgery requests.
  • GSF.Web: Fixed errors handling authentication failures in IIS-hosted apps.
  • GSF.Web: Improved GraphMeasurements.cshtml UI operation and feedback.
  • GSF.Web: Updated AngularJS to version 1.8.0
  • GSF.Web: Updated CSV download handler to accept an optional explicit export file name.
  • GSF.Web: Updated embedded jQuery JavaScript library to version 3.5.1
  • GSF.Web: Updated error handling template to default to embedded resource.
  • GSF.Web: Updated jquery ajax calls to use "method" parameter instead of "type"
  • GSF.Web: Updated knockout.reactor.js to version 1.4.2
  • GSF.Web: Updated pageViewModel.js to only register screen updates initiated by the user, i.e., appropriately setting viewModel.isDirty observable. Also added auto-dispose for ko.watcher for current record to stop watches on previous record.
  • GSF.Web: Updated primary login page to use post-based authentication This forces use and validation of anti-forgery tokens
  • GSF.Web: Updated real-time graph measurements and subscriber hub to encode all metadata fields as lower case to support PostgreSQL's lowercase field nature
  • GSF.Web: Updated reference to addNewEditDialog flag to be sourced from "self" in side view model.
  • GSF.Web: Updated shared Companies view to allow selection of a company as the configured company / acronym for the current service
  • GSF.Windows: Added custom exception handling to SecureForm
  • HistorianAdapters: Updated v1.0 openHistorian labels, including deprecation note
  • ModbusAdapters: Fixed web API call to save device configuration to properly accept unmodeled JSON.
  • ModbusAdapters: Updated to attached Modbus measurements to selected historian and reduced minimal value for query intervals to one millisecond.
  • PhasorMeasurementMapper: Added AccessID to connection info feedback
  • PhasorMeasurementMapper: Added total access ID count to status output.
  • PhasorMeasurementMapper: Fixed comment example with alternate ID specification.
  • PhasorMeasurementMapper: Updated single device connection to only load device mappings for unique access ID list.
  • PhasorProtocolAdapters: Added ConfigFrame3 device details to output streams.
  • PhasorProtocolAdapters: Added simple configuration revision tracking to C37 output stream devices
  • PhasorProtocolAdapters: Exposed CFG-2 and CFG-3 frames from concentrator
  • PhasorProtocolAdapters: Fixed parameters for anonymous phasor definition (post merge).
  • PhasorProtocolAdapters: Improved CFG3 ancillary database load operations. Also, truncated CFG2 phasor label to 16 characters
  • PhasorProtocolAdapters: Improved config change detection operations,
  • PhasorProtocolAdapters: Made ExtractFrameMeasurements to custom phasor protocol implementations that may not implement all value sequences - plus general code cleanup.
  • PhasorProtocolAdapters: Restored proper command channel response selection in IEC 61850-90-5 concentrator device command handler.
  • PhasorProtocolAdapters: Updated C37 concentrator to apply needed max label lengths per protocol version. Also added default Global type registration needed for modeled Device records, when no Global type model is already defined.
  • PhasorProtocolAdapters: Updated C37 concentrator to load cached Window and GroupDelay device values only when they are not default, zero value.
  • PhasorProtocolAdapters: Updated config and proxy requests to use CFG-3 option, when available
  • PhasorProtocolAdapters: Updated config frame 3 longitude / latitude operations float / decimal conversions to handle infinite values.
  • PhasorProtocolAdapters: Updated IEC 61850-90-5 concentrator to handle its own station name / ID label truncations (base class will be now be skipping this step).
  • PhasorProtocolAdapters: Updated IEEE C37.118 output stream concentrator to fully accommodate new ancillary data in config frame 3
  • PhasorProtocolAdapters: Updated PhasorDataConcentratorBase to allow for new override scenarios to accommodate IEEE C37.118-2011 config frame fragmentation operations.
  • PhasorProtocolAdapters: Updated PhasorMeasurementMapper to accommodate multiple ID codes when multiple TCP end-points are specified.
  • PhasorProtocolAdapters: Updated PhasorMeasurementMapper to only register statistics for first defined device when loading a direct device connection with multiple access ID codes
  • PhasorProtocolAdapters: Updated PhasorMeasurementMapper to optionally parse any defined alternate access IDs from server list, e.g.: host:port/altID
  • PhasorProtocolAdapters: Updated PhasorMeasurementMapper to pick-up current ServerIndex from frame parser and cached connection info before possible failures in case communications client switches to another target
  • PhasorProtocolAdapters: Updated PhasorMeasurementMapper to register stats for each ID code on a direct device connection since only one will be active a time.
  • PhasorProtocolAdapters: Updated PhasorMeasurementMapper to request next server index after data loss timeouts
  • PhasorProtocolAdapters: Updated PhasorMeasurementMapper to respond to notifications that server index was updated and properly provide MPFP with an updated access ID
  • PhasorWebUI: Added configured system name prefix to global tags, when defined, to prevent tag collisions
  • PhasorWebUI: Added 'L' phase to valid input types
  • PhasorWebUI: Added longitude / latitude extractions from config 3, when available
  • PhasorWebUI: Improved descriptions for calculated frequency measurements.
  • PhasorWebUI: Improved phasor label phase guessing algorithm with case-sensitivity improvements. Helps with APP device phase label matching
  • PhasorWebUI: Increased text width of voltage phasor labels.
  • PhasorWebUI: Separated phase guess logic into high and low confidence operations for improved quality of operation.
  • PhasorWebUI: Updated 3-phase power calculations to increase wait time for standard power calculations to be created This helps with DFR calculations that may have many lines
  • PhasorWebUI: Updated config frame 3 longitude / latitude operations float / decimal conversions to handle infinite values.
  • PhasorWebUI: Updated final phase guess as "+?"
  • PhasorWebUI: Updated name of "None" tag template
  • PhasorWebUI: Updated phase guess operation: since positive sequence is the default and always treated with accuracy suspicion, it's value is tested first and moved zero sequence phase to second check since values should be very unique.
  • PhasorWebUI: Updated phase guess to assume phases that are or end with "?" are invalid.
  • PhasorWebUI: Updated phasor import to accommodate unique config frame 3 sources.
  • PhasorWebUI: Updated synchrophasor wizard high confidence phasor guessing to handle phase-prefixed end of label suffixes independently.
  • PhasorWebUI: Updated system name access to be optional in app model definition.
  • PhasorWebUI: Updated tag templates to accept static singleton declared custom action adapter instances.
  • PIAdapters: Added description attributes to TagRemovalOperation enumeration elements to support UI display.
  • PIAdapters: Added tag removal options for metadata synchronizations
  • ValidateAssemblyBindings: Removed elevated admin requirement for application as tool is called during builds
  • ValidateAssemblyBindings: Updated exceptions to be displayed on STDERR
  • ValidateAssemblyBindings: Updated to run as administrator
  • ValidateAssemblyBindings: Updated tool to scan full dependency folder so all a full set of binding redirects will exactly match deployment.