History

Merge branch 'master' of https://github.com/GridProtectionAlliance/gsf.git

Billy Ernest committed 9 years ago

Commit 4e73d822 parents d6569e7 a1a3557112 files · +794 −351Browse files

Unified · Split

112 files
  1. Build/Scripts/GridSolutionsFramework.version +1 −1
  2. Source/Applications/DataPublisherTest/Properties/AssemblyInfo.cs +3 −3
  3. Source/Applications/DataSubscriberTest/Properties/AssemblyInfo.cs +3 −3
  4. Source/Applications/LibraryTester/Properties/AssemblyInfo.cs +4 −4
  5. Source/Applications/TsfManager/Properties/AssemblyInfo.cs +4 −4
  6. Source/Applications/Wave Demo Apps/UpdateWAVMetaData/Properties/AssemblyInfo.cs +4 −4
  7. Source/Applications/Wave Demo Apps/WavSubscriptionDemo/Properties/AssemblyInfo.cs +4 −4
  8. Source/Documentation/GrafanaFunctions.md +3 −3
  9. Source/Extensions/GPAVSExtension/My Project/AssemblyInfo.vb +3 −3
  10. Source/Libraries/Adapters/AdoAdapters/Properties/AssemblyInfo.cs +4 −4
  11. Source/Libraries/Adapters/ArchivistAdapters/Properties/AssemblyInfo.cs +4 −4
  12. Source/Libraries/Adapters/AudioAdapters/Properties/AssemblyInfo.cs +4 −4
  13. Source/Libraries/Adapters/COMTRADEAdapters/Properties/AssemblyInfo.cs +4 −4
  14. Source/Libraries/Adapters/CsvAdapters/Properties/AssemblyInfo.cs +4 −4
  15. Source/Libraries/Adapters/DataQualityMonitoring/Properties/AssemblyInfo.cs +4 −4
  16. Source/Libraries/Adapters/Dnp3Adapters/Properties/AssemblyInfo.cs +4 −4
  17. Source/Libraries/Adapters/DynamicCalculator/Properties/AssemblyInfo.cs +4 −4
  18. Source/Libraries/Adapters/EpriExport/Properties/AssemblyInfo.cs +4 −4
  19. Source/Libraries/Adapters/FileAdapters/Properties/AssemblyInfo.cs +4 −4
  20. Source/Libraries/Adapters/FtpAdapters/Properties/AssemblyInfo.cs +4 −4
  21. Source/Libraries/Adapters/GrafanaAdapters/GrafanaDataService.cs +1 −1
  22. Source/Libraries/Adapters/GrafanaAdapters/GrafanaDataSourceBase.cs +13 −12
  23. Source/Libraries/Adapters/GrafanaAdapters/Properties/AssemblyInfo.cs +2 −2
  24. Source/Libraries/Adapters/HistorianAdapters/Properties/AssemblyInfo.cs +2 −2
  25. Source/Libraries/Adapters/ICCPExport/Properties/AssemblyInfo.cs +4 −4
  26. Source/Libraries/Adapters/InfluxDBAdapters/Properties/AssemblyInfo.cs +4 −4
  27. Source/Libraries/Adapters/Kafka/Properties/AssemblyInfo.cs +4 −4
  28. Source/Libraries/Adapters/MongoAdapters/Properties/AssemblyInfo.cs +4 −4
  29. Source/Libraries/Adapters/MySqlAdapters/Properties/AssemblyInfo.cs +4 −4
  30. Source/Libraries/Adapters/OneSecondFrequencyAverager/Properties/AssemblyInfo.cs +4 −4
  31. Source/Libraries/Adapters/PIAdapters/Properties/AssemblyInfo.cs +3 −3
  32. Source/Libraries/Adapters/PhasorProtocolAdapters/Properties/AssemblyInfo.cs +4 −4
  33. Source/Libraries/Adapters/PowerCalculations.UI.WPF/Properties/AssemblyInfo.cs +4 −4
  34. Source/Libraries/Adapters/PowerCalculations.UI/Properties/AssemblyInfo.cs +4 −4
  35. Source/Libraries/Adapters/PowerCalculations/Properties/AssemblyInfo.cs +2 −2
  36. Source/Libraries/Adapters/TestingAdapters/Properties/AssemblyInfo.cs +4 −4
  37. Source/Libraries/Adapters/WavInputAdapter/Properties/AssemblyInfo.cs +4 −4
  38. Source/Libraries/GSF.ASN1/Properties/AssemblyInfo.cs +2 −2
  39. Source/Libraries/GSF.COMTRADE/Properties/AssemblyInfo.cs +4 −4
  40. Source/Libraries/GSF.Communication/Properties/AssemblyInfo.cs +2 −2
  41. Source/Libraries/GSF.Core/Properties/AssemblyInfo.cs +2 −2
  42. Source/Libraries/GSF.Core/Range.cs +32 −0
  43. Source/Libraries/GSF.EMAX/Properties/AssemblyInfo.cs +4 −4
  44. Source/Libraries/GSF.Geo/Properties/AssemblyInfo.cs +3 −3
  45. Source/Libraries/GSF.Historian/Files/StateRecordDataPoint.cs +1 −1
  46. Source/Libraries/GSF.Historian/Properties/AssemblyInfo.cs +2 −2
  47. Source/Libraries/GSF.InstallerActions/Properties/AssemblyInfo.cs +4 −4
  48. Source/Libraries/GSF.MMS/Properties/AssemblyInfo.cs +4 −4
  49. Source/Libraries/GSF.Media/Properties/AssemblyInfo.cs +4 −4
  50. Source/Libraries/GSF.Net/Ftp/FtpClient.cs +72 −0
  51. Source/Libraries/GSF.Net/Ftp/FtpControlChannel.cs +143 −1
  52. Source/Libraries/GSF.Net/Ftp/FtpDirectory.cs +1 −1
  53. Source/Libraries/GSF.Net/Ftp/FtpFile.cs +1 −1
  54. Source/Libraries/GSF.Net/Ftp/FtpFileTransferer.cs +4 −3
  55. Source/Libraries/GSF.Net/Ftp/FtpSessionConnected.cs +49 −0
  56. Source/Libraries/GSF.Net/Ftp/FtpSessionDisconnected.cs +60 −0
  57. Source/Libraries/GSF.Net/Ftp/IFtpSessionState.cs +23 −0
  58. Source/Libraries/GSF.Net/Properties/AssemblyInfo.cs +4 −4
  59. Source/Libraries/GSF.PQDIF/Properties/AssemblyInfo.cs +4 −4
  60. Source/Libraries/GSF.PhasorProtocols/Properties/AssemblyInfo.cs +3 −3
  61. Source/Libraries/GSF.PhasorProtocols/UI/Properties/AssemblyInfo.cs +4 −4
  62. Source/Libraries/GSF.PhasorProtocols/UI/WPF/Properties/AssemblyInfo.cs +4 −4
  63. Source/Libraries/GSF.SELEventParser/AnalogSection.cs +8 −4
  64. Source/Libraries/GSF.SELEventParser/CommaSeparatedEventReport.cs +6 −1
  65. Source/Libraries/GSF.SELEventParser/EventFile.cs +6 −1
  66. Source/Libraries/GSF.SELEventParser/EventReport.cs +6 −1
  67. Source/Libraries/GSF.SELEventParser/Properties/AssemblyInfo.cs +3 −3
  68. Source/Libraries/GSF.Security/Properties/AssemblyInfo.cs +2 −2
  69. Source/Libraries/GSF.ServiceBus/Properties/AssemblyInfo.cs +2 −2
  70. Source/Libraries/GSF.ServiceModel/Properties/AssemblyInfo.cs +2 −2
  71. Source/Libraries/GSF.ServiceProcess/Properties/AssemblyInfo.cs +2 −2
  72. Source/Libraries/GSF.TimeSeries/Properties/AssemblyInfo.cs +3 −3
  73. Source/Libraries/GSF.TimeSeries/Transport/DataGapRecoverer.cs +53 −9
  74. Source/Libraries/GSF.TimeSeries/Transport/UI/Properties/AssemblyInfo.cs +4 −4
  75. Source/Libraries/GSF.TimeSeries/Transport/UI/WPF/Properties/AssemblyInfo.cs +4 −4
  76. Source/Libraries/GSF.TimeSeries/UI/Properties/AssemblyInfo.cs +4 −4
  77. Source/Libraries/GSF.TimeSeries/UI/WPF/Properties/AssemblyInfo.cs +4 −4
  78. Source/Libraries/GSF.Unity/Properties/AssemblyInfo.cs +2 −2
  79. Source/Libraries/GSF.Web/Properties/AssemblyInfo.cs +2 −2
  80. Source/Libraries/GSF.Windows/Properties/AssemblyInfo.cs +2 −2
  81. Source/Libraries/Hadoop.Replication/Properties/AssemblyInfo.cs +2 −2
  82. Source/Libraries/SqlClr/GSF.Core.SqlClr/Properties/AssemblyInfo.cs +3 −3
  83. Source/Libraries/Tests/GSF.Communication.Tests/Properties/AssemblyInfo.cs +3 −3
  84. Source/Libraries/Tests/GSF.Core.Tests/Properties/AssemblyInfo.cs +3 −3
  85. Source/Libraries/Tests/GSF.Historian.Tests/Properties/AssemblyInfo.cs +2 −2
  86. Source/Libraries/Tests/GSF.Security.Tests/Properties/AssemblyInfo.cs +3 −3
  87. Source/Libraries/Tests/GSF.ServiceBus.Tests/Properties/AssemblyInfo.cs +3 −3
  88. Source/Libraries/Tests/GSF.ServiceModel.Tests/Properties/AssemblyInfo.cs +3 −3
  89. Source/Libraries/Tests/GSF.ServiceProcess.Tests/Properties/AssemblyInfo.cs +3 −3
  90. Source/Libraries/Tests/GSF.Web.Tests/Properties/AssemblyInfo.cs +3 −3
  91. Source/Libraries/Tests/GSF.Windows.Tests/Properties/AssemblyInfo.cs +3 −3
  92. Source/Tools/COMTRADEConverter/Properties/AssemblyInfo.cs +3 −3
  93. Source/Tools/ConfigCrypter/Properties/AssemblyInfo.cs +2 −2
  94. Source/Tools/ConfigEditor/Properties/AssemblyInfo.cs +2 −2
  95. Source/Tools/ConfigTest/Properties/AssemblyInfo.cs +4 −4
  96. Source/Tools/ConfigurationCacher/Properties/AssemblyInfo.cs +4 −4
  97. Source/Tools/DNP3ConfigGenerator/Properties/AssemblyInfo.cs +4 −4
  98. Source/Tools/DataMigrationUtility/Properties/AssemblyInfo.cs +4 −4
  99. Source/Tools/HistorianPlaybackUtility/Properties/AssemblyInfo.cs +2 −2
  100. Source/Tools/HistorianView/Properties/AssemblyInfo.cs +4 −4
  101. Source/Tools/LogFileViewer/Properties/AssemblyInfo.cs +3 −3
  102. Source/Tools/MonoGenCert/Properties/AssemblyInfo.cs +4 −4
  103. Source/Tools/NoInetFixUtil/Properties/AssemblyInfo.cs +4 −4
  104. Source/Tools/PQDIFDump/Properties/AssemblyInfo.cs +4 −4
  105. Source/Tools/ProtocolTester/Properties/AssemblyInfo.cs +4 −4
  106. Source/Tools/SocketArchive/Properties/AssemblyInfo.cs +4 −4
  107. Source/Tools/StatHistorianReportGenerator/Properties/AssemblyInfo.cs +4 −4
  108. Source/Tools/TCPRebroadcaster/TCPRebroadcaster/Properties/AssemblyInfo.cs +4 −4
  109. Source/Tools/TCPRebroadcaster/TCPRebroadcasterConsole/Properties/AssemblyInfo.cs +4 −4
  110. Source/Tools/UDPRebroadcaster/UDPRebroadcaster/Properties/AssemblyInfo.cs +2 −2
  111. Source/Tools/UDPRebroadcaster/UDPRebroadcasterConsole/Properties/AssemblyInfo.cs +2 −2
  112. Source/Tools/UserInfoTest/Properties/AssemblyInfo.cs +4 −4
Build/Scripts/GridSolutionsFramework.version+1−1
@@ -1 +1 @@
1−2.1.465.0
1+2.2.8.0
Source/Applications/DataPublisherTest/Properties/AssemblyInfo.cs+3−3
@@ -58,6 +58,6 @@ using System.Runtime.InteropServices; · 57 unmodified lines
5858 //
5959 // You can specify all the values or you can default the Build and Revision Numbers
6060 // by using the '*' as shown below:
61−// [assembly: AssemblyVersion("2.1.465.0")]
62−[assembly: AssemblyVersion("2.1.465.0")]
63−[assembly: AssemblyInformationalVersion("2.1.465-beta")]
61+// [assembly: AssemblyVersion("2.2.8.0")]
62+[assembly: AssemblyVersion("2.2.8.0")]
63+[assembly: AssemblyInformationalVersion("2.2.8-beta")]
Source/Applications/DataSubscriberTest/Properties/AssemblyInfo.cs+3−3
@@ -58,7 +58,7 @@ using System.Runtime.InteropServices; · 57 unmodified lines
5858 //
5959 // You can specify all the values or you can default the Build and Revision Numbers
6060 // by using the '*' as shown below:
61−// [assembly: AssemblyVersion("2.1.465.0")]
62−[assembly: AssemblyVersion("2.1.465.0")]
63−[assembly: AssemblyInformationalVersion("2.1.465-beta")]
61+// [assembly: AssemblyVersion("2.2.8.0")]
62+[assembly: AssemblyVersion("2.2.8.0")]
63+[assembly: AssemblyInformationalVersion("2.2.8-beta")]
6464
Source/Applications/LibraryTester/Properties/AssemblyInfo.cs+4−4
@@ -30,7 +30,7 @@ using System.Runtime.InteropServices; · 29 unmodified lines
3030 //
3131 // You can specify all the values or you can default the Build and Revision Numbers
3232 // by using the '*' as shown below:
33−// [assembly: AssemblyVersion("2.1.465.0")]
34−[assembly: AssemblyVersion("2.1.465.0")]
35−[assembly: AssemblyFileVersion("2.1.465.0")]
36−[assembly: AssemblyInformationalVersion("2.1.465-beta")]
33+// [assembly: AssemblyVersion("2.2.8.0")]
34+[assembly: AssemblyVersion("2.2.8.0")]
35+[assembly: AssemblyFileVersion("2.2.8.0")]
36+[assembly: AssemblyInformationalVersion("2.2.8-beta")]
Source/Applications/TsfManager/Properties/AssemblyInfo.cs+4−4
@@ -76,7 +76,7 @@ using System.Windows; · 75 unmodified lines
7676 //
7777 // You can specify all the values or you can default the Build and Revision Numbers
7878 // by using the '*' as shown below:
79−// [assembly: AssemblyVersion("2.1.465.0")]
80−[assembly: AssemblyVersion("2.1.465.0")]
81−[assembly: AssemblyFileVersion("2.1.465.0")]
82−[assembly: AssemblyInformationalVersion("2.1.465-beta")]
79+// [assembly: AssemblyVersion("2.2.8.0")]
80+[assembly: AssemblyVersion("2.2.8.0")]
81+[assembly: AssemblyFileVersion("2.2.8.0")]
82+[assembly: AssemblyInformationalVersion("2.2.8-beta")]
Source/Applications/Wave Demo Apps/UpdateWAVMetaData/Properties/AssemblyInfo.cs+4−4
@@ -58,7 +58,7 @@ using System.Runtime.InteropServices; · 57 unmodified lines
5858 //
5959 // You can specify all the values or you can default the Build and Revision Numbers
6060 // by using the '*' as shown below:
61−// [assembly: AssemblyVersion("2.1.465.0")]
62−[assembly: AssemblyVersion("2.1.465.0")]
63−[assembly: AssemblyFileVersion("2.1.465.0")]
64−[assembly: AssemblyInformationalVersion("2.1.465-beta")]
61+// [assembly: AssemblyVersion("2.2.8.0")]
62+[assembly: AssemblyVersion("2.2.8.0")]
63+[assembly: AssemblyFileVersion("2.2.8.0")]
64+[assembly: AssemblyInformationalVersion("2.2.8-beta")]
Source/Applications/Wave Demo Apps/WavSubscriptionDemo/Properties/AssemblyInfo.cs+4−4
@@ -76,7 +76,7 @@ using System.Windows; · 75 unmodified lines
7676 //
7777 // You can specify all the values or you can default the Build and Revision Numbers
7878 // by using the '*' as shown below:
79−// [assembly: AssemblyVersion("2.1.465.0")]
80−[assembly: AssemblyVersion("2.1.465.0")]
81−[assembly: AssemblyFileVersion("2.1.465.0")]
82−[assembly: AssemblyInformationalVersion("2.1.465-beta")]
79+// [assembly: AssemblyVersion("2.2.8.0")]
80+[assembly: AssemblyVersion("2.2.8.0")]
81+[assembly: AssemblyFileVersion("2.2.8.0")]
82+[assembly: AssemblyInformationalVersion("2.2.8-beta")]
Source/Documentation/GrafanaFunctions.md+3−3
@@ -208,7 +208,7 @@ Second parameter, optional, is a boolean flag representing if time in dataset sh · 207 unmodified lines
208208
209209 * Signature: `Top(N|N%, [normalizeTime], expression)`
210210 * Example: `Top(50%, FILTER ActiveMeasurements WHERE SignalType='FREQ')`
211−* Variants: `Top`
211+* Variants: `Top`, `Largest`
212212 * Execution: Immediate in-memory array load
213213
214214 ## Bottom
@@ -220,7 +220,7 @@ Second parameter, optional, is a boolean flag representing if time in dataset sh · 5 unmodified lines
220220
221221 * Signature: `Bottom(N|N%, [normalizeTime], expression)`
222222 * Example: `Bottom(100, false, FILTER ActiveMeasurements WHERE SignalType='FREQ')`
223−* Variants: `Bottom`, `Bot`
223+* Variants: `Bottom`, `Bot`, `Smallest`
224224 * Execution: Immediate in-memory array load
225225
226226 ## Random
@@ -282,7 +282,7 @@ Returns a series of values that represent the time difference, in seconds, betwe · 55 unmodified lines
282282
283283 * Signature: `TimeDifference(expression)`
284284 * Example: `TimeDifference(FILTER ActiveMeasurements WHERE SignalType='FREQ')`
285−* Variants: `TimeDifference`, `TimeDiff`
285+* Variants: `TimeDifference`, `TimeDiff`, `Elapsed`
286286 * Execution: Deferred enumeration
287287
288288 ## Derivative
Source/Extensions/GPAVSExtension/My Project/AssemblyInfo.vb+3−3
@@ -29,6 +29,6 @@ Imports System.Runtime.InteropServices · 28 unmodified lines
2929 '
3030 ' You can specify all the values or you can default the Build and Revision Numbers
3131 ' by using the '*' as shown below:
32−' [assembly: AssemblyVersion("2.1.465.0")]
33−<Assembly: AssemblyVersion("2.1.465.0")>
34−<Assembly: AssemblyFileVersion("2.1.465.0")>
32+' [assembly: AssemblyVersion("2.2.8.0")]
33+<Assembly: AssemblyVersion("2.2.8.0")>
34+<Assembly: AssemblyFileVersion("2.2.8.0")>
Source/Libraries/Adapters/AdoAdapters/Properties/AssemblyInfo.cs+4−4
@@ -58,7 +58,7 @@ using System.Runtime.InteropServices; · 57 unmodified lines
5858 //
5959 // You can specify all the values or you can default the Build and Revision Numbers
6060 // by using the '*' as shown below:
61−// [assembly: AssemblyVersion("2.1.465.0")]
62−[assembly: AssemblyVersion("2.1.465.0")]
63−[assembly: AssemblyFileVersion("2.1.465.0")]
64−[assembly: AssemblyInformationalVersion("2.1.465-beta")]
61+// [assembly: AssemblyVersion("2.2.8.0")]
62+[assembly: AssemblyVersion("2.2.8.0")]
63+[assembly: AssemblyFileVersion("2.2.8.0")]
64+[assembly: AssemblyInformationalVersion("2.2.8-beta")]
Source/Libraries/Adapters/ArchivistAdapters/Properties/AssemblyInfo.cs+4−4
@@ -59,7 +59,7 @@ using System.Runtime.InteropServices; · 58 unmodified lines
5959 //
6060 // You can specify all the values or you can default the Build and Revision Numbers
6161 // by using the '*' as shown below:
62−// [assembly: AssemblyVersion("2.1.465.0")]
63−[assembly: AssemblyVersion("2.1.465.0")]
64−[assembly: AssemblyFileVersion("2.1.465.0")]
65−[assembly: AssemblyInformationalVersion("2.1.465-beta")]
62+// [assembly: AssemblyVersion("2.2.8.0")]
63+[assembly: AssemblyVersion("2.2.8.0")]
64+[assembly: AssemblyFileVersion("2.2.8.0")]
65+[assembly: AssemblyInformationalVersion("2.2.8-beta")]
Source/Libraries/Adapters/AudioAdapters/Properties/AssemblyInfo.cs+4−4
@@ -30,7 +30,7 @@ using System.Runtime.InteropServices; · 29 unmodified lines
3030 //
3131 // You can specify all the values or you can default the Build and Revision Numbers
3232 // by using the '*' as shown below:
33−// [assembly: AssemblyVersion("2.1.465.0")]
34−[assembly: AssemblyVersion("2.1.465.0")]
35−[assembly: AssemblyFileVersion("2.1.465.0")]
36−[assembly: AssemblyInformationalVersion("2.1.465-beta")]
33+// [assembly: AssemblyVersion("2.2.8.0")]
34+[assembly: AssemblyVersion("2.2.8.0")]
35+[assembly: AssemblyFileVersion("2.2.8.0")]
36+[assembly: AssemblyInformationalVersion("2.2.8-beta")]
Source/Libraries/Adapters/COMTRADEAdapters/Properties/AssemblyInfo.cs+4−4
@@ -58,7 +58,7 @@ using System.Runtime.InteropServices; · 57 unmodified lines
5858 //
5959 // You can specify all the values or you can default the Build and Revision Numbers
6060 // by using the '*' as shown below:
61−// [assembly: AssemblyVersion("2.1.465.0")]
62−[assembly: AssemblyVersion("2.1.465.0")]
63−[assembly: AssemblyFileVersion("2.1.465.0")]
64−[assembly: AssemblyInformationalVersion("2.1.465-beta")]
61+// [assembly: AssemblyVersion("2.2.8.0")]
62+[assembly: AssemblyVersion("2.2.8.0")]
63+[assembly: AssemblyFileVersion("2.2.8.0")]
64+[assembly: AssemblyInformationalVersion("2.2.8-beta")]
Source/Libraries/Adapters/CsvAdapters/Properties/AssemblyInfo.cs+4−4
@@ -58,7 +58,7 @@ using System.Runtime.InteropServices; · 57 unmodified lines
5858 //
5959 // You can specify all the values or you can default the Build and Revision Numbers
6060 // by using the '*' as shown below:
61−// [assembly: AssemblyVersion("2.1.465.0")]
62−[assembly: AssemblyVersion("2.1.465.0")]
63−[assembly: AssemblyFileVersion("2.1.465.0")]
64−[assembly: AssemblyInformationalVersion("2.1.465-beta")]
61+// [assembly: AssemblyVersion("2.2.8.0")]
62+[assembly: AssemblyVersion("2.2.8.0")]
63+[assembly: AssemblyFileVersion("2.2.8.0")]
64+[assembly: AssemblyInformationalVersion("2.2.8-beta")]
Source/Libraries/Adapters/DataQualityMonitoring/Properties/AssemblyInfo.cs+4−4
@@ -58,7 +58,7 @@ using System.Runtime.InteropServices; · 57 unmodified lines
5858 //
5959 // You can specify all the values or you can default the Build and Revision Numbers
6060 // by using the '*' as shown below:
61−// [assembly: AssemblyVersion("2.1.465.0")]
62−[assembly: AssemblyVersion("2.1.465.0")]
63−[assembly: AssemblyFileVersion("2.1.465.0")]
64−[assembly: AssemblyInformationalVersion("2.1.465-beta")]
61+// [assembly: AssemblyVersion("2.2.8.0")]
62+[assembly: AssemblyVersion("2.2.8.0")]
63+[assembly: AssemblyFileVersion("2.2.8.0")]
64+[assembly: AssemblyInformationalVersion("2.2.8-beta")]
Source/Libraries/Adapters/Dnp3Adapters/Properties/AssemblyInfo.cs+4−4
@@ -58,7 +58,7 @@ using System.Runtime.InteropServices; · 57 unmodified lines
5858 //
5959 // You can specify all the values or you can default the Build and Revision Numbers
6060 // by using the '*' as shown below:
61−// [assembly: AssemblyVersion("2.1.465.0")]
62−[assembly: AssemblyVersion("2.1.465.0")]
63−[assembly: AssemblyFileVersion("2.1.465.0")]
64−[assembly: AssemblyInformationalVersion("2.1.465-beta")]
61+// [assembly: AssemblyVersion("2.2.8.0")]
62+[assembly: AssemblyVersion("2.2.8.0")]
63+[assembly: AssemblyFileVersion("2.2.8.0")]
64+[assembly: AssemblyInformationalVersion("2.2.8-beta")]
Source/Libraries/Adapters/DynamicCalculator/Properties/AssemblyInfo.cs+4−4
@@ -58,7 +58,7 @@ using System.Runtime.InteropServices; · 57 unmodified lines
5858 //
5959 // You can specify all the values or you can default the Build and Revision Numbers
6060 // by using the '*' as shown below:
61−// [assembly: AssemblyVersion("2.1.465.0")]
62−[assembly: AssemblyVersion("2.1.465.0")]
63−[assembly: AssemblyFileVersion("2.1.465.0")]
64−[assembly: AssemblyInformationalVersion("2.1.465-beta")]
61+// [assembly: AssemblyVersion("2.2.8.0")]
62+[assembly: AssemblyVersion("2.2.8.0")]
63+[assembly: AssemblyFileVersion("2.2.8.0")]
64+[assembly: AssemblyInformationalVersion("2.2.8-beta")]
Source/Libraries/Adapters/EpriExport/Properties/AssemblyInfo.cs+4−4
@@ -58,7 +58,7 @@ using System.Runtime.InteropServices; · 57 unmodified lines
5858 //
5959 // You can specify all the values or you can default the Build and Revision Numbers
6060 // by using the '*' as shown below:
61−// [assembly: AssemblyVersion("2.1.465.0")]
62−[assembly: AssemblyVersion("2.1.465.0")]
63−[assembly: AssemblyFileVersion("2.1.465.0")]
64−[assembly: AssemblyInformationalVersion("2.1.465-beta")]
61+// [assembly: AssemblyVersion("2.2.8.0")]
62+[assembly: AssemblyVersion("2.2.8.0")]
63+[assembly: AssemblyFileVersion("2.2.8.0")]
64+[assembly: AssemblyInformationalVersion("2.2.8-beta")]
Source/Libraries/Adapters/FileAdapters/Properties/AssemblyInfo.cs+4−4
@@ -58,7 +58,7 @@ using System.Runtime.InteropServices; · 57 unmodified lines
5858 //
5959 // You can specify all the values or you can default the Build and Revision Numbers
6060 // by using the '*' as shown below:
61−// [assembly: AssemblyVersion("2.1.465.0")]
62−[assembly: AssemblyVersion("2.1.465.0")]
63−[assembly: AssemblyFileVersion("2.1.465.0")]
64−[assembly: AssemblyInformationalVersion("2.1.465-beta")]
61+// [assembly: AssemblyVersion("2.2.8.0")]
62+[assembly: AssemblyVersion("2.2.8.0")]
63+[assembly: AssemblyFileVersion("2.2.8.0")]
64+[assembly: AssemblyInformationalVersion("2.2.8-beta")]
Source/Libraries/Adapters/FtpAdapters/Properties/AssemblyInfo.cs+4−4
@@ -58,7 +58,7 @@ using System.Runtime.InteropServices; · 57 unmodified lines
5858 //
5959 // You can specify all the values or you can default the Build and Revision Numbers
6060 // by using the '*' as shown below:
61−// [assembly: AssemblyVersion("2.1.465.0")]
62−[assembly: AssemblyVersion("2.1.465.0")]
63−[assembly: AssemblyFileVersion("2.1.465.0")]
64−[assembly: AssemblyInformationalVersion("2.1.465-beta")]
61+// [assembly: AssemblyVersion("2.2.8.0")]
62+[assembly: AssemblyVersion("2.2.8.0")]
63+[assembly: AssemblyFileVersion("2.2.8.0")]
64+[assembly: AssemblyInformationalVersion("2.2.8-beta")]
Source/Libraries/Adapters/GrafanaAdapters/GrafanaDataService.cs+1−1
@@ -54,7 +54,7 @@ namespace GrafanaAdapters · 53 unmodified lines
5454 m_baseTicks = UnixTimeTag.BaseTicks.Value;
5555 }
5656
57− protected override IEnumerable<DataSourceValue> QueryDataSourceValues(DateTime startTime, DateTime stopTime, bool decimate, Dictionary<ulong, string> targetMap)
57+ protected override IEnumerable<DataSourceValue> QueryDataSourceValues(DateTime startTime, DateTime stopTime, string interval, bool decimate, Dictionary<ulong, string> targetMap)
5858 {
5959 return m_parent.Archive.ReadData(targetMap.Keys.Select(pointID => (int)pointID), startTime, stopTime, false).Select(dataPoint => new DataSourceValue
6060 {
Source/Libraries/Adapters/GrafanaAdapters/GrafanaDataSourceBase.cs+13−12
@@ -238,7 +238,7 @@ namespace GrafanaAdapters · 237 unmodified lines
238238 /// <remarks>
239239 /// Signature: <c>Top(N|N%, [normalizeTime], expression)</c><br/>
240240 /// Example: <c>Top(50%, FILTER ActiveMeasurements WHERE SignalType='FREQ')</c><br/>
241− /// Variants: Top<br/>
241+ /// Variants: Top, Largest<br/>
242242 /// Execution: Immediate in-memory array load.
243243 /// </remarks>
244244 Top,
@@ -251,7 +251,7 @@ namespace GrafanaAdapters · 6 unmodified lines
251251 /// <remarks>
252252 /// Signature: <c>Bottom(N|N%, [normalizeTime], expression)</c><br/>
253253 /// Example: <c>Bottom(100, false, FILTER ActiveMeasurements WHERE SignalType='FREQ')</c><br/>
254− /// Variants: Bottom, Bot<br/>
254+ /// Variants: Bottom, Bot, Smallest<br/>
255255 /// Execution: Immediate in-memory array load.
256256 /// </remarks>
257257 Bottom,
@@ -319,7 +319,7 @@ namespace GrafanaAdapters · 61 unmodified lines
319319 /// <remarks>
320320 /// Signature: <c>TimeDifference(expression)</c><br/>
321321 /// Example: <c>TimeDifference(FILTER ActiveMeasurements WHERE SignalType='FREQ')</c><br/>
322− /// Variants: TimeDifference, TimeDiff<br/>
322+ /// Variants: TimeDifference, TimeDiff, Elapsed<br/>
323323 /// Execution: Deferred enumeration.
324324 /// </remarks>
325325 TimeDifference,
@@ -463,7 +463,7 @@ namespace GrafanaAdapters · 137 unmodified lines
463463 DateTime stopTime = request.range.to.ParseJsonTimestamp();
464464 int maxDataPoints = (int)(request.maxDataPoints * 1.05D);
465465
466− DataSourceValueGroup[] valueGroups = QueryTargets(request.targets.Select(target => target.target.Trim()), startTime, stopTime, true, cancellationToken).ToArray();
466+ DataSourceValueGroup[] valueGroups = QueryTargets(request.targets.Select(target => target.target.Trim()), startTime, stopTime, request.interval, true, cancellationToken).ToArray();
467467
468468 // Establish result series sequentially so that order remains consistent between calls
469469 List<TimeSeriesValues> result = valueGroups.Select(valueGroup => new TimeSeriesValues { target = valueGroup.Target }).ToList();
@@ -493,12 +493,13 @@ namespace GrafanaAdapters · 23 unmodified lines
493493 /// </summary>
494494 /// <param name="startTime">Start-time for query.</param>
495495 /// <param name="stopTime">Stop-time for query.</param>
496+ /// <param name="interval">Interval from Grafana request.</param>
496497 /// <param name="decimate">Flag that determines if data should be decimated over provided time range.</param>
497498 /// <param name="targetMap">Set of IDs with associated targets to query.</param>
498499 /// <returns>Queried data source data in terms of value and time.</returns>
499− protected abstract IEnumerable<DataSourceValue> QueryDataSourceValues(DateTime startTime, DateTime stopTime, bool decimate, Dictionary<ulong, string> targetMap);
500+ protected abstract IEnumerable<DataSourceValue> QueryDataSourceValues(DateTime startTime, DateTime stopTime, string interval, bool decimate, Dictionary<ulong, string> targetMap);
500501
501− private IEnumerable<DataSourceValueGroup> QueryTargets(IEnumerable<string> targets, DateTime startTime, DateTime stopTime, bool decimate, CancellationToken cancellationToken)
502+ private IEnumerable<DataSourceValueGroup> QueryTargets(IEnumerable<string> targets, DateTime startTime, DateTime stopTime, string interval, bool decimate, CancellationToken cancellationToken)
502503 {
503504 // A single target might look like the following:
504505 // PPA:15; STAT:20; SETSUM(COUNT(PPA:8; PPA:9; PPA:10)); FILTER ActiveMeasurements WHERE SignalType IN ('IPHA', 'VPHA'); RANGE(PPA:99; SUM(FILTER ActiveMeasurements WHERE SignalType = 'FREQ'; STAT:12))
@@ -539,7 +540,7 @@ namespace GrafanaAdapters · 34 unmodified lines
539540 {
540541 // Execute series functions
541542 foreach (Tuple<SeriesFunction, string, bool> parsedFunction in seriesFunctions.Select(ParseSeriesFunction))
542− foreach (DataSourceValueGroup valueGroup in ExecuteSeriesFunction(parsedFunction, startTime, stopTime, decimate, cancellationToken))
543+ foreach (DataSourceValueGroup valueGroup in ExecuteSeriesFunction(parsedFunction, startTime, stopTime, interval, decimate, cancellationToken))
543544 yield return valueGroup;
544545
545546 // Use reduced target set that excludes any series functions
@@ -572,7 +573,7 @@ namespace GrafanaAdapters · 26 unmodified lines
572573 long readCount = 0;
573574
574575 // Query underlying data source for each target - to prevent parallel read from data source we enumerate immediately
575− List<DataSourceValue> dataValues = QueryDataSourceValues(startTime, stopTime, decimate, targetMap)
576+ List<DataSourceValue> dataValues = QueryDataSourceValues(startTime, stopTime, interval, decimate, targetMap)
576577 .TakeWhile(dataValue => readCount++ % 10000 != 0 || !cancellationToken.IsCancellationRequested).ToList();
577578
578579 foreach (KeyValuePair<ulong, string> target in targetMap)
@@ -584,7 +585,7 @@ namespace GrafanaAdapters · 5 unmodified lines
584585 }
585586 }
586587
587− private IEnumerable<DataSourceValueGroup> ExecuteSeriesFunction(Tuple<SeriesFunction, string, bool> parsedFunction, DateTime startTime, DateTime stopTime, bool decimate, CancellationToken cancellationToken)
588+ private IEnumerable<DataSourceValueGroup> ExecuteSeriesFunction(Tuple<SeriesFunction, string, bool> parsedFunction, DateTime startTime, DateTime stopTime, string interval, bool decimate, CancellationToken cancellationToken)
588589 {
589590 SeriesFunction seriesFunction = parsedFunction.Item1;
590591 string expression = parsedFunction.Item2;
@@ -660,7 +661,7 @@ namespace GrafanaAdapters · 69 unmodified lines
660661 decimate = false;
661662
662663 // Query function expression to get series data
663− IEnumerable<DataSourceValueGroup> dataset = QueryTargets(new[] { targetExpression }, startTime, stopTime, decimate, cancellationToken);
664+ IEnumerable<DataSourceValueGroup> dataset = QueryTargets(new[] { targetExpression }, startTime, stopTime, interval, decimate, cancellationToken);
664665
665666 if (setOperation)
666667 {
@@ -756,8 +757,8 @@ namespace GrafanaAdapters · 89 unmodified lines
756757 s_standardDeviationSampleExpression = new Regex(string.Format(GetExpression, "(StandardDeviationSample|StdDevSamp)"), RegexOptions.Compiled | RegexOptions.IgnoreCase);
757758 s_medianExpression = new Regex(string.Format(GetExpression, "(Median|Med|Mid)"), RegexOptions.Compiled | RegexOptions.IgnoreCase);
758759 s_modeExpression = new Regex(string.Format(GetExpression, "Mode"), RegexOptions.Compiled | RegexOptions.IgnoreCase);
759− s_topExpression = new Regex(string.Format(GetExpression, "Top"), RegexOptions.Compiled | RegexOptions.IgnoreCase);
760− s_bottomExpression = new Regex(string.Format(GetExpression, "(Bottom|Bot)"), RegexOptions.Compiled | RegexOptions.IgnoreCase);
760+ s_topExpression = new Regex(string.Format(GetExpression, "(Top|Largest)"), RegexOptions.Compiled | RegexOptions.IgnoreCase);
761+ s_bottomExpression = new Regex(string.Format(GetExpression, "(Bottom|Bot|Smallest)"), RegexOptions.Compiled | RegexOptions.IgnoreCase);
761762 s_randomExpression = new Regex(string.Format(GetExpression, "(Random|Rand|Sample)"), RegexOptions.Compiled | RegexOptions.IgnoreCase);
762763 s_firstExpression = new Regex(string.Format(GetExpression, "First"), RegexOptions.Compiled | RegexOptions.IgnoreCase);
763764 s_lastExpression = new Regex(string.Format(GetExpression, "Last"), RegexOptions.Compiled | RegexOptions.IgnoreCase);
Source/Libraries/Adapters/GrafanaAdapters/Properties/AssemblyInfo.cs+2−2
@@ -26,8 +26,8 @@ using System.Reflection; · 25 unmodified lines
2626 using System.Runtime.InteropServices;
2727
2828 // Assembly identity attributes.
29−[assembly: AssemblyVersion("2.1.465.0")]
30−[assembly: AssemblyInformationalVersion("2.1.465-beta")]
29+[assembly: AssemblyVersion("2.2.8.0")]
30+[assembly: AssemblyInformationalVersion("2.2.8-beta")]
3131
3232 // Informational attributes.
3333 [assembly: AssemblyCompany("Grid Protection Alliance")]
Source/Libraries/Adapters/HistorianAdapters/Properties/AssemblyInfo.cs+2−2
@@ -26,8 +26,8 @@ using System.Reflection; · 25 unmodified lines
2626 using System.Runtime.InteropServices;
2727
2828 // Assembly identity attributes.
29−[assembly: AssemblyVersion("2.1.465.0")]
30−[assembly: AssemblyInformationalVersion("2.1.465-beta")]
29+[assembly: AssemblyVersion("2.2.8.0")]
30+[assembly: AssemblyInformationalVersion("2.2.8-beta")]
3131
3232 // Informational attributes.
3333 [assembly: AssemblyCompany("Grid Protection Alliance")]
Source/Libraries/Adapters/ICCPExport/Properties/AssemblyInfo.cs+4−4
@@ -58,7 +58,7 @@ using System.Runtime.InteropServices; · 57 unmodified lines
5858 //
5959 // You can specify all the values or you can default the Build and Revision Numbers
6060 // by using the '*' as shown below:
61−// [assembly: AssemblyVersion("2.1.465.0")]
62−[assembly: AssemblyVersion("2.1.465.0")]
63−[assembly: AssemblyFileVersion("2.1.465.0")]
64−[assembly: AssemblyInformationalVersion("2.1.465-beta")]
61+// [assembly: AssemblyVersion("2.2.8.0")]
62+[assembly: AssemblyVersion("2.2.8.0")]
63+[assembly: AssemblyFileVersion("2.2.8.0")]
64+[assembly: AssemblyInformationalVersion("2.2.8-beta")]
Source/Libraries/Adapters/InfluxDBAdapters/Properties/AssemblyInfo.cs+4−4
@@ -30,7 +30,7 @@ using System.Runtime.InteropServices; · 29 unmodified lines
3030 //
3131 // You can specify all the values or you can default the Build and Revision Numbers
3232 // by using the '*' as shown below:
33−// [assembly: AssemblyVersion("2.1.465.0")]
34−[assembly: AssemblyVersion("2.1.465.0")]
35−[assembly: AssemblyFileVersion("2.1.465.0")]
36−[assembly: AssemblyInformationalVersion("2.1.465-beta")]
33+// [assembly: AssemblyVersion("2.2.8.0")]
34+[assembly: AssemblyVersion("2.2.8.0")]
35+[assembly: AssemblyFileVersion("2.2.8.0")]
36+[assembly: AssemblyInformationalVersion("2.2.8-beta")]
Source/Libraries/Adapters/Kafka/Properties/AssemblyInfo.cs+4−4
@@ -58,7 +58,7 @@ using System.Runtime.InteropServices; · 57 unmodified lines
5858 //
5959 // You can specify all the values or you can default the Build and Revision Numbers
6060 // by using the '*' as shown below:
61−// [assembly: AssemblyVersion("2.1.465.0")]
62−[assembly: AssemblyVersion("2.1.465.0")]
63−[assembly: AssemblyFileVersion("2.1.465.0")]
64−[assembly: AssemblyInformationalVersion("2.1.465-beta")]
61+// [assembly: AssemblyVersion("2.2.8.0")]
62+[assembly: AssemblyVersion("2.2.8.0")]
63+[assembly: AssemblyFileVersion("2.2.8.0")]
64+[assembly: AssemblyInformationalVersion("2.2.8-beta")]
Source/Libraries/Adapters/MongoAdapters/Properties/AssemblyInfo.cs+4−4
@@ -58,7 +58,7 @@ using System.Runtime.InteropServices; · 57 unmodified lines
5858 //
5959 // You can specify all the values or you can default the Build and Revision Numbers
6060 // by using the '*' as shown below:
61−// [assembly: AssemblyVersion("2.1.465.0")]
62−[assembly: AssemblyVersion("2.1.465.0")]
63−[assembly: AssemblyFileVersion("2.1.465.0")]
64−[assembly: AssemblyInformationalVersion("2.1.465-beta")]
61+// [assembly: AssemblyVersion("2.2.8.0")]
62+[assembly: AssemblyVersion("2.2.8.0")]
63+[assembly: AssemblyFileVersion("2.2.8.0")]
64+[assembly: AssemblyInformationalVersion("2.2.8-beta")]
Source/Libraries/Adapters/MySqlAdapters/Properties/AssemblyInfo.cs+4−4
@@ -58,7 +58,7 @@ using System.Runtime.InteropServices; · 57 unmodified lines
5858 //
5959 // You can specify all the values or you can default the Build and Revision Numbers
6060 // by using the '*' as shown below:
61−// [assembly: AssemblyVersion("2.1.465.0")]
62−[assembly: AssemblyVersion("2.1.465.0")]
63−[assembly: AssemblyFileVersion("2.1.465.0")]
64−[assembly: AssemblyInformationalVersion("2.1.465-beta")]
61+// [assembly: AssemblyVersion("2.2.8.0")]
62+[assembly: AssemblyVersion("2.2.8.0")]
63+[assembly: AssemblyFileVersion("2.2.8.0")]
64+[assembly: AssemblyInformationalVersion("2.2.8-beta")]
Source/Libraries/Adapters/OneSecondFrequencyAverager/Properties/AssemblyInfo.cs+4−4
@@ -58,7 +58,7 @@ using System.Runtime.InteropServices; · 57 unmodified lines
5858 //
5959 // You can specify all the values or you can default the Build and Revision Numbers
6060 // by using the '*' as shown below:
61−// [assembly: AssemblyVersion("2.1.465.0")]
62−[assembly: AssemblyVersion("2.1.465.0")]
63−[assembly: AssemblyFileVersion("2.1.465.0")]
64−[assembly: AssemblyInformationalVersion("2.1.465-beta")]
61+// [assembly: AssemblyVersion("2.2.8.0")]
62+[assembly: AssemblyVersion("2.2.8.0")]
63+[assembly: AssemblyFileVersion("2.2.8.0")]
64+[assembly: AssemblyInformationalVersion("2.2.8-beta")]
Source/Libraries/Adapters/PIAdapters/Properties/AssemblyInfo.cs+3−3
@@ -46,6 +46,6 @@ using System.Runtime.InteropServices; · 45 unmodified lines
4646 [assembly: Guid("D8064F6E-0B5D-4CBB-884E-75A2E11CA779")]
4747
4848 // Assembly identity attributes.
49−[assembly: AssemblyVersion("2.1.465.0")]
50−[assembly: AssemblyFileVersion("2.1.465.0")]
51−[assembly: AssemblyInformationalVersion("2.1.465-beta")]
49+[assembly: AssemblyVersion("2.2.8.0")]
50+[assembly: AssemblyFileVersion("2.2.8.0")]
51+[assembly: AssemblyInformationalVersion("2.2.8-beta")]
Source/Libraries/Adapters/PhasorProtocolAdapters/Properties/AssemblyInfo.cs+4−4
@@ -58,7 +58,7 @@ using System.Runtime.InteropServices; · 57 unmodified lines
5858 //
5959 // You can specify all the values or you can default the Build and Revision Numbers
6060 // by using the '*' as shown below:
61−// [assembly: AssemblyVersion("2.1.465.0")]
62−[assembly: AssemblyVersion("2.1.465.0")]
63−[assembly: AssemblyFileVersion("2.1.465.0")]
64−[assembly: AssemblyInformationalVersion("2.1.465-beta")]
61+// [assembly: AssemblyVersion("2.2.8.0")]
62+[assembly: AssemblyVersion("2.2.8.0")]
63+[assembly: AssemblyFileVersion("2.2.8.0")]
64+[assembly: AssemblyInformationalVersion("2.2.8-beta")]
Source/Libraries/Adapters/PowerCalculations.UI.WPF/Properties/AssemblyInfo.cs+4−4
@@ -30,7 +30,7 @@ using System.Runtime.InteropServices; · 29 unmodified lines
3030 //
3131 // You can specify all the values or you can default the Build and Revision Numbers
3232 // by using the '*' as shown below:
33−// [assembly: AssemblyVersion("2.1.465.0")]
34−[assembly: AssemblyVersion("2.1.465.0")]
35−[assembly: AssemblyFileVersion("2.1.465.0")]
36−[assembly: AssemblyInformationalVersion("2.1.465-beta")]
33+// [assembly: AssemblyVersion("2.2.8.0")]
34+[assembly: AssemblyVersion("2.2.8.0")]
35+[assembly: AssemblyFileVersion("2.2.8.0")]
36+[assembly: AssemblyInformationalVersion("2.2.8-beta")]
Source/Libraries/Adapters/PowerCalculations.UI/Properties/AssemblyInfo.cs+4−4
@@ -30,7 +30,7 @@ using System.Runtime.InteropServices; · 29 unmodified lines
3030 //
3131 // You can specify all the values or you can default the Build and Revision Numbers
3232 // by using the '*' as shown below:
33−// [assembly: AssemblyVersion("2.1.465.0")]
34−[assembly: AssemblyVersion("2.1.465.0")]
35−[assembly: AssemblyFileVersion("2.1.465.0")]
36−[assembly: AssemblyInformationalVersion("2.1.465-beta")]
33+// [assembly: AssemblyVersion("2.2.8.0")]
34+[assembly: AssemblyVersion("2.2.8.0")]
35+[assembly: AssemblyFileVersion("2.2.8.0")]
36+[assembly: AssemblyInformationalVersion("2.2.8-beta")]
Source/Libraries/Adapters/PowerCalculations/Properties/AssemblyInfo.cs+2−2
@@ -26,8 +26,8 @@ using System.Reflection; · 25 unmodified lines
2626 using System.Runtime.InteropServices;
2727
2828 // Assembly identity attributes.
29−[assembly: AssemblyVersion("2.1.465.0")]
30−[assembly: AssemblyInformationalVersion("2.1.465-beta")]
29+[assembly: AssemblyVersion("2.2.8.0")]
30+[assembly: AssemblyInformationalVersion("2.2.8-beta")]
3131
3232 // Informational attributes.
3333 [assembly: AssemblyCompany("Grid Protection Alliance")]
Source/Libraries/Adapters/TestingAdapters/Properties/AssemblyInfo.cs+4−4
@@ -58,7 +58,7 @@ using System.Runtime.InteropServices; · 57 unmodified lines
5858 //
5959 // You can specify all the values or you can default the Build and Revision Numbers
6060 // by using the '*' as shown below:
61−// [assembly: AssemblyVersion("2.1.465.0")]
62−[assembly: AssemblyVersion("2.1.465.0")]
63−[assembly: AssemblyFileVersion("2.1.465.0")]
64−[assembly: AssemblyInformationalVersion("2.1.465-beta")]
61+// [assembly: AssemblyVersion("2.2.8.0")]
62+[assembly: AssemblyVersion("2.2.8.0")]
63+[assembly: AssemblyFileVersion("2.2.8.0")]
64+[assembly: AssemblyInformationalVersion("2.2.8-beta")]
Source/Libraries/Adapters/WavInputAdapter/Properties/AssemblyInfo.cs+4−4
@@ -58,7 +58,7 @@ using System.Runtime.InteropServices; · 57 unmodified lines
5858 //
5959 // You can specify all the values or you can default the Build and Revision Numbers
6060 // by using the '*' as shown below:
61−// [assembly: AssemblyVersion("2.1.465.0")]
62−[assembly: AssemblyVersion("2.1.465.0")]
63−[assembly: AssemblyFileVersion("2.1.465.0")]
64−[assembly: AssemblyInformationalVersion("2.1.465-beta")]
61+// [assembly: AssemblyVersion("2.2.8.0")]
62+[assembly: AssemblyVersion("2.2.8.0")]
63+[assembly: AssemblyFileVersion("2.2.8.0")]
64+[assembly: AssemblyInformationalVersion("2.2.8-beta")]
Source/Libraries/GSF.ASN1/Properties/AssemblyInfo.cs+2−2
@@ -25,8 +25,8 @@ using System.Reflection; · 24 unmodified lines
2525 using System.Runtime.InteropServices;
2626
2727 // Assembly identity attributes.
28−[assembly: AssemblyVersion("2.1.465.0")]
29−[assembly: AssemblyInformationalVersion("2.1.465-beta")]
28+[assembly: AssemblyVersion("2.2.8.0")]
29+[assembly: AssemblyInformationalVersion("2.2.8-beta")]
3030
3131 // Informational attributes.
3232 [assembly: AssemblyCompany("Grid Protection Alliance")]
Source/Libraries/GSF.COMTRADE/Properties/AssemblyInfo.cs+4−4
@@ -57,7 +57,7 @@ using System.Runtime.InteropServices; · 56 unmodified lines
5757 //
5858 // You can specify all the values or you can default the Build and Revision Numbers
5959 // by using the '*' as shown below:
60−// [assembly: AssemblyVersion("2.1.465.0")]
61−[assembly: AssemblyVersion("2.1.465.0")]
62−[assembly: AssemblyFileVersion("2.1.465.0")]
63−[assembly: AssemblyInformationalVersion("2.1.465-beta")]
60+// [assembly: AssemblyVersion("2.2.8.0")]
61+[assembly: AssemblyVersion("2.2.8.0")]
62+[assembly: AssemblyFileVersion("2.2.8.0")]
63+[assembly: AssemblyInformationalVersion("2.2.8-beta")]
Source/Libraries/GSF.Communication/Properties/AssemblyInfo.cs+2−2
@@ -25,8 +25,8 @@ using System.Reflection; · 24 unmodified lines
2525 using System.Runtime.InteropServices;
2626
2727 // Assembly identity attributes.
28−[assembly: AssemblyVersion("2.1.465.0")]
29−[assembly: AssemblyInformationalVersion("2.1.465-beta")]
28+[assembly: AssemblyVersion("2.2.8.0")]
29+[assembly: AssemblyInformationalVersion("2.2.8-beta")]
3030
3131 // Informational attributes.
3232 [assembly: AssemblyCompany("Grid Protection Alliance")]
Source/Libraries/GSF.Core/Properties/AssemblyInfo.cs+2−2
@@ -28,10 +28,10 @@ using System.Runtime.CompilerServices; · 27 unmodified lines
2828 using System.Runtime.InteropServices;
2929
3030 // Assembly identity attributes.
31−[assembly: AssemblyVersion("2.1.465.0")]
31+[assembly: AssemblyVersion("2.2.8.0")]
3232
3333 [assembly: SuppressMessage("Microsoft.Usage", "CA2243:AttributeStringLiteralsShouldParseCorrectly")]
34−[assembly: AssemblyInformationalVersion("2.1.465-beta")]
34+[assembly: AssemblyInformationalVersion("2.2.8-beta")]
3535
3636 // Informational attributes.
3737 [assembly: AssemblyCompany("Grid Protection Alliance")]
Source/Libraries/GSF.Core/Range.cs+32−0
@@ -71,6 +71,38 @@ namespace GSF · 70 unmodified lines
7171
7272 #region [ Methods ]
7373
74+ /// <summary>
75+ /// Determines whether the range contains the given value.
76+ /// </summary>
77+ /// <param name="value">The value to be compared with.</param>
78+ /// <returns>True if the value exists within the range; false otherwise.</returns>
79+ public bool Contains(T value)
80+ {
81+ return Contains(value, Comparer<T>.Default);
82+ }
83+
84+ /// <summary>
85+ /// Determines whether the range contains the given value.
86+ /// </summary>
87+ /// <param name="value">The value to be compared with.</param>
88+ /// <param name="comparer">The comparer used to compare objects of type <typeparamref name="T"/>.</param>
89+ /// <returns>True if the value exists within the range; false otherwise.</returns>
90+ public bool Contains(T value, IComparer<T> comparer)
91+ {
92+ return Contains(value, comparer.Compare);
93+ }
94+
95+ /// <summary>
96+ /// Determines whether the range contains the given value.
97+ /// </summary>
98+ /// <param name="value">The value to be compared with.</param>
99+ /// <param name="comparison">The comparison used to compare objects of type <typeparamref name="T"/>.</param>
100+ /// <returns>True if the value exists within the range; false otherwise.</returns>
101+ public bool Contains(T value, Comparison<T> comparison)
102+ {
103+ return comparison(m_start, value) <= 0 && comparison(value, m_end) <= 0;
104+ }
105+
74106 /// <summary>
75107 /// Determines whether the range overlaps with the given range.
76108 /// </summary>
Source/Libraries/GSF.EMAX/Properties/AssemblyInfo.cs+4−4
@@ -57,7 +57,7 @@ using System.Runtime.InteropServices; · 56 unmodified lines
5757 //
5858 // You can specify all the values or you can default the Build and Revision Numbers
5959 // by using the '*' as shown below:
60−// [assembly: AssemblyVersion("2.1.465.0")]
61−[assembly: AssemblyVersion("2.1.465.0")]
62−[assembly: AssemblyFileVersion("2.1.465.0")]
63−[assembly: AssemblyInformationalVersion("2.1.465-beta")]
60+// [assembly: AssemblyVersion("2.2.8.0")]
61+[assembly: AssemblyVersion("2.2.8.0")]
62+[assembly: AssemblyFileVersion("2.2.8.0")]
63+[assembly: AssemblyInformationalVersion("2.2.8-beta")]
Source/Libraries/GSF.Geo/Properties/AssemblyInfo.cs+3−3
@@ -30,6 +30,6 @@ using System.Runtime.InteropServices; · 29 unmodified lines
3030 //
3131 // You can specify all the values or you can default the Build and Revision Numbers
3232 // by using the '*' as shown below:
33−// [assembly: AssemblyVersion("2.1.465.0")]
34−[assembly: AssemblyVersion("2.1.465.0")]
35−[assembly: AssemblyFileVersion("2.1.465.0")]
33+// [assembly: AssemblyVersion("2.2.8.0")]
34+[assembly: AssemblyVersion("2.2.8.0")]
35+[assembly: AssemblyFileVersion("2.2.8.0")]
Source/Libraries/GSF.Historian/Files/StateRecordDataPoint.cs+1−1
@@ -230,7 +230,7 @@ namespace GSF.Historian.Files · 229 unmodified lines
230230
231231 buffer.ValidateParameters(startIndex, length);
232232
233− LittleEndian.CopyBytes(Time.Value, buffer, startIndex);
233+ LittleEndian.CopyBytes((double)Time.Value, buffer, startIndex);
234234 LittleEndian.CopyBytes(Flags, buffer, startIndex + 8);
235235 LittleEndian.CopyBytes(Value, buffer, startIndex + 12);
236236
Source/Libraries/GSF.Historian/Properties/AssemblyInfo.cs+2−2
@@ -25,8 +25,8 @@ using System.Reflection; · 24 unmodified lines
2525 using System.Runtime.InteropServices;
2626
2727 // Assembly identity attributes.
28−[assembly: AssemblyVersion("2.1.465.0")]
29−[assembly: AssemblyInformationalVersion("2.1.465-beta")]
28+[assembly: AssemblyVersion("2.2.8.0")]
29+[assembly: AssemblyInformationalVersion("2.2.8-beta")]
3030
3131 // Informational attributes.
3232 [assembly: AssemblyCompany("Grid Protection Alliance")]
Source/Libraries/GSF.InstallerActions/Properties/AssemblyInfo.cs+4−4
@@ -52,7 +52,7 @@ using System.Runtime.InteropServices; · 51 unmodified lines
5252 //
5353 // You can specify all the values or you can default the Build and Revision Numbers
5454 // by using the '*' as shown below:
55−// [assembly: AssemblyVersion("2.1.465.0")]
56−[assembly: AssemblyVersion("2.1.465.0")]
57−[assembly: AssemblyFileVersion("2.1.465.0")]
58−[assembly: AssemblyInformationalVersion("2.1.465-beta")]
55+// [assembly: AssemblyVersion("2.2.8.0")]
56+[assembly: AssemblyVersion("2.2.8.0")]
57+[assembly: AssemblyFileVersion("2.2.8.0")]
58+[assembly: AssemblyInformationalVersion("2.2.8-beta")]
Source/Libraries/GSF.MMS/Properties/AssemblyInfo.cs+4−4
@@ -58,7 +58,7 @@ using System.Runtime.InteropServices; · 57 unmodified lines
5858 //
5959 // You can specify all the values or you can default the Build and Revision Numbers
6060 // by using the '*' as shown below:
61−// [assembly: AssemblyVersion("2.1.465.0")]
62−[assembly: AssemblyVersion("2.1.465.0")]
63−[assembly: AssemblyFileVersion("2.1.465.0")]
64−[assembly: AssemblyInformationalVersion("2.1.465-beta")]
61+// [assembly: AssemblyVersion("2.2.8.0")]
62+[assembly: AssemblyVersion("2.2.8.0")]
63+[assembly: AssemblyFileVersion("2.2.8.0")]
64+[assembly: AssemblyInformationalVersion("2.2.8-beta")]
Source/Libraries/GSF.Media/Properties/AssemblyInfo.cs+4−4
@@ -58,7 +58,7 @@ using System.Runtime.InteropServices; · 57 unmodified lines
5858 //
5959 // You can specify all the values or you can default the Build and Revision Numbers
6060 // by using the '*' as shown below:
61−// [assembly: AssemblyVersion("2.1.465.0")]
62−[assembly: AssemblyVersion("2.1.465.0")]
63−[assembly: AssemblyFileVersion("2.1.465.0")]
64−[assembly: AssemblyInformationalVersion("2.1.465-beta")]
61+// [assembly: AssemblyVersion("2.2.8.0")]
62+[assembly: AssemblyVersion("2.2.8.0")]
63+[assembly: AssemblyFileVersion("2.2.8.0")]
64+[assembly: AssemblyInformationalVersion("2.2.8-beta")]
Source/Libraries/GSF.Net/Ftp/FtpClient.cs+72−0
@@ -46,6 +46,7 @@ · 45 unmodified lines
4646 using System;
4747 using System.ComponentModel;
4848 using System.Drawing;
49+using System.Net;
4950
5051 // This FTP library is based on a similar C# library found on "The Code Project" web site originally written by
5152 // Alex Kwok (no license specified), then enhanced by Uwe Keim (licensed under The Code Project Open License).
@@ -244,6 +245,77 @@ namespace GSF.Net.Ftp · 192 unmodified lines
244245 }
245246 }
246247
248+ /// <summary>
249+ /// Gets or sets the passive/active mode of the server.
250+ /// </summary>
251+ [Browsable(true), Category("Configuration"), Description("Specify passive/active mode of FTP server."), DefaultValue(true)]
252+ public bool Passive
253+ {
254+ get
255+ {
256+ return m_currentState.Passive;
257+ }
258+ set
259+ {
260+ m_currentState.Passive = value;
261+ }
262+ }
263+
264+ /// <summary>
265+ /// Gets or sets the IP address to send with the PORT command.
266+ /// </summary>
267+ [Browsable(true), Category("Configuration"), Description("Specify IP address to send with PORT command."), DefaultValue(null)]
268+ public string ActiveAddress
269+ {
270+ get
271+ {
272+ return m_currentState.ActiveAddress.ToString();
273+ }
274+ set
275+ {
276+ IPAddress address;
277+
278+ if (IPAddress.TryParse(value, out address))
279+ m_currentState.ActiveAddress = address;
280+ else
281+ m_currentState.ActiveAddress = null;
282+ }
283+ }
284+
285+ /// <summary>
286+ /// Gets or sets the minimum value in the range of ports
287+ /// used when listening for connections in active mode.
288+ /// </summary>
289+ [Browsable(true), Category("Configuration"), Description("Specify minimum port in range of active ports."), DefaultValue(0)]
290+ public int MinActivePort
291+ {
292+ get
293+ {
294+ return m_currentState.MinActivePort;
295+ }
296+ set
297+ {
298+ m_currentState.MinActivePort = value;
299+ }
300+ }
301+
302+ /// <summary>
303+ /// Gets or sets the maximum value in the range of ports
304+ /// used when listening for connections in active mode.
305+ /// </summary>
306+ [Browsable(true), Category("Configuration"), Description("Specify maximum port in range of active ports."), DefaultValue(0)]
307+ public int MaxActivePort
308+ {
309+ get
310+ {
311+ return m_currentState.MaxActivePort;
312+ }
313+ set
314+ {
315+ m_currentState.MaxActivePort = value;
316+ }
317+ }
318+
247319 /// <summary>
248320 /// Gets or sets current FTP session directory.
249321 /// </summary>
Source/Libraries/GSF.Net/Ftp/FtpControlChannel.cs+143−1
@@ -46,9 +46,12 @@ · 45 unmodified lines
4646 using System;
4747 using System.Collections;
4848 using System.IO;
49+using System.Linq;
50+using System.Net;
4951 using System.Net.Sockets;
5052 using System.Text;
5153 using System.Text.RegularExpressions;
54+using System.Threading;
5255
5356 namespace GSF.Net.Ftp
5457 {
@@ -89,6 +92,10 @@ namespace GSF.Net.Ftp · 34 unmodified lines
8992 private string m_server;
9093 private int m_port;
9194 private int m_timeout;
95+ private bool m_passive;
96+ private IPAddress m_activeAddress;
97+ private Range<int> m_activePortRange;
98+ private int m_lastActivePort;
9299 private TransferMode m_currentTransferMode;
93100 private FtpResponse m_lastResponse;
94101 private bool m_disposed;
@@ -103,6 +110,7 @@ namespace GSF.Net.Ftp · 8 unmodified lines
103110 m_server = "localhost";
104111 m_port = 21;
105112 m_timeout = 30000;
113+ m_passive = true;
106114 m_sessionHost = host;
107115 m_currentTransferMode = TransferMode.Unknown;
108116 }
@@ -158,6 +166,51 @@ namespace GSF.Net.Ftp · 49 unmodified lines
158166 }
159167 }
160168
169+ internal bool Passive
170+ {
171+ get
172+ {
173+ return m_passive;
174+ }
175+ set
176+ {
177+ m_passive = value;
178+ }
179+ }
180+
181+ internal IPAddress ActiveAddress
182+ {
183+ get
184+ {
185+ return m_activeAddress ?? (m_activeAddress = Dns.GetHostEntry(Dns.GetHostName()).AddressList.FirstOrDefault(addr => addr.AddressFamily == AddressFamily.InterNetwork));
186+ }
187+ set
188+ {
189+ m_activeAddress = value;
190+ }
191+ }
192+
193+ internal Range<int> DataChannelPortRange
194+ {
195+ get
196+ {
197+ return m_activePortRange;
198+ }
199+ set
200+ {
201+ if (value.Start <= IPEndPoint.MinPort)
202+ throw new ArgumentException($"Minimum port in range must be greater than {IPEndPoint.MinPort}.", nameof(value));
203+
204+ if (value.End > IPEndPoint.MaxPort)
205+ throw new ArgumentException($"Maximum port in range must be less than or equal to {IPEndPoint.MaxPort}.", nameof(value));
206+
207+ if (value.Start > value.End)
208+ throw new ArgumentException("Start port must be less than or equal to end port.");
209+
210+ m_activePortRange = value;
211+ }
212+ }
213+
161214 /// <summary>
162215 /// Last response from control channel.
163216 /// </summary>
@@ -400,7 +453,7 @@ namespace GSF.Net.Ftp · 236 unmodified lines
400453 try
401454 {
402455 Type(TransferMode.Ascii);
403− FtpDataStream dataStream = GetPassiveDataStream();
456+ FtpDataStream dataStream = GetDataStream();
404457 Queue lineQueue = new Queue();
405458
406459 Command("LIST");
@@ -434,6 +487,80 @@ namespace GSF.Net.Ftp · 27 unmodified lines
434487 }
435488 }
436489
490+ internal FtpDataStream GetDataStream()
491+ {
492+ return GetDataStream(TransferDirection.Download);
493+ }
494+
495+ internal FtpDataStream GetDataStream(TransferDirection direction)
496+ {
497+ return m_passive ? GetPassiveDataStream(direction) : GetActiveDataStream(direction);
498+ }
499+
500+ internal FtpDataStream GetActiveDataStream()
501+ {
502+ return GetActiveDataStream(TransferDirection.Download);
503+ }
504+
505+ internal FtpDataStream GetActiveDataStream(TransferDirection direction)
506+ {
507+ IPAddress address = ActiveAddress;
508+ byte[] addressBytes = address.GetAddressBytes();
509+
510+ int firstPort = GetActivePort();
511+ int port = firstPort;
512+
513+ while (true)
514+ {
515+ try
516+ {
517+ TcpListener listener = new TcpListener(address, port);
518+ TcpClient client;
519+
520+ listener.Start();
521+
522+ try
523+ {
524+ port = (listener.LocalEndpoint as IPEndPoint)?.Port ?? 0;
525+ Command($"PORT {addressBytes[0]},{addressBytes[1]},{addressBytes[2]},{addressBytes[3]},{port / 256},{port % 256}");
526+
527+ for (int i = 0; !listener.Pending(); i++)
528+ {
529+ if (i * 200 >= m_timeout)
530+ throw new TimeoutException("Timeout expired while waiting for connection on active FTP data channel.");
531+
532+ Thread.Sleep(200);
533+ }
534+
535+ client = listener.AcceptTcpClient();
536+
537+ if (direction == TransferDirection.Download)
538+ return new FtpInputDataStream(this, client);
539+ else
540+ return new FtpOutputDataStream(this, client);
541+ }
542+ finally
543+ {
544+ listener.Stop();
545+ }
546+ }
547+ catch (IOException ie)
548+ {
549+ throw new Exception("Failed to open active port (" + port + ") data connection due to IO exception: " + ie.Message + ".", ie);
550+ }
551+ catch (SocketException se)
552+ {
553+ if (se.SocketErrorCode != SocketError.AddressAlreadyInUse)
554+ throw new Exception("Failed to open active port (" + port + ") data connection due to socket exception: " + se.Message + ".", se);
555+ }
556+
557+ port = GetActivePort();
558+
559+ if (port == firstPort)
560+ throw new Exception($"All ports in active port range ({m_activePortRange.Start}-{m_activePortRange.End}) are already in use.");
561+ }
562+ }
563+
437564 internal FtpDataStream GetPassiveDataStream()
438565 {
439566 return GetPassiveDataStream(TransferDirection.Download);
@@ -464,6 +591,21 @@ namespace GSF.Net.Ftp · 24 unmodified lines
464591 }
465592 }
466593
594+ private int GetActivePort()
595+ {
596+ if ((object)m_activePortRange == null)
597+ return 0;
598+
599+ if (m_lastActivePort == 0)
600+ m_lastActivePort = GSF.Security.Cryptography.Random.Int32Between(m_activePortRange.Start, m_activePortRange.End);
601+ else if (m_lastActivePort == m_activePortRange.End)
602+ m_lastActivePort = m_activePortRange.Start;
603+ else
604+ m_lastActivePort++;
605+
606+ return m_lastActivePort;
607+ }
608+
467609 private int GetPassivePort()
468610 {
469611 Command("PASV");
Source/Libraries/GSF.Net/Ftp/FtpDirectory.cs+1−1
@@ -550,7 +550,7 @@ namespace GSF.Net.Ftp · 549 unmodified lines
550550 {
551551 InitHashtable();
552552
553− FtpDataStream stream = m_session.ControlChannel.GetPassiveDataStream(TransferDirection.Upload);
553+ FtpDataStream stream = m_session.ControlChannel.GetDataStream(TransferDirection.Upload);
554554
555555 try
556556 {
Source/Libraries/GSF.Net/Ftp/FtpFile.cs+1−1
@@ -238,7 +238,7 @@ namespace GSF.Net.Ftp · 237 unmodified lines
238238 if (offset != 0)
239239 Session.ControlChannel.REST(offset);
240240
241− FtpDataStream stream = Session.ControlChannel.GetPassiveDataStream(dir);
241+ FtpDataStream stream = Session.ControlChannel.GetDataStream(dir);
242242
243243 try
244244 {
Source/Libraries/GSF.Net/Ftp/FtpFileTransferer.cs+4−3
@@ -207,13 +207,14 @@ namespace GSF.Net.Ftp · 206 unmodified lines
207207
208208 m_session.Host.OnBeginFileTransfer(m_localFile, m_remoteFile, m_transferDirection);
209209
210+ remoteStream = m_session.ControlChannel.GetDataStream(m_transferDirection);
211+ m_ftpFileCommandRoutine(m_remoteFile);
212+
210213 if (m_transferDirection == TransferDirection.Download)
211− localStream = new FileStream(m_localFile, FileMode.OpenOrCreate);
214+ localStream = new FileStream(m_localFile, FileMode.Create);
212215 else
213216 localStream = new FileStream(m_localFile, FileMode.Open, FileAccess.Read);
214− remoteStream = m_session.ControlChannel.GetPassiveDataStream(m_transferDirection);
215217
216− m_ftpFileCommandRoutine(m_remoteFile);
217218 m_streamCopyRoutine(remoteStream, localStream);
218219
219220 // Dispose remote stream before testing file transfer result to ensure
Source/Libraries/GSF.Net/Ftp/FtpSessionConnected.cs+49−0
@@ -42,6 +42,7 @@ · 41 unmodified lines
4242 #endregion
4343
4444 using System;
45+using System.Net;
4546 using System.Threading;
4647
4748 namespace GSF.Net.Ftp
@@ -119,6 +120,54 @@ namespace GSF.Net.Ftp · 71 unmodified lines
119120 }
120121 }
121122
123+ public bool Passive
124+ {
125+ get
126+ {
127+ return m_ctrlChannel.Passive;
128+ }
129+ set
130+ {
131+ throw new InvalidOperationException();
132+ }
133+ }
134+
135+ public IPAddress ActiveAddress
136+ {
137+ get
138+ {
139+ return m_ctrlChannel.ActiveAddress;
140+ }
141+ set
142+ {
143+ throw new InvalidOperationException();
144+ }
145+ }
146+
147+ public int MinActivePort
148+ {
149+ get
150+ {
151+ return m_ctrlChannel.DataChannelPortRange.Start;
152+ }
153+ set
154+ {
155+ throw new InvalidOperationException();
156+ }
157+ }
158+
159+ public int MaxActivePort
160+ {
161+ get
162+ {
163+ return m_ctrlChannel.DataChannelPortRange.End;
164+ }
165+ set
166+ {
167+ throw new InvalidOperationException();
168+ }
169+ }
170+
122171 public FtpDirectory RootDirectory
123172 {
124173 get
Source/Libraries/GSF.Net/Ftp/FtpSessionDisconnected.cs+60−0
@@ -42,6 +42,7 @@ · 41 unmodified lines
4242 #endregion
4343
4444 using System;
45+using System.Net;
4546
4647 namespace GSF.Net.Ftp
4748 {
@@ -54,6 +55,10 @@ namespace GSF.Net.Ftp · 6 unmodified lines
5455 private string m_server;
5556 private int m_port;
5657 private int m_timeout;
58+ private bool m_passive;
59+ private IPAddress m_activeAddress;
60+ private int m_minActivePort;
61+ private int m_maxActivePort;
5762 private readonly bool m_caseInsensitive;
5863 private bool m_disposed;
5964
@@ -63,6 +68,7 @@ namespace GSF.Net.Ftp · 3 unmodified lines
6368
6469 internal FtpSessionDisconnected(FtpClient h, bool caseInsensitive)
6570 {
71+ m_passive = true;
6672 m_timeout = 30000;
6773 m_port = 21;
6874 m_host = h;
@@ -117,6 +123,54 @@ namespace GSF.Net.Ftp · 48 unmodified lines
117123 }
118124 }
119125
126+ public bool Passive
127+ {
128+ get
129+ {
130+ return m_passive;
131+ }
132+ set
133+ {
134+ m_passive = value;
135+ }
136+ }
137+
138+ public IPAddress ActiveAddress
139+ {
140+ get
141+ {
142+ return m_activeAddress;
143+ }
144+ set
145+ {
146+ m_activeAddress = value;
147+ }
148+ }
149+
150+ public int MinActivePort
151+ {
152+ get
153+ {
154+ return m_minActivePort;
155+ }
156+ set
157+ {
158+ m_minActivePort = value;
159+ }
160+ }
161+
162+ public int MaxActivePort
163+ {
164+ get
165+ {
166+ return m_maxActivePort;
167+ }
168+ set
169+ {
170+ m_maxActivePort = value;
171+ }
172+ }
173+
120174 public FtpDirectory CurrentDirectory
121175 {
122176 get
@@ -193,6 +247,12 @@ namespace GSF.Net.Ftp · 70 unmodified lines
193247 ctrl.Server = m_server;
194248 ctrl.Port = m_port;
195249 ctrl.Timeout = m_timeout;
250+ ctrl.Passive = m_passive;
251+ ctrl.ActiveAddress = m_activeAddress;
252+
253+ if (m_minActivePort > 0 && m_maxActivePort > 0)
254+ ctrl.DataChannelPortRange = new Range<int>(m_minActivePort, m_maxActivePort);
255+
196256 ctrl.Connect();
197257
198258 try
Source/Libraries/GSF.Net/Ftp/IFtpSessionState.cs+23−0
@@ -42,6 +42,7 @@ · 41 unmodified lines
4242 #endregion
4343
4444 using System;
45+using System.Net;
4546
4647 namespace GSF.Net.Ftp
4748 {
@@ -66,6 +67,28 @@ namespace GSF.Net.Ftp · 18 unmodified lines
6667 /// </summary>
6768 int Timeout { get; set; }
6869
70+ /// <summary>
71+ /// Gets or sets the passive/active mode of the FTP server.
72+ /// </summary>
73+ bool Passive { get; set; }
74+
75+ /// <summary>
76+ /// Gets or sets the IP address to send with the PORT command.
77+ /// </summary>
78+ IPAddress ActiveAddress { get; set; }
79+
80+ /// <summary>
81+ /// Gets or sets the minimum value in the range of ports
82+ /// used when listening for connections in active mode.
83+ /// </summary>
84+ int MinActivePort { get; set; }
85+
86+ /// <summary>
87+ /// Gets or sets the maximum value in the range of ports
88+ /// used when listening for connections in active mode.
89+ /// </summary>
90+ int MaxActivePort { get; set; }
91+
6992 /// <summary>
7093 /// Gets or sets current FTP session directory.
7194 /// </summary>
Source/Libraries/GSF.Net/Properties/AssemblyInfo.cs+4−4
@@ -58,7 +58,7 @@ using System.Runtime.InteropServices; · 57 unmodified lines
5858 //
5959 // You can specify all the values or you can default the Build and Revision Numbers
6060 // by using the '*' as shown below:
61−// [assembly: AssemblyVersion("2.1.465.0")]
62−[assembly: AssemblyVersion("2.1.465.0")]
63−[assembly: AssemblyFileVersion("2.1.465.0")]
64−[assembly: AssemblyInformationalVersion("2.1.465-beta")]
61+// [assembly: AssemblyVersion("2.2.8.0")]
62+[assembly: AssemblyVersion("2.2.8.0")]
63+[assembly: AssemblyFileVersion("2.2.8.0")]
64+[assembly: AssemblyInformationalVersion("2.2.8-beta")]
Source/Libraries/GSF.PQDIF/Properties/AssemblyInfo.cs+4−4
@@ -57,7 +57,7 @@ using System.Runtime.InteropServices; · 56 unmodified lines
5757 //
5858 // You can specify all the values or you can default the Build and Revision Numbers
5959 // by using the '*' as shown below:
60−// [assembly: AssemblyVersion("2.1.465.0")]
61−[assembly: AssemblyVersion("2.1.465.0")]
62−[assembly: AssemblyFileVersion("2.1.465.0")]
63−[assembly: AssemblyInformationalVersion("2.1.465-beta")]
60+// [assembly: AssemblyVersion("2.2.8.0")]
61+[assembly: AssemblyVersion("2.2.8.0")]
62+[assembly: AssemblyFileVersion("2.2.8.0")]
63+[assembly: AssemblyInformationalVersion("2.2.8-beta")]
Source/Libraries/GSF.PhasorProtocols/Properties/AssemblyInfo.cs+3−3
@@ -48,8 +48,8 @@ using System.Runtime.InteropServices; · 47 unmodified lines
4848 [assembly: Guid("6d59b0ed-1991-4f12-a739-2cf8543dd9b2")]
4949
5050 // Assembly identity attributes.
51−[assembly: AssemblyVersion("2.1.465.0")]
52−[assembly: AssemblyFileVersion("2.1.465.0")]
51+[assembly: AssemblyVersion("2.2.8.0")]
52+[assembly: AssemblyFileVersion("2.2.8.0")]
5353
5454 [assembly: SuppressMessage("Microsoft.Usage", "CA2243:AttributeStringLiteralsShouldParseCorrectly")]
55−[assembly: AssemblyInformationalVersion("2.1.465-beta")]
55+[assembly: AssemblyInformationalVersion("2.2.8-beta")]
Source/Libraries/GSF.PhasorProtocols/UI/Properties/AssemblyInfo.cs+4−4
@@ -58,7 +58,7 @@ using System.Runtime.InteropServices; · 57 unmodified lines
5858 //
5959 // You can specify all the values or you can default the Build and Revision Numbers
6060 // by using the '*' as shown below:
61−// [assembly: AssemblyVersion("2.1.465.0")]
62−[assembly: AssemblyVersion("2.1.465.0")]
63−[assembly: AssemblyFileVersion("2.1.465.0")]
64−[assembly: AssemblyInformationalVersion("2.1.465-beta")]
61+// [assembly: AssemblyVersion("2.2.8.0")]
62+[assembly: AssemblyVersion("2.2.8.0")]
63+[assembly: AssemblyFileVersion("2.2.8.0")]
64+[assembly: AssemblyInformationalVersion("2.2.8-beta")]
Source/Libraries/GSF.PhasorProtocols/UI/WPF/Properties/AssemblyInfo.cs+4−4
@@ -58,7 +58,7 @@ using System.Runtime.InteropServices; · 57 unmodified lines
5858 //
5959 // You can specify all the values or you can default the Build and Revision Numbers
6060 // by using the '*' as shown below:
61−// [assembly: AssemblyVersion("2.1.465.0")]
62−[assembly: AssemblyVersion("2.1.465.0")]
63−[assembly: AssemblyFileVersion("2.1.465.0")]
64−[assembly: AssemblyInformationalVersion("2.1.465-beta")]
61+// [assembly: AssemblyVersion("2.2.8.0")]
62+[assembly: AssemblyVersion("2.2.8.0")]
63+[assembly: AssemblyFileVersion("2.2.8.0")]
64+[assembly: AssemblyInformationalVersion("2.2.8-beta")]
Source/Libraries/GSF.SELEventParser/AnalogSection.cs+8−4
@@ -35,7 +35,7 @@ namespace GSF.SELEventParser · 34 unmodified lines
3535 // Fields
3636 private Channel<DateTime> m_timeChannel;
3737 private List<Channel<double>> m_analogChannels;
38− private List<Channel<bool>> m_digitalChannels;
38+ private List<Channel<bool>> m_digitalChannels;
3939
4040 #endregion
4141
@@ -46,7 +46,6 @@ namespace GSF.SELEventParser · 4 unmodified lines
4646 m_timeChannel = new Channel<DateTime>() { Name = "Time" };
4747 m_analogChannels = new List<Channel<double>>();
4848 m_digitalChannels = new List<Channel<bool>>();
49−
5049 }
5150
5251 #endregion
@@ -89,7 +88,6 @@ namespace GSF.SELEventParser · 36 unmodified lines
8988 }
9089 }
9190
92−
9391 #endregion
9492
9593 #region [ Methods ]
@@ -111,6 +109,11 @@ namespace GSF.SELEventParser · 15 unmodified lines
111109 // Static Methods
112110
113111 public static AnalogSection Parse(DateTime eventTime, string[] lines, ref int index)
112+ {
113+ return Parse(eventTime, 60.0D, lines, ref index);
114+ }
115+
116+ public static AnalogSection Parse(DateTime eventTime, double systemFrequency, string[] lines, ref int index)
114117 {
115118 const string CycleHeader = @"^\[\d+\]$";
116119
@@ -239,6 +242,7 @@ namespace GSF.SELEventParser · 122 unmodified lines
239242 currentLine = currentLine.Remove(analogEndIndex);
240243
241244 analogs = currentLine
245+ .Replace("-", " -")
242246 .Split((char[])null, StringSplitOptions.RemoveEmptyEntries)
243247 .TakeWhile(field => double.TryParse(field, out analog))
244248 .Select(field => analog)
@@ -276,7 +280,7 @@ namespace GSF.SELEventParser · 31 unmodified lines
276280
277281 // Determine the time per sample, in ticks
278282 firstCycleCount = analogSection.AnalogChannels.First().Cycles.First().Samples.Count;
279− timePerSample = TimeSpan.TicksPerSecond / (60L * firstCycleCount);
283+ timePerSample = TimeSpan.TicksPerSecond / (long)(systemFrequency * firstCycleCount);
280284
281285 for (int i = 0; i < sampleCount; i++)
282286 {
Source/Libraries/GSF.SELEventParser/CommaSeparatedEventReport.cs+6−1
@@ -287,6 +287,11 @@ namespace GSF.SELEventParser · 286 unmodified lines
287287 // Static Methods
288288
289289 public static CommaSeparatedEventReport Parse(string[] lines, ref int index)
290+ {
291+ return Parse(60.0D, lines, ref index);
292+ }
293+
294+ public static CommaSeparatedEventReport Parse(double systemFrequency, string[] lines, ref int index)
290295 {
291296 CommaSeparatedEventReport commaSeparatedEventReport = new CommaSeparatedEventReport();
292297 commaSeparatedEventReport.Firmware = new Firmware();
@@ -370,7 +375,7 @@ namespace GSF.SELEventParser · 77 unmodified lines
370375 }
371376
372377 commaSeparatedEventReport.InitialReadingIndex = ++index;
373− int timeStepTicks = Convert.ToInt32(Math.Round(10000000.0 / commaSeparatedEventReport.AverageFrequency / commaSeparatedEventReport.SamplesPerCycleAnalog));
378+ int timeStepTicks = Convert.ToInt32(Math.Round(10000000.0 / systemFrequency / commaSeparatedEventReport.SamplesPerCycleAnalog));
374379
375380 while (!lines[index].ToUpper().Contains("SETTINGS"))
376381 {
Source/Libraries/GSF.SELEventParser/EventFile.cs+6−1
@@ -115,6 +115,11 @@ namespace GSF.SELEventParser · 114 unmodified lines
115115 // Static Methods
116116
117117 public static EventFile Parse(string filename)
118+ {
119+ return Parse(filename, 60.0D);
120+ }
121+
122+ public static EventFile Parse(string filename, double systemFrequency)
118123 {
119124 string[] lineSeparators = { "\r\n", "\n\r", "\r", "\n" };
120125
@@ -146,7 +151,7 @@ namespace GSF.SELEventParser · 25 unmodified lines
146151
147152 if (command.ToUpper().Contains("EVE"))
148153 {
149− parsedEventReport = EventReport.Parse(lines, ref lineIndex);
154+ parsedEventReport = EventReport.Parse(systemFrequency, lines, ref lineIndex);
150155 parsedEventReport.Command = command;
151156 parsedFile.Add(parsedEventReport);
152157 }
Source/Libraries/GSF.SELEventParser/EventReport.cs+6−1
@@ -210,6 +210,11 @@ namespace GSF.SELEventParser · 209 unmodified lines
210210 // Static Methods
211211
212212 public static EventReport Parse(string[] lines, ref int index)
213+ {
214+ return Parse(60.0D, lines, ref index);
215+ }
216+
217+ public static EventReport Parse(double systemFrequency, string[] lines, ref int index)
213218 {
214219 EventReport eventReport = new EventReport();
215220 int firmwareIndex;
@@ -233,7 +238,7 @@ namespace GSF.SELEventParser · 17 unmodified lines
233238 EventFile.SkipBlanks(lines, ref index);
234239
235240 // Parse the analog section of the report
236− eventReport.AnalogSection = AnalogSection.Parse(eventReport.Header.EventTime, lines, ref index);
241+ eventReport.AnalogSection = AnalogSection.Parse(eventReport.Header.EventTime, systemFrequency, lines, ref index);
237242
238243 if (lines.Length < index)
239244 {
Source/Libraries/GSF.SELEventParser/Properties/AssemblyInfo.cs+3−3
@@ -44,6 +44,6 @@ using System.Runtime.InteropServices; · 43 unmodified lines
4444 [assembly: Guid("ee39b8ec-2b03-46f8-9ea8-25bba8e33032")]
4545
4646 // Assembly identity attributes.
47−[assembly: AssemblyVersion("2.1.465.0")]
48−[assembly: AssemblyFileVersion("2.1.465.0")]
49−[assembly: AssemblyInformationalVersion("2.1.465-beta")]
47+[assembly: AssemblyVersion("2.2.8.0")]
48+[assembly: AssemblyFileVersion("2.2.8.0")]
49+[assembly: AssemblyInformationalVersion("2.2.8-beta")]
Source/Libraries/GSF.Security/Properties/AssemblyInfo.cs+2−2
@@ -25,8 +25,8 @@ using System.Reflection; · 24 unmodified lines
2525 using System.Runtime.InteropServices;
2626
2727 // Assembly identity attributes.
28−[assembly: AssemblyVersion("2.1.465.0")]
29−[assembly: AssemblyInformationalVersion("2.1.465-beta")]
28+[assembly: AssemblyVersion("2.2.8.0")]
29+[assembly: AssemblyInformationalVersion("2.2.8-beta")]
3030
3131 // Informational attributes.
3232 [assembly: AssemblyCompany("Grid Protection Alliance")]
Source/Libraries/GSF.ServiceBus/Properties/AssemblyInfo.cs+2−2
@@ -25,8 +25,8 @@ using System.Reflection; · 24 unmodified lines
2525 using System.Runtime.InteropServices;
2626
2727 // Assembly identity attributes.
28−[assembly: AssemblyVersion("2.1.465.0")]
29−[assembly: AssemblyInformationalVersion("2.1.465-beta")]
28+[assembly: AssemblyVersion("2.2.8.0")]
29+[assembly: AssemblyInformationalVersion("2.2.8-beta")]
3030
3131 // Informational attributes.
3232 [assembly: AssemblyCompany("Grid Protection Alliance")]
Source/Libraries/GSF.ServiceModel/Properties/AssemblyInfo.cs+2−2
@@ -25,8 +25,8 @@ using System.Reflection; · 24 unmodified lines
2525 using System.Runtime.InteropServices;
2626
2727 // Assembly identity attributes.
28−[assembly: AssemblyVersion("2.1.465.0")]
29−[assembly: AssemblyInformationalVersion("2.1.465-beta")]
28+[assembly: AssemblyVersion("2.2.8.0")]
29+[assembly: AssemblyInformationalVersion("2.2.8-beta")]
3030
3131 // Informational attributes.
3232 [assembly: AssemblyCompany("Grid Protection Alliance")]
Source/Libraries/GSF.ServiceProcess/Properties/AssemblyInfo.cs+2−2
@@ -25,8 +25,8 @@ using System.Reflection; · 24 unmodified lines
2525 using System.Runtime.InteropServices;
2626
2727 // Assembly identity attributes.
28−[assembly: AssemblyVersion("2.1.465.0")]
29−[assembly: AssemblyInformationalVersion("2.1.465-beta")]
28+[assembly: AssemblyVersion("2.2.8.0")]
29+[assembly: AssemblyInformationalVersion("2.2.8-beta")]
3030
3131 // Informational attributes.
3232 [assembly: AssemblyCompany("Grid Protection Alliance")]
Source/Libraries/GSF.TimeSeries/Properties/AssemblyInfo.cs+3−3
@@ -62,7 +62,7 @@ using System.Runtime.InteropServices; · 61 unmodified lines
6262 //
6363 // You can specify all the values or you can default the Build and Revision Numbers
6464 // by using the '*' as shown below:
65−// [assembly: AssemblyVersion("2.1.465.0")]
66−[assembly: AssemblyVersion("2.1.465.0")]
67−[assembly: AssemblyInformationalVersion("2.1.465-beta")]
65+// [assembly: AssemblyVersion("2.2.8.0")]
66+[assembly: AssemblyVersion("2.2.8.0")]
67+[assembly: AssemblyInformationalVersion("2.2.8-beta")]
6868
Source/Libraries/GSF.TimeSeries/Transport/DataGapRecoverer.cs+53−9
@@ -90,6 +90,16 @@ namespace GSF.TimeSeries.Transport · 89 unmodified lines
9090 /// </summary>
9191 public const bool DefaultUseMillisecondResolution = true;
9292
93+ /// <summary>
94+ /// Default value for <see cref="StartRecoveryBuffer"/>.
95+ /// </summary>
96+ public const double DefaultStartRecoveryBuffer = -20.0D;
97+
98+ /// <summary>
99+ /// Default value for <see cref="EndRecoveryBuffer"/>.
100+ /// </summary>
101+ public const double DefaultEndRecoveryBuffer = 10.0D;
102+
93103 // Events
94104
95105 /// <summary>
@@ -160,6 +170,8 @@ namespace GSF.TimeSeries.Transport · 64 unmodified lines
160170 m_recoveryStartDelay = DefaultRecoveryStartDelay;
161171 m_minimumRecoverySpan = DefaultMinimumRecoverySpan;
162172 m_maximumRecoverySpan = DefaultMaximumRecoverySpan;
173+ StartRecoveryBuffer = DefaultStartRecoveryBuffer;
174+ EndRecoveryBuffer = DefaultEndRecoveryBuffer;
163175
164176 string loggingPath = FilePath.GetDirectoryName(FilePath.GetAbsolutePath(DataSubscriber.DefaultLoggingPath));
165177
@@ -451,6 +463,24 @@ namespace GSF.TimeSeries.Transport · 285 unmodified lines
451463 }
452464 }
453465
466+ /// <summary>
467+ /// Gets or sets start buffer time, in seconds, to add to start of outage window to ensure all missing data is recovered.
468+ /// </summary>
469+ public double StartRecoveryBuffer
470+ {
471+ get;
472+ set;
473+ }
474+
475+ /// <summary>
476+ /// Gets or sets end buffer time, in seconds, to add to end of outage window to ensure all missing data is recovered.
477+ /// </summary>
478+ public double EndRecoveryBuffer
479+ {
480+ get;
481+ set;
482+ }
483+
454484 /// <summary>
455485 /// Gets or sets any additional constraint parameters that will be supplied to adapters in temporal
456486 /// subscription used when recovering data for an <see cref="Outage"/>.
@@ -546,6 +576,10 @@ namespace GSF.TimeSeries.Transport · 89 unmodified lines
546576 status.AppendLine();
547577 status.AppendFormat("Use millisecond resolution: {0}", UseMillisecondResolution);
548578 status.AppendLine();
579+ status.AppendFormat(" Start recovery buffer: {0:N2} seconds", StartRecoveryBuffer);
580+ status.AppendLine();
581+ status.AppendFormat(" End recovery buffer: {0:N2} seconds", EndRecoveryBuffer);
582+ status.AppendLine();
549583 status.AppendFormat(" Logging path: {0}", FilePath.TrimFileName(m_loggingPath.ToNonNullNorWhiteSpace(FilePath.GetAbsolutePath("")), 51));
550584 status.AppendLine();
551585
@@ -682,6 +716,12 @@ namespace GSF.TimeSeries.Transport · 130 unmodified lines
682716 if (settings.TryGetValue("useMillisecondResolution", out setting))
683717 UseMillisecondResolution = setting.ParseBoolean();
684718
719+ if (settings.TryGetValue("startRecoveryBuffer", out setting) && double.TryParse(setting, out timeInterval))
720+ StartRecoveryBuffer = timeInterval;
721+
722+ if (settings.TryGetValue("endRecoveryBuffer", out setting) && double.TryParse(setting, out timeInterval))
723+ EndRecoveryBuffer = timeInterval;
724+
685725 // Get logging path, if any has been defined
686726 if (settings.TryGetValue("loggingPath", out setting))
687727 {
@@ -716,7 +756,7 @@ namespace GSF.TimeSeries.Transport · 28 unmodified lines
716756 m_dataGapLog.Initialize();
717757
718758 // Setup data gap processor to process items one at a time, a 5-second minimum period is established between each gap processing
719− m_dataGapLogProcessor = new OutageLogProcessor(m_dataGapLog, ProcessDataGap, CanProcessDataGap, ex => OnProcessException(MessageLevel.Warning, ex), GSF.Common.Max(5000, (int)(m_recoveryStartDelay * SI.Milli)));
759+ m_dataGapLogProcessor = new OutageLogProcessor(m_dataGapLog, ProcessDataGap, CanProcessDataGap, ex => OnProcessException(MessageLevel.Warning, ex), GSF.Common.Max(5000, (int)(m_recoveryStartDelay * 1000.0D)));
720760 }
721761
722762 /// <summary>
@@ -745,7 +785,7 @@ namespace GSF.TimeSeries.Transport · 22 unmodified lines
745785 if (dataGapSpan >= m_minimumRecoverySpan && dataGapSpan <= m_maximumRecoverySpan)
746786 {
747787 // Since local clock may float we add some buffer around recovery window
748− m_dataGapLog.Add(new Outage(startTime.AddSeconds(-10.0D), endTime.AddSeconds(10.0D)));
788+ m_dataGapLog.Add(new Outage(startTime.AddSeconds(StartRecoveryBuffer), endTime.AddSeconds(EndRecoveryBuffer)));
749789 return true;
750790 }
751791
@@ -794,14 +834,18 @@ namespace GSF.TimeSeries.Transport · 42 unmodified lines
794834 /// <returns><c>true</c> if log was flushed successfully; otherwise, <c>false</c> if flush timed out.</returns>
795835 public bool FlushLog(int timeout = Timeout.Infinite)
796836 {
797− if (m_disposed)
798− throw new InvalidOperationException("Data gap recoverer has been disposed. Cannot flush log.");
799−
800− // Wait for process completion if in progress
801− if (m_dataGapRecoveryCompleted.Wait(timeout))
802− return m_dataGapLog?.Flush().Wait(timeout) ?? false;
837+ try
838+ {
839+ // Wait for process completion if in progress
840+ if (!m_disposed && m_dataGapRecoveryCompleted.Wait(timeout))
841+ return m_dataGapLog?.Flush().Wait(timeout) ?? false;
803842
804− return false;
843+ return false;
844+ }
845+ catch
846+ {
847+ return false;
848+ }
805849 }
806850
807851 // Can only start data gap processing when end time of recovery range is beyond recovery start delay
Source/Libraries/GSF.TimeSeries/Transport/UI/Properties/AssemblyInfo.cs+4−4
@@ -58,7 +58,7 @@ using System.Runtime.InteropServices; · 57 unmodified lines
5858 //
5959 // You can specify all the values or you can default the Build and Revision Numbers
6060 // by using the '*' as shown below:
61−// [assembly: AssemblyVersion("2.1.465.0")]
62−[assembly: AssemblyVersion("2.1.465.0")]
63−[assembly: AssemblyFileVersion("2.1.465.0")]
64−[assembly: AssemblyInformationalVersion("2.1.465-beta")]
61+// [assembly: AssemblyVersion("2.2.8.0")]
62+[assembly: AssemblyVersion("2.2.8.0")]
63+[assembly: AssemblyFileVersion("2.2.8.0")]
64+[assembly: AssemblyInformationalVersion("2.2.8-beta")]
Source/Libraries/GSF.TimeSeries/Transport/UI/WPF/Properties/AssemblyInfo.cs+4−4
@@ -58,7 +58,7 @@ using System.Runtime.InteropServices; · 57 unmodified lines
5858 //
5959 // You can specify all the values or you can default the Build and Revision Numbers
6060 // by using the '*' as shown below:
61−// [assembly: AssemblyVersion("2.1.465.0")]
62−[assembly: AssemblyVersion("2.1.465.0")]
63−[assembly: AssemblyFileVersion("2.1.465.0")]
64−[assembly: AssemblyInformationalVersion("2.1.465-beta")]
61+// [assembly: AssemblyVersion("2.2.8.0")]
62+[assembly: AssemblyVersion("2.2.8.0")]
63+[assembly: AssemblyFileVersion("2.2.8.0")]
64+[assembly: AssemblyInformationalVersion("2.2.8-beta")]
Source/Libraries/GSF.TimeSeries/UI/Properties/AssemblyInfo.cs+4−4
@@ -58,7 +58,7 @@ using System.Runtime.InteropServices; · 57 unmodified lines
5858 //
5959 // You can specify all the values or you can default the Build and Revision Numbers
6060 // by using the '*' as shown below:
61−// [assembly: AssemblyVersion("2.1.465.0")]
62−[assembly: AssemblyVersion("2.1.465.0")]
63−[assembly: AssemblyFileVersion("2.1.465.0")]
64−[assembly: AssemblyInformationalVersion("2.1.465-beta")]
61+// [assembly: AssemblyVersion("2.2.8.0")]
62+[assembly: AssemblyVersion("2.2.8.0")]
63+[assembly: AssemblyFileVersion("2.2.8.0")]
64+[assembly: AssemblyInformationalVersion("2.2.8-beta")]
Source/Libraries/GSF.TimeSeries/UI/WPF/Properties/AssemblyInfo.cs+4−4
@@ -76,7 +76,7 @@ using System.Windows; · 75 unmodified lines
7676 //
7777 // You can specify all the values or you can default the Build and Revision Numbers
7878 // by using the '*' as shown below:
79−// [assembly: AssemblyVersion("2.1.465.0")]
80−[assembly: AssemblyVersion("2.1.465.0")]
81−[assembly: AssemblyFileVersion("2.1.465.0")]
82−[assembly: AssemblyInformationalVersion("2.1.465-beta")]
79+// [assembly: AssemblyVersion("2.2.8.0")]
80+[assembly: AssemblyVersion("2.2.8.0")]
81+[assembly: AssemblyFileVersion("2.2.8.0")]
82+[assembly: AssemblyInformationalVersion("2.2.8-beta")]
Source/Libraries/GSF.Unity/Properties/AssemblyInfo.cs+2−2
@@ -4,8 +4,8 @@ using System.Resources; · 3 unmodified lines
44 using System.Runtime.InteropServices;
55
66 // Assembly identity attributes.
7−[assembly: AssemblyVersion("2.1.465.0")]
8−[assembly: AssemblyInformationalVersion("2.1.465-beta")]
7+[assembly: AssemblyVersion("2.2.8.0")]
8+[assembly: AssemblyInformationalVersion("2.2.8-beta")]
99
1010 // Informational attributes.
1111 [assembly: AssemblyCompany("Grid Protection Alliance")]
Source/Libraries/GSF.Web/Properties/AssemblyInfo.cs+2−2
@@ -27,8 +27,8 @@ using System.Web.UI; · 26 unmodified lines
2727 using GSF.Web.Hosting;
2828
2929 // Assembly identity attributes.
30−[assembly: AssemblyVersion("2.1.465.0")]
31−[assembly: AssemblyInformationalVersion("2.1.465-beta")]
30+[assembly: AssemblyVersion("2.2.8.0")]
31+[assembly: AssemblyInformationalVersion("2.2.8-beta")]
3232
3333 // Informational attributes.
3434 [assembly: AssemblyCompany("Grid Protection Alliance")]
Source/Libraries/GSF.Windows/Properties/AssemblyInfo.cs+2−2
@@ -25,8 +25,8 @@ using System.Reflection; · 24 unmodified lines
2525 using System.Runtime.InteropServices;
2626
2727 // Assembly identity attributes.
28−[assembly: AssemblyVersion("2.1.465.0")]
29−[assembly: AssemblyInformationalVersion("2.1.465-beta")]
28+[assembly: AssemblyVersion("2.2.8.0")]
29+[assembly: AssemblyInformationalVersion("2.2.8-beta")]
3030
3131 // Informational attributes.
3232 [assembly: AssemblyCompany("Grid Protection Alliance")]
Source/Libraries/Hadoop.Replication/Properties/AssemblyInfo.cs+2−2
@@ -25,8 +25,8 @@ using System.Reflection; · 24 unmodified lines
2525 using System.Runtime.InteropServices;
2626
2727 // Assembly identity attributes.
28−[assembly: AssemblyVersion("2.1.465.0")]
29−[assembly: AssemblyInformationalVersion("2.1.465-beta")]
28+[assembly: AssemblyVersion("2.2.8.0")]
29+[assembly: AssemblyInformationalVersion("2.2.8-beta")]
3030
3131 // Informational attributes.
3232 [assembly: AssemblyCompany("Grid Protection Alliance")]
Source/Libraries/SqlClr/GSF.Core.SqlClr/Properties/AssemblyInfo.cs+3−3
@@ -30,6 +30,6 @@ using System.Runtime.InteropServices; · 29 unmodified lines
3030 //
3131 // You can specify all the values or you can default the Build and Revision Numbers
3232 // by using the '*' as shown below:
33−// [assembly: AssemblyVersion("2.1.465.0")]
34−[assembly: AssemblyVersion("2.1.465.0")]
35−[assembly: AssemblyFileVersion("2.1.465.0")]
33+// [assembly: AssemblyVersion("2.2.8.0")]
34+[assembly: AssemblyVersion("2.2.8.0")]
35+[assembly: AssemblyFileVersion("2.2.8.0")]
Source/Libraries/Tests/GSF.Communication.Tests/Properties/AssemblyInfo.cs+3−3
@@ -59,6 +59,6 @@ using System.Runtime.InteropServices; · 58 unmodified lines
5959 //
6060 // You can specify all the values or you can default the Build and Revision Numbers
6161 // by using the '*' as shown below:
62−[assembly: AssemblyVersion("2.1.465.0")]
63−[assembly: AssemblyFileVersion("2.1.465.0")]
64−[assembly: AssemblyInformationalVersion("2.1.465-beta")]
62+[assembly: AssemblyVersion("2.2.8.0")]
63+[assembly: AssemblyFileVersion("2.2.8.0")]
64+[assembly: AssemblyInformationalVersion("2.2.8-beta")]
Source/Libraries/Tests/GSF.Core.Tests/Properties/AssemblyInfo.cs+3−3
@@ -59,6 +59,6 @@ using System.Runtime.InteropServices; · 58 unmodified lines
5959 //
6060 // You can specify all the values or you can default the Build and Revision Numbers
6161 // by using the '*' as shown below:
62−[assembly: AssemblyVersion("2.1.465.0")]
63−[assembly: AssemblyFileVersion("2.1.465.0")]
64−[assembly: AssemblyInformationalVersion("2.1.465-beta")]
62+[assembly: AssemblyVersion("2.2.8.0")]
63+[assembly: AssemblyFileVersion("2.2.8.0")]
64+[assembly: AssemblyInformationalVersion("2.2.8-beta")]
Source/Libraries/Tests/GSF.Historian.Tests/Properties/AssemblyInfo.cs+2−2
@@ -26,8 +26,8 @@ using System.Reflection; · 25 unmodified lines
2626 using System.Runtime.InteropServices;
2727
2828 // Assembly identity attributes.
29−[assembly: AssemblyVersion("2.1.465.0")]
30−[assembly: AssemblyInformationalVersion("2.1.465-beta")]
29+[assembly: AssemblyVersion("2.2.8.0")]
30+[assembly: AssemblyInformationalVersion("2.2.8-beta")]
3131
3232 // Informational attributes.
3333 [assembly: AssemblyCompany("Grid Protection Alliance")]
Source/Libraries/Tests/GSF.Security.Tests/Properties/AssemblyInfo.cs+3−3
@@ -59,6 +59,6 @@ using System.Runtime.InteropServices; · 58 unmodified lines
5959 //
6060 // You can specify all the values or you can default the Build and Revision Numbers
6161 // by using the '*' as shown below:
62−[assembly: AssemblyVersion("2.1.465.0")]
63−[assembly: AssemblyFileVersion("2.1.465.0")]
64−[assembly: AssemblyInformationalVersion("2.1.465-beta")]
62+[assembly: AssemblyVersion("2.2.8.0")]
63+[assembly: AssemblyFileVersion("2.2.8.0")]
64+[assembly: AssemblyInformationalVersion("2.2.8-beta")]
Source/Libraries/Tests/GSF.ServiceBus.Tests/Properties/AssemblyInfo.cs+3−3
@@ -59,6 +59,6 @@ using System.Runtime.InteropServices; · 58 unmodified lines
5959 //
6060 // You can specify all the values or you can default the Build and Revision Numbers
6161 // by using the '*' as shown below:
62−[assembly: AssemblyVersion("2.1.465.0")]
63−[assembly: AssemblyFileVersion("2.1.465.0")]
64−[assembly: AssemblyInformationalVersion("2.1.465-beta")]
62+[assembly: AssemblyVersion("2.2.8.0")]
63+[assembly: AssemblyFileVersion("2.2.8.0")]
64+[assembly: AssemblyInformationalVersion("2.2.8-beta")]
Source/Libraries/Tests/GSF.ServiceModel.Tests/Properties/AssemblyInfo.cs+3−3
@@ -59,6 +59,6 @@ using System.Runtime.InteropServices; · 58 unmodified lines
5959 //
6060 // You can specify all the values or you can default the Build and Revision Numbers
6161 // by using the '*' as shown below:
62−[assembly: AssemblyVersion("2.1.465.0")]
63−[assembly: AssemblyFileVersion("2.1.465.0")]
64−[assembly: AssemblyInformationalVersion("2.1.465-beta")]
62+[assembly: AssemblyVersion("2.2.8.0")]
63+[assembly: AssemblyFileVersion("2.2.8.0")]
64+[assembly: AssemblyInformationalVersion("2.2.8-beta")]
Source/Libraries/Tests/GSF.ServiceProcess.Tests/Properties/AssemblyInfo.cs+3−3
@@ -59,6 +59,6 @@ using System.Runtime.InteropServices; · 58 unmodified lines
5959 //
6060 // You can specify all the values or you can default the Build and Revision Numbers
6161 // by using the '*' as shown below:
62−[assembly: AssemblyVersion("2.1.465.0")]
63−[assembly: AssemblyFileVersion("2.1.465.0")]
64−[assembly: AssemblyInformationalVersion("2.1.465-beta")]
62+[assembly: AssemblyVersion("2.2.8.0")]
63+[assembly: AssemblyFileVersion("2.2.8.0")]
64+[assembly: AssemblyInformationalVersion("2.2.8-beta")]
Source/Libraries/Tests/GSF.Web.Tests/Properties/AssemblyInfo.cs+3−3
@@ -59,6 +59,6 @@ using System.Runtime.InteropServices; · 58 unmodified lines
5959 //
6060 // You can specify all the values or you can default the Build and Revision Numbers
6161 // by using the '*' as shown below:
62−[assembly: AssemblyVersion("2.1.465.0")]
63−[assembly: AssemblyFileVersion("2.1.465.0")]
64−[assembly: AssemblyInformationalVersion("2.1.465-beta")]
62+[assembly: AssemblyVersion("2.2.8.0")]
63+[assembly: AssemblyFileVersion("2.2.8.0")]
64+[assembly: AssemblyInformationalVersion("2.2.8-beta")]
Source/Libraries/Tests/GSF.Windows.Tests/Properties/AssemblyInfo.cs+3−3
@@ -59,6 +59,6 @@ using System.Runtime.InteropServices; · 58 unmodified lines
5959 //
6060 // You can specify all the values or you can default the Build and Revision Numbers
6161 // by using the '*' as shown below:
62−[assembly: AssemblyVersion("2.1.465.0")]
63−[assembly: AssemblyFileVersion("2.1.465.0")]
64−[assembly: AssemblyInformationalVersion("2.1.465-beta")]
62+[assembly: AssemblyVersion("2.2.8.0")]
63+[assembly: AssemblyFileVersion("2.2.8.0")]
64+[assembly: AssemblyInformationalVersion("2.2.8-beta")]
Source/Tools/COMTRADEConverter/Properties/AssemblyInfo.cs+3−3
@@ -50,6 +50,6 @@ using System.Windows; · 49 unmodified lines
5050 //
5151 // You can specify all the values or you can default the Build and Revision Numbers
5252 // by using the '*' as shown below:
53−// [assembly: AssemblyVersion("2.1.465.0")]
54−[assembly: AssemblyVersion("2.1.465.0")]
55−[assembly: AssemblyFileVersion("2.1.465.0")]
53+// [assembly: AssemblyVersion("2.2.8.0")]
54+[assembly: AssemblyVersion("2.2.8.0")]
55+[assembly: AssemblyFileVersion("2.2.8.0")]
Source/Tools/ConfigCrypter/Properties/AssemblyInfo.cs+2−2
@@ -25,8 +25,8 @@ using System.Reflection; · 24 unmodified lines
2525 using System.Runtime.InteropServices;
2626
2727 // Assembly identity attributes.
28−[assembly: AssemblyVersion("2.1.465.0")]
29−[assembly: AssemblyInformationalVersion("2.1.465-beta")]
28+[assembly: AssemblyVersion("2.2.8.0")]
29+[assembly: AssemblyInformationalVersion("2.2.8-beta")]
3030
3131 // Informational attributes.
3232 [assembly: AssemblyCompany("Grid Protection Alliance")]
Source/Tools/ConfigEditor/Properties/AssemblyInfo.cs+2−2
@@ -25,8 +25,8 @@ using System.Reflection; · 24 unmodified lines
2525 using System.Runtime.InteropServices;
2626
2727 // Assembly identity attributes.
28−[assembly: AssemblyVersion("2.1.465.0")]
29−[assembly: AssemblyInformationalVersion("2.1.465-beta")]
28+[assembly: AssemblyVersion("2.2.8.0")]
29+[assembly: AssemblyInformationalVersion("2.2.8-beta")]
3030
3131 // Informational attributes.
3232 [assembly: AssemblyCompany("Grid Protection Alliance")]
Source/Tools/ConfigTest/Properties/AssemblyInfo.cs+4−4
@@ -30,7 +30,7 @@ using System.Runtime.InteropServices; · 29 unmodified lines
3030 //
3131 // You can specify all the values or you can default the Build and Revision Numbers
3232 // by using the '*' as shown below:
33−// [assembly: AssemblyVersion("2.1.465.0")]
34−[assembly: AssemblyVersion("2.1.465.0")]
35−[assembly: AssemblyFileVersion("2.1.465.0")]
36−[assembly: AssemblyInformationalVersion("2.1.465-beta")]
33+// [assembly: AssemblyVersion("2.2.8.0")]
34+[assembly: AssemblyVersion("2.2.8.0")]
35+[assembly: AssemblyFileVersion("2.2.8.0")]
36+[assembly: AssemblyInformationalVersion("2.2.8-beta")]
Source/Tools/ConfigurationCacher/Properties/AssemblyInfo.cs+4−4
@@ -58,7 +58,7 @@ using System.Runtime.InteropServices; · 57 unmodified lines
5858 //
5959 // You can specify all the values or you can default the Build and Revision Numbers
6060 // by using the '*' as shown below:
61−// [assembly: AssemblyVersion("2.1.465.0")]
62−[assembly: AssemblyVersion("2.1.465.0")]
63−[assembly: AssemblyFileVersion("2.1.465.0")]
64−[assembly: AssemblyInformationalVersion("2.1.465-beta")]
61+// [assembly: AssemblyVersion("2.2.8.0")]
62+[assembly: AssemblyVersion("2.2.8.0")]
63+[assembly: AssemblyFileVersion("2.2.8.0")]
64+[assembly: AssemblyInformationalVersion("2.2.8-beta")]
Source/Tools/DNP3ConfigGenerator/Properties/AssemblyInfo.cs+4−4
@@ -30,7 +30,7 @@ using System.Runtime.InteropServices; · 29 unmodified lines
3030 //
3131 // You can specify all the values or you can default the Build and Revision Numbers
3232 // by using the '*' as shown below:
33−// [assembly: AssemblyVersion("2.1.465.0")]
34−[assembly: AssemblyVersion("2.1.465.0")]
35−[assembly: AssemblyFileVersion("2.1.465.0")]
36−[assembly: AssemblyInformationalVersion("2.1.465-beta")]
33+// [assembly: AssemblyVersion("2.2.8.0")]
34+[assembly: AssemblyVersion("2.2.8.0")]
35+[assembly: AssemblyFileVersion("2.2.8.0")]
36+[assembly: AssemblyInformationalVersion("2.2.8-beta")]
Source/Tools/DataMigrationUtility/Properties/AssemblyInfo.cs+4−4
@@ -58,7 +58,7 @@ using System.Runtime.InteropServices; · 57 unmodified lines
5858 //
5959 // You can specify all the values or you can default the Build and Revision Numbers
6060 // by using the '*' as shown below:
61−// [assembly: AssemblyVersion("2.1.465.0")]
62−[assembly: AssemblyVersion("2.1.465.0")]
63−[assembly: AssemblyFileVersion("2.1.465.0")]
64−[assembly: AssemblyInformationalVersion("2.1.465-beta")]
61+// [assembly: AssemblyVersion("2.2.8.0")]
62+[assembly: AssemblyVersion("2.2.8.0")]
63+[assembly: AssemblyFileVersion("2.2.8.0")]
64+[assembly: AssemblyInformationalVersion("2.2.8-beta")]
Source/Tools/HistorianPlaybackUtility/Properties/AssemblyInfo.cs+2−2
@@ -26,8 +26,8 @@ using System.Reflection; · 25 unmodified lines
2626 using System.Runtime.InteropServices;
2727
2828 // Assembly identity attributes.
29−[assembly: AssemblyVersion("2.1.465.0")]
30−[assembly: AssemblyInformationalVersion("2.1.465-beta")]
29+[assembly: AssemblyVersion("2.2.8.0")]
30+[assembly: AssemblyInformationalVersion("2.2.8-beta")]
3131
3232 // Informational attributes.
3333 [assembly: AssemblyTitle("HistorianPlaybackUtility")]
Source/Tools/HistorianView/Properties/AssemblyInfo.cs+4−4
@@ -75,7 +75,7 @@ using System.Windows; · 74 unmodified lines
7575 //
7676 // You can specify all the values or you can default the Build and Revision Numbers
7777 // by using the '*' as shown below:
78−// [assembly: AssemblyVersion("2.1.465.0")]
79−[assembly: AssemblyVersion("2.1.465.0")]
80−[assembly: AssemblyFileVersion("2.1.465.0")]
81−[assembly: AssemblyInformationalVersion("2.1.465-beta")]
78+// [assembly: AssemblyVersion("2.2.8.0")]
79+[assembly: AssemblyVersion("2.2.8.0")]
80+[assembly: AssemblyFileVersion("2.2.8.0")]
81+[assembly: AssemblyInformationalVersion("2.2.8-beta")]
Source/Tools/LogFileViewer/Properties/AssemblyInfo.cs+3−3
@@ -30,6 +30,6 @@ using System.Runtime.InteropServices; · 29 unmodified lines
3030 //
3131 // You can specify all the values or you can default the Build and Revision Numbers
3232 // by using the '*' as shown below:
33−// [assembly: AssemblyVersion("2.1.465.0")]
34−[assembly: AssemblyVersion("2.1.465.0")]
35−[assembly: AssemblyFileVersion("2.1.465.0")]
33+// [assembly: AssemblyVersion("2.2.8.0")]
34+[assembly: AssemblyVersion("2.2.8.0")]
35+[assembly: AssemblyFileVersion("2.2.8.0")]
Source/Tools/MonoGenCert/Properties/AssemblyInfo.cs+4−4
@@ -28,7 +28,7 @@ using System.Runtime.InteropServices; · 27 unmodified lines
2828 //
2929 // You can specify all the values or you can default the Build and Revision Numbers
3030 // by using the '*' as shown below:
31−// [assembly: AssemblyVersion("2.1.465.0")]
32−[assembly: AssemblyVersion("2.1.465.0")]
33−[assembly: AssemblyFileVersion("2.1.465.0")]
34−[assembly: AssemblyInformationalVersion("2.1.465-beta")]
31+// [assembly: AssemblyVersion("2.2.8.0")]
32+[assembly: AssemblyVersion("2.2.8.0")]
33+[assembly: AssemblyFileVersion("2.2.8.0")]
34+[assembly: AssemblyInformationalVersion("2.2.8-beta")]
Source/Tools/NoInetFixUtil/Properties/AssemblyInfo.cs+4−4
@@ -50,7 +50,7 @@ using System.Runtime.InteropServices; · 49 unmodified lines
5050 //
5151 // You can specify all the values or you can default the Build and Revision Numbers
5252 // by using the '*' as shown below:
53−// [assembly: AssemblyVersion("2.1.465.0")]
54−[assembly: AssemblyVersion("2.1.465.0")]
55−[assembly: AssemblyFileVersion("2.1.465.0")]
56−[assembly: AssemblyInformationalVersion("2.1.465-beta")]
53+// [assembly: AssemblyVersion("2.2.8.0")]
54+[assembly: AssemblyVersion("2.2.8.0")]
55+[assembly: AssemblyFileVersion("2.2.8.0")]
56+[assembly: AssemblyInformationalVersion("2.2.8-beta")]
Source/Tools/PQDIFDump/Properties/AssemblyInfo.cs+4−4
@@ -58,7 +58,7 @@ using System.Runtime.InteropServices; · 57 unmodified lines
5858 //
5959 // You can specify all the values or you can default the Build and Revision Numbers
6060 // by using the '*' as shown below:
61−// [assembly: AssemblyVersion("2.1.465.0")]
62−[assembly: AssemblyVersion("2.1.465.0")]
63−[assembly: AssemblyFileVersion("2.1.465.0")]
64−[assembly: AssemblyInformationalVersion("2.1.465-beta")]
61+// [assembly: AssemblyVersion("2.2.8.0")]
62+[assembly: AssemblyVersion("2.2.8.0")]
63+[assembly: AssemblyFileVersion("2.2.8.0")]
64+[assembly: AssemblyInformationalVersion("2.2.8-beta")]
Source/Tools/ProtocolTester/Properties/AssemblyInfo.cs+4−4
@@ -58,7 +58,7 @@ using System.Runtime.InteropServices; · 57 unmodified lines
5858 //
5959 // You can specify all the values or you can default the Build and Revision Numbers
6060 // by using the '*' as shown below:
61−// [assembly: AssemblyVersion("2.1.465.0")]
62−[assembly: AssemblyVersion("2.1.465.0")]
63−[assembly: AssemblyFileVersion("2.1.465.0")]
64−[assembly: AssemblyInformationalVersion("2.1.465-beta")]
61+// [assembly: AssemblyVersion("2.2.8.0")]
62+[assembly: AssemblyVersion("2.2.8.0")]
63+[assembly: AssemblyFileVersion("2.2.8.0")]
64+[assembly: AssemblyInformationalVersion("2.2.8-beta")]
Source/Tools/SocketArchive/Properties/AssemblyInfo.cs+4−4
@@ -58,7 +58,7 @@ using System.Runtime.InteropServices; · 57 unmodified lines
5858 //
5959 // You can specify all the values or you can default the Build and Revision Numbers
6060 // by using the '*' as shown below:
61−// [assembly: AssemblyVersion("2.1.465.0")]
62−[assembly: AssemblyVersion("2.1.465.0")]
63−[assembly: AssemblyFileVersion("2.1.465.0")]
64−[assembly: AssemblyInformationalVersion("2.1.465-beta")]
61+// [assembly: AssemblyVersion("2.2.8.0")]
62+[assembly: AssemblyVersion("2.2.8.0")]
63+[assembly: AssemblyFileVersion("2.2.8.0")]
64+[assembly: AssemblyInformationalVersion("2.2.8-beta")]
Source/Tools/StatHistorianReportGenerator/Properties/AssemblyInfo.cs+4−4
@@ -31,8 +31,8 @@ using System.Runtime.InteropServices; · 30 unmodified lines
3131 //
3232 // You can specify all the values or you can default the Build and Revision Numbers
3333 // by using the '*' as shown below:
34−// [assembly: AssemblyVersion("2.1.465.0")]
35−[assembly: AssemblyVersion("2.1.465.0")]
36−[assembly: AssemblyFileVersion("2.1.465.0")]
37−[assembly: AssemblyInformationalVersion("2.1.465-beta")]
34+// [assembly: AssemblyVersion("2.2.8.0")]
35+[assembly: AssemblyVersion("2.2.8.0")]
36+[assembly: AssemblyFileVersion("2.2.8.0")]
37+[assembly: AssemblyInformationalVersion("2.2.8-beta")]
3838 [assembly: NeutralResourcesLanguage("en-US")]
Source/Tools/TCPRebroadcaster/TCPRebroadcaster/Properties/AssemblyInfo.cs+4−4
@@ -59,7 +59,7 @@ using System.Runtime.InteropServices; · 58 unmodified lines
5959 //
6060 // You can specify all the values or you can default the Build and Revision Numbers
6161 // by using the '*' as shown below:
62−// [assembly: AssemblyVersion("2.1.465.0")]
63−[assembly: AssemblyVersion("2.1.465.0")]
64−[assembly: AssemblyFileVersion("2.1.465.0")]
65−[assembly: AssemblyInformationalVersion("2.1.465-beta")]
62+// [assembly: AssemblyVersion("2.2.8.0")]
63+[assembly: AssemblyVersion("2.2.8.0")]
64+[assembly: AssemblyFileVersion("2.2.8.0")]
65+[assembly: AssemblyInformationalVersion("2.2.8-beta")]
Source/Tools/TCPRebroadcaster/TCPRebroadcasterConsole/Properties/AssemblyInfo.cs+4−4
@@ -59,7 +59,7 @@ using System.Runtime.InteropServices; · 58 unmodified lines
5959 //
6060 // You can specify all the values or you can default the Build and Revision Numbers
6161 // by using the '*' as shown below:
62−// [assembly: AssemblyVersion("2.1.465.0")]
63−[assembly: AssemblyVersion("2.1.465.0")]
64−[assembly: AssemblyFileVersion("2.1.465.0")]
65−[assembly: AssemblyInformationalVersion("2.1.465-beta")]
62+// [assembly: AssemblyVersion("2.2.8.0")]
63+[assembly: AssemblyVersion("2.2.8.0")]
64+[assembly: AssemblyFileVersion("2.2.8.0")]
65+[assembly: AssemblyInformationalVersion("2.2.8-beta")]
Source/Tools/UDPRebroadcaster/UDPRebroadcaster/Properties/AssemblyInfo.cs+2−2
@@ -25,8 +25,8 @@ using System.Reflection; · 24 unmodified lines
2525 using System.Runtime.InteropServices;
2626
2727 // Assembly identity attributes.
28−[assembly: AssemblyVersion("2.1.465.0")]
29−[assembly: AssemblyInformationalVersion("2.1.465-beta")]
28+[assembly: AssemblyVersion("2.2.8.0")]
29+[assembly: AssemblyInformationalVersion("2.2.8-beta")]
3030
3131 // Informational attributes.
3232 [assembly: AssemblyCompany("Grid Protection Alliance")]
Source/Tools/UDPRebroadcaster/UDPRebroadcasterConsole/Properties/AssemblyInfo.cs+2−2
@@ -25,8 +25,8 @@ using System.Reflection; · 24 unmodified lines
2525 using System.Runtime.InteropServices;
2626
2727 // Assembly identity attributes.
28−[assembly: AssemblyVersion("2.1.465.0")]
29−[assembly: AssemblyInformationalVersion("2.1.465-beta")]
28+[assembly: AssemblyVersion("2.2.8.0")]
29+[assembly: AssemblyInformationalVersion("2.2.8-beta")]
3030
3131 // Informational attributes.
3232 [assembly: AssemblyCompany("Grid Protection Alliance")]
Source/Tools/UserInfoTest/Properties/AssemblyInfo.cs+4−4
@@ -30,7 +30,7 @@ using System.Runtime.InteropServices; · 29 unmodified lines
3030 //
3131 // You can specify all the values or you can default the Build and Revision Numbers
3232 // by using the '*' as shown below:
33−// [assembly: AssemblyVersion("2.1.465.0")]
34−[assembly: AssemblyVersion("2.1.465.0")]
35−[assembly: AssemblyFileVersion("2.1.465.0")]
36−[assembly: AssemblyInformationalVersion("2.1.465-beta")]
33+// [assembly: AssemblyVersion("2.2.8.0")]
34+[assembly: AssemblyVersion("2.2.8.0")]
35+[assembly: AssemblyFileVersion("2.2.8.0")]
36+[assembly: AssemblyInformationalVersion("2.2.8-beta")]

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t