Added edges functions:

Read
Add
Remove
This commit is contained in:
Lucio Maranta
2018-05-02 15:53:05 +00:00
parent cb3c44c895
commit 89ef149dd8
19 changed files with 2107 additions and 367 deletions
+2 -1
View File
@@ -130,6 +130,7 @@
<DependentUpon>Reference.svcmap</DependentUpon>
</Compile>
<Compile Include="DataStructures.cs" />
<Compile Include="Demo\DemoEdgesConfiguration.cs" />
<Compile Include="Demo\ILibraryService.cs" />
<Compile Include="Demo\Models\BinaryMemoryModel.cs" />
<Compile Include="Demo\Models\FamilyModel.cs" />
@@ -148,7 +149,7 @@
<Compile Include="Osai\OSAIErrMgr.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="Siemens\Nc_Siemens.cs" />
<Compile Include="Siemens\ToolsConfiguration.cs" />
<Compile Include="Siemens\SiemensEdgesConfigurations.cs" />
<Compile Include="ToolConfigurations.cs" />
<Compile Include="Utils\Nc_Utils.cs" />
</ItemGroup>
+16 -1
View File
@@ -480,7 +480,16 @@ namespace CMS_CORE_Library
public bool ChangeTool;
public bool IsInUse;
public bool PreAlarm;
public List<Dictionary<string, double>> EdgesData;
public List<EdgesModel> EdgesData;
}
public class EdgesModel
{
public int Id;
public double ResidualLife;
public double NominalLife;
public double PreAlmLife;
public Dictionary<string, double> EdgeAdditionalParams;
}
public class ShankModel
@@ -518,6 +527,12 @@ namespace CMS_CORE_Library
public int Type;
}
public class EdgeConfigModel
{
public string Name;
public string Path;
}
#endregion ToolsConfig
}
}
@@ -0,0 +1,444 @@
using System.Collections.Generic;
using static CMS_CORE_Library.DataStructures;
namespace CMS_CORE_Library.Demo
{
internal class DemoEdgesConfiguration
{
public Dictionary<int, List<EdgeConfigModel>> EdgesConfig = new Dictionary<int, List<EdgeConfigModel>>()
{
{
100, new List<EdgeConfigModel>()
{
new EdgeConfigModel{Name = "CuttingEdge", Path = "2"},
new EdgeConfigModel{Name = "Lenght", Path = "3"},
new EdgeConfigModel{Name = "Radius", Path = "6"},
new EdgeConfigModel{Name = "WearLenght", Path = "12"},
new EdgeConfigModel{Name = "WearRadius", Path = "15"},
new EdgeConfigModel{Name = "Teeth", Path = "34" }
}
},
{
110, new List<EdgeConfigModel>()
{
new EdgeConfigModel{Name = "CuttingEdge", Path = "2"},
new EdgeConfigModel{Name = "Lenght", Path = "3"},
new EdgeConfigModel{Name = "Radius", Path = "6"},
new EdgeConfigModel{Name = "WearLenght", Path = "12"},
new EdgeConfigModel{Name = "WearRadius", Path = "15"},
new EdgeConfigModel{Name = "Teeth", Path = "34" }
}
},
{
111, new List<EdgeConfigModel>()
{
new EdgeConfigModel{Name = "CuttingEdge", Path = "2"},
new EdgeConfigModel{Name = "Lenght", Path = "3"},
new EdgeConfigModel{Name = "Radius", Path = "6"},
new EdgeConfigModel{Name = "CornerRadius", Path = "7"},
new EdgeConfigModel{Name = "WearLenght", Path = "12"},
new EdgeConfigModel{Name = "WearRadius", Path = "15"},
new EdgeConfigModel{Name = "Teeth", Path = "34" }
}
},
{
120, new List<EdgeConfigModel>()
{
new EdgeConfigModel{Name = "CuttingEdge", Path = "2"},
new EdgeConfigModel{Name = "Lenght", Path = "3"},
new EdgeConfigModel{Name = "Radius", Path = "6"},
new EdgeConfigModel{Name = "WearLenght", Path = "12"},
new EdgeConfigModel{Name = "WearRadius", Path = "15"},
new EdgeConfigModel{Name = "Teeth", Path = "34" }
}
},
{
121, new List<EdgeConfigModel>()
{
new EdgeConfigModel{Name = "CuttingEdge", Path = "2"},
new EdgeConfigModel{Name = "Lenght", Path = "3"},
new EdgeConfigModel{Name = "Radius", Path = "6"},
new EdgeConfigModel{Name = "WearLenght", Path = "12"},
new EdgeConfigModel{Name = "WearRadius", Path = "15"},
new EdgeConfigModel{Name = "Teeth", Path = "34" }
}
},
{
130, new List<EdgeConfigModel>()
{
new EdgeConfigModel{Name = "CuttingEdge", Path = "2"},
new EdgeConfigModel{Name = "GeomLenght1", Path = "3"},
new EdgeConfigModel{Name = "GeomLenght2", Path = "4"},
new EdgeConfigModel{Name = "GeomLenght3", Path = "5"},
new EdgeConfigModel{Name = "Radius", Path = "6"},
new EdgeConfigModel{Name = "GeomDeltaLenght1", Path = "12"},
new EdgeConfigModel{Name = "GeomDeltaLenght2", Path = "13"},
new EdgeConfigModel{Name = "GeomDeltaLenght3", Path = "14"},
new EdgeConfigModel{Name = "WearRadius", Path = "15"},
new EdgeConfigModel{Name = "AdapterLenght1", Path = "21"},
new EdgeConfigModel{Name = "AdapterLenght2", Path = "22"},
new EdgeConfigModel{Name = "AdapterLenght3", Path = "23"},
new EdgeConfigModel{Name = "V", Path = "27"},
new EdgeConfigModel{Name = "Vector1", Path = "28"},
new EdgeConfigModel{Name = "Vector2", Path = "29"},
new EdgeConfigModel{Name = "Vector3", Path = "30"},
new EdgeConfigModel{Name = "Teeth", Path = "34" }
}
},
{
131, new List<EdgeConfigModel>()
{
new EdgeConfigModel{Name = "CuttingEdge", Path = "2"},
new EdgeConfigModel{Name = "GeomLenght1", Path = "3"},
new EdgeConfigModel{Name = "GeomLenght2", Path = "4"},
new EdgeConfigModel{Name = "GeomLenght3", Path = "5"},
new EdgeConfigModel{Name = "Radius", Path = "6"},
new EdgeConfigModel{Name = "CornerRadius", Path = "7"},
new EdgeConfigModel{Name = "GeomDeltaLenght1", Path = "12"},
new EdgeConfigModel{Name = "GeomDeltaLenght2", Path = "13"},
new EdgeConfigModel{Name = "GeomDeltaLenght3", Path = "14"},
new EdgeConfigModel{Name = "WearRadius", Path = "15"},
new EdgeConfigModel{Name = "AdapterLenght1", Path = "21"},
new EdgeConfigModel{Name = "AdapterLenght2", Path = "22"},
new EdgeConfigModel{Name = "AdapterLenght3", Path = "23"},
new EdgeConfigModel{Name = "V", Path = "27"},
new EdgeConfigModel{Name = "Vector1", Path = "28"},
new EdgeConfigModel{Name = "Vector2", Path = "29"},
new EdgeConfigModel{Name = "Vector3", Path = "30"},
new EdgeConfigModel{Name = "Teeth", Path = "34" }
}
},
{
140, new List<EdgeConfigModel>()
{
new EdgeConfigModel{Name = "CuttingEdge", Path = "2"},
new EdgeConfigModel{Name = "Lenght", Path = "3"},
new EdgeConfigModel{Name = "Radius", Path = "6"},
new EdgeConfigModel{Name = "OutsideRadius", Path = "7"},
new EdgeConfigModel{Name = "ToolAngle", Path = "11"},
new EdgeConfigModel{Name = "Teeth", Path = "34" }
}
},
{
145, new List<EdgeConfigModel>()
{
new EdgeConfigModel{Name = "CuttingEdge", Path = "2"},
new EdgeConfigModel{Name = "Lenght", Path = "3"},
new EdgeConfigModel{Name = "Radius", Path = "6"},
new EdgeConfigModel{Name = "WearLenght", Path = "12"},
new EdgeConfigModel{Name = "WearRadius", Path = "15"},
new EdgeConfigModel{Name = "Teeth", Path = "34" }
}
},
{
150, new List<EdgeConfigModel>()
{
new EdgeConfigModel{Name = "CuttingEdge", Path = "2"},
new EdgeConfigModel{Name = "Lenght", Path = "3"},
new EdgeConfigModel{Name = "Radius", Path = "6"},
new EdgeConfigModel{Name = "Width", Path = "9" },
new EdgeConfigModel{Name = "WearLenght", Path = "12"},
new EdgeConfigModel{Name = "WearRadius", Path = "15" },
new EdgeConfigModel{Name = "Teeth", Path = "34" }
}
},
{
151, new List<EdgeConfigModel>()
{
new EdgeConfigModel{Name = "CuttingEdge", Path = "2"},
new EdgeConfigModel{Name = "Lenght", Path = "3"},
new EdgeConfigModel{Name = "Radius", Path = "6"},
new EdgeConfigModel{Name = "Width", Path = "9" },
new EdgeConfigModel{Name = "WearLenght", Path = "12"},
new EdgeConfigModel{Name = "WearRadius", Path = "15" },
new EdgeConfigModel{Name = "Teeth", Path = "34" }
}
},
{
155, new List<EdgeConfigModel>()
{
new EdgeConfigModel{Name = "CuttingEdge", Path = "2"},
new EdgeConfigModel{Name = "Lenght", Path = "3"},
new EdgeConfigModel{Name = "Radius", Path = "6"},
new EdgeConfigModel{Name = "TaperAngle", Path = "11" },
new EdgeConfigModel{Name = "WearLenght", Path = "12"},
new EdgeConfigModel{Name = "WearRadius", Path = "15"},
new EdgeConfigModel{Name = "Teeth", Path = "34" }
}
},
{
156, new List<EdgeConfigModel>()
{
new EdgeConfigModel{Name = "CuttingEdge", Path = "2"},
new EdgeConfigModel{Name = "Lenght", Path = "3"},
new EdgeConfigModel{Name = "Radius", Path = "6"},
new EdgeConfigModel{Name = "CornerRadius", Path = "7"},
new EdgeConfigModel{Name = "TaperAngle", Path = "11" },
new EdgeConfigModel{Name = "WearLenght", Path = "12"},
new EdgeConfigModel{Name = "WearRadius", Path = "15"},
new EdgeConfigModel{Name = "Teeth", Path = "34" }
}
},
{
157, new List<EdgeConfigModel>()
{
new EdgeConfigModel{Name = "CuttingEdge", Path = "2"},
new EdgeConfigModel{Name = "Lenght", Path = "3"},
new EdgeConfigModel{Name = "Radius", Path = "6"},
new EdgeConfigModel{Name = "TaperAngle", Path = "11" },
new EdgeConfigModel{Name = "WearLenght", Path = "12"},
new EdgeConfigModel{Name = "WearRadius", Path = "15"},
new EdgeConfigModel{Name = "Teeth", Path = "34" }
}
},
{
160, new List<EdgeConfigModel>()
{
new EdgeConfigModel{Name = "CuttingEdge", Path = "2"},
new EdgeConfigModel{Name = "Lenght", Path = "3"},
new EdgeConfigModel{Name = "Radius", Path = "6"},
new EdgeConfigModel{Name = "WearLenght", Path = "12"},
new EdgeConfigModel{Name = "WearRadius", Path = "15"},
new EdgeConfigModel{Name = "Teeth", Path = "34" }
}
},
//////// 200
{
200, new List<EdgeConfigModel>()
{
new EdgeConfigModel{ Name = "CuttingEdge", Path = "2"},
new EdgeConfigModel{ Name = "Lenght", Path = "3"},
new EdgeConfigModel{ Name = "Radius", Path = "6"},
new EdgeConfigModel{ Name = "WearLenght", Path = "12"},
new EdgeConfigModel{ Name = "WearRadius", Path = "15"},
new EdgeConfigModel{ Name = "TipAngle", Path = "24"}
}
},
{
205, new List<EdgeConfigModel>()
{
new EdgeConfigModel{ Name = "CuttingEdge", Path = "2"},
new EdgeConfigModel{ Name = "Lenght", Path = "3"},
new EdgeConfigModel{ Name = "Radius", Path = "6"},
new EdgeConfigModel{ Name = "WearLenght", Path = "12"},
new EdgeConfigModel{ Name = "WearRadius", Path = "15"}
}
},
{
210, new List<EdgeConfigModel>()
{
new EdgeConfigModel{ Name = "CuttingEdge", Path = "2"},
new EdgeConfigModel{ Name = "Lenght", Path = "3"},
new EdgeConfigModel{ Name = "Radius", Path = "6"},
new EdgeConfigModel{ Name = "WearLenght", Path = "12"},
new EdgeConfigModel{ Name = "WearRadius", Path = "15"}
}
},
{
220, new List<EdgeConfigModel>()
{
new EdgeConfigModel{ Name = "CuttingEdge", Path = "2"},
new EdgeConfigModel{ Name = "Lenght", Path = "3"},
new EdgeConfigModel{ Name = "Radius", Path = "6"},
new EdgeConfigModel{ Name = "WearLenght", Path = "12"},
new EdgeConfigModel{ Name = "WearRadius", Path = "15"},
new EdgeConfigModel{ Name = "TipAngle", Path = "24"}
}
},
{
230, new List<EdgeConfigModel>()
{
new EdgeConfigModel{ Name = "CuttingEdge", Path = "2"},
new EdgeConfigModel{ Name = "Lenght", Path = "3"},
new EdgeConfigModel{ Name = "Radius", Path = "6"},
new EdgeConfigModel{ Name = "WearLenght", Path = "12"},
new EdgeConfigModel{ Name = "WearRadius", Path = "15"},
new EdgeConfigModel{ Name = "TipAngle", Path = "24"}
}
},
{
231, new List<EdgeConfigModel>()
{
new EdgeConfigModel{ Name = "CuttingEdge", Path = "2"},
new EdgeConfigModel{ Name = "Lenght", Path = "3"},
new EdgeConfigModel{ Name = "Radius", Path = "6"},
new EdgeConfigModel{ Name = "WearLenght", Path = "12"},
new EdgeConfigModel{ Name = "WearRadius", Path = "15"}
}
},
{
240, new List<EdgeConfigModel>()
{
new EdgeConfigModel{ Name = "CuttingEdge", Path = "2"},
new EdgeConfigModel{ Name = "Lenght", Path = "3"},
new EdgeConfigModel{ Name = "Radius", Path = "6"},
new EdgeConfigModel{ Name = "Pitch", Path = "9"},
new EdgeConfigModel{ Name = "WearLenght", Path = "12"},
new EdgeConfigModel{ Name = "WearRadius", Path = "15"}
}
},
{
241, new List<EdgeConfigModel>()
{
new EdgeConfigModel{ Name = "CuttingEdge", Path = "2"},
new EdgeConfigModel{ Name = "Lenght", Path = "3"},
new EdgeConfigModel{ Name = "Radius", Path = "6"},
new EdgeConfigModel{ Name = "WearLenght", Path = "12"},
new EdgeConfigModel{ Name = "WearRadius", Path = "15"}
}
},
{
242, new List<EdgeConfigModel>()
{
new EdgeConfigModel{ Name = "CuttingEdge", Path = "2"},
new EdgeConfigModel{ Name = "Lenght", Path = "3"},
new EdgeConfigModel{ Name = "Radius", Path = "6"},
new EdgeConfigModel{ Name = "WearLenght", Path = "12"},
new EdgeConfigModel{ Name = "WearRadius", Path = "15"},
new EdgeConfigModel{ Name = "TipAngle", Path = "24"}
}
},
{
250, new List<EdgeConfigModel>()
{
new EdgeConfigModel{ Name = "CuttingEdge", Path = "2"},
new EdgeConfigModel{ Name = "Lenght", Path = "3"},
new EdgeConfigModel{ Name = "Radius", Path = "6"},
new EdgeConfigModel{ Name = "WearLenght", Path = "12"},
new EdgeConfigModel{ Name = "WearRadius", Path = "15"},
new EdgeConfigModel{ Name = "TipAngle", Path = "24"}
}
},
///////// 700
{
700, new List<EdgeConfigModel>()
{
new EdgeConfigModel{Name = "CuttingEdge", Path = "2"},
new EdgeConfigModel{Name = "GeomLenght1", Path = "3"},
new EdgeConfigModel{Name = "GeomLenght2", Path = "4"},
new EdgeConfigModel{Name = "GeomLenght3", Path = "5"},
new EdgeConfigModel{Name = "Diameter", Path = "6"},
new EdgeConfigModel{Name = "GeomSlotWidth", Path = "7"},
new EdgeConfigModel{Name = "GeomPrjection", Path = "8"},
new EdgeConfigModel{Name = "GeomWearLenght1", Path = "9"},
new EdgeConfigModel{Name = "GeomWearLenght2", Path = "13"},
new EdgeConfigModel{Name = "GeomWearLenght3", Path = "14"},
new EdgeConfigModel{Name = "WearDiameter", Path = "15"},
new EdgeConfigModel{Name = "WearSlotWdth", Path = "16"},
new EdgeConfigModel{Name = "WearGeomPrjection", Path = "17"},
new EdgeConfigModel{Name = "AdapterLenght1", Path = "21"},
new EdgeConfigModel{Name = "AdapterLenght2", Path = "22"},
new EdgeConfigModel{Name = "AdapterLenght3", Path = "23"}
}
},
{
710, new List<EdgeConfigModel>()
{
new EdgeConfigModel{Name = "CuttingEdge", Path = "2"},
new EdgeConfigModel{Name = "Lenght", Path = "3"},
new EdgeConfigModel{Name = "Radius", Path = "6"},
new EdgeConfigModel{Name = "WearLenght", Path = "12"},
new EdgeConfigModel{Name = "WearRadius", Path = "15"}
}
},
{
711, new List<EdgeConfigModel>()
{
new EdgeConfigModel{Name = "CuttingEdge", Path = "2"},
new EdgeConfigModel{Name = "Lenght", Path = "3"},
new EdgeConfigModel{Name = "Radius", Path = "6"},
new EdgeConfigModel{Name = "WearLenght", Path = "12"},
new EdgeConfigModel{Name = "WearRadius", Path = "15"}
}
},
{
712, new List<EdgeConfigModel>()
{
new EdgeConfigModel{Name = "CuttingEdge", Path = "2"},
new EdgeConfigModel{Name = "Lenght", Path = "3"},
new EdgeConfigModel{Name = "Radius", Path = "6"},
new EdgeConfigModel{Name = "CorrAngle", Path = "10"},
new EdgeConfigModel{Name = "WearLenght", Path = "12"},
new EdgeConfigModel{Name = "WearRadius", Path = "15"}
}
},
{
713, new List<EdgeConfigModel>()
{
new EdgeConfigModel{Name = "CuttingEdge", Path = "2"},
new EdgeConfigModel{Name = "GeomLenght1", Path = "3"},
new EdgeConfigModel{Name = "GeomLenght2", Path = "4"},
new EdgeConfigModel{Name = "GeomLenght3", Path = "5"},
new EdgeConfigModel{Name = "Radius", Path = "6"},
new EdgeConfigModel{Name = "BoomLenght", Path = "7"},
new EdgeConfigModel{Name = "CorrAngle", Path = "10"},
new EdgeConfigModel{Name = "GeomWearLenght1", Path = "12"},
new EdgeConfigModel{Name = "GeomWearLenght2", Path = "13["},
new EdgeConfigModel{Name = "GeomWearLenght3", Path = "14["},
new EdgeConfigModel{Name = "WearRadius", Path = "15"},
new EdgeConfigModel{Name = "AdapterLenght1", Path = "21"},
new EdgeConfigModel{Name = "AdapterLenght2", Path = "22"},
new EdgeConfigModel{Name = "AdapterLenght3", Path = "23"}
}
},
{
714, new List<EdgeConfigModel>()
{
new EdgeConfigModel{Name = "CuttingEdge", Path = "2"},
new EdgeConfigModel{Name = "GeomLenght1", Path = "3"},
new EdgeConfigModel{Name = "GeomLenght2", Path = "4"},
new EdgeConfigModel{Name = "GeomLenght3", Path = "5"},
new EdgeConfigModel{Name = "Radius", Path = "6"},
new EdgeConfigModel{Name = "BallRadius", Path = "7"},
new EdgeConfigModel{Name = "CorrAngle", Path = "10"},
new EdgeConfigModel{Name = "GeomWearLenght1", Path = "12"},
new EdgeConfigModel{Name = "GeomWearLenght2", Path = "13"},
new EdgeConfigModel{Name = "GeomWearLenght3", Path = "14"},
new EdgeConfigModel{Name = "WearRadius", Path = "15"},
new EdgeConfigModel{Name = "AdapterLenght1", Path = "21"},
new EdgeConfigModel{Name = "AdapterLenght2", Path = "22"},
new EdgeConfigModel{Name = "AdapterLenght3", Path = "23"}
}
},
{
725, new List<EdgeConfigModel>()
{
new EdgeConfigModel{Name = "CuttingEdge", Path = "2"},
new EdgeConfigModel{Name = "GeomLenght1", Path = "3"},
new EdgeConfigModel{Name = "GeomLenght2", Path = "4"},
new EdgeConfigModel{Name = "GeomLenght3", Path = "5"},
new EdgeConfigModel{Name = "Radius", Path = "6"},
new EdgeConfigModel{Name = "CorrAngle", Path = "10"},
new EdgeConfigModel{Name = "GeomWearLenght1", Path = "12"},
new EdgeConfigModel{Name = "GeomWearLenght2", Path = "13"},
new EdgeConfigModel{Name = "GeomWearLenght3", Path = "14"},
new EdgeConfigModel{Name = "WearRadius", Path = "15"},
new EdgeConfigModel{Name = "AdapterLenght1", Path = "21"},
new EdgeConfigModel{Name = "AdapterLenght2", Path = "22"},
new EdgeConfigModel{Name = "AdapterLenght3", Path = "23"}
}
},
{
730, new List<EdgeConfigModel>()
{
new EdgeConfigModel{Name = "CuttingEdge", Path = "2"},
new EdgeConfigModel{Name = "Lenght", Path = "3"},
new EdgeConfigModel{Name = "Radius", Path = "6"},
new EdgeConfigModel{Name = "WearLenght", Path = "12"},
new EdgeConfigModel{Name = "WearRadius", Path = "15"}
}
},
{
900, new List<EdgeConfigModel>()
{
new EdgeConfigModel{Name = "CuttingEdge", Path = "2"},
new EdgeConfigModel{Name = "Lenght", Path = "3"},
new EdgeConfigModel{Name = "Radius", Path = "6"},
new EdgeConfigModel{Name = "WearLenght", Path = "12"},
new EdgeConfigModel{Name = "WearRadius", Path = "15"}
}
},
};
}
}
+5
View File
@@ -188,6 +188,11 @@ namespace Nc_Demo_Application.Server.Service
[WebInvoke(Method = "DELETE", UriTemplate = "tool_table/tool/{id}", RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.Wrapped)]
void DeleteTool(string id);
[WebInvoke(Method = "POST", UriTemplate = "tool_table/edge/{toolId}", RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.Wrapped)]
void AddEdge(string toolId, ref EdgesModel edge);
[WebInvoke(Method = "DELETE", UriTemplate = "tool_table/edge/{toolId}/{edgeId}", RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.Wrapped)]
void DeleteEdge(string toolId, string edgeId);
[WebGet(UriTemplate = "tool_table/shanks", BodyStyle = WebMessageBodyStyle.Wrapped, ResponseFormat = WebMessageFormat.Json)]
void GetShanks(out List<ShankDataModel> shanksData);
@@ -1,4 +1,5 @@
using System.Collections.Generic;
using static CMS_CORE_Library.DataStructures;
namespace CMS_CORE.Demo.Models
{
@@ -23,7 +24,7 @@ namespace CMS_CORE.Demo.Models
public bool IsInUse;
public bool PreAlarm;
public int ShanksId;
public List<Dictionary<string, double>> EdgesData;
public List<EdgesModel> EdgesData;
}
public class ShankDataModel
+133 -42
View File
@@ -1,5 +1,6 @@
using CMS_CORE.Demo.Models;
using CMS_CORE.Utils;
using CMS_CORE_Library.Demo;
using CMS_CORE_Library.Demo.Models;
using Nc_Demo_Application.Server.Service;
using System;
@@ -11,9 +12,9 @@ using System.Linq;
using System.ServiceModel;
using System.ServiceModel.Description;
using System.Threading;
using static CMS_CORE.Demo.MEMORY_ADDRESS;
using static CMS_CORE.Nc;
using static CMS_CORE_Library.DataStructures;
using static CMS_CORE.Demo.MEMORY_ADDRESS;
using static CMS_CORE_Library.ToolConfigurations;
namespace CMS_CORE.Demo
@@ -24,7 +25,6 @@ namespace CMS_CORE.Demo
private ChannelFactory<ILibraryService> cf;
private ILibraryService serverService;
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
#region Contructor & global methods
@@ -597,7 +597,7 @@ namespace CMS_CORE.Demo
return NO_ERROR;
}
public override CmsError PLC_RNcSoftKeys(ref List<SoftKeysModel> ncSoftKeys)
{
CmsError cmsError = PLC_RSoftKeys(NC_SOFTKEYS_VALUE, NC_SOFTKEYS_CLICKABLE, ref ncSoftKeys);
@@ -734,10 +734,10 @@ namespace CMS_CORE.Demo
List<byte> readValues = new List<byte>();
// Find the size of a single head
int headsByte = (HEADS_DATA.Size / HEADS_NUMBER);
double headsInts = Math.Ceiling((double)(headsByte / 4 ) + 1);
double headsInts = Math.Ceiling((double)(headsByte / 4) + 1);
// Read data for N heads
CmsError cmsError = MEM_RWIntegerList(R, 0, HEADS_DATA.MemType, 0,HEADS_DATA.Address, (int)headsInts * number, ref readInts);
CmsError cmsError = MEM_RWIntegerList(R, 0, HEADS_DATA.MemType, 0, HEADS_DATA.Address, (int)headsInts * number, ref readInts);
if (cmsError.IsError())
return cmsError;
readValues = readInts.SelectMany(BitConverter.GetBytes).ToList();
@@ -944,7 +944,6 @@ namespace CMS_CORE.Demo
// Populate response structure
processData.Type = bits[3] ? "AUX" : "WORK";
// Choose process status
if (bits[4])
processData.Status = "HOLD";
@@ -956,8 +955,6 @@ namespace CMS_CORE.Demo
processData.Status = "READY";
}
// Get Reps from 2nd byte
processData.Reps = bytes[1];
@@ -1121,7 +1118,7 @@ namespace CMS_CORE.Demo
try
{
serverService.GetAxesPosition(procNumber.ToString(), out List<NcAxisModel> demoAxes);
// Parse response and retrieve distance to go
// Parse response and retrieve distance to go
foreach (NcAxisModel demoAxis in demoAxes)
{
Axes.Add(demoAxis.name, demoAxis.distanceToGo);
@@ -1704,15 +1701,16 @@ namespace CMS_CORE.Demo
}
#endregion File Management
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
#region Tools Management
public override CmsError TOOLS_RConfiguration(ref ToolTableConfiguration config)
{
config.ToolsConfiguration = SiemensToolsConfig;
config.FamiliesConfiguration = SiemensFamiliesConfig;
config.ShanksConfiguration = SiemensShanksConfig;
config.ToolsConfiguration = SiemensToolsConfig;
config.FamiliesConfiguration = SiemensFamiliesConfig;
config.ShanksConfiguration = SiemensShanksConfig;
config.MagazinePosConfiguration = SiemensMagazinePosConfig;
config.Magazines = new List<MagazineModel>()
@@ -1720,7 +1718,6 @@ namespace CMS_CORE.Demo
new MagazineModel{Id = 1, Type = MAGAZINE_TYPE.MAGAZINE},
new MagazineModel{Id = 2, Type = MAGAZINE_TYPE.MAGAZINE},
new MagazineModel{Id = 3, Type = MAGAZINE_TYPE.SPINDLE},
};
return NO_ERROR;
@@ -1737,31 +1734,68 @@ namespace CMS_CORE.Demo
{
toolTable = new List<SiemensToolModel>();
// Get tool table data
serverService.GetTools(out List<ToolsDataModel> toolsData);
serverService.GetTools(out List<ToolsDataModel> DemoToolsData);
foreach(ToolsDataModel tool in toolsData)
DemoEdgesConfiguration toolsConfig = new DemoEdgesConfiguration();
foreach (ToolsDataModel demoTool in DemoToolsData)
{
toolTable.Add(new SiemensToolModel()
var toolData = new SiemensToolModel()
{
Id = tool.Id,
FamilyName = tool.FamilyName,
ChildId = tool.ChildId,
MagazinePositionType = tool.MagazinePositionType,
ToolType = tool.ToolType,
LeftSize = tool.LeftSize,
RightSize = tool.RightSize,
Rotation = (ROTATION)tool.Rotation,
Cooling1 = tool.Cooling1,
Cooling2 = tool.Cooling2,
IsActive = tool.IsActive,
FixedPlace = tool.FixedPlace,
IsInhibited = tool.IsInhibited,
IsMeasured = tool.IsMeasured,
ChangeTool = tool.ChangeTool,
IsInUse = tool.IsInUse,
PreAlarm = tool.PreAlarm,
EdgesData = tool.EdgesData
});
Id = demoTool.Id,
FamilyName = demoTool.FamilyName,
ChildId = demoTool.ChildId,
MagazinePositionType = demoTool.MagazinePositionType,
ToolType = demoTool.ToolType,
LeftSize = demoTool.LeftSize,
RightSize = demoTool.RightSize,
Rotation = (ROTATION)demoTool.Rotation,
Cooling1 = demoTool.Cooling1,
Cooling2 = demoTool.Cooling2,
IsActive = demoTool.IsActive,
FixedPlace = demoTool.FixedPlace,
IsInhibited = demoTool.IsInhibited,
IsMeasured = demoTool.IsMeasured,
ChangeTool = demoTool.ChangeTool,
IsInUse = demoTool.IsInUse,
PreAlarm = demoTool.PreAlarm,
EdgesData = new List<EdgesModel>()
};
// Get tool type additional parameters
var toolTypeConfig = toolsConfig.EdgesConfig[demoTool.ToolType];
//--- Read Edges
// For each demo edge
foreach (var demoEdge in demoTool.EdgesData)
{
// Create new edge model with filtered data
var tmpEdge = new EdgesModel()
{
Id = demoEdge.Id,
ResidualLife = demoEdge.ResidualLife,
NominalLife = demoEdge.NominalLife,
PreAlmLife = demoEdge.PreAlmLife,
EdgeAdditionalParams = new Dictionary<string, double>()
};
// Populate dinamycal Params Get only tool type additional parameters
foreach (var item in toolTypeConfig)
{
tmpEdge.EdgeAdditionalParams.Add(
// Item name
item.Name,
// "param" + N; N is configured in the path
demoEdge.EdgeAdditionalParams["param" + item.Path]
);
}
// Add new edge to selected tool edges list
toolData.EdgesData.Add(tmpEdge);
}
// Add new tool to tool table
toolTable.Add(toolData);
}
return NO_ERROR;
@@ -1781,8 +1815,8 @@ namespace CMS_CORE.Demo
try
{
serverService.AddTool(ref tool);
serverService.AddTool(ref tool);
return NO_ERROR;
}
catch (Exception ex)
@@ -1829,6 +1863,66 @@ namespace CMS_CORE.Demo
}
}
#endregion Tools Management
#region Edges
//public override CmsError TOOLS_WAddEdge(int toolId, EdgesModel edge)
//{
// // Check if the NC Demo is Connected
// CmsError cmsError = CheckConnection();
// if (cmsError.IsError())
// return cmsError;
// try
// {
// DemoEdgesConfiguration toolsConfig = new DemoEdgesConfiguration();
// var toolTypeConfig = toolsConfig.EdgesConfig[demoTool.ToolType];
// // Populate dinamycal Params Get only tool type additional parameters
// foreach (var item in toolTypeConfig)
// {
// tmpEdge.EdgeAdditionalParams.Add(
// // Item name
// item.Name,
// // "param" + N; N is configured in the path
// demoEdge.EdgeAdditionalParams["param" + item.Path]
// );
// }
// serverService.AddEdge(toolId.ToString(), ref edge);
// return NO_ERROR;
// }
// catch (Exception ex)
// {
// return ManageException(ex);
// }
//}
public override CmsError TOOLS_WDeleteEdge(int toolId, int edgeId)
{
// Check if the NC Demo is Connected
CmsError cmsError = CheckConnection();
if (cmsError.IsError())
return cmsError;
try
{
serverService.DeleteEdge(toolId.ToString(), edgeId.ToString());
return NO_ERROR;
}
catch (Exception ex)
{
return ManageException(ex);
}
}
#endregion
#region ToolTable
public override CmsError TOOLS_RShanksData(ref List<ShankModel> shanks)
{
// Check if the NC Demo is Connected
@@ -1884,7 +1978,6 @@ namespace CMS_CORE.Demo
}
}
public override CmsError TOOLS_WDeleteShank(int id)
{
// Check if the NC Demo is Connected
@@ -1974,7 +2067,6 @@ namespace CMS_CORE.Demo
// Get families data
serverService.PutFamily(oldName, demoFamilyData);
return NO_ERROR;
}
catch (Exception ex)
@@ -2002,7 +2094,6 @@ namespace CMS_CORE.Demo
}
}
public override CmsError TOOLS_RMagazinePositions(ref List<MagazinePositionsModel> positions)
{
// Check if the NC Demo is Connected
@@ -2054,7 +2145,7 @@ namespace CMS_CORE.Demo
}
}
#endregion Tools Management
#endregion Tools Management
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+5
View File
@@ -1735,6 +1735,11 @@ namespace CMS_CORE.Fanuc
return NO_ERROR;
}
public override CmsError TOOLS_WDeleteEdge(int toolId, int edgeId)
{
return NO_ERROR;
}
#endregion Tools Management
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+3 -1
View File
@@ -1302,7 +1302,6 @@ namespace CMS_CORE
public abstract CmsError TOOLS_RToolTable(ref List<SiemensToolModel> toolTable);
public abstract CmsError TOOLS_RShanksData(ref List<ShankModel> shanksData);
public abstract CmsError TOOLS_RFamilyData(ref List<FamilyModel> families);
@@ -1327,6 +1326,9 @@ namespace CMS_CORE
public abstract CmsError TOOLS_WDeleteFamily(string name);
public abstract CmsError TOOLS_WDeleteEdge(int toolId, int edgeId);
#endregion File Management (To override)
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+5
View File
@@ -2105,6 +2105,11 @@ namespace CMS_CORE.Osai
return NO_ERROR;
}
public override CmsError TOOLS_WDeleteEdge(int toolId, int edgeId)
{
return NO_ERROR;
}
#endregion Tools Management
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+27 -18
View File
@@ -1,5 +1,4 @@
using CMS_CORE.Utils;
using CMS_CORE_Library;
using CMS_CORE_Library.Siemens;
using Siemens.Sinumerik.Operate.Services;
using System;
@@ -15,8 +14,8 @@ using System.Xml.Linq;
using static CMS_CORE.Nc;
using static CMS_CORE.Siemens.MEMORY_ADDRESS;
using static CMS_CORE_Library.DataStructures;
using static Siemens.Sinumerik.Operate.Services.ToolMngmntSvc;
using static CMS_CORE_Library.ToolConfigurations;
using static Siemens.Sinumerik.Operate.Services.ToolMngmntSvc;
namespace CMS_CORE.Siemens
{
@@ -66,6 +65,7 @@ namespace CMS_CORE.Siemens
// STatic variables
private AlarmSvc SiemensAlmSvc;
private ToolMngmntSvc SiemensToolSvc = null;
private Guid ToolMngmtListGuid = Guid.Empty;
@@ -123,7 +123,6 @@ namespace CMS_CORE.Siemens
SiemensToolSvc = new ToolMngmntSvc(1);
ToolMngmtListGuid = SiemensToolSvc.Subscribe(TOOLS_UpdateToolsData);
}
catch (Exception ex)
{
@@ -176,7 +175,7 @@ namespace CMS_CORE.Siemens
Value = x.Element("translation").Value
});
foreach ( var message in messagesList)
foreach (var message in messagesList)
{
if (!messages.Keys.Contains(message.Key))
{
@@ -1757,7 +1756,7 @@ namespace CMS_CORE.Siemens
{
TOOLS_ChooseActions(toolInfos[i]);
}
}
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
@@ -1777,6 +1776,7 @@ namespace CMS_CORE.Siemens
ToolTableData.Remove(tool);
}
break;
case ToolAction.TOOL_CREATED:
{
// Create a configuration file
@@ -1791,10 +1791,12 @@ namespace CMS_CORE.Siemens
ToolTableData.Add(newTool);
}
break;
case ToolAction.TOOL_DATA_CHANGED: { } break;
case ToolAction.TOOL_MOVED: { } break;
}
} catch (Exception ex)
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
@@ -1804,11 +1806,13 @@ namespace CMS_CORE.Siemens
private SiemensToolModel TOOLS_CreateToolFromType(int toolId, string[] toolStrings)
{
SiemensEdgesConfiguration toolEdgesConfig = new SiemensEdgesConfiguration();
// Find its status
var toolStatus = Convert.ToByte(toolStrings.FirstOrDefault(X => X.Contains("$TC_TP8[" + toolId)).Split('=').LastOrDefault());
// Find basic info (rotation, cooling ...)
var toolInfo = Convert.ToInt32(toolStrings.FirstOrDefault(X => X.Contains("$TC_DP25[" + toolId)).Split('=').LastOrDefault());
// Get rotation data
ROTATION rotation = ROTATION.NONE;
if (GetBitValue(toolInfo, 9))
@@ -1834,36 +1838,36 @@ namespace CMS_CORE.Siemens
ChangeTool = GetBitValue(toolStatus, 5),
IsInUse = GetBitValue(toolStatus, 7),
PreAlarm = GetBitValue(toolStatus, 8),
EdgesData = new List<Dictionary<string, double>>()
EdgesData = new List<EdgesModel>()
};
// LEGGERE MAX = $MN_MM_MAX_CUTTING_EDGE_PERTOOL
// For each possible edges
for(int i = 0; i < 5; i++)
for (int i = 0; i < 5; i++)
{
// Find the type of the edges
var toolType = toolStrings.FirstOrDefault(X => X.Contains("$TC_DP1[" + toolId + "," + i));
// If type doesn't exist than edges doesn't exist
if( toolType != null)
if (toolType != null)
{
int toolTypeVal = Convert.ToByte(toolType.Split('=').LastOrDefault());
// Get tool type additional parameters
SiemensAdditionalParams toolsConfig = new SiemensAdditionalParams();
var toolTypeConfig = toolsConfig.ToolsSettings[toolTypeVal];
Dictionary<string, double> tmpDictionary = new Dictionary<string, double>();
// For each parameter
// Get tool type additional parameters
var toolTypeConfig = toolEdgesConfig.EdgesConfig[toolTypeVal];
EdgesModel edgeData = new EdgesModel();
// For each dynamic parameter configured
foreach (var item in toolTypeConfig)
{
tmpDictionary.Add(
edgeData.EdgeAdditionalParams.Add(
item.Name,
Convert.ToDouble(toolStrings.FirstOrDefault(X => X.Contains(item.Path + toolId + "," + i)).Split('=').LastOrDefault())
);
}
toolValues.EdgesData.Add(tmpDictionary);
toolValues.EdgesData.Add(edgeData);
}
}
return toolValues;
}
@@ -1927,6 +1931,11 @@ namespace CMS_CORE.Siemens
return NO_ERROR;
}
public override CmsError TOOLS_WDeleteEdge(int toolId, int edgeId)
{
return NO_ERROR;
}
#endregion Tool Management
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
@@ -0,0 +1,441 @@
using System.Collections.Generic;
using static CMS_CORE_Library.DataStructures;
namespace CMS_CORE_Library.Siemens
{
internal class SiemensEdgesConfiguration
{
public Dictionary<int, List<EdgeConfigModel>> EdgesConfig = new Dictionary<int, List<EdgeConfigModel>>()
{
{
100, new List<EdgeConfigModel>()
{
new EdgeConfigModel{Name = "CuttingEdgeConfigModel", Path = "$TC_DP2["},
new EdgeConfigModel{Name = "Lenght", Path = "$TC_DP3["},
new EdgeConfigModel{Name = "Radius", Path = "$TC_DP6["},
new EdgeConfigModel{Name = "WearLenght", Path = "$TC_DP12["},
new EdgeConfigModel{Name = "WearRadius", Path = "$TC_DP15["},
new EdgeConfigModel{Name = "Teeth", Path = "$TC_DPNT[" }
}
},
{
110, new List<EdgeConfigModel>()
{
new EdgeConfigModel{Name = "CuttingEdgeConfigModel", Path = "$TC_DP2["},
new EdgeConfigModel{Name = "Lenght", Path = "$TC_DP3["},
new EdgeConfigModel{Name = "Radius", Path = "$TC_DP6["},
new EdgeConfigModel{Name = "WearLenght", Path = "$TC_DP12["},
new EdgeConfigModel{Name = "WearRadius", Path = "$TC_DP15["},
new EdgeConfigModel{Name = "Teeth", Path = "$TC_DPNT[" }
}
},
{
111, new List<EdgeConfigModel>()
{
new EdgeConfigModel{Name = "CuttingEdgeConfigModel", Path = "$TC_DP2["},
new EdgeConfigModel{Name = "Lenght", Path = "$TC_DP3["},
new EdgeConfigModel{Name = "Radius", Path = "$TC_DP6["},
new EdgeConfigModel{Name = "CornerRadius", Path = "$TC_DP7["},
new EdgeConfigModel{Name = "WearLenght", Path = "$TC_DP12["},
new EdgeConfigModel{Name = "WearRadius", Path = "$TC_DP15["},
new EdgeConfigModel{Name = "Teeth", Path = "$TC_DPNT[" }
}
},
{
120, new List<EdgeConfigModel>()
{
new EdgeConfigModel{Name = "CuttingEdgeConfigModel", Path = "$TC_DP2["},
new EdgeConfigModel{Name = "Lenght", Path = "$TC_DP3["},
new EdgeConfigModel{Name = "Radius", Path = "$TC_DP6["},
new EdgeConfigModel{Name = "WearLenght", Path = "$TC_DP12["},
new EdgeConfigModel{Name = "WearRadius", Path = "$TC_DP15["},
new EdgeConfigModel{Name = "Teeth", Path = "$TC_DPNT[" }
}
},
{
121, new List<EdgeConfigModel>()
{
new EdgeConfigModel{Name = "CuttingEdgeConfigModel", Path = "$TC_DP2["},
new EdgeConfigModel{Name = "Lenght", Path = "$TC_DP3["},
new EdgeConfigModel{Name = "Radius", Path = "$TC_DP6["},
new EdgeConfigModel{Name = "WearLenght", Path = "$TC_DP12["},
new EdgeConfigModel{Name = "WearRadius", Path = "$TC_DP15["},
new EdgeConfigModel{Name = "Teeth", Path = "$TC_DPNT[" }
}
},
{
130, new List<EdgeConfigModel>()
{
new EdgeConfigModel{Name = "CuttingEdgeConfigModel", Path = "$TC_DP2["},
new EdgeConfigModel{Name = "GeomLenght1", Path = "$TC_DP3["},
new EdgeConfigModel{Name = "GeomLenght2", Path = "$TC_DP4["},
new EdgeConfigModel{Name = "GeomLenght3", Path = "$TC_DP5["},
new EdgeConfigModel{Name = "Radius", Path = "$TC_DP6["},
new EdgeConfigModel{Name = "GeomDeltaLenght1", Path = "$TC_DP12["},
new EdgeConfigModel{Name = "GeomDeltaLenght2", Path = "$TC_DP13["},
new EdgeConfigModel{Name = "GeomDeltaLenght3", Path = "$TC_DP14["},
new EdgeConfigModel{Name = "WearRadius", Path = "$TC_DP15["},
new EdgeConfigModel{Name = "AdapterLenght1", Path = "$TC_DP21["},
new EdgeConfigModel{Name = "AdapterLenght2", Path = "$TC_DP22["},
new EdgeConfigModel{Name = "AdapterLenght3", Path = "$TC_DP23["},
new EdgeConfigModel{Name = "V", Path = "$TC_DPV["},
new EdgeConfigModel{Name = "Vector1", Path = "$TC_DPV3["},
new EdgeConfigModel{Name = "Vector2", Path = "$TC_DPV4["},
new EdgeConfigModel{Name = "Vector3", Path = "$TC_DPV5["},
new EdgeConfigModel{Name = "Teeth", Path = "$TC_DPNT[" }
}
},
{
131, new List<EdgeConfigModel>()
{
new EdgeConfigModel{Name = "CuttingEdgeConfigModel", Path = "$TC_DP2["},
new EdgeConfigModel{Name = "GeomLenght1", Path = "$TC_DP3["},
new EdgeConfigModel{Name = "GeomLenght2", Path = "$TC_DP4["},
new EdgeConfigModel{Name = "GeomLenght3", Path = "$TC_DP5["},
new EdgeConfigModel{Name = "Radius", Path = "$TC_DP6["},
new EdgeConfigModel{Name = "CornerRadius", Path = "$TC_DP7["},
new EdgeConfigModel{Name = "GeomDeltaLenght1", Path = "$TC_DP12["},
new EdgeConfigModel{Name = "GeomDeltaLenght2", Path = "$TC_DP13["},
new EdgeConfigModel{Name = "GeomDeltaLenght3", Path = "$TC_DP14["},
new EdgeConfigModel{Name = "WearRadius", Path = "$TC_DP15["},
new EdgeConfigModel{Name = "AdapterLenght1", Path = "$TC_DP21["},
new EdgeConfigModel{Name = "AdapterLenght2", Path = "$TC_DP22["},
new EdgeConfigModel{Name = "AdapterLenght3", Path = "$TC_DP23["},
new EdgeConfigModel{Name = "V", Path = "$TC_DPV["},
new EdgeConfigModel{Name = "Vector1", Path = "$TC_DPV3["},
new EdgeConfigModel{Name = "Vector2", Path = "$TC_DPV4["},
new EdgeConfigModel{Name = "Vector3", Path = "$TC_DPV5["},
new EdgeConfigModel{Name = "Teeth", Path = "$TC_DPNT[" }
}
},
{
140, new List<EdgeConfigModel>()
{
new EdgeConfigModel{Name = "CuttingEdgeConfigModel", Path = "$TC_DP2["},
new EdgeConfigModel{Name = "Lenght", Path = "$TC_DP3["},
new EdgeConfigModel{Name = "Radius", Path = "$TC_DP6["},
new EdgeConfigModel{Name = "OutsideRadius", Path = "$TC_DP7["},
new EdgeConfigModel{Name = "ToolAngle", Path = "$TC_DP11["},
new EdgeConfigModel{Name = "Teeth", Path = "$TC_DPNT[" }
}
},
{
145, new List<EdgeConfigModel>()
{
new EdgeConfigModel{Name = "CuttingEdgeConfigModel", Path = "$TC_DP2["},
new EdgeConfigModel{Name = "Lenght", Path = "$TC_DP3["},
new EdgeConfigModel{Name = "Radius", Path = "$TC_DP6["},
new EdgeConfigModel{Name = "WearLenght", Path = "$TC_DP12["},
new EdgeConfigModel{Name = "WearRadius", Path = "$TC_DP15["},
new EdgeConfigModel{Name = "Teeth", Path = "$TC_DPNT[" }
}
},
{
150, new List<EdgeConfigModel>()
{
new EdgeConfigModel{Name = "CuttingEdgeConfigModel", Path = "$TC_DP2["},
new EdgeConfigModel{Name = "Lenght", Path = "$TC_DP3["},
new EdgeConfigModel{Name = "Radius", Path = "$TC_DP6["},
new EdgeConfigModel{Name = "Width", Path = "$TC_DP9[" },
new EdgeConfigModel{Name = "WearLenght", Path = "$TC_DP12["},
new EdgeConfigModel{Name = "WearRadius", Path = "$TC_DP15[" },
new EdgeConfigModel{Name = "Teeth", Path = "$TC_DPNT[" }
}
},
{
151, new List<EdgeConfigModel>()
{
new EdgeConfigModel{Name = "CuttingEdgeConfigModel", Path = "$TC_DP2["},
new EdgeConfigModel{Name = "Lenght", Path = "$TC_DP3["},
new EdgeConfigModel{Name = "Radius", Path = "$TC_DP6["},
new EdgeConfigModel{Name = "Width", Path = "$TC_DP9[" },
new EdgeConfigModel{Name = "WearLenght", Path = "$TC_DP12["},
new EdgeConfigModel{Name = "WearRadius", Path = "$TC_DP15[" },
new EdgeConfigModel{Name = "Teeth", Path = "$TC_DPNT[" }
}
},
{
155, new List<EdgeConfigModel>()
{
new EdgeConfigModel{Name = "CuttingEdgeConfigModel", Path = "$TC_DP2["},
new EdgeConfigModel{Name = "Lenght", Path = "$TC_DP3["},
new EdgeConfigModel{Name = "Radius", Path = "$TC_DP6["},
new EdgeConfigModel{Name = "TaperAngle", Path = "$TC_DP11[" },
new EdgeConfigModel{Name = "WearLenght", Path = "$TC_DP12["},
new EdgeConfigModel{Name = "WearRadius", Path = "$TC_DP15["},
new EdgeConfigModel{Name = "Teeth", Path = "$TC_DPNT[" }
}
},
{
156, new List<EdgeConfigModel>()
{
new EdgeConfigModel{Name = "CuttingEdgeConfigModel", Path = "$TC_DP2["},
new EdgeConfigModel{Name = "Lenght", Path = "$TC_DP3["},
new EdgeConfigModel{Name = "Radius", Path = "$TC_DP6["},
new EdgeConfigModel{Name = "CornerRadius", Path = "$TC_DP7["},
new EdgeConfigModel{Name = "TaperAngle", Path = "$TC_DP11[" },
new EdgeConfigModel{Name = "WearLenght", Path = "$TC_DP12["},
new EdgeConfigModel{Name = "WearRadius", Path = "$TC_DP15["},
new EdgeConfigModel{Name = "Teeth", Path = "$TC_DPNT[" }
}
},
{
157, new List<EdgeConfigModel>()
{
new EdgeConfigModel{Name = "CuttingEdgeConfigModel", Path = "$TC_DP2["},
new EdgeConfigModel{Name = "Lenght", Path = "$TC_DP3["},
new EdgeConfigModel{Name = "Radius", Path = "$TC_DP6["},
new EdgeConfigModel{Name = "TaperAngle", Path = "$TC_DP11[" },
new EdgeConfigModel{Name = "WearLenght", Path = "$TC_DP12["},
new EdgeConfigModel{Name = "WearRadius", Path = "$TC_DP15["},
new EdgeConfigModel{Name = "Teeth", Path = "$TC_DPNT[" }
}
},
{
160, new List<EdgeConfigModel>()
{
new EdgeConfigModel{Name = "CuttingEdgeConfigModel", Path = "$TC_DP2["},
new EdgeConfigModel{Name = "Lenght", Path = "$TC_DP3["},
new EdgeConfigModel{Name = "Radius", Path = "$TC_DP6["},
new EdgeConfigModel{Name = "WearLenght", Path = "$TC_DP12["},
new EdgeConfigModel{Name = "WearRadius", Path = "$TC_DP15["},
new EdgeConfigModel{Name = "Teeth", Path = "$TC_DPNT[" }
}
},
//////// 200 - 300
{
200, new List<EdgeConfigModel>()
{
new EdgeConfigModel{ Name = "CuttingEdgeConfigModel", Path = "$TC_DP2["},
new EdgeConfigModel{ Name = "Lenght", Path = "$TC_DP3["},
new EdgeConfigModel{ Name = "Radius", Path = "$TC_DP6["},
new EdgeConfigModel{ Name = "WearLenght", Path = "$TC_DP12["},
new EdgeConfigModel{ Name = "WearRadius", Path = "$TC_DP15["},
new EdgeConfigModel{ Name = "TipAngle", Path = "$TC_DP24["}
}
},
{
205, new List<EdgeConfigModel>()
{
new EdgeConfigModel{ Name = "CuttingEdgeConfigModel", Path = "$TC_DP2["},
new EdgeConfigModel{ Name = "Lenght", Path = "$TC_DP3["},
new EdgeConfigModel{ Name = "Radius", Path = "$TC_DP6["},
new EdgeConfigModel{ Name = "WearLenght", Path = "$TC_DP12["},
new EdgeConfigModel{ Name = "WearRadius", Path = "$TC_DP15["}
}
},
{
210, new List<EdgeConfigModel>()
{
new EdgeConfigModel{ Name = "CuttingEdgeConfigModel", Path = "$TC_DP2["},
new EdgeConfigModel{ Name = "Lenght", Path = "$TC_DP3["},
new EdgeConfigModel{ Name = "Radius", Path = "$TC_DP6["},
new EdgeConfigModel{ Name = "WearLenght", Path = "$TC_DP12["},
new EdgeConfigModel{ Name = "WearRadius", Path = "$TC_DP15["}
}
},
{
220, new List<EdgeConfigModel>()
{
new EdgeConfigModel{ Name = "CuttingEdgeConfigModel", Path = "$TC_DP2["},
new EdgeConfigModel{ Name = "Lenght", Path = "$TC_DP3["},
new EdgeConfigModel{ Name = "Radius", Path = "$TC_DP6["},
new EdgeConfigModel{ Name = "WearLenght", Path = "$TC_DP12["},
new EdgeConfigModel{ Name = "WearRadius", Path = "$TC_DP15["},
new EdgeConfigModel{ Name = "TipAngle", Path = "$TC_DP24["}
}
},
{
230, new List<EdgeConfigModel>()
{
new EdgeConfigModel{ Name = "CuttingEdgeConfigModel", Path = "$TC_DP2["},
new EdgeConfigModel{ Name = "Lenght", Path = "$TC_DP3["},
new EdgeConfigModel{ Name = "Radius", Path = "$TC_DP6["},
new EdgeConfigModel{ Name = "WearLenght", Path = "$TC_DP12["},
new EdgeConfigModel{ Name = "WearRadius", Path = "$TC_DP15["},
new EdgeConfigModel{ Name = "TipAngle", Path = "$TC_DP24["}
}
},
{
231, new List<EdgeConfigModel>()
{
new EdgeConfigModel{ Name = "CuttingEdgeConfigModel", Path = "$TC_DP2["},
new EdgeConfigModel{ Name = "Lenght", Path = "$TC_DP3["},
new EdgeConfigModel{ Name = "Radius", Path = "$TC_DP6["},
new EdgeConfigModel{ Name = "WearLenght", Path = "$TC_DP12["},
new EdgeConfigModel{ Name = "WearRadius", Path = "$TC_DP15["}
}
},
{
240, new List<EdgeConfigModel>()
{
new EdgeConfigModel{ Name = "CuttingEdgeConfigModel", Path = "$TC_DP2["},
new EdgeConfigModel{ Name = "Lenght", Path = "$TC_DP3["},
new EdgeConfigModel{ Name = "Radius", Path = "$TC_DP6["},
new EdgeConfigModel{ Name = "Pitch", Path = "$TC_DP9["},
new EdgeConfigModel{ Name = "WearLenght", Path = "$TC_DP12["},
new EdgeConfigModel{ Name = "WearRadius", Path = "$TC_DP15["}
}
},
{
241, new List<EdgeConfigModel>()
{
new EdgeConfigModel{ Name = "CuttingEdgeConfigModel", Path = "$TC_DP2["},
new EdgeConfigModel{ Name = "Lenght", Path = "$TC_DP3["},
new EdgeConfigModel{ Name = "Radius", Path = "$TC_DP6["},
new EdgeConfigModel{ Name = "WearLenght", Path = "$TC_DP12["},
new EdgeConfigModel{ Name = "WearRadius", Path = "$TC_DP15["}
}
},
{
242, new List<EdgeConfigModel>()
{
new EdgeConfigModel{ Name = "CuttingEdgeConfigModel", Path = "$TC_DP2["},
new EdgeConfigModel{ Name = "Lenght", Path = "$TC_DP3["},
new EdgeConfigModel{ Name = "Radius", Path = "$TC_DP6["},
new EdgeConfigModel{ Name = "WearLenght", Path = "$TC_DP12["},
new EdgeConfigModel{ Name = "WearRadius", Path = "$TC_DP15["}
}
},
{
250, new List<EdgeConfigModel>()
{
new EdgeConfigModel{ Name = "CuttingEdgeConfigModel", Path = "$TC_DP2["},
new EdgeConfigModel{ Name = "Lenght", Path = "$TC_DP3["},
new EdgeConfigModel{ Name = "Radius", Path = "$TC_DP6["},
new EdgeConfigModel{ Name = "WearLenght", Path = "$TC_DP12["},
new EdgeConfigModel{ Name = "WearRadius", Path = "$TC_DP15["}
}
},
///////// 700 - 900
{
700, new List<EdgeConfigModel>()
{
new EdgeConfigModel{Name = "CuttingEdgeConfigModel", Path = "$TC_DP2["},
new EdgeConfigModel{Name = "GeomLenght1", Path = "$TC_DP3["},
new EdgeConfigModel{Name = "GeomLenght2", Path = "$TC_DP4["},
new EdgeConfigModel{Name = "GeomLenght3", Path = "$TC_DP5["},
new EdgeConfigModel{Name = "Diameter", Path = "6"},
new EdgeConfigModel{Name = "GeomSlotWidth", Path = "$TC_DP7["},
new EdgeConfigModel{Name = "GeomPrjection", Path = "$TC_DP8["},
new EdgeConfigModel{Name = "GeomWearLenght1", Path = "$TC_DP12["},
new EdgeConfigModel{Name = "GeomWearLenght2", Path = "$TC_DP13["},
new EdgeConfigModel{Name = "GeomWearLenght3", Path = "$TC_DP14["},
new EdgeConfigModel{Name = "WearDiameter", Path = "$TC_DP15["},
new EdgeConfigModel{Name = "WearSlotWdth", Path = "$TC_DP16["},
new EdgeConfigModel{Name = "WearGeomPrjection", Path = "$TC_DP17["},
new EdgeConfigModel{Name = "AdapterLenght1", Path = "$TC_DP21["},
new EdgeConfigModel{Name = "AdapterLenght2", Path = "$TC_DP22["},
new EdgeConfigModel{Name = "AdapterLenght3", Path = "$TC_DP23["}
}
},
{
710, new List<EdgeConfigModel>()
{
new EdgeConfigModel{Name = "CuttingEdgeConfigModel", Path = "$TC_DP2["},
new EdgeConfigModel{Name = "Lenght", Path = "$TC_DP3["},
new EdgeConfigModel{Name = "Radius", Path = "$TC_DP6["},
new EdgeConfigModel{Name = "WearLenght", Path = "$TC_DP12["},
new EdgeConfigModel{Name = "WearRadius", Path = "$TC_DP15["}
}
},
{
711, new List<EdgeConfigModel>()
{
new EdgeConfigModel{Name = "CuttingEdgeConfigModel", Path = "$TC_DP2["},
new EdgeConfigModel{Name = "Lenght", Path = "$TC_DP3["},
new EdgeConfigModel{Name = "Radius", Path = "$TC_DP6["},
new EdgeConfigModel{Name = "WearLenght", Path = "$TC_DP12["},
new EdgeConfigModel{Name = "WearRadius", Path = "$TC_DP15["}
}
},
{
712, new List<EdgeConfigModel>()
{
new EdgeConfigModel{Name = "CuttingEdgeConfigModel", Path = "$TC_DP2["},
new EdgeConfigModel{Name = "Lenght", Path = "$TC_DP3["},
new EdgeConfigModel{Name = "Radius", Path = "$TC_DP6["},
new EdgeConfigModel{Name = "CorrAngle", Path = "$TC_DP10["},
new EdgeConfigModel{Name = "WearLenght", Path = "$TC_DP12["},
new EdgeConfigModel{Name = "WearRadius", Path = "$TC_DP15["}
}
},
{
713, new List<EdgeConfigModel>()
{
new EdgeConfigModel{Name = "CuttingEdgeConfigModel", Path = "$TC_DP2["},
new EdgeConfigModel{Name = "GeomLenght1", Path = "$TC_DP3["},
new EdgeConfigModel{Name = "GeomLenght2", Path = "$TC_DP4["},
new EdgeConfigModel{Name = "GeomLenght3", Path = "$TC_DP5["},
new EdgeConfigModel{Name = "Radius", Path = "$TC_DP6["},
new EdgeConfigModel{Name = "BoomLenght", Path = "$TC_DP7["},
new EdgeConfigModel{Name = "CorrAngle", Path = "$TC_DP10["},
new EdgeConfigModel{Name = "GeomWearLenght1", Path = "$TC_DP12["},
new EdgeConfigModel{Name = "GeomWearLenght2", Path = "$TC_DP13["},
new EdgeConfigModel{Name = "GeomWearLenght3", Path = "$TC_DP14["},
new EdgeConfigModel{Name = "WearRadius", Path = "$TC_DP15["},
new EdgeConfigModel{Name = "AdapterLenght1", Path = "$TC_DP21["},
new EdgeConfigModel{Name = "AdapterLenght2", Path = "$TC_DP22["},
new EdgeConfigModel{Name = "AdapterLenght3", Path = "$TC_DP23["}
}
},
{
714, new List<EdgeConfigModel>()
{
new EdgeConfigModel{Name = "CuttingEdgeConfigModel", Path = "$TC_DP2["},
new EdgeConfigModel{Name = "GeomLenght1", Path = "$TC_DP3["},
new EdgeConfigModel{Name = "GeomLenght2", Path = "$TC_DP4["},
new EdgeConfigModel{Name = "GeomLenght3", Path = "$TC_DP5["},
new EdgeConfigModel{Name = "Radius", Path = "$TC_DP6["},
new EdgeConfigModel{Name = "BallRadius", Path = "$TC_DP7["},
new EdgeConfigModel{Name = "CorrAngle", Path = "$TC_DP10["},
new EdgeConfigModel{Name = "GeomWearLenght1", Path = "$TC_DP12["},
new EdgeConfigModel{Name = "GeomWearLenght2", Path = "$TC_DP13["},
new EdgeConfigModel{Name = "GeomWearLenght3", Path = "$TC_DP14["},
new EdgeConfigModel{Name = "WearRadius", Path = "$TC_DP15["},
new EdgeConfigModel{Name = "AdapterLenght1", Path = "$TC_DP21["},
new EdgeConfigModel{Name = "AdapterLenght2", Path = "$TC_DP22["},
new EdgeConfigModel{Name = "AdapterLenght3", Path = "$TC_DP23["}
}
},
{
725, new List<EdgeConfigModel>()
{
new EdgeConfigModel{Name = "CuttingEdgeConfigModel", Path = "$TC_DP2["},
new EdgeConfigModel{Name = "GeomLenght1", Path = "$TC_DP3["},
new EdgeConfigModel{Name = "GeomLenght2", Path = "$TC_DP4["},
new EdgeConfigModel{Name = "GeomLenght3", Path = "$TC_DP5["},
new EdgeConfigModel{Name = "Radius", Path = "$TC_DP6["},
new EdgeConfigModel{Name = "CorrAngle", Path = "$TC_DP10["},
new EdgeConfigModel{Name = "GeomWearLenght1", Path = "$TC_DP12["},
new EdgeConfigModel{Name = "GeomWearLenght2", Path = "$TC_DP13["},
new EdgeConfigModel{Name = "GeomWearLenght3", Path = "$TC_DP14["},
new EdgeConfigModel{Name = "WearRadius", Path = "$TC_DP15["},
new EdgeConfigModel{Name = "AdapterLenght1", Path = "$TC_DP21["},
new EdgeConfigModel{Name = "AdapterLenght2", Path = "$TC_DP22["},
new EdgeConfigModel{Name = "AdapterLenght3", Path = "$TC_DP23["}
}
},
{
730, new List<EdgeConfigModel>()
{
new EdgeConfigModel{Name = "CuttingEdgeConfigModel", Path = "$TC_DP2["},
new EdgeConfigModel{Name = "Lenght", Path = "$TC_DP3["},
new EdgeConfigModel{Name = "Radius", Path = "$TC_DP6["},
new EdgeConfigModel{Name = "WearLenght", Path = "$TC_DP12["},
new EdgeConfigModel{Name = "WearRadius", Path = "$TC_DP15["}
}
},
{
900, new List<EdgeConfigModel>()
{
new EdgeConfigModel{Name = "CuttingEdgeConfigModel", Path = "$TC_DP2["},
new EdgeConfigModel{Name = "Lenght", Path = "$TC_DP3["},
new EdgeConfigModel{Name = "Radius", Path = "$TC_DP6["},
new EdgeConfigModel{Name = "WearLenght", Path = "$TC_DP12["},
new EdgeConfigModel{Name = "WearRadius", Path = "$TC_DP15["}
}
},
};
}
}
@@ -18,6 +18,7 @@ namespace Nc_Demo_Application
public const string READ_FAMILIES_QUERY = "SELECT * FROM family";
public const string READ_SHANKS_QUERY = "SELECT * FROM shank";
public const string READ_MAGAZINES_QUERY = "SELECT * FROM magazine";
public const string READ_EDGES_QUERY = "SELECT * FROM edge";
// Server configuration
public static string SERVER_PORT = ":8080";
@@ -26,6 +26,7 @@ namespace Nc_Demo_Application.Database
private DataTable FamiliesDataTable;
private DataTable ShanksDataTable;
private DataTable MagazinesPositionDataTable;
private DataTable EdgeDataTable;
#region Constructor & Private functions
@@ -42,6 +43,7 @@ namespace Nc_Demo_Application.Database
MagazinesPositionDataTable = new DataTable();
NcProcessDataTable = new DataTable();
BinaryMemory = new DataTable();
EdgeDataTable = new DataTable();
// Create ncProcess columns
NcProcessDataTable.Columns.Add("status", typeof(PROC_STATUS));
@@ -72,6 +74,7 @@ namespace Nc_Demo_Application.Database
public void ResetDatabase()
{
// Dispose all the Datatable
BinaryMemory.Dispose();
NcProcessDataTable.Dispose();
NcAlarmDataTable.Dispose();
@@ -80,7 +83,9 @@ namespace Nc_Demo_Application.Database
FamiliesDataTable.Dispose();
ShanksDataTable.Dispose();
MagazinesPositionDataTable.Dispose();
EdgeDataTable.Dispose();
// Close sql connection
sqlConnection.Close();
}
@@ -808,10 +813,12 @@ namespace Nc_Demo_Application.Database
// Delete row with matching id
DataRow row = ShanksDataTable.AsEnumerable().FirstOrDefault(x => Convert.ToInt32(x["id"]) == id);
row.Delete();
// Update database
adapter.Update(ShanksDataTable);
if(row != null)
{
row.Delete();
// Update database
adapter.Update(ShanksDataTable);
}
// Close the connection with database
sqlConnection.Close();
@@ -894,7 +901,7 @@ namespace Nc_Demo_Application.Database
DataRow row = ToolsDataTable.NewRow();
// Find & set new item Id
toolData.Id = Convert.ToInt32(ToolsDataTable.Rows[ToolsDataTable.Rows.Count - 1]["id"]) + 1;
// Get child id
// Get child id
toolData.ChildId = GetFamilyChildId(toolData.FamilyName);
// Setup autoincrement Id
@@ -982,7 +989,7 @@ namespace Nc_Demo_Application.Database
Console.WriteLine("Update tool exception: " + ex.Message);
}
}
private int GetFamilyChildId(string familyName)
{
// Find next child id
@@ -1012,9 +1019,12 @@ namespace Nc_Demo_Application.Database
// Delete row with matching id
DataRow row = ToolsDataTable.AsEnumerable().FirstOrDefault(x => Convert.ToInt32(x["id"]) == id);
row.Delete();
// Update database
adapter.Update(ToolsDataTable);
if(row != null)
{
row.Delete();
// Update database
adapter.Update(ToolsDataTable);
}
// Close the connection with database
sqlConnection.Close();
@@ -1027,6 +1037,153 @@ namespace Nc_Demo_Application.Database
#endregion Tools
#region Edges
public DataTable ReadEdges(int toolId)
{
try
{
ReadDataFromDatabase(READ_EDGES_QUERY + " where tool_id =" + toolId, ref EdgeDataTable);
return EdgeDataTable;
}
catch (Exception ex)
{
Console.WriteLine("Read edges exception: " + ex.Message);
return null;
}
}
public List<EdgesDataModel> GetEdgesData(int toolId)
{
List<EdgesDataModel> edgesList = new List<EdgesDataModel>();
// Not having a list of all the edges, you must read again
ReadEdges(toolId);
// Populate Edges Model with db data
foreach (DataRow row in EdgeDataTable.Rows)
{
EdgesDataModel edge = new EdgesDataModel
{
Id = Convert.ToInt32(row["id"]),
NominalLife = Convert.ToInt32(row["nominal_life"]),
ResidualLife = Convert.ToInt32(row["residual_life"]),
PreAlmLife = Convert.ToInt32(row["prealm_life"])
};
edge.EdgeAdditionalParams = new Dictionary<string, double>();
for (int i = 2; i <= 30; i++)
{
string key = "param" + i;
edge.EdgeAdditionalParams.Add(key, Convert.ToDouble(row[key]));
}
edge.EdgeAdditionalParams.Add("param34", Convert.ToDouble(row["param34"]));
edgesList.Add(edge);
}
return edgesList;
}
public EdgesDataModel AddEdge(int toolId, EdgesDataModel newEdge)
{
try
{
// Get data from DB, alreaby filtred by tool id
DataTable edgesTable = ReadEdges(toolId);
// Open the connection with database
SetConnection();
sqlConnection.Open();
// Create a SQLite command with query, adapter and commandbuilder in order to update.
sqlCommand = new SQLiteCommand(READ_EDGES_QUERY, sqlConnection);
SQLiteDataAdapter adapter = new SQLiteDataAdapter(sqlCommand);
SQLiteCommandBuilder commandBuilder = new SQLiteCommandBuilder(adapter);
// Create new row that must be inserted
DataRow row = edgesTable.NewRow();
int id = Convert.ToInt32(edgesTable.Rows[edgesTable.Rows.Count - 1]["child_id"]) + 1;
newEdge.Id = id;
// Setup autoincrement Id
row["child_id"] = id;
row["tool_id"] = toolId;
row["residual_life"] = newEdge.ResidualLife;
row["nominal_life"] = newEdge.NominalLife;
row["prealm_life"] = newEdge.PreAlmLife;
// Set additional param value
for (int i = 2; i <= 30; i++)
{
string key = "param" + i;
// Check if value exist, if not 0
row[key] = newEdge.EdgeAdditionalParams.ContainsKey(key) ? newEdge.EdgeAdditionalParams[key] : 0;
}
// Same operation as above but for param34
row["param34"] = newEdge.EdgeAdditionalParams.ContainsKey("param34") ? newEdge.EdgeAdditionalParams["param34"] : 0;
// Add the new row
EdgeDataTable.Rows.Add(row);
// Update database
adapter.Update(EdgeDataTable);
// Close the connection with database
sqlConnection.Close();
return newEdge;
}
catch (Exception ex)
{
Console.WriteLine("Add edge exception: " + ex.Message);
return null;
}
}
public void UpdateEdges(DataTable edges)
{
UpdateDatabaseFromGridView(edges, READ_EDGES_QUERY);
}
public void DeleteEdge(int toolId, int edgeId)
{
try
{
// Get data from DB, alreaby filtred by tool id
DataTable edgesTable = ReadEdges(toolId);
SetConnection();
// Open the connection with database
sqlConnection.Open();
// Create a SQLite command with query, adapter and commandbuilder in order to delete
sqlCommand = new SQLiteCommand(READ_EDGES_QUERY, sqlConnection);
SQLiteDataAdapter adapter = new SQLiteDataAdapter(sqlCommand);
SQLiteCommandBuilder commandBuilder = new SQLiteCommandBuilder(adapter);
// Delete row with matching edgeId inside tool
DataRow row = edgesTable.AsEnumerable().FirstOrDefault(x => Convert.ToInt32(x["child_id"]) == edgeId);
if(row != null)
{
row.Delete();
// Update database
adapter.Update(edgesTable);
}
// Close the connection with database
sqlConnection.Close();
}
catch (Exception ex)
{
Console.WriteLine("Delete edge exception: " + ex.Message);
}
}
#endregion Edges
#region Magazines
public DataTable ReadMagazines()
@@ -1068,13 +1225,43 @@ namespace Nc_Demo_Application.Database
return positions;
}
public List<PositionsDataModel> GetMagazinePositions(int magazineId)
{
List<PositionsDataModel> positions = new List<PositionsDataModel>();
// Find only selected magazine rows
List<DataRow> magazinePositions = MagazinesPositionDataTable
.AsEnumerable()
.Where(x => Convert.ToInt32(x["magazineId"]) == magazineId).ToList();
foreach (DataRow row in magazinePositions)
{
// Convert DataTable.row into positions model
PositionsDataModel tmpPositions = new PositionsDataModel
{
Id = Convert.ToInt32(row["positionId"]),
MagazineId = Convert.ToInt32(row["magazineId"]),
Type = Convert.ToInt32(row["type"]),
};
// Find mounted tool in the selected position & magazine
tmpPositions.childsTools = ToolsDataTable.AsEnumerable()
.Where(x => Convert.ToInt32(x["magazine"]) == magazineId && Convert.ToInt32(x["shankId"]) == tmpPositions.Id)?
.Select(x => new PositionsChild() { Id = tmpPositions.Id })
.ToList();
positions.Add(tmpPositions);
}
return positions;
}
public void UpdatePosition(PositionsDataModel position)
{
// Find position to be updated
DataRow row = MagazinesPositionDataTable
.AsEnumerable()
.FirstOrDefault(x => Convert.ToInt32(x["positionId"]) == position.Id && Convert.ToInt32(x["magazineId"]) == position.MagazineId);
// Update positions type
row["type"] = position.Type;
// Save
@@ -23,7 +23,7 @@ namespace Nc_Demo_Application.Database.Models
public bool IsInUse;
public bool PreAlarm;
public int ShanksId;
public List<Dictionary<string, double>> EdgesData;
public List<EdgesDataModel> EdgesData;
}
public class ShankDataModel
@@ -45,5 +45,19 @@ namespace Nc_Demo_Application.Database.Models
public int Id;
public int MagazineId;
public int Type;
public List<PositionsChild> childsTools;
}
public class PositionsChild
{
public int Id;
}
public class EdgesDataModel
{
public int Id;
public double ResidualLife;
public double NominalLife;
public double PreAlmLife;
public Dictionary<string, double> EdgeAdditionalParams;
}
}
@@ -190,6 +190,12 @@ namespace Nc_Demo_Application.Server.Service
[WebInvoke(Method = "DELETE", UriTemplate = "tool_table/tool/{id}", RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.Wrapped)]
void DeleteTool(string id);
[WebInvoke(Method = "POST", UriTemplate = "tool_table/edge/{toolId}", RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.Wrapped)]
void AddEdge(string toolId, ref EdgesDataModel edge);
[WebInvoke(Method = "DELETE", UriTemplate = "tool_table/edge/{toolId}/{edgeId}", RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.Wrapped)]
void DeleteEdge(string toolId, string edgeId);
[WebGet(UriTemplate = "tool_table/shanks", BodyStyle = WebMessageBodyStyle.Wrapped, ResponseFormat = WebMessageFormat.Json)]
void GetShanks(out List<ShankDataModel> shanksData);
@@ -202,6 +208,9 @@ namespace Nc_Demo_Application.Server.Service
[WebGet(UriTemplate = "tool_table/positions", BodyStyle = WebMessageBodyStyle.Wrapped, ResponseFormat = WebMessageFormat.Json)]
void GetPositions(out List<PositionsDataModel> positionsData);
[WebGet(UriTemplate = "tool_table/magazine/{magazineId}", BodyStyle = WebMessageBodyStyle.Wrapped, ResponseFormat = WebMessageFormat.Json)]
void GetMagazinePositions(string magazineId, out List<PositionsDataModel> positionsData);
[WebInvoke(Method = "PUT", UriTemplate = "tool_table/position", RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.Wrapped)]
void PutPosition(PositionsDataModel position);
#endregion
@@ -468,7 +468,12 @@ namespace Nc_Demo_Application.Server.Service
public void AddFamily(ref FamilyModel family)
{
family = DatabaseController.getInstance().AddFamily(family);
family = DatabaseController.getInstance().AddFamily(family);
}
public void DeleteFamily(string name)
{
DatabaseController.getInstance().DeleteFamily(name);
}
#endregion Family
@@ -478,6 +483,10 @@ namespace Nc_Demo_Application.Server.Service
public void GetTools(out List<ToolsDataModel> toolsData)
{
toolsData = DatabaseController.getInstance().ReadTools();
foreach(ToolsDataModel tool in toolsData)
{
tool.EdgesData = DatabaseController.getInstance().GetEdgesData(tool.Id);
}
}
public void AddTool(ref ToolsDataModel tool)
@@ -490,6 +499,29 @@ namespace Nc_Demo_Application.Server.Service
DatabaseController.getInstance().UpdateToolData(tool);
}
public void DeleteTool(string id)
{
DatabaseController.getInstance().DeleteTool(Convert.ToInt32(id));
}
#endregion Tools
#region Edges
public void AddEdge(string toolId, ref EdgesDataModel edge)
{
edge = DatabaseController.getInstance().AddEdge(Convert.ToInt32(toolId), edge);
}
public void DeleteEdge(string toolId, string edgeId)
{
DatabaseController.getInstance().DeleteEdge(Convert.ToInt32(toolId), Convert.ToInt32(edgeId));
}
#endregion Edges
#region Shanks
public void GetShanks(out List<ShankDataModel> shanksData)
{
shanksData = DatabaseController.getInstance().GetShanks();
@@ -500,19 +532,8 @@ namespace Nc_Demo_Application.Server.Service
shankData = DatabaseController.getInstance().AddShank();
}
public void GetPositions(out List<PositionsDataModel> positionsData)
public void PutShank(ShankDataModel shankData)
{
positionsData = DatabaseController.getInstance().GetPositions();
}
public void PutPosition(PositionsDataModel position)
{
DatabaseController.getInstance().UpdatePosition(position);
}
public void DeleteTool(string id)
{
DatabaseController.getInstance().DeleteTool(Convert.ToInt32(id));
}
public void DeleteShank(string id)
@@ -520,10 +541,25 @@ namespace Nc_Demo_Application.Server.Service
DatabaseController.getInstance().DeleteShank(Convert.ToInt32(id));
}
public void DeleteFamily(string name)
#endregion Shanks
#region Positions
public void GetPositions(out List<PositionsDataModel> positionsData)
{
DatabaseController.getInstance().DeleteFamily(name);
positionsData = DatabaseController.getInstance().GetPositions();
}
#endregion Tools
public void GetMagazinePositions(string magazineId, out List<PositionsDataModel> positionsData)
{
positionsData = DatabaseController.getInstance().GetMagazinePositions(Convert.ToInt32(magazineId));
}
public void PutPosition(PositionsDataModel position)
{
DatabaseController.getInstance().UpdatePosition(position);
}
#endregion Positions
}
}
File diff suppressed because it is too large Load Diff
@@ -17,6 +17,7 @@ namespace Nc_Demo_Application
{
private StartupPanel startupPanel;
private bool axisResetRunning = false;
private int SelectedToolId;
public DemoApplicationForm()
{
@@ -482,6 +483,8 @@ namespace Nc_Demo_Application
System.Diagnostics.Process.Start("https://docs.google.com/spreadsheets/d/17AHl_qwPTGupYdWCmFYV3ubXmJykQpy1ciSTk8AgNek/edit?usp=sharing");
}
#region Tool
private void SetupToolData(List<ToolsDataModel> toolsList)
{
toolsTreeView.Nodes.Clear();
@@ -580,7 +583,6 @@ namespace Nc_Demo_Application
{
// Get selected Node
var selectedTool = toolsTreeView.SelectedNode;
if (selectedTool.Level == 0)
return;
// Find selected tools data from database
@@ -589,6 +591,8 @@ namespace Nc_Demo_Application
if (toolInfo != null)
{
SelectedToolId = toolInfo.Id;
// Update form inputs
toolsIdLlb.Text = toolInfo.Id.ToString();
FamilyTxt.Text = toolInfo.FamilyName;
@@ -611,7 +615,11 @@ namespace Nc_Demo_Application
toolTypeSelect.SelectedItem = (TOOLS_TYPE)toolInfo.ToolType;
rotationSelect.SelectedItem = (ROTATION)toolInfo.Rotation;
magazineComboBox.SelectedItem = (MAGAZINES)toolInfo.MagazineId;
// Populate edge grid view
PopulateEdgeGridView(toolInfo.Id);
}
}
private void SaveToolButton_Click(object sender, EventArgs e)
@@ -650,6 +658,16 @@ namespace Nc_Demo_Application
toolInfo.Rotation = (int)rotationSelect.SelectedItem;
DatabaseController.getInstance().UpdateToolData(toolInfo);
DatabaseController.getInstance().UpdateEdges((DataTable)edgesDataGridView.DataSource);
PopulateEdgeGridView(toolInfo.Id);
}
private void PopulateEdgeGridView(int toolId)
{
// Populate edge grid view
DataTable edges = DatabaseController.getInstance().ReadEdges(toolId);
edgesDataGridView.DataSource = edges;
}
private void SaveFamiliesButton_Click(object sender, EventArgs e)
@@ -671,6 +689,8 @@ namespace Nc_Demo_Application
{
FillToolsInput();
}
#endregion Tool
private void DemoApplicationForm_KeyDown(object sender, KeyEventArgs e)
{
@@ -173,4 +173,112 @@
jm/GcW7031RP8zpHxQAAAABJRU5ErkJggg==
</value>
</data>
<metadata name="edgesId.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="edgeId.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="edgeToolId.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="edgesResidualLife.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="edgesNominalLife.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="edgesPreAlarmLife.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="param2.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="param3.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="param4.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="param5.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="param6.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="param7.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="param8.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="param9.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="param10.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="param11.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="param12.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="param13.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="param14.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="param15.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="param16.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="param17.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="param18.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="param19.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="param20.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="param21.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="param22.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="param23.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="param24.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="param25.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="param26.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="param27.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="param28.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="param29.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="param30.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="param34.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
</root>