diff --git a/Libs/CMS_CORE_Library.dll b/Libs/CMS_CORE_Library.dll index 547e2ffc..e0b1b615 100644 Binary files a/Libs/CMS_CORE_Library.dll and b/Libs/CMS_CORE_Library.dll differ diff --git a/Step.Core/ThreadsFunctions.cs b/Step.Core/ThreadsFunctions.cs index 25315f77..6844a7d6 100644 --- a/Step.Core/ThreadsFunctions.cs +++ b/Step.Core/ThreadsFunctions.cs @@ -132,7 +132,7 @@ public static class ThreadsFunctions if (ncHandler.numericalControl.NC_IsConnected()) { // Get Data from NC - libraryError = ncHandler.GetProcessesData(out DTOProcessDataModel processesPPData); + libraryError = ncHandler.GetProcessesData(out DTOProcessesDataModel processesPPData); if (libraryError.errorCode != 0) ManageLibraryError(libraryError); else diff --git a/Step.Model/DTOModels/DTOAxesModel.cs b/Step.Model/DTOModels/DTOAxesModel.cs index 2125ed17..20678057 100644 --- a/Step.Model/DTOModels/DTOAxesModel.cs +++ b/Step.Model/DTOModels/DTOAxesModel.cs @@ -33,5 +33,10 @@ namespace Step.Model.DTOModels return base.Equals(obj); } + + public override int GetHashCode() + { + return base.GetHashCode(); + } } } \ No newline at end of file diff --git a/Step.Model/DTOModels/DTOHeadModel.cs b/Step.Model/DTOModels/DTOHeadModel.cs index 0f403dbc..0957ee60 100644 --- a/Step.Model/DTOModels/DTOHeadModel.cs +++ b/Step.Model/DTOModels/DTOHeadModel.cs @@ -32,6 +32,12 @@ if (OverrideEditable != item.OverrideEditable) return false; + if (IsActive != item.IsActive) + return false; + + if (IsSelected != item.IsSelected) + return false; + return true; } } diff --git a/Step.Model/DTOModels/DTOProcessDataModel.cs b/Step.Model/DTOModels/DTOProcessDataModel.cs index c968e7d1..67917f6c 100644 --- a/Step.Model/DTOModels/DTOProcessDataModel.cs +++ b/Step.Model/DTOModels/DTOProcessDataModel.cs @@ -4,22 +4,22 @@ using static CMS_CORE_Library.DataStructures; namespace Step.Model.DTOModels { - public class DTOProcessDataModel + public class DTOProcessesDataModel { public bool isRunning; public ushort selectedProcess; public byte selectedAxis; - public List processes; + public List processes; - public DTOProcessDataModel() + public DTOProcessesDataModel() { isRunning = false; - processes = new List(); + processes = new List(); } public override bool Equals(object obj) { - var item = obj as DTOProcessDataModel; + var item = obj as DTOProcessesDataModel; // Object is not a DTOProcessDataModel instance if (item == null) return false; @@ -45,4 +45,33 @@ namespace Step.Model.DTOModels return base.GetHashCode(); } } + + public class ProcessModel : ProcessDataModel + { + public override bool Equals(object obj) + { + var item = obj as ProcessModel; + + if (item == null) + return false; + + if (Id != item.Id) + return false; + + if (Type != item.Type || + IsInAlarm != item.IsInAlarm || + PartProgramName != item.PartProgramName || + Status != item.Status || + Visible != item.Visible || + Reps != item.Reps) + return false; + + return true; + } + + public override int GetHashCode() + { + return base.GetHashCode(); + } + } } \ No newline at end of file diff --git a/Step.NC/NcHandler.cs b/Step.NC/NcHandler.cs index 8472d122..eb9ed9d6 100644 --- a/Step.NC/NcHandler.cs +++ b/Step.NC/NcHandler.cs @@ -268,9 +268,9 @@ namespace Step.NC return cmsError; } - public CmsError GetProcessesData(out DTOProcessDataModel processesData) + public CmsError GetProcessesData(out DTOProcessesDataModel processesData) { - processesData = new DTOProcessDataModel(); + processesData = new DTOProcessesDataModel(); // Get NC max process number ushort maxProcNumber = 0; @@ -286,9 +286,17 @@ namespace Step.NC // Get process status cmsError = numericalControl.PROC_RStatusAndData(i, ref tmpProcPP); // if at least one process is in run, NC is running - // Add to list - processesData.processes.Add(tmpProcPP); + processesData.processes.Add(new ProcessModel() + { + Id = tmpProcPP.Id, + IsInAlarm = tmpProcPP.IsInAlarm, + PartProgramName = tmpProcPP.PartProgramName, + Reps = tmpProcPP.Reps, + Status = tmpProcPP.Status, + Type = tmpProcPP.Type, + Visible = tmpProcPP.Visible + }); // Check if there are running process if (!processesData.isRunning) diff --git a/Step/Listeners/SignalR/SignalRListener.cs b/Step/Listeners/SignalR/SignalRListener.cs index 123047f7..cd4a3d4c 100644 --- a/Step/Listeners/SignalR/SignalRListener.cs +++ b/Step/Listeners/SignalR/SignalRListener.cs @@ -16,7 +16,7 @@ namespace Step.Listeners.SignalR private static List LastRuntimeFunctionality = new List(); private static List LastExpiredMaintenances = new List(); private static DTOPowerOnDataModel LastPowerOnData = new DTOPowerOnDataModel(); - private static DTOProcessDataModel LastProcessesData = new DTOProcessDataModel(); + private static DTOProcessesDataModel LastProcessesData = new DTOProcessesDataModel(); private static List LastUserSoftKeysData = new List(); private static List LastNcSoftKeysData = new List(); private static List LastHeadsData = new List(); @@ -58,7 +58,7 @@ namespace Step.Listeners.SignalR { // Clear data and send to client LastAlarms = new DTOAlarmsModel(); - LastProcessesData = new DTOProcessDataModel(); + LastProcessesData = new DTOProcessesDataModel(); LastExpiredMaintenances = new List(); ; LastPowerOnData = new DTOPowerOnDataModel(); LastRuntimeFunctionality = ServerConfig.AllFunctionalityDisabled; @@ -86,7 +86,7 @@ namespace Step.Listeners.SignalR // Check if collections are equals if (!LastProcessesData.Equals(processesStatus)) { - LastProcessesData = processesStatus as DTOProcessDataModel; + LastProcessesData = processesStatus as DTOProcessesDataModel; // Send data to clients context.Clients.Group("ncData").processesData(processesStatus); }