First implementation of Osai file managing

This commit is contained in:
Lucio Maranta
2018-07-13 11:37:33 +00:00
parent 9bc6b1cfb5
commit b1b9a6fe71
6 changed files with 130 additions and 58 deletions
+17 -8
View File
@@ -208,7 +208,7 @@ namespace CMS_CORE_Application
error = true;
SetError(Lines, cmsError);
}
// cmsError = N.TOOLS_WAddShank(ref newShank);
// List<MountedToolModel> a = new List<MountedToolModel>() ;
// N.TOOLS_RMagazineTools(1, ref a);
@@ -518,15 +518,24 @@ namespace CMS_CORE_Application
private void writeFileBtn_Click(object sender, EventArgs e)
{
using (FileStream fileStream = new FileStream("C:\\test.csv", FileMode.OpenOrCreate))
//using (FileStream fileStream = new FileStream("C:\\test.csv", FileMode.OpenOrCreate))
//{
// CmsError cms = N.FILES_WProgramFromFile(@"test\\OEM\\CMS\\SYS\\STEP\\Tools.csv", fileStream);
// if (cms.IsError())
// {
// MessageBox.Show(cms.localizationKey);
// }
//}
List<OffsetModel> obj = new List<OffsetModel>()
{
CmsError cms = N.FILES_WProgramFromFile(@"test\\OEM\\CMS\\SYS\\STEP\\Tools.csv", fileStream);
if (cms.IsError())
{
MessageBox.Show(cms.localizationKey);
}
new OffsetModel() { Id = 22, Length = 44, Radius = 44, WearLength = 44, WearRadius = 33 },
new OffsetModel{ Id = 22, Length = 44, Radius = 44, WearLength = 44, WearRadius = 33 }
};
CmsError cms = N.TOOLS_WUpdateTool(obj);
if (cms.IsError())
{
MessageBox.Show(cms.localizationKey);
}
}
private void readFileBtn_Click(object sender, EventArgs e)
+4
View File
@@ -2488,6 +2488,10 @@ namespace CMS_CORE.Demo
return NO_ERROR;
}
public override CmsError TOOLS_WUpdateTool(List<OffsetModel> list)
{
return NO_ERROR;
}
#endregion Nc Tool Manager
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+5
View File
@@ -1821,6 +1821,11 @@ namespace CMS_CORE.Fanuc
{
return NO_ERROR;
}
public override CmsError TOOLS_WUpdateTool(List<OffsetModel> list)
{
return NO_ERROR;
}
#endregion Nc Tool Manager
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+2
View File
@@ -1527,6 +1527,8 @@ namespace CMS_CORE
public abstract CmsError TOOLS_WAddTool();
public abstract CmsError TOOLS_WUpdateTool(List<OffsetModel> list);
#endregion Nc Tool Manager
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+71 -25
View File
@@ -1903,7 +1903,7 @@ namespace CMS_CORE.Osai
return NO_ERROR;
}
private CmsError FILES_RProgram(string partProgramPath, ref string partProgramContent)
private CmsError FILES_RProgram(string filePath, ref string fileContent)
{
//Check if the NC is Connected
CmsError cmsError = CheckConnection();
@@ -1917,13 +1917,16 @@ namespace CMS_CORE.Osai
try
{
// Get part program file size
nReturn = OpenNC.LogFSGetFileSize(partProgramPath, out size, out errorClass, out errorNum);
nReturn = OpenNC.LogFSGetFileSize(filePath, out size, out errorClass, out errorNum);
//If there's an error launch exception
if (errorClass != 0 || errorNum != 0 || nReturn == 0)
return GetNCError(errorClass, errorNum);
// Read part program content
nReturn = OpenNC.GetFile(partProgramPath, ref size, out partProgramContent, out errorClass, out errorNum);
// Read file content
// nReturn = OpenNC.GetFile(filePath, ref size, out fileContentContent, out errorClass, out errorNum);
nReturn = OpenNC.GetBinaryFile(filePath, size, out byte[] data, out errorClass, out errorNum);
// Convert byte[] into string
fileContent = Encoding.UTF8.GetString(data);
//If there's an error launch exception
if (errorClass != 0 || errorNum != 0 || nReturn == 0)
@@ -2329,38 +2332,81 @@ namespace CMS_CORE.Osai
CmsError cmsError = CheckConnection();
if (cmsError.IsError())
return cmsError;
List<OffsetModel> siemens = new List<OffsetModel>() {new OffsetModel(){Id = 22, Length = 33, Radius = 44, WearLength = 11, WearRadius =5432 } };
// Generate tool data csv string
string csvToolData = GenerateModelCsv(siemens);
List<OffsetModel> siemens = new List<OffsetModel>() { new OffsetModel() { Id = 22, Length = 33, Radius = 44, WearLength = 11, WearRadius = 5432 } };
string filePath = TOOL_MANAGER_DIRECTORY_PATH + TOOLS_FILE_NAME + ".csv";
try
{
Stopwatch sw = new Stopwatch();
sw.Start();
// Update file
cmsError = UpdateToolManagerFile(filePath, siemens);
if (cmsError.IsError())
return cmsError;
}
catch (Exception ex)
{
return ManageException(ex);
}
return NO_ERROR;
}
public override CmsError TOOLS_WUpdateTool(List<OffsetModel> list)
{
//Check if the NC is Connected
CmsError cmsError = CheckConnection();
if (cmsError.IsError())
return cmsError;
string filePath = TOOL_MANAGER_DIRECTORY_PATH + TOOLS_FILE_NAME + ".csv";
try
{
// Update file
cmsError = UpdateToolManagerFile(filePath, list);
if (cmsError.IsError())
return cmsError;
}
catch (Exception ex)
{
return ManageException(ex);
}
return NO_ERROR;
}
private CmsError UpdateToolManagerFile<T>(string filePath, List<T> objs) where T : class
{
//Check if the NC is Connected
CmsError cmsError = CheckConnection();
if (cmsError.IsError())
return cmsError;
try
{
Stopwatch sw = new Stopwatch();sw.Start();
List<string> lines = new List<string>();
// Convert data in a csv string
string csvContent = GenerateModelCsv(objs);
lines.Add(csvContent);
// Write into local file
File.WriteAllLines("C:\\test.csv", lines);
// Update file
using (FileStream fileStream = new FileStream("C:\\test.csv", FileMode.OpenOrCreate))
{
// Read tool file
cmsError = FILES_RProgramToFile(filePath, fileStream);
// Write NcFile
cmsError = FILES_WProgramFromFile(filePath, fileStream);
if (cmsError.IsError())
return cmsError;
}
using (FileStream fileStream = new FileStream("C:\\test.csv", FileMode.OpenOrCreate))
{
using (StreamWriter writer = new StreamWriter(fileStream))
{
// Write local file
writer.WriteLine(csvToolData);
// Write NcFile
cmsError = FILES_WProgramFromFile(filePath, fileStream);
if (cmsError.IsError())
return cmsError;
}
}
Console.WriteLine("Scrivere tool: " + sw.ElapsedMilliseconds);
}
catch (Exception ex)
@@ -2386,7 +2432,7 @@ namespace CMS_CORE.Osai
.Select(n => n?.ToString())
.Aggregate((a, b) => a + delimiter + b);
sw.Write(row);
sw.WriteLine(row);
}
output = sw.ToString();
}
+31 -25
View File
@@ -2891,14 +2891,19 @@ namespace CMS_CORE.Siemens
public override CmsError TOOLS_WStopEdit()
{
return NO_ERROR;
return FUNCTION_NOT_ALLOWED_ERROR;
}
public override CmsError TOOLS_WAddTool()
{
return NO_ERROR;
return FUNCTION_NOT_ALLOWED_ERROR;
}
public override CmsError TOOLS_WUpdateTool(List<OffsetModel> list)
{
return FUNCTION_NOT_ALLOWED_ERROR;
}
#endregion Nc Tool Manager
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
@@ -3354,29 +3359,30 @@ namespace CMS_CORE.Siemens
// Read
dataSvc.Read(magazineValue.ToArray());
// Find tool data into tools list
MagazineActionToolModel tool = null;
if (toolId != 0)
{
tool = ToolTableData.Where(x => x.Id == toolId)?.Select(x => new MagazineActionToolModel
{
Id = x.Id,
Name = x.FamilyName,
ToolType = x.ToolType,
IsMultitool = false
}).FirstOrDefault();
//// Find tool data into tools list
//MagazineActionToolModel tool = null;
//if (toolId != 0)
//{
// tool = ToolTableData.Where(x => x.Id == toolId)?.Select(x => new MagazineActionToolModel
// {
// Id = x.Id,
// Name = x.FamilyName,
// ToolType = x.ToolType,
// IsMultitool = false
// }).FirstOrDefault();
// If not found in the tools list, check in the multitools list
if (tool == null)
tool = MultitoolsData.Where(x => x.Id == toolId)?.Select(x => new MagazineActionToolModel
{
Id = x.Id,
Name = x.Name,
ToolType = 0,
IsMultitool = true
}).FirstOrDefault();
}
// // If not found in the tools list, check in the multitools list
// if (tool == null)
// tool = MultitoolsData.Where(x => x.Id == toolId)?.Select(x => new MagazineActionToolModel
// {
// Id = x.Id,
// Name = x.Name,
// ToolType = 0,
// IsMultitool = true
// }).FirstOrDefault();
//}
// Populate static value
MagazineAction = new MagazineActionModel()
{
@@ -3385,7 +3391,7 @@ namespace CMS_CORE.Siemens
OriginPosition = Convert.ToInt32(magazineValue[sourcePosIndex].Value),
DestinationMagazine = Convert.ToInt32(magazineValue[destinationMagIndex].Value),
DestinationPosition = Convert.ToInt32(magazineValue[destinationPosIndex].Value),
Tool = tool ?? new MagazineActionToolModel()
Tool = null // tool ?? new MagazineActionToolModel()
};
}
break;