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 } }