GSF.TimeSeries.UI: Fixed event IDs for Windows event log messages when users or groups are deleted.
Added lifetime latency statistics to input streams, output streams, publishers, and subscribers. Also added lifetime discarded measurements and lifetime downsampled measurements to output streams.
GridSolutionsFramework: Version change for build GridSolutionsFramework_v2.0.41.0.
GSF.PhasorProtocols: Fixed issue with MultiProtocolFrameParser where it was resetting its configuration frame on start.
GSF.PhasorProtocols: Fixed NullReferenceException caused by recent change to MultiProtocolFrameParser.
GSF.TimeSeries: Fixed StatisticsEngine status messages.
Corrected spellings and latency variable names in phasor measurement mapper.
GridSolutionsFramework: Version change for build GridSolutionsFramework_v2.0.42.0.
GSF.TimeSeries: Applied rename of field in Subscribers table of the data set to the code in the DataPublisher.
GSF.Communication: Added feature to UdpServer to support a dynamic clients list.
GridSolutionsFramework: Version change for build GridSolutionsFramework_v2.0.43.0.
GSF.Communication: Fixed dynamicClientEndPoints feature in UdpServer.
HistorianView:
1) Removed Display column in DataGrid. The export column alone determines which points to export or trend.
2) Modified the export functionality to take into account the possibility that duplicate data may exist for a signal at a given timestamp.
GSF.TimeSeries: Fixed reference to collection of statistics in StatisticsEngine.CalculateStatistic() method
GSF.TimeSeries: Eliminated race condition between configuration cache and determining temporal support.
GSF.TimeSeries: Removed retry when executing configuration cache.
GSF.Core: Fixed Common.IsDefaultValue to handle InvalidCastExceptions that occur when a custom type lies about its type code.
Corrected BufferBlockMeasurment to not throw an exception when buffer property is assigned to null.
GSF.TimeSeries: Modified queue-and-notify to use IMeasurement.ReceivedTimestamp rather than IMeasurement.Timestamp when calculating timeouts.
Changed concentrator base to not auto-assign DiscardValue measurement state flag since multiple adapters concentrating the same measurement would compete for assignment. User's can manually assign state flag as needed and/or desired. This also avoids unintentional/undesired RemovedFromProcessing single quality state override in local historical data.