From a49e37d4f0c8de6aa59b5d0687e7d184f20dc76a Mon Sep 17 00:00:00 2001 From: Lucio Maranta Date: Mon, 27 Aug 2018 15:35:15 +0000 Subject: [PATCH] Added file info / activate info --- CMS_CORE_Library/Demo/Nc_Demo.cs | 4 +- CMS_CORE_Library/Fanuc/Nc_Fanuc.cs | 2 +- CMS_CORE_Library/Nc.cs | 2 +- CMS_CORE_Library/Osai/Nc_Osai.cs | 4 +- CMS_CORE_Library/Siemens/Nc_Siemens.cs | 110 ++++++++++++++++++------- 5 files changed, 88 insertions(+), 34 deletions(-) diff --git a/CMS_CORE_Library/Demo/Nc_Demo.cs b/CMS_CORE_Library/Demo/Nc_Demo.cs index ac5e6d4..b6b038f 100644 --- a/CMS_CORE_Library/Demo/Nc_Demo.cs +++ b/CMS_CORE_Library/Demo/Nc_Demo.cs @@ -872,7 +872,7 @@ namespace CMS_CORE.Demo { processData.Id = procNumber; // Read part program name - CmsError cmsError = PROC_RPPName(procNumber, ref processData.PartProgramName); + CmsError cmsError = PROC_RSelectedPPName(procNumber, ref processData.PartProgramName); if (cmsError.IsError()) return cmsError; @@ -2768,7 +2768,7 @@ namespace CMS_CORE.Demo return NO_ERROR; } - public override CmsError PROC_RPPName(ushort ProcNumber, ref string Name) + public override CmsError PROC_RSelectedPPName(ushort ProcNumber, ref string Name) { // Check if the NC Demo is Connected CmsError cmsError = CheckConnection(); diff --git a/CMS_CORE_Library/Fanuc/Nc_Fanuc.cs b/CMS_CORE_Library/Fanuc/Nc_Fanuc.cs index 7c35d6d..6d40a1b 100644 --- a/CMS_CORE_Library/Fanuc/Nc_Fanuc.cs +++ b/CMS_CORE_Library/Fanuc/Nc_Fanuc.cs @@ -546,7 +546,7 @@ namespace CMS_CORE.Fanuc } //Get Active PP Name - public override CmsError PROC_RPPName(ushort ProcNumber, ref string Name) + public override CmsError PROC_RSelectedPPName(ushort ProcNumber, ref string Name) { //Check if the NC is Connected CmsError cmsError = CheckConnection(); diff --git a/CMS_CORE_Library/Nc.cs b/CMS_CORE_Library/Nc.cs index 1b9edd3..115e642 100644 --- a/CMS_CORE_Library/Nc.cs +++ b/CMS_CORE_Library/Nc.cs @@ -691,7 +691,7 @@ namespace CMS_CORE * Reference of a String Variables where data will be saved * */ - public abstract CmsError PROC_RPPName(ushort procNumber, ref String Name); + public abstract CmsError PROC_RSelectedPPName(ushort procNumber, ref String Name); /** * diff --git a/CMS_CORE_Library/Osai/Nc_Osai.cs b/CMS_CORE_Library/Osai/Nc_Osai.cs index 8fb856b..f5851ab 100644 --- a/CMS_CORE_Library/Osai/Nc_Osai.cs +++ b/CMS_CORE_Library/Osai/Nc_Osai.cs @@ -1051,7 +1051,7 @@ namespace CMS_CORE.Osai } //Get Active PP Name - public override CmsError PROC_RPPName(ushort ProcNumber, ref string Name) + public override CmsError PROC_RSelectedPPName(ushort ProcNumber, ref string Name) { //Check if the NC is Connected CmsError cmsError = CheckConnection(); @@ -1088,7 +1088,7 @@ namespace CMS_CORE.Osai { processData.Id = procNumber; // Read part program name - CmsError cmsError = PROC_RPPName(procNumber, ref processData.PartProgramName); + CmsError cmsError = PROC_RSelectedPPName(procNumber, ref processData.PartProgramName); if (cmsError.IsError()) return cmsError; diff --git a/CMS_CORE_Library/Siemens/Nc_Siemens.cs b/CMS_CORE_Library/Siemens/Nc_Siemens.cs index 96526a3..a8766d4 100644 --- a/CMS_CORE_Library/Siemens/Nc_Siemens.cs +++ b/CMS_CORE_Library/Siemens/Nc_Siemens.cs @@ -1050,14 +1050,14 @@ namespace CMS_CORE.Siemens } //Get PP Name - public override CmsError PROC_RPPName(ushort ProcNumber, ref string Name) + public override CmsError PROC_RSelectedPPName(ushort ProcNumber, ref string Name) { //Check if the NC is Connected CmsError cmsError = CheckConnection(); if (cmsError.IsError()) return cmsError; - String RetString; + string RetString; int LastUnderscore; //Try to get information @@ -1075,7 +1075,7 @@ namespace CMS_CORE.Siemens Data.Read(ReadItem); //Elaborate String - RetString = ((String)ReadItem.Value); + RetString = ((string)ReadItem.Value); RetString = RetString.Replace("_N_", ""); LastUnderscore = RetString.LastIndexOf("_"); if (LastUnderscore >= 0) @@ -1108,7 +1108,7 @@ namespace CMS_CORE.Siemens { processData.Id = procNumber; // Read part program name - CmsError cmsError = PROC_RPPName(procNumber, ref processData.PartProgramName); + CmsError cmsError = PROC_RSelectedPPName(procNumber, ref processData.PartProgramName); if (cmsError.IsError()) return cmsError; @@ -1207,7 +1207,7 @@ namespace CMS_CORE.Siemens return NO_ERROR; } - + public override CmsError AXES_RMachinePosition(ushort channel, ref Dictionary axes) { try @@ -1235,7 +1235,7 @@ namespace CMS_CORE.Siemens return NO_ERROR; } - + public override CmsError AXES_RFollowingError(ushort channel, ref Dictionary axes) { try @@ -1249,7 +1249,7 @@ namespace CMS_CORE.Siemens return NO_ERROR; } - + public override CmsError AXES_RDistanceToGo(ushort channel, ref Dictionary axes) { try @@ -1268,7 +1268,7 @@ namespace CMS_CORE.Siemens Dictionary axes = new Dictionary(); List axesConf = new List(); CmsError cmsError = AXES_RAxesNames(channel, ref axesConf); - + foreach (var conf in axesConf) { DataSvc dataSvc = new DataSvc(); @@ -1845,6 +1845,7 @@ namespace CMS_CORE.Siemens /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// #region File Management + public override CmsError FILES_RGetFileList(string path, ref List files) { try @@ -1862,7 +1863,7 @@ namespace CMS_CORE.Siemens { AbsolutePath = path, IsDirectory = element.IsDirNode, - Name = element.LogicalPath + Name = element.Name }); } } @@ -1879,24 +1880,17 @@ namespace CMS_CORE.Siemens try { FileSvc fileSvc = new FileSvc(); - var splittedPath = path.Split('/'); - var filePath = String.Join(@"/", splittedPath.Take(splittedPath.Count() - 1)); - var fileName = splittedPath[splittedPath.Count() - 1]; // Preapare folder node - Node folderNode = new Node(BASE_FILE_PATH + filePath); + Node fileNode = new Node(BASE_FILE_PATH + path); - // Read files in the folder - Node[] nodeArray = fileSvc.List(folderNode); - fileInfo = nodeArray.Where(x => x.Name == fileName).Select(x => - new InfoFile() + fileInfo = new InfoFile() { - CreationDate = nodeArray[0].Attributes.LastAccess, - LastModDate = nodeArray[0].Attributes.LastAccess, - Name = nodeArray[0].Name, - Content = new List() { nodeArray[0].LogicalPath }, - PreviewBase64 = nodeArray[0].RealPath - }).FirstOrDefault(); + CreationDate = fileNode.Attributes.LastAccess, + LastModDate = fileNode.Attributes.LastAccess, + Name = fileNode.Name, + Content = new List() { fileNode.LogicalPath } + }; } catch (Exception ex) { @@ -1908,21 +1902,81 @@ namespace CMS_CORE.Siemens public override CmsError FILES_WSetActiveProgram(int processId, string filePath, ref ActiveProgramDataModel data) { - return NO_ERROR; + try + { + FileSvc fileSvc = new FileSvc(); + + // Preapare folder node + Node selectedNode = new Node(BASE_FILE_PATH + filePath); + + fileSvc.Select(selectedNode, processId); + + return FILES_RActiveProgramData(processId, ref data); + + } + catch (Exception ex) + { + return ManageException(ex); + } } public override CmsError FILES_WDeactivateProgram(int processId) { - - return NO_ERROR; } public override CmsError FILES_RActiveProgramData(int processId, ref ActiveProgramDataModel data) { + try + { + int lastUnderscore; + + //Setup variables + DataSvc Data = new DataSvc + { + Timeout = TimeoutConn, + PriorityFlag = SlPriority.highPriority + }; + + Item readItem = new Item("/Channel/ProgramInfo/actPartProgram" + "[u" + processId + "]"); + + //Read Data + Data.Read(readItem); + + //Elaborate String + string trimString = ((string)readItem.Value); + trimString = trimString.Replace("_N_", ""); + lastUnderscore = trimString.LastIndexOf("_"); + if (lastUnderscore >= 0) + trimString = trimString.Remove(lastUnderscore, 1).Insert(lastUnderscore, "."); + + data = new ActiveProgramDataModel() + { + Path = "", + IsoLines = GetLinesFromString(trimString).ToList(), + TimeLeft = new DateTime() + }; + } + catch (Exception ex) + { + return ManageException(ex); + } return NO_ERROR; } + + private IEnumerable GetLinesFromString(string text) + { + string line; + using (StringReader reader = new StringReader(text)) + { + while ((line = reader.ReadLine()) != null) + { + yield return line; + } + } + } + public override CmsError FILES_CopyProgram(string partProgramPath, string newPartProgramPath, bool failIfExist) { //Check if the NC is Connected @@ -2132,7 +2186,6 @@ namespace CMS_CORE.Siemens PiSvc pi = new PiSvc(piArgs); pi.Start(); - // Get new tool id tool.Id = GetLastToolId(); @@ -2728,7 +2781,7 @@ namespace CMS_CORE.Siemens // Get position type int newToolPositionType = tool is SiemensToolModel ? - (tool as SiemensToolModel).MagazinePositionType : + (tool as SiemensToolModel).MagazinePositionType : (tool as ShankModel).MagazinePositionType; // Check type @@ -3039,6 +3092,7 @@ namespace CMS_CORE.Siemens /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// #region Nc Tool Manager + public override CmsError TOOLS_RMagazineConfig(ref List config) { return FUNCTION_NOT_ALLOWED_ERROR;