diff --git a/Step.Config/Config/areasConfigValidator.xsd b/Step.Config/Config/areasConfigValidator.xsd index ae2b4dbf..633c4878 100644 --- a/Step.Config/Config/areasConfigValidator.xsd +++ b/Step.Config/Config/areasConfigValidator.xsd @@ -11,7 +11,7 @@ - + @@ -21,7 +21,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -61,7 +61,7 @@ - + diff --git a/Step.Config/ServerConfig.cs b/Step.Config/ServerConfig.cs index d0c84edd..e7dd5927 100644 --- a/Step.Config/ServerConfig.cs +++ b/Step.Config/ServerConfig.cs @@ -5,6 +5,7 @@ using System.Text; using System.Threading.Tasks; using Step.Model.ConfigModels; using Step.Model.DatabaseModels; +using Step.Model.DTOModels; namespace Step.Config { @@ -16,6 +17,7 @@ namespace Step.Config public static List MaintenancesConfig; public static List FunctionsAccessConfig; + public static List AllFunctionalityDisabled; public static AreasConfigModel ProductionConfig; public static AreasConfigModel ToolingConfig; diff --git a/Step.Database/Controllers/FunctionsAccessController.cs b/Step.Database/Controllers/FunctionsAccessController.cs index af1bdc4c..00126c7e 100644 --- a/Step.Database/Controllers/FunctionsAccessController.cs +++ b/Step.Database/Controllers/FunctionsAccessController.cs @@ -55,6 +55,20 @@ namespace Step.Database.Controllers .ToList(); } + public List FindAllFunctionsAndDisableAll() + { + return dbCtx + .FunctionsAccess + .Select( x => new DTORuntimeFunctionalityModel() + { + Id = x.FunctionAccessId, + Area = x.Area, + Name = x.Name, + Enabled = false + }) + .ToList(); + } + public List GetFunctionsMappedWithPlc(List functionalityList) { return FunctionsAccessConfig // Find all function access diff --git a/Step.Database/DatabaseContext.cs b/Step.Database/DatabaseContext.cs index 4610909f..610615f3 100644 --- a/Step.Database/DatabaseContext.cs +++ b/Step.Database/DatabaseContext.cs @@ -66,6 +66,7 @@ namespace Step.Database using (FunctionsAccessController functionsAccess = new FunctionsAccessController()) { FunctionsAccessConfig = functionsAccess.FindAll(); + AllFunctionalityDisabled = functionsAccess.FindAllFunctionsAndDisableAll(); } } catch (MySql.Data.MySqlClient.MySqlException ex) diff --git a/Step.NC/NcHandler.cs b/Step.NC/NcHandler.cs index ad1c519b..210de57f 100644 --- a/Step.NC/NcHandler.cs +++ b/Step.NC/NcHandler.cs @@ -283,7 +283,7 @@ namespace Step.NC CmsError cmsError = numericalControl.NC_RProcessesNum(ref maxProcNumber); if (cmsError.errorCode != 0) return cmsError; - + PROC_STATUS status = PROC_STATUS.IDLE; // For each process get info for (ushort i = 1; i <= maxProcNumber; i++) { @@ -298,11 +298,12 @@ namespace Step.NC // Check if there are running process if (!processesData.isRunning) { - PROC_STATUS status = PROC_STATUS.IDLE; // Get process status cmsError = numericalControl.PROC_RStatus(i, ref status); - if (status == PROC_STATUS.RUN) + if (status == PROC_STATUS.RUN || status == PROC_STATUS.HOLD) processesData.isRunning = true; + else + status = PROC_STATUS.IDLE; } } diff --git a/Step/Listeners/SignalR/SignalRListener.cs b/Step/Listeners/SignalR/SignalRListener.cs index 38cb6413..e854a81a 100644 --- a/Step/Listeners/SignalR/SignalRListener.cs +++ b/Step/Listeners/SignalR/SignalRListener.cs @@ -1,4 +1,5 @@ using Microsoft.AspNet.SignalR; +using Step.Config; using Step.Controllers.SignalR; using Step.Model.DTOModels; using System.Collections.Generic; @@ -52,7 +53,7 @@ namespace Step.Listeners.SignalR LastProcessesData = new DTOProcessDataModel(); LastExpiredMaintenances = new List(); ; LastPowerOnData = new DTOPowerOnDataModel(); - LastRuntimeFunctionality = new List(); + LastRuntimeFunctionality = ServerConfig.AllFunctionalityDisabled; LastIsNcConnected = (bool)ncStatus; BroadcastData(); }