diff --git a/Step.Database/Controllers/UsersController.cs b/Step.Database/Controllers/UsersController.cs index 0c9bf4f3..33a98d64 100644 --- a/Step.Database/Controllers/UsersController.cs +++ b/Step.Database/Controllers/UsersController.cs @@ -1,6 +1,7 @@ using Step.Model.DatabaseModels; using Step.Model.DTOModels; using System; +using System.Collections.Generic; using System.Globalization; using System.Linq; using System.Web.Helpers; @@ -140,5 +141,21 @@ namespace Step.Database.Controllers dbCtx.SaveChanges(); } } + + public List GetUserList() + { + List userList = new List(); + + userList = dbCtx.Users.Select(x => new DTOMessageUserModel() + { + Id = x.UserId, + FirstName = x.FirstName, + LastName = x.LastName, + Username = x.Username + }) + .ToList(); + + return userList; + } } } \ No newline at end of file diff --git a/Step.Database/DatabaseContext.cs b/Step.Database/DatabaseContext.cs index 1595aad1..829791d7 100644 --- a/Step.Database/DatabaseContext.cs +++ b/Step.Database/DatabaseContext.cs @@ -36,6 +36,10 @@ namespace Step.Database public DbSet MagazinePositions { get; set; } public DbSet Queue { get; set; } + public DbSet AlarmDescriptions { get; set; } + public DbSet AlarmOccurrences { get; set; } + public DbSet AlarmUsers { get; set; } + // Create migration string public static string CONNECTION_STRING = "Server = " + "localhost" + "; Database=" + DATABASE_NAME + ";Uid=" + DATABASE_USER + ";Pwd=" + DATABASE_PWD + ";"; diff --git a/Step.Database/Migrations/201809181022557_InitMigration.resx b/Step.Database/Migrations/201809181022557_InitMigration.resx deleted file mode 100644 index 386025d7..00000000 --- a/Step.Database/Migrations/201809181022557_InitMigration.resx +++ /dev/null @@ -1,126 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 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 - - - dbo - - \ No newline at end of file diff --git a/Step.Database/Migrations/201809181022557_InitMigration.Designer.cs b/Step.Database/Migrations/201810090819267_InitMigration.Designer.cs similarity index 92% rename from Step.Database/Migrations/201809181022557_InitMigration.Designer.cs rename to Step.Database/Migrations/201810090819267_InitMigration.Designer.cs index 8418d773..f45e8a33 100644 --- a/Step.Database/Migrations/201809181022557_InitMigration.Designer.cs +++ b/Step.Database/Migrations/201810090819267_InitMigration.Designer.cs @@ -13,7 +13,7 @@ namespace Step.Database.Migrations string IMigrationMetadata.Id { - get { return "201809181022557_InitMigration"; } + get { return "201810090819267_InitMigration"; } } string IMigrationMetadata.Source diff --git a/Step.Database/Migrations/201809181022557_InitMigration.cs b/Step.Database/Migrations/201810090819267_InitMigration.cs similarity index 86% rename from Step.Database/Migrations/201809181022557_InitMigration.cs rename to Step.Database/Migrations/201810090819267_InitMigration.cs index 885ae5fc..cd00f5ba 100644 --- a/Step.Database/Migrations/201809181022557_InitMigration.cs +++ b/Step.Database/Migrations/201810090819267_InitMigration.cs @@ -7,6 +7,57 @@ namespace Step.Database.Migrations { public override void Up() { + CreateTable( + "dbo.alarm_description", + c => new + { + id = c.Int(nullable: false, identity: true), + title = c.String(unicode: false), + description = c.String(unicode: false), + }) + .PrimaryKey(t => t.id); + + CreateTable( + "dbo.alarm_occurrence", + c => new + { + id = c.Int(nullable: false, identity: true), + alarm_id = c.Int(), + type = c.Int(nullable: false), + processes = c.Int(nullable: false), + timestamp = c.DateTime(nullable: false, precision: 0), + }) + .PrimaryKey(t => t.id) + .ForeignKey("dbo.alarm_description", t => t.alarm_id) + .Index(t => t.alarm_id); + + CreateTable( + "dbo.alarm_user", + c => new + { + user_id = c.Int(nullable: false), + alarm_occurence_id = c.Int(nullable: false), + }) + .PrimaryKey(t => new { t.user_id, t.alarm_occurence_id }) + .ForeignKey("dbo.alarm_occurrence", t => t.alarm_occurence_id, cascadeDelete: true) + .ForeignKey("dbo.user", t => t.user_id, cascadeDelete: true) + .Index(t => t.user_id) + .Index(t => t.alarm_occurence_id); + + CreateTable( + "dbo.user", + c => new + { + id = c.Int(nullable: false, identity: true), + username = c.String(nullable: false, unicode: false), + first_name = c.String(unicode: false), + last_name = c.String(unicode: false), + password = c.String(unicode: false), + security_stamp = c.String(unicode: false), + language = c.String(unicode: false), + }) + .PrimaryKey(t => t.id); + CreateTable( "dbo.family", c => new @@ -138,20 +189,6 @@ namespace Step.Database.Migrations }) .PrimaryKey(t => t.id); - CreateTable( - "dbo.user", - c => new - { - id = c.Int(nullable: false, identity: true), - username = c.String(nullable: false, unicode: false), - first_name = c.String(unicode: false), - last_name = c.String(unicode: false), - password = c.String(unicode: false), - security_stamp = c.String(unicode: false), - language = c.String(unicode: false), - }) - .PrimaryKey(t => t.id); - CreateTable( "dbo.maintenance_file", c => new @@ -260,6 +297,9 @@ namespace Step.Database.Migrations DropForeignKey("dbo.tool", "shank_id", "dbo.shank"); DropForeignKey("dbo.shank", new[] { "magazine_id", "position_id" }, "dbo.magazine_position"); DropForeignKey("dbo.tool", "family_id", "dbo.family"); + DropForeignKey("dbo.alarm_user", "user_id", "dbo.user"); + DropForeignKey("dbo.alarm_user", "alarm_occurence_id", "dbo.alarm_occurrence"); + DropForeignKey("dbo.alarm_occurrence", "alarm_id", "dbo.alarm_description"); DropIndex("dbo.session", new[] { "machine_user_id" }); DropIndex("dbo.performed_maintenance", new[] { "maintenance" }); DropIndex("dbo.maintenance_note", new[] { "maintenance_id" }); @@ -272,13 +312,15 @@ namespace Step.Database.Migrations DropIndex("dbo.shank", new[] { "magazine_id", "position_id" }); DropIndex("dbo.tool", new[] { "shank_id" }); DropIndex("dbo.tool", new[] { "family_id" }); + DropIndex("dbo.alarm_user", new[] { "alarm_occurence_id" }); + DropIndex("dbo.alarm_user", new[] { "user_id" }); + DropIndex("dbo.alarm_occurrence", new[] { "alarm_id" }); DropTable("dbo.session"); DropTable("dbo.queue"); DropTable("dbo.performed_maintenance"); DropTable("dbo.maintenance_note"); DropTable("dbo.maintenance"); DropTable("dbo.maintenance_file"); - DropTable("dbo.user"); DropTable("dbo.role"); DropTable("dbo.machine_user"); DropTable("dbo.machine"); @@ -288,6 +330,10 @@ namespace Step.Database.Migrations DropTable("dbo.shank"); DropTable("dbo.tool"); DropTable("dbo.family"); + DropTable("dbo.user"); + DropTable("dbo.alarm_user"); + DropTable("dbo.alarm_occurrence"); + DropTable("dbo.alarm_description"); } } } diff --git a/Step.Database/Migrations/201810090819267_InitMigration.resx b/Step.Database/Migrations/201810090819267_InitMigration.resx new file mode 100644 index 00000000..078e57f6 --- /dev/null +++ b/Step.Database/Migrations/201810090819267_InitMigration.resx @@ -0,0 +1,126 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 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 + + + dbo + + \ No newline at end of file diff --git a/Step.Database/Step.Database.csproj b/Step.Database/Step.Database.csproj index ea54380b..0d596862 100644 --- a/Step.Database/Step.Database.csproj +++ b/Step.Database/Step.Database.csproj @@ -80,9 +80,9 @@ - - - 201809181022557_InitMigration.cs + + + 201810090819267_InitMigration.cs @@ -118,8 +118,8 @@ - - 201809181022557_InitMigration.cs + + 201810090819267_InitMigration.cs diff --git a/Step.Model/Constants.cs b/Step.Model/Constants.cs index 2873795d..0a703c9f 100644 --- a/Step.Model/Constants.cs +++ b/Step.Model/Constants.cs @@ -50,6 +50,18 @@ namespace Step.Model M = 3 } + public enum ALARM_SOURCE + { + NC = 0, + PLC = 1 + } + + public enum ALARM_TYPE + { + ERROR = 0, + WARNING = 1 + } + // Maintenances types public enum MAINTENANCE_TYPE { diff --git a/Step.Model/DTOModels/DTOAlarmsModel.cs b/Step.Model/DTOModels/DTOAlarmsModel.cs index 2c914f23..cf39861d 100644 --- a/Step.Model/DTOModels/DTOAlarmsModel.cs +++ b/Step.Model/DTOModels/DTOAlarmsModel.cs @@ -83,6 +83,21 @@ namespace Step.Model.DTOModels return result; } + public DTOAlarmsModel GetDifferences(DTOAlarmsModel newAlarms) + { + DTOAlarmsModel result = new DTOAlarmsModel(); + // Get nc alarms differences + result.NcAlarms = newAlarms.NcAlarms.Where(x => !NcAlarms.Contains(x as GenericAlarmModel)).ToList(); // Find not contained data in the old list + + // Get plc alarms differences + result.PlcAlarms = newAlarms.PlcAlarms.Where(x => !PlcAlarms.Contains(x as DTOPlcAlarmModel)).ToList(); // Find not contained data in the old list + + // Get plc alarms differences + result.ProcessAlarms = newAlarms.ProcessAlarms.Where(x => !ProcessAlarms.Contains(x as ProcessAlarmModel)).ToList(); // Find not contained data in the old list + + return result; + } + public override int GetHashCode() { return base.GetHashCode(); @@ -98,9 +113,7 @@ namespace Step.Model.DTOModels public override bool Equals(object obj) { - var item = obj as GenericAlarmModel; - - if (item == null) + if (!(obj is GenericAlarmModel item)) return false; if (item.Message != Message) @@ -124,9 +137,8 @@ namespace Step.Model.DTOModels public override bool Equals(object obj) { - var item = obj as ProcessAlarmModel; - if (item == null) + if (!(obj is ProcessAlarmModel item)) return false; if (!base.Equals(item)) @@ -151,9 +163,7 @@ namespace Step.Model.DTOModels public override bool Equals(object obj) { - var item = obj as DTOPlcAlarmModel; - - if (item == null) + if (!(obj is DTOPlcAlarmModel item)) return false; if (item.Id != Id) diff --git a/Step.Model/DatabaseModels/AlarmDescriptionsModel.cs b/Step.Model/DatabaseModels/AlarmDescriptionsModel.cs new file mode 100644 index 00000000..1fe77e57 --- /dev/null +++ b/Step.Model/DatabaseModels/AlarmDescriptionsModel.cs @@ -0,0 +1,24 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Step.Model.DatabaseModels +{ + [Table("alarm_description")] + public class AlarmDescriptionsModel + { + [Key] + [Column("id")] + public int AlarmId { get; set; } + + [Column("title")] + public string Title { get; set; } + + [Column("description")] + public string Description { get; set; } + } +} diff --git a/Step.Model/DatabaseModels/AlarmOccurrencesModel.cs b/Step.Model/DatabaseModels/AlarmOccurrencesModel.cs new file mode 100644 index 00000000..b06a8e79 --- /dev/null +++ b/Step.Model/DatabaseModels/AlarmOccurrencesModel.cs @@ -0,0 +1,35 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using static Step.Model.Constants; + +namespace Step.Model.DatabaseModels +{ + [Table("alarm_occurrence")] + public class AlarmOccurrencesModel + { + [Key] + [Column("id")] + public int AlarmOccurrenceId { get; set; } + + [Column("alarm_id")] + [ForeignKey("AlarmDescription")] + public int? AlarmDescriptionId { get; set; } + + [Column("source")] + public ALARM_SOURCE Source { get; set; } + + [Column("type")] + public ALARM_TYPE Type { get; set; } + + [Column("processes")] + public int Processes { get; set; } + + [Column("timestamp")] + public DateTime TimeStamp { get; set; } + + public virtual AlarmDescriptionsModel AlarmDescription { get; set; } + public List Users { get; set; } + } +} \ No newline at end of file diff --git a/Step.Model/DatabaseModels/AlarmUserModel.cs b/Step.Model/DatabaseModels/AlarmUserModel.cs new file mode 100644 index 00000000..c4a97bb3 --- /dev/null +++ b/Step.Model/DatabaseModels/AlarmUserModel.cs @@ -0,0 +1,26 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Step.Model.DatabaseModels +{ + [Table("alarm_user")] + public class AlarmUserModel + { + [Key, Column("user_id", Order = 0)] + public int UserId { get; set; } + + [Key, Column("alarm_occurence_id", Order = 1)] + public int AlarmOccurrenceId { get; set; } + + [ForeignKey("AlarmOccurrenceId")] + public virtual AlarmOccurrencesModel AlarmOccurrence { get; set; } + + [ForeignKey("UserId")] + public virtual UserModel User { get; set; } + } +} diff --git a/Step.Model/DatabaseModels/NcMagazinePositionModel.cs b/Step.Model/DatabaseModels/NcMagazinePositionModel.cs index 1f651fb0..55c75ca5 100644 --- a/Step.Model/DatabaseModels/NcMagazinePositionModel.cs +++ b/Step.Model/DatabaseModels/NcMagazinePositionModel.cs @@ -2,7 +2,6 @@ using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; using CMS_CORE_Library.Models; -using static CMS_CORE_Library.Models.NcMagazinePositionModel; namespace Step.Model.DatabaseModels { diff --git a/Step.Model/Step.Model.csproj b/Step.Model/Step.Model.csproj index c92eb66c..9a4dde40 100644 --- a/Step.Model/Step.Model.csproj +++ b/Step.Model/Step.Model.csproj @@ -71,6 +71,9 @@ + + + diff --git a/Step.NC/NcHandler.cs b/Step.NC/NcHandler.cs index ca5ca2b0..1fc54eba 100644 --- a/Step.NC/NcHandler.cs +++ b/Step.NC/NcHandler.cs @@ -28,11 +28,9 @@ namespace Step.NC { public Nc numericalControl; - public NcHandler() - { + public NcHandler() => // Choose NC numericalControl = SetNumericalControl(); - } public void Dispose() { @@ -104,7 +102,6 @@ namespace Step.NC if (cmsError.IsError()) return cmsError; - string jobFolderPath = JOB_TMP_DIRECTORY + "\\" + selectedProcess + "\\"; DTOJobModel model = SupportFunctions.ReadExtractedJobMetadata(selectedProcess); @@ -264,7 +261,6 @@ namespace Step.NC if (cmsError.IsError()) return cmsError; - // Activate updated program return numericalControl.FILES_WSetActiveProgram(selectedProcess, newFilePath, ref programData); } @@ -274,7 +270,7 @@ namespace Step.NC return numericalControl.FILES_WUploadJobFilesAndActivate(selectedProcess, JOB_TMP_DIRECTORY, JOB_MAIN_FILENAME); } } - + public CmsError UploadPartProgramAndAddToQueue(string localPath, string fileName, int reps, out DTOQueueModel queueItem) { queueItem = new DTOQueueModel(); @@ -340,7 +336,7 @@ namespace Step.NC // Set as finished actualItem.RemainingReps = 0; actualItem.Status = QUEUE_ITEM_STATUS.FINISHED; - + //while(PartProgramQueue[item.ProcessId].ElementAtOrDefault(QueueRunningIndexes[item.ProcessId] + 1) != null && !File.Exists(PartProgramQueue[item.ProcessId][QueueRunningIndexes[item.ProcessId]].AbsolutePath)) //{ // QueueRunningIndexes[item.ProcessId] += 1; @@ -352,7 +348,7 @@ namespace Step.NC // Check if file is a valid job if (SupportFunctions.IsValidJob(PartProgramQueue[item.ProcessId][QueueRunningIndexes[item.ProcessId]].AbsolutePath)) - { + { // Unpack job DTOJobModel job = SupportFunctions.UnpackJobAndReadMetadata(PartProgramQueue[item.ProcessId][QueueRunningIndexes[item.ProcessId]].AbsolutePath, item.ProcessId); // Load JOB to NC diff --git a/Step/Controllers/WebApi/UserController.cs b/Step/Controllers/WebApi/UserController.cs index 42c2708b..c054f25b 100644 --- a/Step/Controllers/WebApi/UserController.cs +++ b/Step/Controllers/WebApi/UserController.cs @@ -2,7 +2,9 @@ using Microsoft.AspNet.SignalR; using Step.Controllers.SignalR; using Step.Database.Controllers; using Step.Model.DatabaseModels; +using Step.Model.DTOModels; using System; +using System.Collections.Generic; using System.Globalization; using System.Linq; using System.Security.Claims; @@ -96,5 +98,25 @@ namespace Step.Controllers.WebApi return Ok(); } } + + [Route("list"), HttpGet] + [WebApiAuthorize(FunctionAccess = FUNCTIONALITY_NAMES.USER_FUNCTIONS, Action = ACTIONS.READ)] + public IHttpActionResult GetUserList() + { + // Validate user id + var identity = User.Identity as ClaimsIdentity; + var userId = identity.Claims.Where(c => c.Type == USER_ID_KEY).FirstOrDefault(); + + if (userId == null) + return Unauthorized(); + + using (UsersController usersController = new UsersController()) + { + // Update database with new language + List users = usersController.GetUserList(); + + return Ok(users); + } + } } } \ No newline at end of file diff --git a/Step/Listeners/Database/SignalRDatabaseHandler.cs b/Step/Listeners/Database/SignalRDatabaseHandler.cs index 286b3e67..003caa83 100644 --- a/Step/Listeners/Database/SignalRDatabaseHandler.cs +++ b/Step/Listeners/Database/SignalRDatabaseHandler.cs @@ -1,24 +1,18 @@ -using System; -using System.Collections.Generic; -using System.Diagnostics; -using System.Linq; -using System.Text; -using System.Threading; -using System.Threading.Tasks; -using Step.Database.Controllers; +using Step.Database.Controllers; using Step.Model.DatabaseModels; using Step.Model.DTOModels; using Step.Model.DTOModels.ToolModels; using Step.NC; using Step.Utils; -using TeamDev.SDK.MVVM; +using System.Collections.Generic; +using System.Linq; +using static Step.Listeners.SignalRStaticObjects; +using static Step.Model.Constants; namespace Step.Listeners.Database { public static class SignalRDatabaseHandler { - private static List LastPartProgramQueue = new List(); - public static void UpdateToolsData(object newData) { using (NcToolManagerController controller = new NcToolManagerController()) @@ -31,7 +25,7 @@ namespace Step.Listeners.Database if (data.UpdatedLives.Count != 0 || data.UpdatedStatus.Count != 0) { List dbTools = controller.FindTools(); - if(dbTools.Count > 0) + if (dbTools.Count > 0) { // Loop through new data foreach (var live in data.UpdatedLives) @@ -39,13 +33,14 @@ namespace Step.Listeners.Database // Find tool and update residual life var tmp = dbTools .Where(x => x.ToolId == live.Key) // Get tool by id - ?.Select(x => { + ?.Select(x => + { x.ResidualLife = (int)live.Value; // Update data return x; }) .FirstOrDefault(); - if(tmp != null) + if (tmp != null) updatedTools.Add(tmp); } @@ -53,7 +48,8 @@ namespace Step.Listeners.Database { var tmp = dbTools .Where(x => x.ToolId == status.Key) // Get tool by id - ?.Select(x => { + ?.Select(x => + { x.Status = status.Value; return x; }) @@ -76,29 +72,59 @@ namespace Step.Listeners.Database } } } - + public static void UpdateQueue(object queue) { List newQueue = queue as List; if (!LastPartProgramQueue.SequenceEqual(newQueue)) { - // Copy to static object - LastPartProgramQueue = new List(); - - foreach (var queueItem in newQueue) - { - DTOQueueModel tmp = new DTOQueueModel(); - SupportFunctions.CopyProperties(queueItem, tmp); - LastPartProgramQueue.Add(tmp); - } - - using (QueueController controller = new QueueController()) { controller.UpdateQueue(); } } } + + public static void UpdateAlarms(object alarmsObj) + { + DTOAlarmsModel alarms = alarmsObj as DTOAlarmsModel; + if (!LastAlarms.Equals(alarms)) + { + // Intersect old alarms data with new data + DTOAlarmsModel differences = LastAlarms.GetDifferences(alarms); + + // Add nc alarms + List alarmOccurrences = differences.NcAlarms.Select(x => new AlarmOccurrencesModel() + { + Type = ALARM_TYPE.ERROR, + Processes = 0, + TimeStamp = x.DateTime, + }).ToList(); + + // Add processes alarms + alarmOccurrences.AddRange(differences.ProcessAlarms.Select(x => new AlarmOccurrencesModel() + { + Type = ALARM_TYPE.ERROR, + Processes = x.Process, + TimeStamp = x.DateTime, + }).ToList()); + + // Add plc alarms + alarmOccurrences.AddRange(differences.PlcAlarms.Select(x => + { + int processesByte = 0; + x.Process.ForEach(y => processesByte |= (1 << y)); + return new AlarmOccurrencesModel() + { + AlarmDescriptionId = null, + Type = x.IsWarning ? ALARM_TYPE.WARNING : ALARM_TYPE.ERROR, + Processes = processesByte, + TimeStamp = x.DateTime, + }; + } + ).ToList()); + } + } } -} +} \ No newline at end of file diff --git a/Step/Listeners/SignalR/SignalRListener.cs b/Step/Listeners/SignalR/SignalRListener.cs index b594a5b1..d39c2394 100644 --- a/Step/Listeners/SignalR/SignalRListener.cs +++ b/Step/Listeners/SignalR/SignalRListener.cs @@ -9,27 +9,12 @@ using System.Collections.Generic; using System.Diagnostics; using System.Linq; using System.Threading; +using static Step.Listeners.SignalRStaticObjects; namespace Step.Listeners.SignalR { public static class SignalRListener { - private static DTOAlarmsModel LastAlarms = new DTOAlarmsModel(); - private static List LastRuntimeFunctionality = new List(); - private static List LastExpiredMaintenances = new List(); - private static DTOPowerOnDataModel LastPowerOnData = new DTOPowerOnDataModel(); - private static DTOProcessesDataModel LastProcessesData = new DTOProcessesDataModel(); - private static List LastUserSoftKeysData = new List(); - private static List LastNcSoftKeysData = new List(); - private static List LastHeadsData = new List(); - private static DTOAxesModel LastAxesPositions = new DTOAxesModel(); - private static List LastAxesNamesData = new List(); - private static DTOMagazineActionModel LastMagazineStatus = new DTOMagazineActionModel(); - private static DTOActiveProgramDataModel LastProgramData = new DTOActiveProgramDataModel(); - private static Dictionary LastNcMagazineIsActive = new Dictionary(); - private static List LastPartProgramQueue = new List(); - - private static bool LastIsNcConnected = false; public static void SendAlarmsToClient(DTOAlarmsModel newAlarmsData) { diff --git a/Step/Listeners/SignalRStaticObjects.cs b/Step/Listeners/SignalRStaticObjects.cs new file mode 100644 index 00000000..fccb115e --- /dev/null +++ b/Step/Listeners/SignalRStaticObjects.cs @@ -0,0 +1,26 @@ +using Step.Model.DTOModels; +using Step.Model.DTOModels.ToolModels; +using System.Collections.Generic; + +namespace Step.Listeners +{ + public static class SignalRStaticObjects + { + public static DTOAlarmsModel LastAlarms = new DTOAlarmsModel(); + public static List LastRuntimeFunctionality = new List(); + public static List LastExpiredMaintenances = new List(); + public static DTOPowerOnDataModel LastPowerOnData = new DTOPowerOnDataModel(); + public static DTOProcessesDataModel LastProcessesData = new DTOProcessesDataModel(); + public static List LastUserSoftKeysData = new List(); + public static List LastNcSoftKeysData = new List(); + public static List LastHeadsData = new List(); + public static DTOAxesModel LastAxesPositions = new DTOAxesModel(); + public static List LastAxesNamesData = new List(); + public static DTOMagazineActionModel LastMagazineStatus = new DTOMagazineActionModel(); + public static DTOActiveProgramDataModel LastProgramData = new DTOActiveProgramDataModel(); + public static Dictionary LastNcMagazineIsActive = new Dictionary(); + public static List LastPartProgramQueue = new List(); + + public static bool LastIsNcConnected = false; + } +} \ No newline at end of file diff --git a/Step/Step.csproj b/Step/Step.csproj index 420cb0cf..62ed54da 100644 --- a/Step/Step.csproj +++ b/Step/Step.csproj @@ -182,6 +182,7 @@ +