diff --git a/Step.Config/Config/serverConfig.xml b/Step.Config/Config/serverConfig.xml index cd704e2a..4bbb0610 100644 --- a/Step.Config/Config/serverConfig.xml +++ b/Step.Config/Config/serverConfig.xml @@ -12,6 +12,7 @@ 9000 * + 1 en true localhost diff --git a/Step.Config/Config/serverConfigValidator.xsd b/Step.Config/Config/serverConfigValidator.xsd index fd012ffa..6987c1e6 100644 --- a/Step.Config/Config/serverConfigValidator.xsd +++ b/Step.Config/Config/serverConfigValidator.xsd @@ -9,7 +9,7 @@ - + @@ -22,6 +22,7 @@ + diff --git a/Step.Config/ServerConfigController.cs b/Step.Config/ServerConfigController.cs index 651f5480..f1ffb3e8 100644 --- a/Step.Config/ServerConfigController.cs +++ b/Step.Config/ServerConfigController.cs @@ -200,6 +200,7 @@ namespace Step.Config Language = CultureInfo.CreateSpecificCulture(x.Element("language").Value), ServerAddress = x.Element("serverAddress").Value, ServerPort = Convert.ToInt32(x.Element("serverPort").Value), + NetworkCardId = Convert.ToInt32(x.Element("networkCardId").Value), EnableDirectoryBrowsing = Convert.ToBoolean(x.Element("enableDirectoryBrowsing").Value), DatabaseAddress = x.Element("databaseAddress").Value, AutoOpenCmsClient = Convert.ToBoolean(x.Element("autoOpenCmsClient").Value) diff --git a/Step.Core/ThreadsFunctions.cs b/Step.Core/ThreadsFunctions.cs index 376dd2a2..b7788957 100644 --- a/Step.Core/ThreadsFunctions.cs +++ b/Step.Core/ThreadsFunctions.cs @@ -1,4 +1,5 @@ using CMS_CORE_Library.Models; +using Step.Config; using Step.Core; using Step.Model.DTOModels; using Step.Model.DTOModels.AlarmModels; @@ -722,9 +723,19 @@ public static class ThreadsFunctions float SumRec, SumSen; Stopwatch sw = new Stopwatch(); DTONetworkMonitor Monitor = new DTONetworkMonitor(); + int CardId = ServerConfig.ServerStartupConfig.NetworkCardId - 1; PerformanceCounterCategory performanceCounterCategory = new PerformanceCounterCategory("Network Interface"); - Monitor.Name = performanceCounterCategory.GetInstanceNames()[0]; // 1st NIC ! + + if(CardId<0 || CardId > performanceCounterCategory.GetInstanceNames().Length ) + { + Monitor.Name = "No card to monitor"; + MessageServices.Current.Publish(NETWORK_USAGE, null, Monitor); + return; + } + + Monitor.Name = performanceCounterCategory.GetInstanceNames()[0]; + PerformanceCounter PC_Bandwith = new PerformanceCounter("Network Interface", "Current Bandwidth", Monitor.Name); PerformanceCounter PC_RecievedBytes = new PerformanceCounter("Network Interface", "Bytes Received/sec", Monitor.Name); diff --git a/Step.Core/ThreadsHandler.cs b/Step.Core/ThreadsHandler.cs index 8d1141a9..eac72e27 100644 --- a/Step.Core/ThreadsHandler.cs +++ b/Step.Core/ThreadsHandler.cs @@ -34,6 +34,8 @@ namespace Step.Core public static void Start() { ThreadsFunctions.RestoreConnection(); + + //Start THread Network monitor Action Monitor = new Action(ThreadsFunctions.MonitorPanelPCResources); Thread t = new Thread(() => Monitor()); t.Start(); diff --git a/Step.Model/ConfigModels/ServerConfigModel.cs b/Step.Model/ConfigModels/ServerConfigModel.cs index e73db1d6..d4d29253 100644 --- a/Step.Model/ConfigModels/ServerConfigModel.cs +++ b/Step.Model/ConfigModels/ServerConfigModel.cs @@ -12,6 +12,7 @@ namespace Step.Model.ConfigModels public CultureInfo Language { get; set; } public int ServerPort { get; set; } public string ServerAddress { get; set; } + public int NetworkCardId { get; set; } public bool EnableDirectoryBrowsing { get; set; } public string DatabaseAddress { get; set; } public bool AutoOpenCmsClient { get; set; }