diff --git a/Step.Core/ThreadsFunctions.cs b/Step.Core/ThreadsFunctions.cs index da5caada..42ee1f30 100644 --- a/Step.Core/ThreadsFunctions.cs +++ b/Step.Core/ThreadsFunctions.cs @@ -385,7 +385,7 @@ public static class ThreadsFunctions ReadAxesNamesTimes++; // Wait - Thread.Sleep(CalcSleepTime(200, (int)sw.ElapsedMilliseconds)); + Thread.Sleep(CalcSleepTime(500, (int)sw.ElapsedMilliseconds)); } } catch (ThreadAbortException) diff --git a/Step.Database/Controllers/NcToolManagerController.cs b/Step.Database/Controllers/NcToolManagerController.cs index 46042c3a..634ce4b5 100644 --- a/Step.Database/Controllers/NcToolManagerController.cs +++ b/Step.Database/Controllers/NcToolManagerController.cs @@ -128,11 +128,25 @@ namespace Step.Database.Controllers return dtoShanks; } + public DTONcShankModel GetShank(int shankId) + { + // Get shank from database + NcShankModel dbShank = dbCtx + .Shanks + .Where(x => x.ShankId == shankId) + .Include("Tools") + .FirstOrDefault(); + + // Convert into DTOModel + DTONcShankModel dtoShanks = (DTONcShankModel)dbShank; + + return dtoShanks; + } + public List FindPositions() { List positions = dbCtx .MagazinePositions - .Include("Shank") .ToList(); return positions; @@ -146,6 +160,26 @@ namespace Step.Database.Controllers .ToList(); } + + public List GetMagazinePositions(byte magId) + { + // 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(); + + foreach(NcShankModel shank in shanks) + { + // Populate magazinePosition shank Id + magPos + .Where(x => x.PositionId == shank.PositionId) + .FirstOrDefault() + .ShankId = shank.ShankId; + } + // Convert in DTOModel and return + return magPos; + } + public NcMagazinePositionModel FindMagazinePosition(byte magId, byte posId) { NcMagazinePositionModel positions = dbCtx @@ -156,13 +190,6 @@ namespace Step.Database.Controllers return positions; } - //public List GetOffsets() - //{ - // List offsets = dbCtx.Offsets.ToList(); - - // return offsets; - //} - public List GetMountedShanks(int magazineId) { List dtoShanks = GetShanks() @@ -299,7 +326,7 @@ namespace Step.Database.Controllers dbCtx.SaveChanges(); } - public NcMagazinePositionModel UpdatePosition(NcMagazinePositionModel dbPos, DTONcMagazinesPositionsModel dtoPos) + public NcMagazinePositionModel UpdatePosition(NcMagazinePositionModel dbPos, DTONcMagazinePositionModel dtoPos) { dbPos.Type = dtoPos.Type; dbPos.Disabled = dtoPos.Disabled; @@ -332,5 +359,28 @@ namespace Step.Database.Controllers return (DTONcShankModel)shank; } + + public DTONcShankModel LoadToolIntoShank(NcToolModel tool, int shankId) + { + dbCtx.Tools.Attach(tool); + + tool.ShankId = shankId; + + dbCtx.SaveChanges(); + + return GetShank(shankId); + } + + public DTONcShankModel UnloadToolFromShank(NcToolModel tool) + { + dbCtx.Tools.Attach(tool); + int? shankId = tool.ShankId; + + tool.ShankId = null; + + dbCtx.SaveChanges(); + + return GetShank(shankId.Value); + } } } \ No newline at end of file diff --git a/Step.Database/DatabaseContext.cs b/Step.Database/DatabaseContext.cs index 3ee4b0e0..51e2bdb1 100644 --- a/Step.Database/DatabaseContext.cs +++ b/Step.Database/DatabaseContext.cs @@ -31,7 +31,7 @@ namespace Step.Database public DbSet Families { get; set; } public DbSet Shanks { get; set; } - public DbSet Offsets { get; set; } + // public DbSet Offsets { get; set; } public DbSet Tools { get; set; } public DbSet MagazinePositions { get; set; } diff --git a/Step.Database/Migrations/201807050940385_InitMigration.resx b/Step.Database/Migrations/201807050940385_InitMigration.resx deleted file mode 100644 index 7b9dba7f..00000000 --- a/Step.Database/Migrations/201807050940385_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/201807050940385_InitMigration.Designer.cs b/Step.Database/Migrations/201807090630343_InitMigration.Designer.cs similarity index 92% rename from Step.Database/Migrations/201807050940385_InitMigration.Designer.cs rename to Step.Database/Migrations/201807090630343_InitMigration.Designer.cs index d1a30db2..36c29b1f 100644 --- a/Step.Database/Migrations/201807050940385_InitMigration.Designer.cs +++ b/Step.Database/Migrations/201807090630343_InitMigration.Designer.cs @@ -13,7 +13,7 @@ namespace Step.Database.Migrations string IMigrationMetadata.Id { - get { return "201807050940385_InitMigration"; } + get { return "201807090630343_InitMigration"; } } string IMigrationMetadata.Source diff --git a/Step.Database/Migrations/201807050940385_InitMigration.cs b/Step.Database/Migrations/201807090630343_InitMigration.cs similarity index 95% rename from Step.Database/Migrations/201807050940385_InitMigration.cs rename to Step.Database/Migrations/201807090630343_InitMigration.cs index fd9f3e30..5ad61471 100644 --- a/Step.Database/Migrations/201807050940385_InitMigration.cs +++ b/Step.Database/Migrations/201807090630343_InitMigration.cs @@ -195,19 +195,6 @@ namespace Step.Database.Migrations .Index(t => t.user_id) .Index(t => t.maintenance_id); - CreateTable( - "dbo.offset", - c => new - { - id = c.Int(nullable: false, identity: true), - nc_offset_id = c.Int(nullable: false), - lenght = c.Double(nullable: false), - radius = c.Double(nullable: false), - wear_length = c.Double(nullable: false), - wear_radius = c.Double(nullable: false), - }) - .PrimaryKey(t => t.id); - CreateTable( "dbo.performed_maintenance", c => new @@ -264,7 +251,6 @@ namespace Step.Database.Migrations DropIndex("dbo.tool", new[] { "family_id" }); DropTable("dbo.session"); DropTable("dbo.performed_maintenance"); - DropTable("dbo.offset"); DropTable("dbo.maintenance_note"); DropTable("dbo.maintenance"); DropTable("dbo.maintenance_file"); diff --git a/Step.Database/Migrations/201807090630343_InitMigration.resx b/Step.Database/Migrations/201807090630343_InitMigration.resx new file mode 100644 index 00000000..38b98f72 --- /dev/null +++ b/Step.Database/Migrations/201807090630343_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 05780bf5..aa5e7941 100644 --- a/Step.Database/Step.Database.csproj +++ b/Step.Database/Step.Database.csproj @@ -78,9 +78,9 @@ - - - 201807050940385_InitMigration.cs + + + 201807090630343_InitMigration.cs @@ -116,8 +116,8 @@ - - 201807050940385_InitMigration.cs + + 201807090630343_InitMigration.cs diff --git a/Step.Model/Constants.cs b/Step.Model/Constants.cs index b9bb4ce5..e48f8abe 100644 --- a/Step.Model/Constants.cs +++ b/Step.Model/Constants.cs @@ -180,6 +180,8 @@ namespace Step.Model public static class API_ERROR_KEYS { public const string INCORRECT_PARAMETERS = "error_incorrect_parameters"; + public const string MAGAZINE_POSITION_OCCUPIED = "error_magazine_position_occupied"; + public const string TOOL_IS_MOUNTED = "error_tool_mounted"; public const string OPTION_NOT_ACTIVE = "error_option_not_active"; } } diff --git a/Step.Model/DTOModels/ToolModels/DTONcMagazinePositionModel.cs b/Step.Model/DTOModels/ToolModels/DTONcMagazinePositionModel.cs new file mode 100644 index 00000000..c829a004 --- /dev/null +++ b/Step.Model/DTOModels/ToolModels/DTONcMagazinePositionModel.cs @@ -0,0 +1,47 @@ +using Step.Model.DatabaseModels; +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Step.Model.DTOModels.ToolModels +{ + public class DTONcMagazinePositionModel + { + public byte MagazineId { get; set; } + + public byte PositionId { get; set; } + + [Required] + public bool Disabled { get; set; } + + [Required] + public byte Type { get; set; } + + public int? ShankId { get; set; } + + public static explicit operator DTONcMagazinePositionModel(NcMagazinePositionModel obj) + { + return new DTONcMagazinePositionModel() + { + MagazineId = obj.MagazineId, + PositionId = obj.PositionId, + Disabled = obj.Disabled, + Type = obj.Type + }; + } + + public static explicit operator NcMagazinePositionModel(DTONcMagazinePositionModel obj) + { + return new NcMagazinePositionModel() + { + MagazineId = obj.MagazineId, + PositionId = obj.PositionId, + Disabled = obj.Disabled, + Type = obj.Type + }; + } + } +} diff --git a/Step.Model/DTOModels/ToolModels/DTONcMountedTool.cs b/Step.Model/DTOModels/ToolModels/DTONcMountedShankModel.cs similarity index 87% rename from Step.Model/DTOModels/ToolModels/DTONcMountedTool.cs rename to Step.Model/DTOModels/ToolModels/DTONcMountedShankModel.cs index 56aad371..33f8b81d 100644 --- a/Step.Model/DTOModels/ToolModels/DTONcMountedTool.cs +++ b/Step.Model/DTOModels/ToolModels/DTONcMountedShankModel.cs @@ -6,7 +6,7 @@ using System.Threading.Tasks; namespace Step.Model.DTOModels.ToolModels { - public class DTONcMountedShank + public class DTONcMountedShankModel { public byte PositionId; public byte MagazineId; diff --git a/Step.Model/DTOModels/ToolModels/DTONcToolModel.cs b/Step.Model/DTOModels/ToolModels/DTONcToolModel.cs index fec24d37..f7891c53 100644 --- a/Step.Model/DTOModels/ToolModels/DTONcToolModel.cs +++ b/Step.Model/DTOModels/ToolModels/DTONcToolModel.cs @@ -131,30 +131,4 @@ namespace Step.Model.DTOModels.ToolModels }; } } - - public class DTONcMagazinesPositionsModel - { - public byte MagazineId { get; set; } - - public byte PositionId { get; set; } - - [Required] - public bool Disabled { get; set; } - - [Required] - public byte Type { get; set; } - - public int? ShankId { get; set; } - - public static explicit operator DTONcMagazinesPositionsModel(NcMagazinePositionModel obj) - { - return new DTONcMagazinesPositionsModel() - { - MagazineId = obj.MagazineId, - PositionId = obj.PositionId, - Disabled = obj.Disabled, - Type = obj.Type - }; - } - } } \ No newline at end of file diff --git a/Step.Model/Step.Model.csproj b/Step.Model/Step.Model.csproj index 9b8042c3..06b6ccfe 100644 --- a/Step.Model/Step.Model.csproj +++ b/Step.Model/Step.Model.csproj @@ -114,7 +114,8 @@ - + + diff --git a/Step.NC/NcHandler.cs b/Step.NC/NcHandler.cs index 84b4753b..f13808ef 100644 --- a/Step.NC/NcHandler.cs +++ b/Step.NC/NcHandler.cs @@ -1174,11 +1174,11 @@ namespace Step.NC } } - public NcMagazinePositionModel UpdateMagazinePosition(NcMagazinePositionModel dbPos, DTONcMagazinesPositionsModel dtoPos) + public DTONcMagazinePositionModel UpdateMagazinePosition(NcMagazinePositionModel dbPos, DTONcMagazinePositionModel dtoPos) { using (NcToolManagerController toolsManager = new NcToolManagerController()) { - return toolsManager.UpdatePosition(dbPos, dtoPos); + return (DTONcMagazinePositionModel)toolsManager.UpdatePosition(dbPos, dtoPos); } } @@ -1206,11 +1206,16 @@ namespace Step.NC } } - public DTONcMagazinesPositionsModel LoadToolInMagazine(byte magazineId, byte positionId, NcShankModel shank) + public DTONcMagazinePositionModel LoadToolInMagazine(byte magazineId, byte positionId, NcShankModel shank) { using (NcToolManagerController toolsManager = new NcToolManagerController()) { - return (DTONcMagazinesPositionsModel)toolsManager.LoadShankInMagazine(magazineId, positionId, shank); + // Update shank data + DTONcMagazinePositionModel magPos = (DTONcMagazinePositionModel)toolsManager.LoadShankInMagazine(magazineId, positionId, shank); + // Set magazineId + magPos.ShankId = shank.ShankId; + + return magPos; } } @@ -1222,6 +1227,22 @@ namespace Step.NC } } + public DTONcShankModel LoadIntoShank(NcToolModel tool, int shankId) + { + using (NcToolManagerController toolsManager = new NcToolManagerController()) + { + return toolsManager.LoadToolIntoShank(tool, shankId); + } + } + + public DTONcShankModel UnloadIntoShank(NcToolModel tool) + { + using (NcToolManagerController toolsManager = new NcToolManagerController()) + { + return toolsManager.UnloadToolFromShank(tool); + } + } + #endregion Osai/Fanuc Tools #endregion Write data diff --git a/Step/Controllers/WebApi/NcToolManagerController.cs b/Step/Controllers/WebApi/NcToolManagerController.cs index 08be6cf3..d7353b89 100644 --- a/Step/Controllers/WebApi/NcToolManagerController.cs +++ b/Step/Controllers/WebApi/NcToolManagerController.cs @@ -4,6 +4,7 @@ using Step.Model.DTOModels.ToolModels; using Step.NC; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; +using System.Linq; using System.Web.Http; using static CMS_CORE_Library.DataStructures; using static Step.Config.ServerConfig; @@ -307,14 +308,14 @@ namespace Step.Controllers.WebApi { using (NcToolManagerController toolsManager = new NcToolManagerController()) { - List magazine = toolsManager.FindMagazinePositions(magazineId); + List magazine = toolsManager.GetMagazinePositions(magazineId); return Ok(magazine); } } [Route("magazine/{magazineId}/position/{positionId}"), HttpPut] - public IHttpActionResult PutMagazinePosition([Required]byte magazineId, [Required]byte positionId, [FromBody]DTONcMagazinesPositionsModel dtoPos) + public IHttpActionResult PutMagazinePosition([Required]byte magazineId, [Required]byte positionId, [FromBody]DTONcMagazinePositionModel dtoPos) { if (!ModelState.IsValid) return BadRequest(ModelState); @@ -328,8 +329,8 @@ namespace Step.Controllers.WebApi using (NcHandler ncHandler = new NcHandler()) { - pos = ncHandler.UpdateMagazinePosition(pos, dtoPos); - return Ok(pos); + DTONcMagazinePositionModel newPos = ncHandler.UpdateMagazinePosition(pos, dtoPos); + return Ok(newPos); } } } @@ -371,20 +372,35 @@ namespace Step.Controllers.WebApi if (shankId.ToolId == 0) return BadRequest(API_ERROR_KEYS.INCORRECT_PARAMETERS); + // Check data + NcShankModel shank; using (NcToolManagerController toolsManager = new NcToolManagerController()) { - NcShankModel shank = toolsManager.FindShank(shankId.ToolId); + // Check if shank exists + shank = toolsManager.FindShank(shankId.ToolId); if (shank == null) return BadRequest(API_ERROR_KEYS.INCORRECT_PARAMETERS); + // Check if shank is already loaded somewhere + if (shank.MagazineId != null) + return BadRequest(API_ERROR_KEYS.TOOL_IS_MOUNTED); - using (NcHandler ncHandler = new NcHandler()) - { - ncHandler.Connect(); - DTONcMagazinesPositionsModel magPos = ncHandler.LoadToolInMagazine(magazineId, positionId, shank); - - return Ok(magPos); - } + // Check if magazine position exists + NcMagazinePositionModel 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); } + + using (NcHandler ncHandler = new NcHandler()) + { + ncHandler.Connect(); + DTONcMagazinePositionModel magazinePos = ncHandler.LoadToolInMagazine(magazineId, positionId, shank); + + return Ok(magazinePos); + } + } [Route("magazine/{magazineId:int}/unload/position/{positionId:int}"), HttpPut] @@ -395,19 +411,63 @@ namespace Step.Controllers.WebApi if (shankId.ToolId == 0) return BadRequest(API_ERROR_KEYS.INCORRECT_PARAMETERS); + // Check data + NcShankModel shank; using (NcToolManagerController toolsManager = new NcToolManagerController()) { - NcShankModel shank = toolsManager.FindShank(shankId.ToolId); + // Check if shank exists + shank = toolsManager.FindShank(shankId.ToolId); if (shank == null) return BadRequest(API_ERROR_KEYS.INCORRECT_PARAMETERS); - using (NcHandler ncHandler = new NcHandler()) - { - ncHandler.Connect(); - DTONcShankModel responseShank = ncHandler.UnloadToolInMagazine(magazineId, positionId, shank); + // Check if magazine position exists + NcMagazinePositionModel 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(); + if (shankMounted != null) + return BadRequest(API_ERROR_KEYS.MAGAZINE_POSITION_OCCUPIED); + } - return Ok(responseShank); - } + using (NcHandler ncHandler = new NcHandler()) + { + ncHandler.Connect(); + DTONcShankModel responseShank = ncHandler.UnloadToolInMagazine(magazineId, positionId, shank); + + return Ok(responseShank); + } + } + + [Route("shank/{shankId:int}/load/tool/{toolId:int}"), HttpPut] + public IHttpActionResult LoadToolIntoShank(int shankId, int toolId) + { + if (!ModelState.IsValid) + return BadRequest(ModelState); + + NcToolModel tool; + using (NcToolManagerController toolsManager = new NcToolManagerController()) + { + // Check if shank exists + NcShankModel shank = toolsManager.FindShank(shankId); + if (shank == null) + return BadRequest(API_ERROR_KEYS.INCORRECT_PARAMETERS); + + tool = toolsManager.FindTool(toolId); + if(tool== null) + return BadRequest(API_ERROR_KEYS.INCORRECT_PARAMETERS); + } + + using (NcHandler ncHandler = new NcHandler()) + { + ncHandler.Connect(); + + DTONcShankModel shank = ncHandler.LoadIntoShank(tool, shankId); + + return Ok(shank); } } } diff --git a/Step/Controllers/WebApi/SiemensToolManagerController.cs b/Step/Controllers/WebApi/SiemensToolManagerController.cs index c4da2a31..48ab4e19 100644 --- a/Step/Controllers/WebApi/SiemensToolManagerController.cs +++ b/Step/Controllers/WebApi/SiemensToolManagerController.cs @@ -417,7 +417,7 @@ namespace Step.Controllers.WebApi } [Route("shank/{shankId:int}/load/{positionId:int}/tool/{toolId:int}"), HttpPut] - public IHttpActionResult LoadToolFromShank(int shankId, int positionId, int toolId) + public IHttpActionResult LoadToolIntoShank(int shankId, int positionId, int toolId) { if (!ModelState.IsValid) return BadRequest(ModelState);