From 6c3f978aa6387f074de7344c989f34d0ff9833e7 Mon Sep 17 00:00:00 2001 From: Lucio Maranta Date: Wed, 29 Aug 2018 10:29:33 +0000 Subject: [PATCH] Osai & Siemens loading --- CMS_CORE_Library/DataStructures.cs | 2 +- CMS_CORE_Library/Demo/Nc_Demo.cs | 5 ++ CMS_CORE_Library/Fanuc/Nc_Fanuc.cs | 11 ++- CMS_CORE_Library/Nc.cs | 2 + CMS_CORE_Library/Osai/Nc_Osai.cs | 96 ++++++++++++-------------- CMS_CORE_Library/Siemens/Nc_Siemens.cs | 19 ++++- 6 files changed, 78 insertions(+), 57 deletions(-) diff --git a/CMS_CORE_Library/DataStructures.cs b/CMS_CORE_Library/DataStructures.cs index b771845..2180618 100644 --- a/CMS_CORE_Library/DataStructures.cs +++ b/CMS_CORE_Library/DataStructures.cs @@ -393,7 +393,7 @@ namespace CMS_CORE_Library public static readonly string[] VALID_PP_FORMATS = { ".txt", ".cnc", ".ini" }; public static readonly string[] VALID_IMAGE_FORMATS = { ".jpg", ".jpeg", ".png" }; - public static readonly string IMAGES_PATH = @"C:/CMS/STEP/attachment/prg_images/"; + public static readonly string IMAGES_PATH = @"C:/CMS/STEP/pp_img/"; public const int USER_SOFTKEYS_NUMBER = 128; public const int NC_SOFTKEYS_NUMBER = 32; diff --git a/CMS_CORE_Library/Demo/Nc_Demo.cs b/CMS_CORE_Library/Demo/Nc_Demo.cs index b6b038f..e81a804 100644 --- a/CMS_CORE_Library/Demo/Nc_Demo.cs +++ b/CMS_CORE_Library/Demo/Nc_Demo.cs @@ -1662,6 +1662,11 @@ namespace CMS_CORE.Demo return NO_ERROR; } + public override CmsError FILES_UploadPartProgram(string localPath, string name, ref string newFilePath) + { + return NO_ERROR; + } + public override CmsError FILES_RActiveProgramData(int processId, ref ActiveProgramDataModel data) { // Check if the NC Demo is Connected diff --git a/CMS_CORE_Library/Fanuc/Nc_Fanuc.cs b/CMS_CORE_Library/Fanuc/Nc_Fanuc.cs index 6d40a1b..b236a74 100644 --- a/CMS_CORE_Library/Fanuc/Nc_Fanuc.cs +++ b/CMS_CORE_Library/Fanuc/Nc_Fanuc.cs @@ -1577,6 +1577,11 @@ namespace CMS_CORE.Fanuc return NO_ERROR; } + public override CmsError FILES_UploadPartProgram(string localPath, string name, ref string newFilePath) + { + return NO_ERROR; + } + public override CmsError FILES_RProgramToFile(string partProgramPath, FileStream localFile) { string partProgramContent = ""; @@ -1821,6 +1826,7 @@ namespace CMS_CORE.Fanuc /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// #region Nc Tool Manager + public override CmsError TOOLS_RMagazineConfig(ref List config) { return NO_ERROR; @@ -1850,6 +1856,7 @@ namespace CMS_CORE.Fanuc { return NO_ERROR; } + public override CmsError TOOLS_WUpdateTools(List list) { return NO_ERROR; @@ -1859,8 +1866,7 @@ namespace CMS_CORE.Fanuc { return NO_ERROR; } - - + public override CmsError TOOLS_WUpdateShanks(List list) { return NO_ERROR; @@ -1880,6 +1886,7 @@ namespace CMS_CORE.Fanuc { return NO_ERROR; } + public override CmsError TOOLS_WRestoreBackup() { return NO_ERROR; diff --git a/CMS_CORE_Library/Nc.cs b/CMS_CORE_Library/Nc.cs index 115e642..d61ca95 100644 --- a/CMS_CORE_Library/Nc.cs +++ b/CMS_CORE_Library/Nc.cs @@ -1266,6 +1266,8 @@ namespace CMS_CORE public abstract CmsError FILES_WDeactivateProgram(int processId); + public abstract CmsError FILES_UploadPartProgram(string localPath, string name, ref string newFilePath); + /** * Read active program on data * diff --git a/CMS_CORE_Library/Osai/Nc_Osai.cs b/CMS_CORE_Library/Osai/Nc_Osai.cs index c0fa257..e519389 100644 --- a/CMS_CORE_Library/Osai/Nc_Osai.cs +++ b/CMS_CORE_Library/Osai/Nc_Osai.cs @@ -17,6 +17,7 @@ using static CMS_CORE.Nc; using static CMS_CORE.Osai.MEMORY_ADDRESS; using static CMS_CORE_Library.DataStructures; using static CMS_CORE_Library.ToolConfigurations; +using static CMS_CORE.Utils.Nc_Utils; namespace CMS_CORE.Osai { @@ -39,9 +40,8 @@ namespace CMS_CORE.Osai // private const string TOOL_MANAGER_DIRECTORY_PATH = @"TEST\\SYS\\STEP\\"; private const string TOOL_MANAGER_DIRECTORY_PATH = @"test\OEM\CMS\SYS\STEP\"; - private const string PROGRAM_DIRECTORY_PATH = @"CAMBIO\"; - private const string PROGRAM_UPLOAD_DIRECTORY_PATH = @"CAMBIO\UPLOADED_PP\"; - private const string LOCAL_IMAGES_DIRECTORY_PATH = @"C:\CMS\STEP\IMGPP\"; + private const string NC_PROGRAM_PATH = @"CAMBIO\"; + private const string NC_PROGRAM_UPLOAD_PATH = @"CAMBIO\UPLOADED_PP\"; private static List EXT_PP = new List() { "", "TXT", "CNC", "INI" }; private static List EXT_IMG = new List() { "PNG", "JPG", "JPEG" }; private const uint MAX_ROWS_FILE_PREVIEW = 10; // massimo 10 righe @@ -1949,7 +1949,7 @@ namespace CMS_CORE.Osai temppath = path; temppath = temppath.TrimStart('\\'); - nReturn = OpenNC.LogFSFindFirst(PROGRAM_DIRECTORY_PATH + temppath + "\\*", out filesearch, out findHandler, out uint errorClass, out uint errorNum); + nReturn = OpenNC.LogFSFindFirst(NC_PROGRAM_PATH + temppath + "\\*", out filesearch, out findHandler, out uint errorClass, out uint errorNum); //If there's an error if (errorClass != 0 || errorNum != 0 || nReturn == 0) @@ -2004,28 +2004,13 @@ namespace CMS_CORE.Osai temppath = path; temppath = temppath.TrimStart('\\'); - nReturn = OpenNC.LogFSFindFirst(PROGRAM_DIRECTORY_PATH + "\\" + temppath, out filesearch, out findHandler, out uint errorClass, out uint errorNum); - + nReturn = OpenNC.LogFSFindFirst(NC_PROGRAM_PATH + "\\" + temppath, out filesearch, out findHandler, out uint errorClass, out uint errorNum); //If there's an error if (errorClass != 0 || errorNum != 0 || nReturn == 0) return GetNCError(errorClass, errorNum); - //Search the file, for infos - if (findHandler != 0xFFFFFFFF) - { - //Setup the name - fileInfo.Name = filesearch.FileName; + fileInfo.PreviewBase64 = FindImageBase64String(IMAGES_PATH, fileInfo.Name); - //Setup the dates - fileInfo.CreationDate = DateTime.FromFileTime((((long)filesearch.HighDateCreationTime) << 32) | filesearch.LowDateCreationTime); - fileInfo.LastModDate = DateTime.FromFileTime((((long)filesearch.HighDateLastWriteTime) << 32) | filesearch.LowDateLastWriteTime); - - //Read the program image - err = FILE_PPImage(fileInfo.Name + "_" + fileInfo.CreationDate.Year + fileInfo.CreationDate.Month + fileInfo.CreationDate.Day + fileInfo.CreationDate.Hour + fileInfo.CreationDate.Minute + fileInfo.CreationDate.Second, - ref fileInfo.PreviewBase64); - if (err != NO_ERROR) - return err; - } nReturn = OpenNC.LogFSFindClose(findHandler, out errorClass, out errorNum); //If there's an error @@ -2033,7 +2018,7 @@ namespace CMS_CORE.Osai return GetNCError(errorClass, errorNum); //Read the program content - err = FILES_RProgram(PROGRAM_DIRECTORY_PATH + "\\" + temppath, ref fileContent); + err = FILES_RProgram(NC_PROGRAM_PATH + "\\" + temppath, ref fileContent); if (err != NO_ERROR) return err; @@ -2066,12 +2051,12 @@ namespace CMS_CORE.Osai temppath = filePath; temppath = temppath.TrimStart('\\'); - Console.WriteLine(PROGRAM_DIRECTORY_PATH + "\\" + temppath); + Console.WriteLine(NC_PROGRAM_PATH + "\\" + temppath); ushort nReturn; try { // select PP (using empty string) - nReturn = OpenNC.SelectPartProgramFromDrive((ushort)processId, PROGRAM_DIRECTORY_PATH + "\\" + temppath, out uint errorClass, out uint errorNum); + nReturn = OpenNC.SelectPartProgramFromDrive((ushort)processId, NC_PROGRAM_PATH + "\\" + temppath, out uint errorClass, out uint errorNum); //If there's an error launch exception if (errorClass != 0 || errorNum != 0 || nReturn == 0) @@ -2142,6 +2127,21 @@ namespace CMS_CORE.Osai return NO_ERROR; } + public override CmsError FILES_UploadPartProgram(string localPath, string name, ref string newFilePath) + { + // Open file + FileStream fileStream = new FileStream(localPath + "\\" + name, FileMode.Open); + newFilePath = NC_PROGRAM_UPLOAD_PATH + "\\" + name; + // Transfer file on NC + CmsError cmsError = FILES_WProgramFromFile(NC_PROGRAM_UPLOAD_PATH + newFilePath, fileStream); + if (cmsError.IsError()) + return cmsError; + + fileStream.Close(); + + return NO_ERROR; + } + public override CmsError FILES_RProgramToFile(string partProgramPath, FileStream localFile) { string partProgramContent = ""; @@ -2214,7 +2214,7 @@ namespace CMS_CORE.Osai //Setup the name if is empty if (string.IsNullOrEmpty(partProgramPath)) - partProgramPath = PROGRAM_UPLOAD_DIRECTORY_PATH + localFile.Name; + partProgramPath = NC_PROGRAM_UPLOAD_PATH + localFile.Name; // Write/Overwrite Nc file return FILES_WProgram(partProgramPath, partProgramContent); @@ -3431,36 +3431,30 @@ namespace CMS_CORE.Osai } - //Get Image files - private CmsError FILE_PPImage(string PP_Name, ref string base64Image) - { - base64Image = ""; - - //Check if exists the directory - if (!Directory.Exists(LOCAL_IMAGES_DIRECTORY_PATH)) - Directory.CreateDirectory(LOCAL_IMAGES_DIRECTORY_PATH); - - //Check if exists the file - DirectoryInfo DirToSearch = new DirectoryInfo(LOCAL_IMAGES_DIRECTORY_PATH); - FileInfo[] filesInDir = DirToSearch.GetFiles(PP_Name + ".*"); - - foreach (FileInfo foundFile in filesInDir) - { - if(EXT_IMG.Contains(foundFile.Extension.TrimStart('.').ToUpper())) - { - - base64Image = "data:image/" + foundFile.Extension + ";base64," + Convert.ToBase64String(System.IO.File.ReadAllBytes(foundFile.FullName)); - break; - } - } + ////Get Image files + //private CmsError FILE_PPImage(string PP_Name, ref string base64Image) + //{ + // base64Image = ""; - return NO_ERROR; - } + // //Check if exists the file + // DirectoryInfo DirToSearch = new DirectoryInfo(IMAGES_PATH); + // FileInfo[] filesInDir = DirToSearch.GetFiles(PP_Name + ".*"); - + // foreach (FileInfo foundFile in filesInDir) + // { + // if(EXT_IMG.Contains(foundFile.Extension.TrimStart('.').ToUpper())) + // { + // base64Image = "data:image/" + foundFile.Extension + ";base64," + Convert.ToBase64String(System.IO.File.ReadAllBytes(foundFile.FullName)); + // break; + // } + // } + + // return NO_ERROR; + //} + //Get Program Path without extension - private string getFilepathWithoutExt(string path) + private string GetFilepathWithoutExt(string path) { String name = path.Split('\\').LastOrDefault(); String ext = name.Split('.').LastOrDefault(); diff --git a/CMS_CORE_Library/Siemens/Nc_Siemens.cs b/CMS_CORE_Library/Siemens/Nc_Siemens.cs index 06f4091..28c9c0e 100644 --- a/CMS_CORE_Library/Siemens/Nc_Siemens.cs +++ b/CMS_CORE_Library/Siemens/Nc_Siemens.cs @@ -111,6 +111,7 @@ namespace CMS_CORE.Siemens public static uint multitoolsNumber = 0; public const string BASE_FILE_PATH = "//NC/"; + public const string NC_FILE_PATH = "MPF.DIR"; /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// @@ -1919,7 +1920,6 @@ namespace CMS_CORE.Siemens fileSvc.Select(selectedNode, processId); return FILES_RActiveProgramData(processId, ref data); - } catch (Exception ex) { @@ -1980,7 +1980,6 @@ namespace CMS_CORE.Siemens return NO_ERROR; } - private IEnumerable GetLinesFromString(string text) { string line; @@ -1992,6 +1991,20 @@ namespace CMS_CORE.Siemens } } } + public override CmsError FILES_UploadPartProgram(string localPath, string name, ref string newFilePath) + { + // Open file + FileStream fileStream = new FileStream(localPath + "\\" + name, FileMode.Open); + newFilePath = NC_FILE_PATH + "/" + name; + // Transfer file on NC + CmsError cmsError = FILES_WProgramFromFile(BASE_FILE_PATH + newFilePath, fileStream); + if (cmsError.IsError()) + return cmsError; + + fileStream.Close(); + + return NO_ERROR; + } public override CmsError FILES_CopyProgram(string partProgramPath, string newPartProgramPath, bool failIfExist) { @@ -3536,7 +3549,7 @@ namespace CMS_CORE.Siemens private void MagazineAction_OnChange(Guid guid, Item item, DataSvcStatus status) { - if(Int32.TryParse(item.Value.ToString(), out int action)) + if (Int32.TryParse(item.Value.ToString(), out int action)) switch (action) { case 1: