using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Xml;
using XCoreBLL.Resource;
using XImagingXhandler.XDAL;
using System.Collections;
using DriverLib.Engine;
using System.Collections.ObjectModel;
using System.Threading;
using HxEnum;
using DataEntity.Rack;
using System.Security.Claims;
namespace XCore
{
public class HoldingLabwareBll
{
string strCurrentCulture = "";
public HoldingLabwareBll()
{
strCurrentCulture = System.Threading.Thread.CurrentThread.CurrentCulture.Name;
}
///
/// 生成抓板保持开始方法的xml节点属性对象
///
/// 抓板转移方法的xml节点
/// 抓板转移方法的xml节点属性对象
public MethodHoldingLabware GenerateMethodBeginHoldingLabware(XmlNode xmlNode)
{
MethodHoldingLabware methodGripTransport = new MethodHoldingLabware();
methodGripTransport.isrun = xmlNode.SelectSingleNode("isrun").InnerText;
methodGripTransport.status = xmlNode.SelectSingleNode("status").InnerText;
methodGripTransport.name = xmlNode.SelectSingleNode("name").InnerText;
methodGripTransport.strIndex = xmlNode.SelectSingleNode("strIndex").InnerText;
methodGripTransport.label = xmlNode.SelectSingleNode("label").InnerText;
#region 臂
methodGripTransport.armText = xmlNode.SelectSingleNode("arm/text").InnerText;
methodGripTransport.armValue = xmlNode.SelectSingleNode("arm/value").InnerText;
#endregion
#region 来源点位
methodGripTransport.srcPositionText = xmlNode.SelectSingleNode("sourceLattice/text").InnerText;
methodGripTransport.srcPositionValue = xmlNode.SelectSingleNode("sourceLattice/value").InnerText;
methodGripTransport.srcPositionType = Convert.ToInt32(xmlNode.SelectSingleNode("sourceLattice/type").InnerText);
#endregion
#region 抓板方向
methodGripTransport.gripModelText = xmlNode.SelectSingleNode("gripModel/text").InnerText;
methodGripTransport.gripModelValue = Convert.ToInt32(xmlNode.SelectSingleNode("gripModel/value").InnerText);
#endregion
#region 抓取耗材
methodGripTransport.gripPickLabwareText = xmlNode.SelectSingleNode("gripPickObject/text").InnerText;
methodGripTransport.gripPickLabwareValue = xmlNode.SelectSingleNode("gripPickObject/value").InnerText;
#endregion
#region 抓板位置
methodGripTransport.gripModelPosText = xmlNode.SelectSingleNode("gripModelPos/text").InnerText;
methodGripTransport.gripModelPosValue = Convert.ToInt32(xmlNode.SelectSingleNode("gripModelPos/value").InnerText);
#endregion
methodGripTransport.transportMode = Convert.ToInt32(xmlNode.SelectSingleNode("transportMode").InnerText);
methodGripTransport.transportCount = Convert.ToInt32(xmlNode.SelectSingleNode("transportCount").InnerText);
return methodGripTransport;
}
///
/// 生成抓板保持结束方法的xml节点属性对象
///
/// 抓板转移方法的xml节点
/// 抓板转移方法的xml节点属性对象
public MethodHoldingLabware GenerateMethodEndHoldingLabware(XmlNode xmlNode)
{
MethodHoldingLabware methodGripTransport = new MethodHoldingLabware();
methodGripTransport.isrun = xmlNode.SelectSingleNode("isrun").InnerText;
methodGripTransport.status = xmlNode.SelectSingleNode("status").InnerText;
methodGripTransport.name = xmlNode.SelectSingleNode("name").InnerText;
methodGripTransport.strIndex = xmlNode.SelectSingleNode("strIndex").InnerText;
methodGripTransport.label = xmlNode.SelectSingleNode("label").InnerText;
#region 臂
methodGripTransport.armText = xmlNode.SelectSingleNode("arm/text").InnerText;
methodGripTransport.armValue = xmlNode.SelectSingleNode("arm/value").InnerText;
#endregion
#region 目标点位
methodGripTransport.desPositionText = xmlNode.SelectSingleNode("destinationLattice/text").InnerText;
methodGripTransport.desPositionValue = xmlNode.SelectSingleNode("destinationLattice/value").InnerText;
methodGripTransport.desPositionType = Convert.ToInt32(xmlNode.SelectSingleNode("destinationLattice/type").InnerText);
#endregion
#region 放板方向
methodGripTransport.gripModelSetText = xmlNode.SelectSingleNode("gripModelSet/text").InnerText;
methodGripTransport.gripModelSetValue = Convert.ToInt32(xmlNode.SelectSingleNode("gripModelSet/value").InnerText);
#endregion
#region 放在耗材上
methodGripTransport.gripPlaceLabwareText = xmlNode.SelectSingleNode("gripPlaceObject/text").InnerText;
methodGripTransport.gripPlaceLabwareValue = xmlNode.SelectSingleNode("gripPlaceObject/value").InnerText;
#endregion
//methodGripTransport.transportMode = Convert.ToInt32(xmlNode.SelectSingleNode("transportMode").InnerText);
//methodGripTransport.transportCount = Convert.ToInt32(xmlNode.SelectSingleNode("transportMode").InnerText);
return methodGripTransport;
}
#region 检查所有属性设置是否满足要求
///
/// 检查所有属性设置是否满足要求
///
/// 抓板转移属性对象
/// 检查所有属性设置是否满足要求
public MethodPropertyInfo CheckProperty(MethodGripTransport methodGripTransport)
{
MethodPropertyInfo methodPropertyInfo = new MethodPropertyInfo();
if (strCurrentCulture == "zh-CN")
{
methodPropertyInfo.property_tips_info = GripTransportResourceCHS.tipsInfo.ToString();
if (methodGripTransport.armText == null || methodGripTransport.armText == "")
{
methodPropertyInfo.property_name_info = GripTransportResourceCHS.armText.ToString();
}
if (methodGripTransport.srcPositionText == null || methodGripTransport.srcPositionText == "")
{
methodPropertyInfo.property_name_info = GripTransportResourceCHS.sourceLatticeText.ToString();
}
if (methodGripTransport.desPositionText == null || methodGripTransport.desPositionText == "")
{
methodPropertyInfo.property_name_info = GripTransportResourceCHS.destinationLatticeText.ToString();
}
}
else if (strCurrentCulture == "en-US")
{
methodPropertyInfo.property_tips_info = GripTransportResourceENU.tipsInfo.ToString();
if (methodGripTransport.armText == null || methodGripTransport.armText == "")
{
methodPropertyInfo.property_name_info = GripTransportResourceENU.armText.ToString();
}
if (methodGripTransport.srcPositionText == null || methodGripTransport.srcPositionText == "")
{
methodPropertyInfo.property_name_info = GripTransportResourceENU.sourceLatticeText.ToString();
}
if (methodGripTransport.desPositionText == null || methodGripTransport.desPositionText == "")
{
methodPropertyInfo.property_name_info = GripTransportResourceENU.destinationLatticeText.ToString();
}
}
return methodPropertyInfo;
}
#endregion
}
}