diff --git a/Libs/CMS_CORE_Library.dll b/Libs/CMS_CORE_Library.dll index f4dafc19..bbaf7635 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 42ee1f30..7453559c 100644 --- a/Step.Core/ThreadsFunctions.cs +++ b/Step.Core/ThreadsFunctions.cs @@ -369,11 +369,8 @@ public static class ThreadsFunctions if (ncHandler.numericalControl.NC_IsConnected()) { - Stopwatch stopwatch = new Stopwatch(); - stopwatch.Start(); // Get Data from config and PLC libraryError = ncHandler.GetAxesPositionsByProcess(1, out DTOAxesModel axes); - Console.WriteLine("TEMPO" + stopwatch.ElapsedMilliseconds); } else TryNcConnection(); diff --git a/Step.Database/Controllers/NcToolManagerController.cs b/Step.Database/Controllers/NcToolManagerController.cs index 634ce4b5..1e526416 100644 --- a/Step.Database/Controllers/NcToolManagerController.cs +++ b/Step.Database/Controllers/NcToolManagerController.cs @@ -23,9 +23,9 @@ namespace Step.Database.Controllers dbCtx.Dispose(); } - public List FindFamilies() + public List FindFamilies() { - List families = dbCtx + List families = dbCtx .Families .Include("Tools") .ToList(); @@ -35,21 +35,21 @@ namespace Step.Database.Controllers public List GetFamilies() { - List dbFamilies = FindFamilies(); + List dbFamilies = FindFamilies(); return dbFamilies .Select(x => (DTONcFamilyModel)x) .ToList(); } - public NcToolModel FindTool(int toolId) + public DbNcToolModel FindTool(int toolId) { return dbCtx.Tools .Where(x => x.ToolId == toolId) .FirstOrDefault(); } - public NcShankModel FindShank(int shankId) + public DbNcShankModel FindShank(int shankId) { return dbCtx.Shanks .Include("Tools") @@ -57,7 +57,7 @@ namespace Step.Database.Controllers .FirstOrDefault(); } - public NcFamilyModel FindFamily(int familyId) + public DbNcFamilyModel FindFamily(int familyId) { return dbCtx .Families @@ -65,9 +65,9 @@ namespace Step.Database.Controllers .FirstOrDefault(); } - public List FindToolsWithDependencies() + public List FindToolsWithDependencies() { - List tools = dbCtx + List tools = dbCtx .Tools .Include("Family") .Include("Shank") @@ -76,9 +76,9 @@ namespace Step.Database.Controllers return tools; } - public List FindTools() + public List FindTools() { - List tools = dbCtx + List tools = dbCtx .Tools .ToList(); @@ -87,16 +87,16 @@ namespace Step.Database.Controllers public List GetTools() { - List dbTools = FindToolsWithDependencies(); + List dbTools = FindToolsWithDependencies(); return dbTools .Select(x => (DTONcToolModel)x) .ToList(); } - public List FindShanks() + public List FindShanks() { - List shanks = dbCtx + List shanks = dbCtx .Shanks .Include("MagazinePosition") .ToList(); @@ -107,7 +107,7 @@ namespace Step.Database.Controllers public List GetShanks() { // Get shank from database - List dbShanks = dbCtx + List dbShanks = dbCtx .Shanks .Include("Tools") .ToList(); @@ -131,7 +131,7 @@ namespace Step.Database.Controllers public DTONcShankModel GetShank(int shankId) { // Get shank from database - NcShankModel dbShank = dbCtx + DbNcShankModel dbShank = dbCtx .Shanks .Where(x => x.ShankId == shankId) .Include("Tools") @@ -143,16 +143,16 @@ namespace Step.Database.Controllers return dtoShanks; } - public List FindPositions() + public List FindPositions() { - List positions = dbCtx + List positions = dbCtx .MagazinePositions .ToList(); return positions; } - public List FindMagazinePositions(byte magId) + public List FindMagazinePositions(byte magId) { return dbCtx .MagazinePositions @@ -166,9 +166,9 @@ namespace Step.Database.Controllers // Get only magazine positions that match with magazineId List magPos = FindMagazinePositions(magId).Select(x => (DTONcMagazinePositionModel)x).ToList(); // Get&filter shanks by magazineId in order to get only mounted shanks in the current magazineId - List shanks = dbCtx.Shanks.Where(x => x.MagazineId == magId).ToList(); + List shanks = dbCtx.Shanks.Where(x => x.MagazineId == magId).ToList(); - foreach(NcShankModel shank in shanks) + foreach(DbNcShankModel shank in shanks) { // Populate magazinePosition shank Id magPos @@ -180,9 +180,9 @@ namespace Step.Database.Controllers return magPos; } - public NcMagazinePositionModel FindMagazinePosition(byte magId, byte posId) + public DbNcMagazinePositionModel FindMagazinePosition(byte magId, byte posId) { - NcMagazinePositionModel positions = dbCtx + DbNcMagazinePositionModel positions = dbCtx .MagazinePositions .Where(x => x.MagazineId == magId && x.PositionId == posId) .FirstOrDefault(); @@ -208,9 +208,9 @@ namespace Step.Database.Controllers return dtoShanks; } - public NcToolModel AddTool(DTONewNcToolModel dtoTool) + public DbNcToolModel AddTool(DTONewNcToolModel dtoTool) { - NcToolModel tool = (NcToolModel)dtoTool; + DbNcToolModel tool = (DbNcToolModel)dtoTool; dbCtx.Tools.Add(tool); dbCtx.SaveChanges(); @@ -221,12 +221,11 @@ namespace Step.Database.Controllers return tool; } - public NcToolModel UpdateTool(int toolId, DTONewNcToolModel dtoTool) + public DbNcToolModel UpdateTool(int toolId, DTONewNcToolModel dtoTool) { - NcToolModel tool = FindTool(toolId); + DbNcToolModel tool = FindTool(toolId); // Update db model tool.FamilyId = dtoTool.FamilyId; - tool.Type = dtoTool.Type; tool.OffsetLength = dtoTool.OffsetLength; tool.ResidualLife = dtoTool.ResidualLife; tool.ResidualRevive = dtoTool.ResidualRevive; @@ -241,20 +240,20 @@ namespace Step.Database.Controllers public void DeleleTool(int toolId) { - NcToolModel tool = FindTool(toolId); + DbNcToolModel tool = FindTool(toolId); DeleteTool(tool); } - public void DeleteTool(NcToolModel tool) + public void DeleteTool(DbNcToolModel tool) { dbCtx.Tools.Remove(tool); dbCtx.SaveChanges(); } - public NcFamilyModel AddFamily(DTONewNcFamilyModel family) + public DbNcFamilyModel AddFamily(DTONewNcFamilyModel family) { - NcFamilyModel dbFamily = (NcFamilyModel)family; + DbNcFamilyModel dbFamily = (DbNcFamilyModel)family; dbCtx.Families.Add(dbFamily); dbCtx.SaveChanges(); @@ -263,10 +262,10 @@ namespace Step.Database.Controllers return dbFamily; } - public NcFamilyModel UpdateFamily(int familyId, DTONewNcFamilyModel family) + public DbNcFamilyModel UpdateFamily(int familyId, DTONewNcFamilyModel family) { - NcFamilyModel dbFamily = FindFamily(familyId); - dbFamily = (NcFamilyModel)family; + DbNcFamilyModel dbFamily = FindFamily(familyId); + dbFamily = (DbNcFamilyModel)family; dbCtx.SaveChanges(); dbCtx.Families.Attach(dbFamily); @@ -274,7 +273,7 @@ namespace Step.Database.Controllers return dbFamily; } - public void DeleteFamily(NcFamilyModel family) + public void DeleteFamily(DbNcFamilyModel family) { dbCtx.Families.Attach(family); dbCtx.Families.Remove(family); @@ -282,9 +281,9 @@ namespace Step.Database.Controllers dbCtx.SaveChanges(); } - public NcShankModel AddShank(DTONewNcShankModel shank) + public DbNcShankModel AddShank(DTONewNcShankModel shank) { - NcShankModel dbShank = (NcShankModel)shank; + DbNcShankModel dbShank = (DbNcShankModel)shank; dbCtx.Shanks.Add(dbShank); dbCtx.SaveChanges(); @@ -294,14 +293,14 @@ namespace Step.Database.Controllers return dbShank; } - public NcShankModel UpdateShank(int shankId, DTONewNcShankModel dtoShank) + public DbNcShankModel UpdateShank(int shankId, DTONewNcShankModel dtoShank) { - NcShankModel ncShank = FindShank(shankId); + DbNcShankModel ncShank = FindShank(shankId); return UpdateShank(ncShank, dtoShank); } - public NcShankModel UpdateShank(NcShankModel dbShank, DTONewNcShankModel dtoShank) + public DbNcShankModel UpdateShank(DbNcShankModel dbShank, DTONewNcShankModel dtoShank) { dbShank.MagazinePositionType = dtoShank.MagazinePositionType; @@ -314,11 +313,11 @@ namespace Step.Database.Controllers public void DeleteShank(int shankId) { - NcShankModel shank = FindShank(shankId); + DbNcShankModel shank = FindShank(shankId); DeleteShank(shank); } - public void DeleteShank(NcShankModel shank) + public void DeleteShank(DbNcShankModel shank) { dbCtx.Shanks.Attach(shank); dbCtx.Shanks.Remove(shank); @@ -326,7 +325,7 @@ namespace Step.Database.Controllers dbCtx.SaveChanges(); } - public NcMagazinePositionModel UpdatePosition(NcMagazinePositionModel dbPos, DTONcMagazinePositionModel dtoPos) + public DbNcMagazinePositionModel UpdatePosition(DbNcMagazinePositionModel dbPos, DTONcMagazinePositionModel dtoPos) { dbPos.Type = dtoPos.Type; dbPos.Disabled = dtoPos.Disabled; @@ -336,10 +335,10 @@ namespace Step.Database.Controllers return dbPos; } - public NcMagazinePositionModel LoadShankInMagazine(byte magazineId, byte positionId, NcShankModel shank) + public DbNcMagazinePositionModel LoadShankInMagazine(byte magazineId, byte positionId, DbNcShankModel shank) { dbCtx.Shanks.Attach(shank); - + // Set ids with new positions shank.MagazineId = magazineId; shank.PositionId = positionId; @@ -348,10 +347,10 @@ namespace Step.Database.Controllers return FindMagazinePosition(magazineId, positionId); } - public DTONcShankModel UnloadShankInMagazine(byte magazineId, byte positionId, NcShankModel shank) + public DTONcShankModel UnloadShankInMagazine(byte magazineId, byte positionId, DbNcShankModel shank) { dbCtx.Shanks.Attach(shank); - + // set id to null shank.MagazineId = null; shank.PositionId = null; @@ -360,10 +359,10 @@ namespace Step.Database.Controllers return (DTONcShankModel)shank; } - public DTONcShankModel LoadToolIntoShank(NcToolModel tool, int shankId) + public DTONcShankModel LoadToolIntoShank(DbNcToolModel tool, int shankId) { dbCtx.Tools.Attach(tool); - + // Set tool shankId tool.ShankId = shankId; dbCtx.SaveChanges(); @@ -371,11 +370,11 @@ namespace Step.Database.Controllers return GetShank(shankId); } - public DTONcShankModel UnloadToolFromShank(NcToolModel tool) + public DTONcShankModel UnloadToolFromShank(DbNcToolModel tool) { dbCtx.Tools.Attach(tool); int? shankId = tool.ShankId; - + // Set to null shankId tool.ShankId = null; dbCtx.SaveChanges(); diff --git a/Step.Database/DatabaseContext.cs b/Step.Database/DatabaseContext.cs index 51e2bdb1..7bd0c8e2 100644 --- a/Step.Database/DatabaseContext.cs +++ b/Step.Database/DatabaseContext.cs @@ -29,11 +29,11 @@ namespace Step.Database public DbSet MaintenancesNotes { get; set; } public DbSet MaintenanceFiles { get; set; } - public DbSet Families { get; set; } - public DbSet Shanks { get; set; } + public DbSet Families { get; set; } + public DbSet Shanks { get; set; } // public DbSet Offsets { get; set; } - public DbSet Tools { get; set; } - public DbSet MagazinePositions { get; set; } + public DbSet Tools { get; set; } + public DbSet MagazinePositions { 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.Model/DTOModels/ToolModels/DTONcFamilyModel.cs b/Step.Model/DTOModels/ToolModels/DTONcFamilyModel.cs index 294819a8..ca595a30 100644 --- a/Step.Model/DTOModels/ToolModels/DTONcFamilyModel.cs +++ b/Step.Model/DTOModels/ToolModels/DTONcFamilyModel.cs @@ -35,7 +35,7 @@ namespace Step.Model.DTOModels.ToolModels public byte CoolingByte { get; set; } [Required] - public short MaxSpeed { get; set; } + public int MaxSpeed { get; set; } [Required] public byte MaxLoad { get; set; } @@ -62,9 +62,9 @@ namespace Step.Model.DTOModels.ToolModels public int NominalLife { get; set; } [Required] - public short ReviveDelta { get; set; } + public int ReviveDelta { get; set; } - public static explicit operator DTONewNcFamilyModel(NcFamilyModel obj) + public static explicit operator DTONewNcFamilyModel(DbNcFamilyModel obj) { return new DTONcFamilyModel() { @@ -90,9 +90,9 @@ namespace Step.Model.DTOModels.ToolModels }; } - public static explicit operator NcFamilyModel(DTONewNcFamilyModel obj) + public static explicit operator DbNcFamilyModel(DTONewNcFamilyModel obj) { - return new NcFamilyModel() + return new DbNcFamilyModel() { Name = obj.Name, Type = obj.Type, @@ -122,7 +122,7 @@ namespace Step.Model.DTOModels.ToolModels public List Tools { get; set; } - public static explicit operator DTONcFamilyModel(NcFamilyModel obj) + public static explicit operator DTONcFamilyModel(DbNcFamilyModel obj) { List tools = new List(); @@ -157,9 +157,9 @@ namespace Step.Model.DTOModels.ToolModels }; } - public static explicit operator NcFamilyModel(DTONcFamilyModel obj) + public static explicit operator DbNcFamilyModel(DTONcFamilyModel obj) { - return new NcFamilyModel() + return new DbNcFamilyModel() { FamilyId = obj.Id, Name = obj.Name, diff --git a/Step.Model/DTOModels/ToolModels/DTONcMagazinePositionModel.cs b/Step.Model/DTOModels/ToolModels/DTONcMagazinePositionModel.cs index c829a004..bd0aac05 100644 --- a/Step.Model/DTOModels/ToolModels/DTONcMagazinePositionModel.cs +++ b/Step.Model/DTOModels/ToolModels/DTONcMagazinePositionModel.cs @@ -22,7 +22,7 @@ namespace Step.Model.DTOModels.ToolModels public int? ShankId { get; set; } - public static explicit operator DTONcMagazinePositionModel(NcMagazinePositionModel obj) + public static explicit operator DTONcMagazinePositionModel(DbNcMagazinePositionModel obj) { return new DTONcMagazinePositionModel() { @@ -33,9 +33,9 @@ namespace Step.Model.DTOModels.ToolModels }; } - public static explicit operator NcMagazinePositionModel(DTONcMagazinePositionModel obj) + public static explicit operator DbNcMagazinePositionModel(DTONcMagazinePositionModel obj) { - return new NcMagazinePositionModel() + return new DbNcMagazinePositionModel() { MagazineId = obj.MagazineId, PositionId = obj.PositionId, diff --git a/Step.Model/DTOModels/ToolModels/DTONcShankModel.cs b/Step.Model/DTOModels/ToolModels/DTONcShankModel.cs index 2a99cadf..20460c0e 100644 --- a/Step.Model/DTOModels/ToolModels/DTONcShankModel.cs +++ b/Step.Model/DTOModels/ToolModels/DTONcShankModel.cs @@ -11,23 +11,23 @@ namespace Step.Model.DTOModels.ToolModels public class DTONewNcShankModel { [Required] - public short? Balluf { get; set; } + public ushort? Balluf { get; set; } [Required] public byte MagazinePositionType { get; set; } - public static explicit operator DTONewNcShankModel(NcShankModel obj) + public static explicit operator DTONewNcShankModel(DbNcShankModel obj) { return new DTONewNcShankModel() { - Balluf = obj.Balluf, + Balluf = (ushort)obj.Balluf, MagazinePositionType = obj.MagazinePositionType }; } - public static explicit operator NcShankModel(DTONewNcShankModel obj) + public static explicit operator DbNcShankModel(DTONewNcShankModel obj) { - return new NcShankModel() + return new DbNcShankModel() { Balluf = obj.Balluf, MagazinePositionType = obj.MagazinePositionType @@ -47,7 +47,7 @@ namespace Step.Model.DTOModels.ToolModels public List Tools { get; set; } - public static explicit operator DTONcShankModel(NcShankModel obj) + public static explicit operator DTONcShankModel(DbNcShankModel obj) { List tools = new List(); @@ -60,7 +60,7 @@ namespace Step.Model.DTOModels.ToolModels return new DTONcShankModel() { Id = obj.ShankId, - Balluf = obj.Balluf, + Balluf = (ushort)obj.Balluf, MagazinePositionType = obj.MagazinePositionType, MagazineId = obj.MagazineId, PositionId = obj.PositionId, @@ -68,9 +68,9 @@ namespace Step.Model.DTOModels.ToolModels }; } - public static explicit operator NcShankModel(DTONcShankModel obj) + public static explicit operator DbNcShankModel(DTONcShankModel obj) { - return new NcShankModel() + return new DbNcShankModel() { ShankId = obj.Id, Balluf = obj.Balluf, diff --git a/Step.Model/DTOModels/ToolModels/DTONcToolModel.cs b/Step.Model/DTOModels/ToolModels/DTONcToolModel.cs index f7891c53..51c4e1bd 100644 --- a/Step.Model/DTOModels/ToolModels/DTONcToolModel.cs +++ b/Step.Model/DTOModels/ToolModels/DTONcToolModel.cs @@ -8,16 +8,13 @@ namespace Step.Model.DTOModels.ToolModels public class DTONcTool { [Required] - public byte Type { get; set; } + public int OffsetLength { get; set; } [Required] - public short OffsetLength { get; set; } + public int ResidualLife { get; set; } [Required] - public short ResidualLife { get; set; } - - [Required] - public short ResidualRevive { get; set; } + public int ResidualRevive { get; set; } [Required] // Foreign keys @@ -25,26 +22,24 @@ namespace Step.Model.DTOModels.ToolModels public int? ShankId { get; set; } - public static explicit operator DTONcTool(NcToolModel obj) + public static explicit operator DTONcTool(DbNcToolModel obj) { return new DTONcTool() { FamilyId = obj.FamilyId, ShankId = obj.ShankId == null ? 0 : obj.ShankId.Value, - Type = obj.Type, OffsetLength = obj.OffsetLength, ResidualLife = obj.ResidualLife, ResidualRevive = obj.ResidualRevive }; } - public static explicit operator NcToolModel(DTONcTool obj) + public static explicit operator DbNcToolModel(DTONcTool obj) { - return new NcToolModel() + return new DbNcToolModel() { FamilyId = obj.FamilyId, ShankId = obj.ShankId, - Type = obj.Type, OffsetLength = obj.OffsetLength, ResidualLife = obj.ResidualLife, ResidualRevive = obj.ResidualRevive @@ -62,28 +57,26 @@ namespace Step.Model.DTOModels.ToolModels public OffsetModel Offset3 { get; set; } - public static explicit operator DTONcToolModel(NcToolModel obj) + public static explicit operator DTONcToolModel(DbNcToolModel obj) { return new DTONcToolModel() { Id = obj.ToolId, FamilyId = obj.FamilyId, ShankId = obj.ShankId == null ? 0 : obj.ShankId.Value, - Type = obj.Type, OffsetLength = obj.OffsetLength, ResidualLife = obj.ResidualLife, ResidualRevive = obj.ResidualRevive }; } - public static explicit operator NcToolModel(DTONcToolModel obj) + public static explicit operator DbNcToolModel(DTONcToolModel obj) { - return new NcToolModel() + return new DbNcToolModel() { ToolId = obj.Id, FamilyId = obj.FamilyId, ShankId = obj.ShankId, - Type = obj.Type, OffsetLength = obj.OffsetLength, ResidualLife = obj.ResidualLife, ResidualRevive = obj.ResidualRevive @@ -99,13 +92,12 @@ namespace Step.Model.DTOModels.ToolModels public int? OffsetId3 { get; set; } - public static explicit operator DTONewNcToolModel(NcToolModel obj) + public static explicit operator DTONewNcToolModel(DbNcToolModel obj) { return new DTONewNcToolModel() { FamilyId = obj.FamilyId, ShankId = obj.ShankId == null ? 0 : obj.ShankId.Value, - Type = obj.Type, OffsetLength = obj.OffsetLength, ResidualLife = obj.ResidualLife, ResidualRevive = obj.ResidualRevive, @@ -115,13 +107,12 @@ namespace Step.Model.DTOModels.ToolModels }; } - public static explicit operator NcToolModel(DTONewNcToolModel obj) + public static explicit operator DbNcToolModel(DTONewNcToolModel obj) { - return new NcToolModel() + return new DbNcToolModel() { FamilyId = obj.FamilyId, ShankId = obj.ShankId, - Type = obj.Type, OffsetLength = obj.OffsetLength, ResidualLife = obj.ResidualLife, ResidualRevive = obj.ResidualRevive, diff --git a/Step.Model/DatabaseModels/NcFamilyModel.cs b/Step.Model/DatabaseModels/NcFamilyModel.cs index 529abfda..803698bd 100644 --- a/Step.Model/DatabaseModels/NcFamilyModel.cs +++ b/Step.Model/DatabaseModels/NcFamilyModel.cs @@ -1,11 +1,12 @@ using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; +using static CMS_CORE_Library.DataStructures; namespace Step.Model.DatabaseModels { [Table("family")] - public class NcFamilyModel + public class DbNcFamilyModel { [Key] [Column("id")] @@ -36,7 +37,7 @@ namespace Step.Model.DatabaseModels public byte CoolingByte { get; set; } [Column("max_speed")] - public short MaxSpeed { get; set; } + public int MaxSpeed { get; set; } [Column("max_load")] public byte MaxLoad { get; set; } @@ -63,8 +64,32 @@ namespace Step.Model.DatabaseModels public int NominalLife { get; set; } [Column("revive_delta")] - public short ReviveDelta { get; set; } + public int ReviveDelta { get; set; } - public List Tools { get; set; } + public List Tools { get; set; } + + public static explicit operator NcFamilyModel(DbNcFamilyModel obj) + { + return new NcFamilyModel() + { + Id = (ushort)obj.FamilyId, + Type = obj.Type, + RightSize = obj.RightSize, + LeftSize = obj.LeftSize, + TcpTable = obj.TcpTable, + Gamma = obj.Gamma, + CoolingByte = obj.CoolingByte, + RotationType = obj.RotationType, + MaxLoad = obj.MaxLoad, + MaxSpeed = (ushort)obj.MaxSpeed, + MinLoadPctAutoload = obj.MinLoadPctAutoload, + MaxLoadPctAutoload = obj.MaxLoadDynamicCompensation, + MinLoadDynamicCompensation = obj.MinLoadDynamicCompensation, + MaxLoadDynamicCompensation = obj.MaxLoadDynamicCompensation, + LifeType = obj.LifeType, + NominalLife = (uint)obj.NominalLife, + ReviveDelta = (ushort)obj.ReviveDelta + }; + } } } \ No newline at end of file diff --git a/Step.Model/DatabaseModels/NcMagazinePositionModel.cs b/Step.Model/DatabaseModels/NcMagazinePositionModel.cs index 3d79d95b..aebd10be 100644 --- a/Step.Model/DatabaseModels/NcMagazinePositionModel.cs +++ b/Step.Model/DatabaseModels/NcMagazinePositionModel.cs @@ -1,10 +1,11 @@ using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; +using static CMS_CORE_Library.DataStructures; namespace Step.Model.DatabaseModels { [Table("magazine_position")] - public class NcMagazinePositionModel + public class DbNcMagazinePositionModel { [Key, Column("magazine_id", Order = 0)] public byte MagazineId { get; set; } @@ -17,5 +18,16 @@ namespace Step.Model.DatabaseModels [Column("disabled")] public bool Disabled { get; set; } + + public static explicit operator NcMagazinePositionModel(DbNcMagazinePositionModel obj) + { + return new NcMagazinePositionModel() + { + MagazineId = obj.MagazineId, + PositionId = obj.PositionId, + Disabled = obj.Disabled ? (byte)1 : (byte)0, + Type = obj.Type + }; + } } } diff --git a/Step.Model/DatabaseModels/NcShankModel.cs b/Step.Model/DatabaseModels/NcShankModel.cs index cd783a8e..5f60a73c 100644 --- a/Step.Model/DatabaseModels/NcShankModel.cs +++ b/Step.Model/DatabaseModels/NcShankModel.cs @@ -1,18 +1,19 @@ using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; +using static CMS_CORE_Library.DataStructures; namespace Step.Model.DatabaseModels { [Table("shank")] - public class NcShankModel + public class DbNcShankModel { [Key] [Column("id")] public int ShankId { get; set; } [Column("balluf")] - public short? Balluf { get; set; } + public int? Balluf { get; set; } [Column("magazine_position_type")] public byte MagazinePositionType { get; set; } @@ -23,8 +24,20 @@ namespace Step.Model.DatabaseModels [ForeignKey("MagazinePosition"), Column("position_id", Order = 1)] public byte? PositionId { get; set; } - public NcMagazinePositionModel MagazinePosition { get; set; } + public DbNcMagazinePositionModel MagazinePosition { get; set; } - public List Tools { get; set; } + public List Tools { get; set; } + + public static explicit operator NcShankModel(DbNcShankModel obj) + { + return new NcShankModel() + { + Id = obj.ShankId, + Balluf = obj.Balluf == null ? (ushort)0 : (ushort)obj.Balluf.Value, + MagazineId = obj.MagazineId == null ? (byte)0 : obj.MagazineId.Value, + PositionId = obj.PositionId == null ? (byte)0 : obj.PositionId.Value, + MagazinePositionType = obj.MagazinePositionType, + }; + } } } \ No newline at end of file diff --git a/Step.Model/DatabaseModels/NcToolModel.cs b/Step.Model/DatabaseModels/NcToolModel.cs index f2da6679..59030a62 100644 --- a/Step.Model/DatabaseModels/NcToolModel.cs +++ b/Step.Model/DatabaseModels/NcToolModel.cs @@ -1,26 +1,24 @@ using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; +using static CMS_CORE_Library.DataStructures; namespace Step.Model.DatabaseModels { [Table("tool")] - public class NcToolModel + public class DbNcToolModel { [Key] [Column("id")] public int ToolId { get; set; } - [Column("type")] - public byte Type { get; set; } - [Column("offset_length")] - public short OffsetLength { get; set; } + public int OffsetLength { get; set; } [Column("residual_life")] - public short ResidualLife { get; set; } + public int ResidualLife { get; set; } [Column("residual_revive")] - public short ResidualRevive { get; set; } + public int ResidualRevive { get; set; } // Foreign keys [Column("family_id")] @@ -42,7 +40,23 @@ namespace Step.Model.DatabaseModels [Column("offsetId3")] public int? OffsetId3 { get; set; } - public virtual NcFamilyModel Family { get; set; } - public virtual NcShankModel Shank { get; set; } + public virtual DbNcFamilyModel Family { get; set; } + public virtual DbNcShankModel Shank { get; set; } + + public static explicit operator NcToolModel(DbNcToolModel obj) + { + return new NcToolModel() + { + Id = (ushort)obj.ToolId, + FamilyId = obj.FamilyId, + OffsetLength = (ushort)obj.OffsetLength, + ResidualLife = (ushort)obj.ResidualLife, + ResidualRevive = (ushort)obj.ResidualRevive, + ShankId = obj.ShankId == null ? 0 : obj.ShankId.Value, + OffsetId1 = obj.OffsetId1 == null ? 0 : obj.OffsetId1.Value, + OffsetId2 = obj.OffsetId2 == null ? 0 : obj.OffsetId2.Value, + OffsetId3 = obj.OffsetId3 == null ? 0 : obj.OffsetId3.Value + }; + } } } \ No newline at end of file diff --git a/Step.NC/NcHandler.cs b/Step.NC/NcHandler.cs index 2a85439c..6eabd345 100644 --- a/Step.NC/NcHandler.cs +++ b/Step.NC/NcHandler.cs @@ -11,6 +11,7 @@ using Step.Model.DTOModels.ToolModels; using Step.Utils; using System; using System.Collections.Generic; +using System.Diagnostics; using System.Globalization; using System.Linq; using static CMS_CORE_Library.DataStructures; @@ -860,9 +861,9 @@ namespace Step.NC using (NcToolManagerController toolsManager = new NcToolManagerController()) { - List tools = toolsManager.FindToolsWithDependencies(); + List tools = toolsManager.FindToolsWithDependencies(); - foreach(NcToolModel tool in tools) + foreach(DbNcToolModel tool in tools) { DTONcToolModel dtoTool = (DTONcToolModel)tool; @@ -875,7 +876,7 @@ namespace Step.NC } } - public CmsError GetToolData(NcToolModel tool, ref DTONcToolModel dtoTool) + public CmsError GetToolData(DbNcToolModel tool, ref DTONcToolModel dtoTool) { dtoTool = (DTONcToolModel)tool; @@ -884,6 +885,7 @@ namespace Step.NC if (tool.OffsetId1 != null && tool.OffsetId1 != 0) { + // Read first offset data cmsError = numericalControl.TOOLS_ROffset((short)tool.OffsetId1, ref offset); if (cmsError.IsError()) return cmsError; @@ -892,6 +894,7 @@ namespace Step.NC } if (tool.OffsetId2 != null && tool.OffsetId2 != 0) { + // Read second offset data cmsError = numericalControl.TOOLS_ROffset((short)tool.OffsetId2, ref offset); if (cmsError.IsError()) return cmsError; @@ -900,6 +903,7 @@ namespace Step.NC } if (tool.OffsetId3 != null && tool.OffsetId3 != 0) { + // Read third offset data cmsError = numericalControl.TOOLS_ROffset((short)tool.OffsetId3, ref offset); if (cmsError.IsError()) return cmsError; @@ -1118,7 +1122,7 @@ namespace Step.NC { using (NcToolManagerController toolsManager = new NcToolManagerController()) { - NcToolModel ncTool = toolsManager.AddTool(tool); + DbNcToolModel ncTool = toolsManager.AddTool(tool); DTONcToolModel dtoTool = new DTONcToolModel(); GetToolData(ncTool, ref dtoTool); @@ -1132,7 +1136,7 @@ namespace Step.NC using (NcToolManagerController toolsManager = new NcToolManagerController()) { // Update Tool - NcToolModel ncTool = toolsManager.UpdateTool(toolId, dtoTool); + DbNcToolModel ncTool = toolsManager.UpdateTool(toolId, dtoTool); DTONcToolModel toolWithOffset = new DTONcToolModel(); // Populate tool offset @@ -1174,7 +1178,7 @@ namespace Step.NC } } - public DTONcMagazinePositionModel UpdateMagazinePosition(NcMagazinePositionModel dbPos, DTONcMagazinePositionModel dtoPos) + public DTONcMagazinePositionModel UpdateMagazinePosition(DbNcMagazinePositionModel dbPos, DTONcMagazinePositionModel dtoPos) { using (NcToolManagerController toolsManager = new NcToolManagerController()) { @@ -1182,7 +1186,7 @@ namespace Step.NC } } - public void DeleteNcTool(NcToolModel tool) + public void DeleteNcTool(DbNcToolModel tool) { using (NcToolManagerController toolsManager = new NcToolManagerController()) { @@ -1190,7 +1194,7 @@ namespace Step.NC } } - public void DeleteNcShank(NcShankModel shank) + public void DeleteNcShank(DbNcShankModel shank) { using (NcToolManagerController toolsManager = new NcToolManagerController()) { @@ -1198,7 +1202,7 @@ namespace Step.NC } } - public void DeleteNcFamily(NcFamilyModel family) + public void DeleteNcFamily(DbNcFamilyModel family) { using (NcToolManagerController toolsManager = new NcToolManagerController()) { @@ -1206,7 +1210,7 @@ namespace Step.NC } } - public DTONcMagazinePositionModel LoadToolInMagazine(byte magazineId, byte positionId, NcShankModel shank) + public DTONcMagazinePositionModel LoadToolInMagazine(byte magazineId, byte positionId, DbNcShankModel shank) { using (NcToolManagerController toolsManager = new NcToolManagerController()) { @@ -1219,7 +1223,7 @@ namespace Step.NC } } - public DTONcShankModel UnloadToolInMagazine(byte magazineId, byte positionId, NcShankModel shank) + public DTONcShankModel UnloadToolInMagazine(byte magazineId, byte positionId, DbNcShankModel shank) { using (NcToolManagerController toolsManager = new NcToolManagerController()) { @@ -1227,7 +1231,7 @@ namespace Step.NC } } - public DTONcShankModel LoadIntoShank(NcToolModel tool, int shankId) + public DTONcShankModel LoadIntoShank(DbNcToolModel tool, int shankId) { using (NcToolManagerController toolsManager = new NcToolManagerController()) { @@ -1235,7 +1239,7 @@ namespace Step.NC } } - public DTONcShankModel UnloadIntoShank(NcToolModel tool) + public DTONcShankModel UnloadIntoShank(DbNcToolModel tool) { using (NcToolManagerController toolsManager = new NcToolManagerController()) { @@ -1250,6 +1254,54 @@ namespace Step.NC public CmsError StopEdit() { + using (NcToolManagerController toolsManager = new NcToolManagerController()) + { + Stopwatch sw = new Stopwatch(); + sw.Start(); + // Get mounted shanks + List shanks = toolsManager + .FindShanks() + .Where(x => x.MagazineId != null) + .Select(x => (NcShankModel)x) + .ToList(); + + CmsError cmsError = numericalControl.TOOLS_WUpdateShanks(shanks); + if (cmsError.IsError()) + return cmsError; + + // Get magazine positions + List positions = toolsManager.FindPositions() + .Select(x => (NcMagazinePositionModel)x) + .ToList(); + cmsError = numericalControl.TOOLS_WUpdateMagazinePositions(positions); + if (cmsError.IsError()) + return cmsError; + + // Get tools + List tools = toolsManager + .FindTools() + .Select(x => (NcToolModel)x) + .Where(x => shanks.Any(y => y.Id == x.ShankId)) // Find only mounted tools + .ToList(); + + // Update tools + cmsError = numericalControl.TOOLS_WUpdateTools(tools); + if (cmsError.IsError()) + return cmsError; + + List families = toolsManager + .FindFamilies() + .Select(x => (NcFamilyModel)x) + .Where(x => tools.Any(y => y.FamilyId == x.Id)) // Find only families of mounted tools + .ToList(); + // Update families + cmsError = numericalControl.TOOLS_WUpdateFamilies(families); + if (cmsError.IsError()) + return cmsError; + + Console.WriteLine(sw.ElapsedMilliseconds); + } + return numericalControl.TOOLS_WStopEdit(); } diff --git a/Step/Controllers/WebApi/NcToolManagerController.cs b/Step/Controllers/WebApi/NcToolManagerController.cs index c900a420..11be12eb 100644 --- a/Step/Controllers/WebApi/NcToolManagerController.cs +++ b/Step/Controllers/WebApi/NcToolManagerController.cs @@ -40,14 +40,14 @@ namespace Step.Controllers.WebApi using (NcToolManagerController toolsManager = new NcToolManagerController()) { // Check if family exists - NcFamilyModel fam = toolsManager.FindFamily(dtoTool.FamilyId); + DbNcFamilyModel fam = toolsManager.FindFamily(dtoTool.FamilyId); if (fam == null) return BadRequest(API_ERROR_KEYS.INCORRECT_PARAMETERS); // If option is active check if shank exists if (ToolManagerConfig.ShankOptIsActive) { - NcShankModel shank = toolsManager.FindShank(dtoTool.ShankId.Value); + DbNcShankModel shank = toolsManager.FindShank(dtoTool.ShankId.Value); if (shank == null) return BadRequest(API_ERROR_KEYS.INCORRECT_PARAMETERS); } @@ -83,7 +83,7 @@ namespace Step.Controllers.WebApi if (!ModelState.IsValid) return BadRequest(ModelState); - NcToolModel tool = null; + DbNcToolModel tool = null; using (NcToolManagerController toolsManager = new NcToolManagerController()) { // Check if tool exists @@ -94,7 +94,7 @@ namespace Step.Controllers.WebApi if(tool.FamilyId != dtoTool.FamilyId) { // Check if family exists - NcFamilyModel fam = toolsManager.FindFamily(dtoTool.FamilyId); + DbNcFamilyModel fam = toolsManager.FindFamily(dtoTool.FamilyId); if (fam == null) return BadRequest(API_ERROR_KEYS.INCORRECT_PARAMETERS); } @@ -115,7 +115,7 @@ namespace Step.Controllers.WebApi { using (NcToolManagerController toolsManager = new NcToolManagerController()) { - NcToolModel tool = toolsManager.FindTool(toolId); + DbNcToolModel tool = toolsManager.FindTool(toolId); if (tool == null) return NotFound(); @@ -126,7 +126,7 @@ namespace Step.Controllers.WebApi if (!ToolManagerConfig.ShankOptIsActive && tool.ShankId != null) { // If option is active find & delete tool shank - NcShankModel shank = toolsManager.FindShank(tool.ShankId.Value); + DbNcShankModel shank = toolsManager.FindShank(tool.ShankId.Value); ncHandler.DeleteNcShank(shank); } @@ -177,7 +177,7 @@ namespace Step.Controllers.WebApi using (NcToolManagerController toolsManager = new NcToolManagerController()) { // Check if shank exists - NcShankModel shank = toolsManager.FindShank(shankId); + DbNcShankModel shank = toolsManager.FindShank(shankId); if (shank == null) return NotFound(); @@ -198,7 +198,7 @@ namespace Step.Controllers.WebApi using (NcToolManagerController toolsManager = new NcToolManagerController()) { // Check if shank exists - NcShankModel shank = toolsManager.FindShank(shankId); + DbNcShankModel shank = toolsManager.FindShank(shankId); if (shank == null) return NotFound(); @@ -252,7 +252,7 @@ namespace Step.Controllers.WebApi using (NcToolManagerController toolsManager = new NcToolManagerController()) { // Check if family exists - NcFamilyModel family = toolsManager.FindFamily(familyId); + DbNcFamilyModel family = toolsManager.FindFamily(familyId); if (family == null) return NotFound(); @@ -273,7 +273,7 @@ namespace Step.Controllers.WebApi using (NcToolManagerController toolsManager = new NcToolManagerController()) { // Find if exists - NcFamilyModel family = toolsManager.FindFamily(familyId); + DbNcFamilyModel family = toolsManager.FindFamily(familyId); if (family == null) return NotFound(); @@ -297,7 +297,7 @@ namespace Step.Controllers.WebApi { using (NcToolManagerController toolsManager = new NcToolManagerController()) { - List magazines = toolsManager.FindPositions(); + List magazines = toolsManager.FindPositions(); return Ok(magazines); } @@ -323,7 +323,7 @@ namespace Step.Controllers.WebApi using (NcToolManagerController toolsManager = new NcToolManagerController()) { // Check if magazine&position exists - NcMagazinePositionModel pos = toolsManager.FindMagazinePosition(magazineId, positionId); + DbNcMagazinePositionModel pos = toolsManager.FindMagazinePosition(magazineId, positionId); if (pos == null) return NotFound(); @@ -343,7 +343,7 @@ namespace Step.Controllers.WebApi using (NcToolManagerController toolsManager = new NcToolManagerController()) { // Check if magazine exists - List pos = toolsManager.FindMagazinePositions(magazineId); + List pos = toolsManager.FindMagazinePositions(magazineId); if (pos.Count <= 0) return NotFound(); @@ -373,7 +373,7 @@ namespace Step.Controllers.WebApi return BadRequest(API_ERROR_KEYS.INCORRECT_PARAMETERS); // Check data - NcShankModel shank; + DbNcShankModel shank; using (NcToolManagerController toolsManager = new NcToolManagerController()) { // Check if shank exists @@ -385,7 +385,7 @@ namespace Step.Controllers.WebApi return BadRequest(API_ERROR_KEYS.TOOL_IS_MOUNTED); // Check if magazine position exists - NcMagazinePositionModel magPos = toolsManager.FindMagazinePosition(magazineId, positionId); + DbNcMagazinePositionModel magPos = toolsManager.FindMagazinePosition(magazineId, positionId); if(magPos == null) return BadRequest(API_ERROR_KEYS.INCORRECT_PARAMETERS); // Check if the mag pos is disabled @@ -412,7 +412,7 @@ namespace Step.Controllers.WebApi return BadRequest(API_ERROR_KEYS.INCORRECT_PARAMETERS); // Check data - NcShankModel shank; + DbNcShankModel shank; using (NcToolManagerController toolsManager = new NcToolManagerController()) { // Check if shank exists @@ -421,14 +421,14 @@ namespace Step.Controllers.WebApi return BadRequest(API_ERROR_KEYS.INCORRECT_PARAMETERS); // Check if magazine position exists - NcMagazinePositionModel magPos = toolsManager.FindMagazinePosition(magazineId, positionId); + DbNcMagazinePositionModel magPos = toolsManager.FindMagazinePosition(magazineId, positionId); if (magPos == null) return BadRequest(API_ERROR_KEYS.INCORRECT_PARAMETERS); // Check if the mag pos is disabled if (magPos.Disabled == true) return BadRequest(API_ERROR_KEYS.INCORRECT_PARAMETERS); // Check if magazine position is occupied - NcShankModel shankMounted = toolsManager.FindShanks().Where(x => x.MagazineId == magazineId && x.PositionId == positionId).FirstOrDefault(); + DbNcShankModel shankMounted = toolsManager.FindShanks().Where(x => x.MagazineId == magazineId && x.PositionId == positionId).FirstOrDefault(); if (shankMounted != null) return BadRequest(API_ERROR_KEYS.MAGAZINE_POSITION_OCCUPIED); } @@ -448,11 +448,11 @@ namespace Step.Controllers.WebApi if (!ModelState.IsValid) return BadRequest(ModelState); - NcToolModel tool; + DbNcToolModel tool; using (NcToolManagerController toolsManager = new NcToolManagerController()) { // Check if shank exists - NcShankModel shank = toolsManager.FindShank(shankId); + DbNcShankModel shank = toolsManager.FindShank(shankId); if (shank == null) return BadRequest(API_ERROR_KEYS.INCORRECT_PARAMETERS);