|
|
|
@@ -6,7 +6,6 @@ using System;
|
|
|
|
|
using System.Collections;
|
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
using System.ComponentModel;
|
|
|
|
|
using System.Diagnostics;
|
|
|
|
|
using System.Globalization;
|
|
|
|
|
using System.IO;
|
|
|
|
|
using System.Linq;
|
|
|
|
@@ -37,7 +36,10 @@ namespace CMS_CORE.Osai
|
|
|
|
|
private BasicHttpBinding HttpBinding;
|
|
|
|
|
private static Dictionary<int, string> PlcMessages;
|
|
|
|
|
|
|
|
|
|
private const string TOOL_MANAGER_DIRECTORY_PATH = @"TEST\\SYS\\STEP\\";
|
|
|
|
|
// 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 TOOL_MANAGER_BACKUP_DIRECTORY_PATH = @"C:\CMS\STEP\TMP\";
|
|
|
|
|
private const string FAMILIES_FILE_NAME = @"Families";
|
|
|
|
|
private const string FAM_SIZE_FILE_NAME = @"Fam_Sizes";
|
|
|
|
|
private const string MAG_POSITION_FILE_NAME = @"Mag_Positions";
|
|
|
|
@@ -2140,9 +2142,9 @@ namespace CMS_CORE.Osai
|
|
|
|
|
types = readShorts.SelectMany(BitConverter.GetBytes).ToList();
|
|
|
|
|
|
|
|
|
|
config = new List<NcMagazineConfigModel>();
|
|
|
|
|
for(int i = 0; i < 10; i++)
|
|
|
|
|
for (int i = 0; i < 10; i++)
|
|
|
|
|
{
|
|
|
|
|
if(types[i + 20] > 0)
|
|
|
|
|
if (types[i + 20] > 0)
|
|
|
|
|
config.Add(new NcMagazineConfigModel()
|
|
|
|
|
{
|
|
|
|
|
Id = (byte)(i + 1),
|
|
|
|
@@ -2181,15 +2183,10 @@ namespace CMS_CORE.Osai
|
|
|
|
|
if (cmsError.IsError())
|
|
|
|
|
return cmsError;
|
|
|
|
|
|
|
|
|
|
Stopwatch sw = new Stopwatch();
|
|
|
|
|
sw.Start();
|
|
|
|
|
|
|
|
|
|
cmsError = CreateBackup();
|
|
|
|
|
if (cmsError.IsError())
|
|
|
|
|
return cmsError;
|
|
|
|
|
|
|
|
|
|
Console.WriteLine("Backup" + sw.ElapsedMilliseconds);
|
|
|
|
|
|
|
|
|
|
return NO_ERROR;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@@ -2221,7 +2218,7 @@ namespace CMS_CORE.Osai
|
|
|
|
|
|
|
|
|
|
// Read tool manager status
|
|
|
|
|
bool status = false;
|
|
|
|
|
cmsError = MEM_RWBoolean(R, 0, MAGAZINES_ENABLED_COMMAND.MemType, MAGAZINES_ENABLED_COMMAND.Address, magazineId - 1, ref status);
|
|
|
|
|
cmsError = MEM_RWBoolean(R, 0, MAGAZINES_ENABLED_CMD.MemType, MAGAZINES_ENABLED_CMD.Address, magazineId - 1, ref status);
|
|
|
|
|
if (cmsError.IsError())
|
|
|
|
|
return cmsError;
|
|
|
|
|
// If magazine is busy
|
|
|
|
@@ -2230,7 +2227,7 @@ namespace CMS_CORE.Osai
|
|
|
|
|
|
|
|
|
|
// Write busy
|
|
|
|
|
bool write = true;
|
|
|
|
|
cmsError = MEM_RWBoolean(W, 0, MAGAZINES_TOOLING_COMMAND.MemType, MAGAZINES_TOOLING_COMMAND.Address, magazineId - 1, ref write);
|
|
|
|
|
cmsError = MEM_RWBoolean(W, 0, MAGAZINES_TOOLING_CMD.MemType, MAGAZINES_TOOLING_CMD.Address, magazineId - 1, ref write);
|
|
|
|
|
if (cmsError.IsError())
|
|
|
|
|
return cmsError;
|
|
|
|
|
|
|
|
|
@@ -2251,7 +2248,7 @@ namespace CMS_CORE.Osai
|
|
|
|
|
|
|
|
|
|
// Set magazine as free
|
|
|
|
|
bool write = false;
|
|
|
|
|
cmsError = MEM_RWBoolean(W, 0, MAGAZINES_TOOLING_COMMAND.MemType, MAGAZINES_TOOLING_COMMAND.Address, magazineId - 1, ref write);
|
|
|
|
|
cmsError = MEM_RWBoolean(W, 0, MAGAZINES_TOOLING_CMD.MemType, MAGAZINES_TOOLING_CMD.Address, magazineId - 1, ref write);
|
|
|
|
|
if (cmsError.IsError())
|
|
|
|
|
return cmsError;
|
|
|
|
|
|
|
|
|
@@ -2268,55 +2265,6 @@ namespace CMS_CORE.Osai
|
|
|
|
|
return NO_ERROR;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private CmsError CreateBackup()
|
|
|
|
|
{
|
|
|
|
|
string filePath = TOOL_MANAGER_DIRECTORY_PATH + "{0}.csv";
|
|
|
|
|
string backupFilePath = TOOL_MANAGER_DIRECTORY_PATH + "{0}_bak.csv";
|
|
|
|
|
|
|
|
|
|
// Create tool manager backup file
|
|
|
|
|
CmsError cmsError = FILES_CopyProgram(string.Format(filePath, FAMILIES_FILE_NAME), string.Format(backupFilePath, FAMILIES_FILE_NAME), false);
|
|
|
|
|
if (cmsError.IsError())
|
|
|
|
|
return cmsError;
|
|
|
|
|
|
|
|
|
|
cmsError = FILES_CopyProgram(string.Format(filePath, FAM_SIZE_FILE_NAME), string.Format(backupFilePath, FAM_SIZE_FILE_NAME), false);
|
|
|
|
|
if (cmsError.IsError())
|
|
|
|
|
return cmsError;
|
|
|
|
|
|
|
|
|
|
cmsError = FILES_CopyProgram(string.Format(filePath, MAG_POSITION_FILE_NAME), string.Format(backupFilePath, MAG_POSITION_FILE_NAME), false);
|
|
|
|
|
if (cmsError.IsError())
|
|
|
|
|
return cmsError;
|
|
|
|
|
|
|
|
|
|
cmsError = FILES_CopyProgram(string.Format(filePath, SHANKS_FILE_NAME), string.Format(backupFilePath, SHANKS_FILE_NAME), false);
|
|
|
|
|
if (cmsError.IsError())
|
|
|
|
|
return cmsError;
|
|
|
|
|
|
|
|
|
|
return FILES_CopyProgram(string.Format(filePath, TOOLS_FILE_NAME), string.Format(backupFilePath, TOOLS_FILE_NAME), false);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private CmsError DeleteBackup()
|
|
|
|
|
{
|
|
|
|
|
string backupFilePath = "{0}_bak.csv";
|
|
|
|
|
|
|
|
|
|
// Delete tool manager backup file
|
|
|
|
|
CmsError cmsError = FILES_DeleteProgram(TOOL_MANAGER_DIRECTORY_PATH, string.Format(backupFilePath, FAMILIES_FILE_NAME));
|
|
|
|
|
if (cmsError.IsError())
|
|
|
|
|
return cmsError;
|
|
|
|
|
|
|
|
|
|
cmsError = FILES_DeleteProgram(TOOL_MANAGER_DIRECTORY_PATH, string.Format(backupFilePath, FAM_SIZE_FILE_NAME));
|
|
|
|
|
if (cmsError.IsError())
|
|
|
|
|
return cmsError;
|
|
|
|
|
|
|
|
|
|
cmsError = FILES_DeleteProgram(TOOL_MANAGER_DIRECTORY_PATH, string.Format(backupFilePath, MAG_POSITION_FILE_NAME));
|
|
|
|
|
if (cmsError.IsError())
|
|
|
|
|
return cmsError;
|
|
|
|
|
|
|
|
|
|
cmsError = FILES_DeleteProgram(TOOL_MANAGER_DIRECTORY_PATH, string.Format(backupFilePath, SHANKS_FILE_NAME));
|
|
|
|
|
if (cmsError.IsError())
|
|
|
|
|
return cmsError;
|
|
|
|
|
|
|
|
|
|
return FILES_DeleteProgram(TOOL_MANAGER_DIRECTORY_PATH, string.Format(backupFilePath, TOOLS_FILE_NAME));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public override CmsError TOOLS_WRestoreBackup()
|
|
|
|
|
{
|
|
|
|
|
//Check if the NC is Connected
|
|
|
|
@@ -2325,29 +2273,54 @@ namespace CMS_CORE.Osai
|
|
|
|
|
return cmsError;
|
|
|
|
|
|
|
|
|
|
string filePath = TOOL_MANAGER_DIRECTORY_PATH + "{0}.csv";
|
|
|
|
|
string backupFilePath = TOOL_MANAGER_DIRECTORY_PATH + "{0}_bak.csv";
|
|
|
|
|
string backupFilePath = TOOL_MANAGER_BACKUP_DIRECTORY_PATH + "{0}.csv";
|
|
|
|
|
|
|
|
|
|
// Create tool manager backup file
|
|
|
|
|
cmsError = FILES_CopyProgram(string.Format(backupFilePath, FAMILIES_FILE_NAME), string.Format(filePath, FAMILIES_FILE_NAME), false);
|
|
|
|
|
// Restore tool manager backup
|
|
|
|
|
string fileContent = File.ReadAllText(string.Format(backupFilePath, FAMILIES_FILE_NAME));
|
|
|
|
|
cmsError = FILES_WProgram(string.Format(filePath, FAMILIES_FILE_NAME), fileContent);
|
|
|
|
|
if (cmsError.IsError())
|
|
|
|
|
return cmsError;
|
|
|
|
|
// FamilySize
|
|
|
|
|
cmsError = FILES_CopyProgram(string.Format(backupFilePath, FAM_SIZE_FILE_NAME), string.Format(filePath, FAM_SIZE_FILE_NAME), false);
|
|
|
|
|
|
|
|
|
|
fileContent = File.ReadAllText(string.Format(backupFilePath, FAM_SIZE_FILE_NAME));
|
|
|
|
|
cmsError = FILES_WProgram(string.Format(filePath, FAM_SIZE_FILE_NAME), fileContent);
|
|
|
|
|
if (cmsError.IsError())
|
|
|
|
|
return cmsError;
|
|
|
|
|
// Mag positions
|
|
|
|
|
cmsError = FILES_CopyProgram(string.Format(backupFilePath, MAG_POSITION_FILE_NAME), string.Format(filePath, MAG_POSITION_FILE_NAME), false);
|
|
|
|
|
|
|
|
|
|
fileContent = File.ReadAllText(string.Format(backupFilePath, MAG_POSITION_FILE_NAME));
|
|
|
|
|
cmsError = FILES_WProgram(string.Format(filePath, MAG_POSITION_FILE_NAME), fileContent);
|
|
|
|
|
if (cmsError.IsError())
|
|
|
|
|
return cmsError;
|
|
|
|
|
// Shanks
|
|
|
|
|
cmsError = FILES_CopyProgram(string.Format(backupFilePath, SHANKS_FILE_NAME), string.Format(filePath, SHANKS_FILE_NAME), false);
|
|
|
|
|
|
|
|
|
|
fileContent = File.ReadAllText(string.Format(backupFilePath, SHANKS_FILE_NAME));
|
|
|
|
|
cmsError = FILES_WProgram(string.Format(filePath, SHANKS_FILE_NAME), fileContent);
|
|
|
|
|
if (cmsError.IsError())
|
|
|
|
|
return cmsError;
|
|
|
|
|
// Tools
|
|
|
|
|
cmsError = FILES_CopyProgram(string.Format(backupFilePath, TOOLS_FILE_NAME), string.Format(filePath, TOOLS_FILE_NAME), false);
|
|
|
|
|
|
|
|
|
|
fileContent = File.ReadAllText(string.Format(backupFilePath, TOOLS_FILE_NAME));
|
|
|
|
|
cmsError = FILES_WProgram(string.Format(filePath, TOOLS_FILE_NAME), fileContent);
|
|
|
|
|
if (cmsError.IsError())
|
|
|
|
|
return cmsError;
|
|
|
|
|
|
|
|
|
|
//cmsError = FILES_CopyProgram(string.Format(backupFilePath, FAMILIES_FILE_NAME), string.Format(filePath, FAMILIES_FILE_NAME), false);
|
|
|
|
|
//if (cmsError.IsError())
|
|
|
|
|
// return cmsError;
|
|
|
|
|
//// FamilySize
|
|
|
|
|
//cmsError = FILES_CopyProgram(string.Format(backupFilePath, FAM_SIZE_FILE_NAME), string.Format(filePath, FAM_SIZE_FILE_NAME), false);
|
|
|
|
|
//if (cmsError.IsError())
|
|
|
|
|
// return cmsError;
|
|
|
|
|
//// Mag positions
|
|
|
|
|
//cmsError = FILES_CopyProgram(string.Format(backupFilePath, MAG_POSITION_FILE_NAME), string.Format(filePath, MAG_POSITION_FILE_NAME), false);
|
|
|
|
|
//if (cmsError.IsError())
|
|
|
|
|
// return cmsError;
|
|
|
|
|
//// Shanks
|
|
|
|
|
//cmsError = FILES_CopyProgram(string.Format(backupFilePath, SHANKS_FILE_NAME), string.Format(filePath, SHANKS_FILE_NAME), false);
|
|
|
|
|
//if (cmsError.IsError())
|
|
|
|
|
// return cmsError;
|
|
|
|
|
//// Tools
|
|
|
|
|
//cmsError = FILES_CopyProgram(string.Format(backupFilePath, TOOLS_FILE_NAME), string.Format(filePath, TOOLS_FILE_NAME), false);
|
|
|
|
|
//if (cmsError.IsError())
|
|
|
|
|
// return cmsError;
|
|
|
|
|
|
|
|
|
|
return DeleteBackup();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@@ -2428,60 +2401,6 @@ namespace CMS_CORE.Osai
|
|
|
|
|
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;
|
|
|
|
|
|
|
|
|
|
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))
|
|
|
|
|
{
|
|
|
|
|
// Write NcFile
|
|
|
|
|
cmsError = FILES_WProgramFromFile(filePath, fileStream);
|
|
|
|
|
if (cmsError.IsError())
|
|
|
|
|
return cmsError;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Console.WriteLine("Scrivere tool: " + sw.ElapsedMilliseconds);
|
|
|
|
|
|
|
|
|
|
return NO_ERROR;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public string GenerateModelCsv<T>(List<T> items) where T : class
|
|
|
|
|
{
|
|
|
|
|
var output = "";
|
|
|
|
|
var delimiter = ';';
|
|
|
|
|
var properties = typeof(T).GetProperties();
|
|
|
|
|
|
|
|
|
|
using (var sw = new StringWriter())
|
|
|
|
|
{
|
|
|
|
|
foreach (var item in items)
|
|
|
|
|
{
|
|
|
|
|
var row = properties
|
|
|
|
|
.Select(n => n.GetValue(item, null))
|
|
|
|
|
.Select(n => n?.ToString())
|
|
|
|
|
.Aggregate((a, b) => a + delimiter + b);
|
|
|
|
|
|
|
|
|
|
sw.WriteLine(row);
|
|
|
|
|
}
|
|
|
|
|
output = sw.ToString();
|
|
|
|
|
}
|
|
|
|
|
return output;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public override CmsError TOOLS_ROffset(short offsetId, ref OffsetModel offset)
|
|
|
|
|
{
|
|
|
|
|
//Check if the NC is Connected
|
|
|
|
@@ -2548,6 +2467,214 @@ namespace CMS_CORE.Osai
|
|
|
|
|
return NO_ERROR;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public override CmsError TOOLS_RUpdatedToolsData(ref Dictionary<int, byte> updatedStatus, ref Dictionary<int, uint> updatedLives)
|
|
|
|
|
{
|
|
|
|
|
//Check if the NC is Connected
|
|
|
|
|
CmsError cmsError = CheckConnection();
|
|
|
|
|
if (cmsError.IsError())
|
|
|
|
|
return cmsError;
|
|
|
|
|
|
|
|
|
|
updatedStatus = new Dictionary<int, byte>();
|
|
|
|
|
updatedLives = new Dictionary<int, uint>();
|
|
|
|
|
|
|
|
|
|
// Read 20 bit of status, read 20 bit of tool life
|
|
|
|
|
List<int> readInt = new List<int>();
|
|
|
|
|
cmsError = MEM_RWIntegerList(R, 0, TOOL_STATUS_UPDATED_CMD.MemType, TOOL_STATUS_UPDATED_CMD.Address, 2, ref readInt);
|
|
|
|
|
if (cmsError.IsError())
|
|
|
|
|
return cmsError;
|
|
|
|
|
|
|
|
|
|
// Convert int into to true/false array
|
|
|
|
|
bool[] bits = new BitArray(readInt.ToArray()).Cast<bool>().ToArray();
|
|
|
|
|
ushort toolId = 0;
|
|
|
|
|
byte status = 0;
|
|
|
|
|
uint life = 0;
|
|
|
|
|
|
|
|
|
|
for(int i = 0; i < bits.Length; i++)
|
|
|
|
|
{
|
|
|
|
|
if (bits[i])
|
|
|
|
|
{
|
|
|
|
|
int bitIndex = i;
|
|
|
|
|
if (i >= 32) // 32 status bit and 32 lives bit
|
|
|
|
|
bitIndex -= 32;
|
|
|
|
|
|
|
|
|
|
// First tool id + actual head index
|
|
|
|
|
int headIndex = (HEADS_DATA.Address + 2) + (bitIndex * 5);
|
|
|
|
|
cmsError = MEM_RWWord(R, 0, HEADS_DATA.MemType, headIndex, ref toolId);
|
|
|
|
|
|
|
|
|
|
if(i < 32)
|
|
|
|
|
{
|
|
|
|
|
// Read new status value
|
|
|
|
|
int statusBitIndex = i % 2;
|
|
|
|
|
int statusIndex = TOOL_STATUS_UPDATED_DATA.Address + (i / 2);// Index = starting address + (headIndex / 2) -> because Osai uses 16bit format
|
|
|
|
|
cmsError = MEM_RWByte(R, 0, HEADS_DATA.MemType, statusIndex, statusBitIndex, ref status);
|
|
|
|
|
if (cmsError.IsError())
|
|
|
|
|
return cmsError;
|
|
|
|
|
|
|
|
|
|
// Insert into the list
|
|
|
|
|
updatedStatus.Add(toolId, status);
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
// Read new life value
|
|
|
|
|
int lifeIndex = TOOL_LIFE_UPDATED_DATA.Address + ((i - 32) * 2); // Index = starting address + (headIndex * 2) -> because Osai uses 16bit format
|
|
|
|
|
cmsError = MEM_RWDWord(R, 0, HEADS_DATA.MemType, lifeIndex, ref life);
|
|
|
|
|
if (cmsError.IsError())
|
|
|
|
|
return cmsError;
|
|
|
|
|
|
|
|
|
|
// Insert into the new lives list
|
|
|
|
|
updatedLives.Add(toolId, life);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
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;
|
|
|
|
|
|
|
|
|
|
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))
|
|
|
|
|
{
|
|
|
|
|
// Write NcFile
|
|
|
|
|
cmsError = FILES_WProgramFromFile(filePath, fileStream);
|
|
|
|
|
if (cmsError.IsError())
|
|
|
|
|
return cmsError;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return NO_ERROR;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public string GenerateModelCsv<T>(List<T> items) where T : class
|
|
|
|
|
{
|
|
|
|
|
var output = "";
|
|
|
|
|
var delimiter = ';';
|
|
|
|
|
var properties = typeof(T).GetProperties();
|
|
|
|
|
|
|
|
|
|
using (var sw = new StringWriter())
|
|
|
|
|
{
|
|
|
|
|
foreach (var item in items)
|
|
|
|
|
{
|
|
|
|
|
var row = properties
|
|
|
|
|
.Select(n => n.GetValue(item, null))
|
|
|
|
|
.Select(n => n?.ToString())
|
|
|
|
|
.Aggregate((a, b) => a + delimiter + b);
|
|
|
|
|
|
|
|
|
|
sw.WriteLine(row);
|
|
|
|
|
}
|
|
|
|
|
output = sw.ToString();
|
|
|
|
|
}
|
|
|
|
|
return output;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private CmsError CreateBackup()
|
|
|
|
|
{
|
|
|
|
|
string filePath = TOOL_MANAGER_DIRECTORY_PATH + "{0}.csv";
|
|
|
|
|
string backupFilePath = TOOL_MANAGER_BACKUP_DIRECTORY_PATH + "{0}.csv";
|
|
|
|
|
|
|
|
|
|
// Create tool manager backup
|
|
|
|
|
string fileContent = "";
|
|
|
|
|
// Read Nc file
|
|
|
|
|
CmsError cmsError = FILES_RProgram(string.Format(filePath, FAMILIES_FILE_NAME), ref fileContent);
|
|
|
|
|
if (cmsError.IsError())
|
|
|
|
|
return cmsError;
|
|
|
|
|
// Copy Nc file content into local backup
|
|
|
|
|
File.WriteAllText(string.Format(backupFilePath, FAMILIES_FILE_NAME), fileContent);
|
|
|
|
|
|
|
|
|
|
cmsError = FILES_RProgram(string.Format(filePath, FAM_SIZE_FILE_NAME), ref fileContent);
|
|
|
|
|
if (cmsError.IsError())
|
|
|
|
|
return cmsError;
|
|
|
|
|
File.WriteAllText(string.Format(backupFilePath, FAM_SIZE_FILE_NAME), fileContent);
|
|
|
|
|
|
|
|
|
|
cmsError = FILES_RProgram(string.Format(filePath, MAG_POSITION_FILE_NAME), ref fileContent);
|
|
|
|
|
if (cmsError.IsError())
|
|
|
|
|
return cmsError;
|
|
|
|
|
File.WriteAllText(string.Format(backupFilePath, MAG_POSITION_FILE_NAME), fileContent);
|
|
|
|
|
|
|
|
|
|
cmsError = FILES_RProgram(string.Format(filePath, SHANKS_FILE_NAME), ref fileContent);
|
|
|
|
|
if (cmsError.IsError())
|
|
|
|
|
return cmsError;
|
|
|
|
|
File.WriteAllText(string.Format(backupFilePath, SHANKS_FILE_NAME), fileContent);
|
|
|
|
|
|
|
|
|
|
cmsError = FILES_RProgram(string.Format(filePath, TOOLS_FILE_NAME), ref fileContent);
|
|
|
|
|
if (cmsError.IsError())
|
|
|
|
|
return cmsError;
|
|
|
|
|
File.WriteAllText(string.Format(backupFilePath, TOOLS_FILE_NAME), fileContent);
|
|
|
|
|
|
|
|
|
|
//CmsError cmsError = FILES_CopyProgram(string.Format(filePath, FAMILIES_FILE_NAME), string.Format(backupFilePath, FAMILIES_FILE_NAME), false);
|
|
|
|
|
//if (cmsError.IsError())
|
|
|
|
|
// return cmsError;
|
|
|
|
|
|
|
|
|
|
//cmsError = FILES_CopyProgram(string.Format(filePath, FAM_SIZE_FILE_NAME), string.Format(backupFilePath, FAM_SIZE_FILE_NAME), false);
|
|
|
|
|
//if (cmsError.IsError())
|
|
|
|
|
// return cmsError;
|
|
|
|
|
|
|
|
|
|
//cmsError = FILES_CopyProgram(string.Format(filePath, MAG_POSITION_FILE_NAME), string.Format(backupFilePath, MAG_POSITION_FILE_NAME), false);
|
|
|
|
|
//if (cmsError.IsError())
|
|
|
|
|
// return cmsError;
|
|
|
|
|
|
|
|
|
|
//cmsError = FILES_CopyProgram(string.Format(filePath, SHANKS_FILE_NAME), string.Format(backupFilePath, SHANKS_FILE_NAME), false);
|
|
|
|
|
//if (cmsError.IsError())
|
|
|
|
|
// return cmsError;
|
|
|
|
|
|
|
|
|
|
//return FILES_CopyProgram(string.Format(filePath, TOOLS_FILE_NAME), string.Format(backupFilePath, TOOLS_FILE_NAME), false);
|
|
|
|
|
|
|
|
|
|
return cmsError;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private CmsError DeleteBackup()
|
|
|
|
|
{
|
|
|
|
|
string backupFilePath = TOOL_MANAGER_BACKUP_DIRECTORY_PATH + "{0}.csv";
|
|
|
|
|
|
|
|
|
|
if (File.Exists(string.Format(backupFilePath, FAMILIES_FILE_NAME)))
|
|
|
|
|
File.Delete(string.Format(backupFilePath, FAMILIES_FILE_NAME));
|
|
|
|
|
|
|
|
|
|
if (File.Exists(string.Format(backupFilePath, FAM_SIZE_FILE_NAME)))
|
|
|
|
|
File.Delete(string.Format(backupFilePath, FAM_SIZE_FILE_NAME));
|
|
|
|
|
|
|
|
|
|
if (File.Exists(string.Format(backupFilePath, MAG_POSITION_FILE_NAME)))
|
|
|
|
|
File.Delete(string.Format(backupFilePath, MAG_POSITION_FILE_NAME));
|
|
|
|
|
|
|
|
|
|
if (File.Exists(string.Format(backupFilePath, SHANKS_FILE_NAME)))
|
|
|
|
|
File.Delete(string.Format(backupFilePath, SHANKS_FILE_NAME));
|
|
|
|
|
|
|
|
|
|
if (File.Exists(string.Format(backupFilePath, TOOLS_FILE_NAME)))
|
|
|
|
|
File.Delete(string.Format(backupFilePath, TOOLS_FILE_NAME));
|
|
|
|
|
|
|
|
|
|
return NO_ERROR;
|
|
|
|
|
//// Delete tool manager backup file
|
|
|
|
|
//CmsError cmsError = FILES_DeleteProgram(TOOL_MANAGER_DIRECTORY_PATH, string.Format(backupFilePath, FAMILIES_FILE_NAME));
|
|
|
|
|
//if (cmsError.IsError())
|
|
|
|
|
// return cmsError;
|
|
|
|
|
|
|
|
|
|
//cmsError = FILES_DeleteProgram(TOOL_MANAGER_DIRECTORY_PATH, string.Format(backupFilePath, FAM_SIZE_FILE_NAME));
|
|
|
|
|
//if (cmsError.IsError())
|
|
|
|
|
// return cmsError;
|
|
|
|
|
|
|
|
|
|
//cmsError = FILES_DeleteProgram(TOOL_MANAGER_DIRECTORY_PATH, string.Format(backupFilePath, MAG_POSITION_FILE_NAME));
|
|
|
|
|
//if (cmsError.IsError())
|
|
|
|
|
// return cmsError;
|
|
|
|
|
|
|
|
|
|
//cmsError = FILES_DeleteProgram(TOOL_MANAGER_DIRECTORY_PATH, string.Format(backupFilePath, SHANKS_FILE_NAME));
|
|
|
|
|
//if (cmsError.IsError())
|
|
|
|
|
// return cmsError;
|
|
|
|
|
|
|
|
|
|
//return FILES_DeleteProgram(TOOL_MANAGER_DIRECTORY_PATH, string.Format(backupFilePath, TOOLS_FILE_NAME));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#endregion Nc Tool Manager
|
|
|
|
|
|
|
|
|
|
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
|
|
@@ -3040,16 +3167,25 @@ namespace CMS_CORE.Osai
|
|
|
|
|
internal static MEMORY_CELL HEADS_ACK = new MEMORY_CELL(MEMORY_TYPE.Osai_MW, 12953, 4);
|
|
|
|
|
internal static MEMORY_CELL HEADS_STROBE_INCREMENT = new MEMORY_CELL(MEMORY_TYPE.Osai_MW, 12955, 4);
|
|
|
|
|
internal static MEMORY_CELL HEADS_STROBE_DECREMENT = new MEMORY_CELL(MEMORY_TYPE.Osai_MW, 12957, 4);
|
|
|
|
|
|
|
|
|
|
// Tool manager areas
|
|
|
|
|
internal static MEMORY_CELL TOOL_MANAGER_STATUS = new MEMORY_CELL(MEMORY_TYPE.Osai_MW, 13001, 2);
|
|
|
|
|
|
|
|
|
|
internal static MEMORY_CELL TOOL_MANAGER_COMMAND = new MEMORY_CELL(MEMORY_TYPE.Osai_MW, 13000, 2);
|
|
|
|
|
|
|
|
|
|
internal static MEMORY_CELL MAGAZINE_TYPES = new MEMORY_CELL(MEMORY_TYPE.Osai_MW, 13062, 4);
|
|
|
|
|
internal static MEMORY_CELL MAGAZINE_POSITIONS_NUMBER = new MEMORY_CELL(MEMORY_TYPE.Osai_MW, 13072, 4);
|
|
|
|
|
|
|
|
|
|
internal static MEMORY_CELL MAGAZINES_ENABLED_COMMAND = new MEMORY_CELL(MEMORY_TYPE.Osai_MW, 13082, 4);
|
|
|
|
|
internal static MEMORY_CELL MAGAZINES_TOOLING_COMMAND = new MEMORY_CELL(MEMORY_TYPE.Osai_MW, 13084, 4);
|
|
|
|
|
internal static MEMORY_CELL MAGAZINES_ENABLED_CMD = new MEMORY_CELL(MEMORY_TYPE.Osai_MW, 13082, 2);
|
|
|
|
|
internal static MEMORY_CELL MAGAZINES_TOOLING_CMD = new MEMORY_CELL(MEMORY_TYPE.Osai_MW, 13084, 2);
|
|
|
|
|
|
|
|
|
|
internal static MEMORY_CELL TOOL_STATUS_UPDATED_CMD = new MEMORY_CELL(MEMORY_TYPE.Osai_MW, 13003, 2);
|
|
|
|
|
internal static MEMORY_CELL TOOL_LIFE_UPDATED_CMD = new MEMORY_CELL(MEMORY_TYPE.Osai_MW, 13005, 2);
|
|
|
|
|
internal static MEMORY_CELL TOOL_STATUS_UPDATED_ACK = new MEMORY_CELL(MEMORY_TYPE.Osai_MW, 13007, 2);
|
|
|
|
|
internal static MEMORY_CELL TOOL_LIFE_UPDATED_ACK = new MEMORY_CELL(MEMORY_TYPE.Osai_MW, 13009, 2);
|
|
|
|
|
|
|
|
|
|
internal static MEMORY_CELL TOOL_STATUS_UPDATED_DATA = new MEMORY_CELL(MEMORY_TYPE.Osai_MW, 13011, 10);
|
|
|
|
|
internal static MEMORY_CELL TOOL_LIFE_UPDATED_DATA = new MEMORY_CELL(MEMORY_TYPE.Osai_MW, 13022, 40);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#endregion Memory addresses
|
|
|
|
|