Fix osai library

This commit is contained in:
Lucio Maranta
2018-09-05 16:08:00 +00:00
parent 2252d260da
commit ff00e18bca
14 changed files with 573 additions and 491 deletions
+13 -6
View File
@@ -135,13 +135,20 @@ namespace CMS_CORE_Application
List<AxisModel> axes = new List<AxisModel>();
cmsError = N.AXES_RAxesNames(1, ref axes);
//N.TOOLS_RStoredData();
//InfoFile f = new InfoFile();
//N.FILES_RGetFileInfo("",ref f);
N.TOOLS_WStartEditTooling(1);
Stopwatch st = new Stopwatch();
st.Start();
List<int> list = new List<int>();
List<byte> listB = new List<byte>();
List<ushort> listS = new List<ushort>();
// cmsError = N.MEM_RWIntegerList(false, 0, Nc.MEMORY_TYPE.Fanuc_R, 0, 512, ref list);
// cmsError = N.MEM_RWByteList(false, 0, Nc.MEMORY_TYPE.Fanuc_R, 0,0, 2048, ref listB);
// cmsError = N.MEM_RWIntegerList(false, 0, Nc.MEMORY_TYPE.Osai_GW, 0, 512, ref list);
// cmsError = N.MEM_RWWordList(false, 0, Nc.MEMORY_TYPE.Fanuc_R, 0, 512, ref listS);
cmsError = N.MEM_RWIntegerList(false, 0, Nc.MEMORY_TYPE.Siemens_DB, 258, 0, 512, ref list);
st.Stop();
Console.WriteLine(st.ElapsedMilliseconds);
//Dictionary<int, byte> statu = new Dictionary<int, byte>();
//Dictionary<int, uint> lives = new Dictionary<int, uint>();
//N.TOOLS_RUpdatedToolsData(ref statu, ref lives);
sw.Stop();
if (!this.IsDisposed && this.InvokeRequired)
{
+6 -2
View File
@@ -362,7 +362,8 @@ namespace CMS_CORE_Library
MAG_POS_OCCUPIED = 18,
MAGAZINE_OCCUPIED = 19,
TOOL_IS_MOUNTED = 20,
TOOL_AND_POSITION_NOT_MATCHING = 21
TOOL_AND_POSITION_NOT_MATCHING = 21,
FILE_NOT_FOUND = 22
}
public static CmsError NO_ERROR = new CmsError(CMS_ERROR_CODES.OK, "");
@@ -385,13 +386,14 @@ namespace CMS_CORE_Library
public static CmsError MAGAZINE_BUSY_ERROR = new CmsError(CMS_ERROR_CODES.MAGAZINE_OCCUPIED, "error_magazine_occupied");
public static CmsError TOOL_IS_MOUNTED_ERROR = new CmsError(CMS_ERROR_CODES.TOOL_IS_MOUNTED, "error_tool_mounted");
public static CmsError TOOL_AND_POSITION_NOT_MATCHING_ERROR = new CmsError(CMS_ERROR_CODES.TOOL_IS_MOUNTED, "error_tool_and_position_not_matching");
public static CmsError FILE_NOT_FOUND_ERROR = new CmsError(CMS_ERROR_CODES.FILE_NOT_FOUND, "error_file_not_found");
#endregion Cms Errors Codes
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
#region Constants
public static readonly string[] VALID_PP_FORMATS = { ".txt", ".cnc", ".ini" };
public static readonly string[] VALID_IMAGE_FORMATS = { ".jpg", ".jpeg", ".png" };
@@ -735,6 +737,8 @@ namespace CMS_CORE_Library
#endregion Siemens Tool Manager Models
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
#region Nc Tool Manager Models
public class ToolManagerOptionsModel
@@ -78,6 +78,7 @@ namespace CMS_CORE.Demo.Models
}
public class DemoToolManagerConfig
{
public int SelectedNc;
public int MaxTools;
public int MaxEdgePerTools;
public int MaxMultitools;
+30 -25
View File
@@ -1790,19 +1790,37 @@ namespace CMS_CORE.Demo
{
try
{
//config.ToolsConfiguration = SiemensToolFieldsConfig;
//config.FamiliesConfiguration = SiemensFamilyFieldsConfig;
//config.ShanksConfiguration = SiemensShankFieldsConfig;
//config.MagazinePosConfiguration = SiemensMagazinePosFieldsConfig;
//config.EdgesConfiguration = SiemensEdgesFieldsConfiguration;
config.ToolsConfiguration = NcToolFieldsConfig;
config.FamiliesConfiguration = NcFamilyFieldsConfig;
config.ShanksConfiguration = NcShankFieldsConfig;
config.MagazinePosConfiguration = NcMagazinePosFieldsConfig;
config.EdgesConfiguration = NcOffsetFieldsConfiguration;
// Get config from demo
serverService.GetToolManagerConfiguration(out DemoToolManagerConfig demoConf);
if (demoConf.SelectedNc == 0) // Siemens config
{
config.ToolsConfiguration = SiemensToolFieldsConfig;
config.FamiliesConfiguration = SiemensFamilyFieldsConfig;
config.ShanksConfiguration = SiemensShankFieldsConfig;
config.MagazinePosConfiguration = SiemensMagazinePosFieldsConfig;
config.EdgesConfiguration = SiemensEdgesFieldsConfiguration;
config.EdgesConfiguration.EdgesAdditionalParamsConfiguration = new Dictionary<int, List<string>>();
// Remove path and set only names
foreach (int key in DemoEdgesConfiguration.EdgesConfig.Keys)
{
List<string> tmpNames = new List<string>();
foreach (var conf in DemoEdgesConfiguration.EdgesConfig[key])
{
tmpNames.Add(conf.Name);
}
config.EdgesConfiguration.EdgesAdditionalParamsConfiguration.Add(key, tmpNames);
}
}
else // Osai fanuc config
{
config.ToolsConfiguration = NcToolFieldsConfig;
config.FamiliesConfiguration = NcFamilyFieldsConfig;
config.ShanksConfiguration = NcShankFieldsConfig;
config.MagazinePosConfiguration = NcMagazinePosFieldsConfig;
config.EdgesConfiguration = NcOffsetFieldsConfiguration;
}
config.MaxTools = demoConf.MaxTools;
config.MaxEdgesPerTools = demoConf.MaxEdgePerTools;
config.MaxToolsPerFamily = demoConf.MaxMultitools;
@@ -1814,19 +1832,6 @@ namespace CMS_CORE.Demo
config.MagPositionOptionActive = demoConf.MagPositionOption;
config.MaxOffsets = 5;
config.EdgesConfiguration.EdgesAdditionalParamsConfiguration = new Dictionary<int, List<string>>();
// Remove path and set only names
//foreach (int key in DemoEdgesConfiguration.EdgesConfig.Keys)
//{
// List<string> tmpNames = new List<string>();
// foreach (var conf in DemoEdgesConfiguration.EdgesConfig[key])
// {
// tmpNames.Add(conf.Name);
// }
// config.EdgesConfiguration.EdgesAdditionalParamsConfiguration.Add(key, tmpNames);
//}
config.Magazines = MagazineConfig;
}
catch (Exception ex)
@@ -2885,7 +2890,7 @@ namespace CMS_CORE.Demo
internal static MEMORY_CELL HEADS_STROBE_INCREMENT = new MEMORY_CELL(MEMORY_TYPE.Demo, 432, 4);
internal static MEMORY_CELL HEADS_STROBE_DECREMENT = new MEMORY_CELL(MEMORY_TYPE.Demo, 436, 4);
internal static MEMORY_CELL MAGAZINES_ENABLED_CMD = new MEMORY_CELL(MEMORY_TYPE.Demo, 440, 4);
internal static MEMORY_CELL MAGAZINES_ENABLED_CMD = new MEMORY_CELL(MEMORY_TYPE.Demo, 441, 4);
}
#endregion Memory addresses
-2
View File
@@ -2105,11 +2105,9 @@ namespace CMS_CORE.Fanuc
//Execute the method
nReturn1 = Focas1.cnc_sysinfo(nLibHandle[0], tmpNode);
MessageBox.Show("return 1 dopo metodo " + nReturn1);
node = tmpNode;
nReturn2 = Focas1.cnc_rdcncid(nLibHandle[0], out SerialNumber);
MessageBox.Show("return 1 dopo n return 2" + nReturn1);
//Throw Exception if there's an error
if (nReturn1 != 0)
+9 -4
View File
@@ -38,7 +38,7 @@ 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 = @"STEP\";
// private const string TOOL_MANAGER_DIRECTORY_PATH = @"test\OEM\CMS\SYS\STEP\";
private const string NC_PROGRAM_PATH = @"CAMBIO\";
private const string NC_PROGRAM_UPLOAD_PATH = @"CAMBIO\UPLOADED_PP\";
@@ -2587,6 +2587,12 @@ namespace CMS_CORE.Osai
if (cmsError.IsError())
return cmsError;
// Release tool manager status
bool write = false;
cmsError = MEM_RWBoolean(W, 0, TOOL_MANAGER_COMMAND.MemType, TOOL_MANAGER_COMMAND.Address, 1, ref write);
if (cmsError.IsError())
return cmsError;
// Set reload command
cmsError = PLC_WStrobe(TOOL_MANAGER_STATUS, TOOL_MANAGER_COMMAND, 1);
if (cmsError.IsError())
@@ -3438,7 +3444,6 @@ namespace CMS_CORE.Osai
return CmsError.NcError(GetNCErrorMessage(errorClass, errorNum));
}
//Get Active PP Path
private CmsError PROC_RPPPath(ushort procNumber, ref string path)
{
@@ -3457,7 +3462,7 @@ namespace CMS_CORE.Osai
//Execute the method
nReturn = OpenNC.GetActivePartProgramFullPath(procNumber, out Level, out mainPath, out SubPath, out uint errorClass, out uint errorNum);
//If there's an error launch exception
//If there's an error launch exception\
if (errorClass != 0 || errorNum != 0 || nReturn == 0)
return GetNCError(errorClass, errorNum);
@@ -3465,6 +3470,7 @@ namespace CMS_CORE.Osai
path = mainPath.Replace("\\Network", "");
path = path.Replace("\\User\\", "");
path = path.Replace("\\user\\", "");
path = path.Replace("\\USER\\", "");
}
catch (Exception ex)
{
@@ -3474,7 +3480,6 @@ namespace CMS_CORE.Osai
return NO_ERROR;
}
////Get Image files
//private CmsError FILE_PPImage(string PP_Name, ref string base64Image)
//{
+51 -19
View File
@@ -3,7 +3,6 @@ using Siemens.Sinumerik.Operate.Services;
using System;
using System.Collections;
using System.Collections.Generic;
using System.Diagnostics;
using System.Globalization;
using System.IO;
using System.Linq;
@@ -133,7 +132,6 @@ namespace CMS_CORE.Siemens
//Setup timeout
TimeoutConn = ConnectionTimeOut;
SiemensAlarms = new Alarm[] { };
ChannelAxesId = new List<int[]>();
}
//Connect Method
@@ -183,12 +181,18 @@ namespace CMS_CORE.Siemens
if (SiemensToolSvc != null)
{
SiemensToolSvc.UnSubscribe(ToolMngmtSvcHandler);
SiemensToolSvc = null;
SiemensToolSvc.Dispose();
}
if (MagazinePositionSvc != null)
{
MagazinePositionSvc.UnSubscribe(MagazinePositionEnabled_OnChange);
MagazinePositionSvc.Dispose();
}
if (MagazineActionsSvc != null)
{
MagazineActionsSvc.UnSubscribe(MagazineAction_OnChange);
MagazineActionsSvc.Dispose();
}
return NO_ERROR;
}
@@ -1330,6 +1334,8 @@ namespace CMS_CORE.Siemens
Item[] ncAxes = new Item[20];
Item[] axesVisibleParams = new Item[20];
if (ChannelAxesId == null)
ChannelAxesId = new List<int[]>();
bool[] axesAreVisible = new bool[20];
@@ -1883,7 +1889,7 @@ namespace CMS_CORE.Siemens
Path = path + "\\" + element.Name,
IsDirectory = element.IsDirNode,
Name = element.Name,
AbsolutePath = element.RealPath
AbsolutePath = element.LogicalPath
});
}
}
@@ -1913,7 +1919,7 @@ namespace CMS_CORE.Siemens
Name = fileNode.Name,
Content = new List<string>() { fileNode.LogicalPath },
PreviewBase64 = FindImageBase64String(IMAGES_PATH, fileNode.Name),
AbsolutePath = fileNode.RealPath
AbsolutePath = fileNode.LogicalPath
};
}
catch (Exception ex)
@@ -1933,9 +1939,16 @@ namespace CMS_CORE.Siemens
FileSvc fileSvc = new FileSvc();
// Preapare folder node
Node selectedNode = new Node(BASE_FILE_PATH + ncPath);
Node selectedNode = new Node(ncPath);
fileSvc.Select(selectedNode, processId);
if (!selectedNode.Exists)
return FILE_NOT_FOUND_ERROR;
// Check if file is stored on NC
if(filePath.StartsWith(BASE_FILE_PATH))
fileSvc.Select(selectedNode, processId);
else
fileSvc.SelectExtern(selectedNode, processId);
return FILES_RActiveProgramData(processId, ref data);
}
@@ -1949,7 +1962,7 @@ namespace CMS_CORE.Siemens
{
return NO_ERROR;
}
public override CmsError FILES_RActiveProgramData(int processId, ref ActiveProgramDataModel data)
{
try
@@ -1989,7 +2002,7 @@ namespace CMS_CORE.Siemens
return NO_ERROR;
}
public override CmsError FILES_UploadPartProgram(string localPath, string name, ref string newFilePath)
{
// Open file
@@ -2112,7 +2125,7 @@ namespace CMS_CORE.Siemens
return NO_ERROR;
}
private IEnumerable<string> GetLinesFromString(string text)
{
string line;
@@ -2662,10 +2675,18 @@ namespace CMS_CORE.Siemens
if (tool == null)
return INCORRECT_PARAMETERS_ERROR;
if (tool.EdgesData.Count > MAX_EDGES_PER_TOOL)
if (tool.EdgesData.Count >= MAX_EDGES_PER_TOOL)
return MAX_EDGES_PER_TOOL_REACHED_ERROR;
List<int> ids = Enumerable.Range(1, MAX_EDGES_PER_TOOL).ToList();
foreach(var edgeVal in tool.EdgesData)
{
ids.Remove(edgeVal.Id);
}
// Get next edge id
int nextEdgeId = tool.EdgesData.Count + 1;
int nextEdgeId = ids[0];
try
{
@@ -2776,7 +2797,9 @@ namespace CMS_CORE.Siemens
// if edge not exists, return
if (tool.EdgesData.Where(x => x.Id == edgeId).FirstOrDefault() == null)
return INCORRECT_PARAMETERS_ERROR;
// If there is only 1 edge, return with error
if (tool.EdgesData.Count == 1)
return INCORRECT_PARAMETERS_ERROR;
try
{
// Create strings parameters
@@ -4062,20 +4085,29 @@ namespace CMS_CORE.Siemens
case "$TC_DPNT":
{
SiemensToolModel tool = ToolTableData[toolIndex];
// Clear tool
tool
.EdgesData[edgeIndex]
.EdgeAdditionalParams
.Clear();
// Get tool type additional parameters
if (toolEdgesConfig.EdgesConfig.ContainsKey(tool.ToolType))
{
// Find if actual param exist for the tool type
List<EdgeConfigModel> toolTypeConfig = toolEdgesConfig.EdgesConfig[tool.ToolType];
EdgeConfigModel paramConfig = toolTypeConfig.Where(x => x.Path == (GetUntilOrEmpty(actualString) + "[")).FirstOrDefault();
EdgeConfigModel paramConfig = toolTypeConfig
.Where(x => x.Path == (GetUntilOrEmpty(actualString) + "["))
.FirstOrDefault();
// If Exist
if (paramConfig != null)
ToolTableData[toolIndex]
.EdgesData[edgeIndex]
.EdgeAdditionalParams // Add additional param
.Add(paramConfig.Name, Convert.ToDouble(actualString.Split('=').LastOrDefault(), numberFormat));
{
// Add additional param
tool
.EdgesData[edgeIndex]
.EdgeAdditionalParams
.Add(paramConfig.Name, Convert.ToDouble(actualString.Split('=').LastOrDefault(), numberFormat));
}
}
}
break;
+1 -1
View File
@@ -292,7 +292,7 @@ namespace CMS_CORE_Library
EdgeConfiguration = new List<FieldsConfiguration>()
{
new FieldsConfiguration{Name = "id", Type = "int", SelectValues = null, Category = "general", ReadOnly = true, MinValue = 0, MaxValue = 0 },
new FieldsConfiguration{Name = "lenght", Type = "double", SelectValues = null, Category = "general", ReadOnly = false, MinValue = 0, MaxValue = uint.MaxValue },
new FieldsConfiguration{Name = "length", Type = "double", SelectValues = null, Category = "general", ReadOnly = false, MinValue = 0, MaxValue = uint.MaxValue },
new FieldsConfiguration{Name = "radius", Type = "double", SelectValues = null, Category = "general", ReadOnly = false, MinValue = 0, MaxValue = uint.MaxValue },
new FieldsConfiguration{Name = "wearLength", Type = "double", SelectValues = null, Category = "general", ReadOnly = false, MinValue = 0, MaxValue = uint.MaxValue },
new FieldsConfiguration{Name = "wearRadius", Type = "double", SelectValues = null, Category = "general", ReadOnly = false, MinValue = 0, MaxValue = uint.MaxValue }
@@ -247,6 +247,7 @@ namespace Nc_Demo_Application.Database
// Populate ToolManagerConfig with db data
foreach (DataRow row in ToolMagerConfigDataTable.Rows)
{
ToolManConfig.SelectedNc = Convert.ToInt32(row["selected_nc"]);
ToolManConfig.MaxTools = Convert.ToInt32(row["max_tool"]);
ToolManConfig.MaxEdgePerTools = Convert.ToInt32(row["max_edges_per_tool"]);
ToolManConfig.MaxMultitools = Convert.ToInt32(row["max_multitool"]);
@@ -266,6 +267,7 @@ namespace Nc_Demo_Application.Database
// Update local ncDatatable data
foreach (DataRow row in ToolMagerConfigDataTable.Rows)
{
row["selected_nc"] = config.SelectedNc;
row["max_tool"] = config.MaxTools;
row["max_edges_per_tool"] = config.MaxEdgePerTools;
row["max_multitool"] = config.MaxMultitools;
@@ -348,8 +350,7 @@ namespace Nc_Demo_Application.Database
{
UpdateDatabaseFromDataTable(ncProcessData, READ_NC_PROCESS_QUERY);
}
public void UpdateProcessProgram(int processId, string path)
{
// Update process part program path data
@@ -108,6 +108,7 @@ namespace Nc_Demo_Application.Database.Models
public class ToolManagerConfig
{
public int SelectedNc;
public int MaxTools;
public int MaxEdgePerTools;
public int MaxMultitools;
File diff suppressed because it is too large Load Diff
@@ -119,7 +119,7 @@ namespace Nc_Demo_Application
processNumberTxb.Text = ncData.processCount.ToString();
ToolManagerConfig config = DatabaseController.GetInstance().ReadToolManagerConfig();
ncConfigType.SelectedIndex = config.SelectedNc;
maxToolTxb.Text = config.MaxTools.ToString();
maxEdgeXToolTxb.Text = config.MaxEdgePerTools.ToString();
maxMultitoolTxb.Text = config.MaxMultitools.ToString();
@@ -224,6 +224,7 @@ namespace Nc_Demo_Application
ToolManagerConfig config = new ToolManagerConfig()
{
SelectedNc = ncConfigType.SelectedIndex,
MaxTools = Convert.ToInt32(maxToolTxb.Text),
MaxEdgePerTools = Convert.ToInt32(maxEdgeXToolTxb.Text),
MaxMultitools = Convert.ToInt32(maxMultitoolTxb.Text),
@@ -120,18 +120,36 @@
<metadata name="toolStrip5.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
<metadata name="toolStrip5.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
<metadata name="toolStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>122, 17</value>
</metadata>
<metadata name="toolStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>122, 17</value>
</metadata>
<metadata name="toolStrip3.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>227, 17</value>
</metadata>
<metadata name="toolStrip3.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>227, 17</value>
</metadata>
<metadata name="toolStrip4.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>332, 17</value>
</metadata>
<metadata name="toolStrip4.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>332, 17</value>
</metadata>
<metadata name="toolStrip2.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>437, 17</value>
</metadata>
<metadata name="toolStrip2.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>437, 17</value>
</metadata>
<metadata name="toolStrip6.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>542, 17</value>
</metadata>
<metadata name="toolStrip6.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>542, 17</value>
</metadata>
@@ -180,6 +198,9 @@
<metadata name="disablePosition.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="toolStripEx2.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>869, 17</value>
</metadata>
<metadata name="toolStripEx1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>752, 17</value>
</metadata>
@@ -261,6 +282,9 @@
<metadata name="name.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="toolStripEx1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>752, 17</value>
</metadata>
<metadata name="toolStrip7.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>647, 17</value>
</metadata>
@@ -480,63 +504,6 @@
<metadata name="param34.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="toolStripEx3.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>986, 17</value>
</metadata>
<metadata name="OffsetsColumnId.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="OffsetsColLength.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="OffsetColRadius.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="OffsetColWearLength.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="OffsetColWearRadius.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="OffsetsColumnId.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="OffsetsColLength.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="OffsetColRadius.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="OffsetColWearLength.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="OffsetColWearRadius.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="toolStrip5.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
<metadata name="toolStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>122, 17</value>
</metadata>
<metadata name="toolStrip3.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>227, 17</value>
</metadata>
<metadata name="toolStrip4.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>332, 17</value>
</metadata>
<metadata name="toolStrip2.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>437, 17</value>
</metadata>
<metadata name="toolStrip6.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>542, 17</value>
</metadata>
<metadata name="toolStripEx2.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>869, 17</value>
</metadata>
<metadata name="toolStripEx1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>752, 17</value>
</metadata>
<metadata name="toolStrip7.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>647, 17</value>
</metadata>
@@ -554,4 +521,37 @@
<metadata name="toolStripEx3.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>986, 17</value>
</metadata>
<metadata name="toolStripEx3.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>986, 17</value>
</metadata>
<metadata name="OffsetsColumnId.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="OffsetsColLength.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="OffsetColRadius.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="OffsetColWearLength.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="OffsetColWearRadius.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="OffsetsColumnId.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="OffsetsColLength.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="OffsetColRadius.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="OffsetColWearLength.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="OffsetColWearRadius.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
</root>