using DriverLib.Engine; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Xml; using XCommon; using XCoreBLL.Resource; using XImagingXhandler.XDAL; namespace XCore { public class CoatingBll { #region 构建涂布方式数据 /// /// 构建涂布方式数据 /// /// 涂布方式数据集合 public List GenerateCoatingModeName() { List dropdownNames= new List(); DropdownName dropdownName= new DropdownName(); dropdownName.dropdown_id = "1"; dropdownName.dropdown_name = "回字型"; dropdownNames.Add(dropdownName); dropdownName = new DropdownName(); dropdownName.dropdown_id = "2"; dropdownName.dropdown_name = "Z字型"; dropdownNames.Add(dropdownName); return dropdownNames; } #endregion string strCurrentCulture = ""; public CoatingBll() { strCurrentCulture = System.Threading.Thread.CurrentThread.CurrentCulture.Name; } /// /// 涂布 /// /// /// public MethodCoating GenerateMethodCoatingDataByXmlNode(XmlNode xmlNode) { MethodCoating methodCoating = new MethodCoating(); methodCoating.isrun = xmlNode.SelectSingleNode("isrun").InnerText; methodCoating.status = xmlNode.SelectSingleNode("status").InnerText; methodCoating.name = xmlNode.SelectSingleNode("name").InnerText; methodCoating.label = xmlNode.SelectSingleNode("label").InnerText; methodCoating.strIndex = xmlNode.SelectSingleNode("strIndex").InnerText; methodCoating.labwareText = xmlNode.SelectSingleNode("labware/text").InnerText; methodCoating.labwareValue = xmlNode.SelectSingleNode("labware/value").InnerText; methodCoating.positionText = xmlNode.SelectSingleNode("position/text").InnerText; methodCoating.positionValue = xmlNode.SelectSingleNode("position/value").InnerText; methodCoating.armText = xmlNode.SelectSingleNode("arm/text").InnerText; methodCoating.armValue = xmlNode.SelectSingleNode("arm/value").InnerText; methodCoating.headType = xmlNode.SelectSingleNode("headType").InnerText; string strchs = xmlNode.SelectSingleNode("channels").InnerText; methodCoating.channels = ComUtility.GetChannelsFromXml(strchs); methodCoating.wellarray = xmlNode.SelectSingleNode("wellarray").InnerText; methodCoating.coatingmodeValue= xmlNode.SelectSingleNode("coatingmode/value").InnerText; methodCoating.coatingmodeText = xmlNode.SelectSingleNode("coatingmode/text").InnerText; return methodCoating; } /// /// 涂布转移 /// /// /// public MethodCoatingAndTransfer GenerateMethodCoatingAndTransferDataByXmlNode(XmlNode xmlNode) { MethodCoatingAndTransfer methodCoating = new MethodCoatingAndTransfer(); methodCoating.isrun = xmlNode.SelectSingleNode("isrun").InnerText; methodCoating.status = xmlNode.SelectSingleNode("status").InnerText; methodCoating.label = xmlNode.SelectSingleNode("label").InnerText; methodCoating.name = xmlNode.SelectSingleNode("name").InnerText; methodCoating.strIndex = xmlNode.SelectSingleNode("strIndex").InnerText; #region 机械臂 methodCoating.armText = xmlNode.SelectSingleNode("arm/text").InnerText; methodCoating.armValue = xmlNode.SelectSingleNode("arm/value").InnerText; #endregion #region 移液枪通道 methodCoating.headType = xmlNode.SelectSingleNode("headType").InnerText; string strchs = xmlNode.SelectSingleNode("channels").InnerText; methodCoating.channels = ComUtility.GetChannelsFromXml(strchs); #endregion #region 涂布方式 methodCoating.coatingModeValue = Convert.ToInt32(xmlNode.SelectSingleNode("coatingMode").InnerText); #endregion #region 涂布数量 methodCoating.coatingCount = Convert.ToInt32(xmlNode.SelectSingleNode("coatingCount").InnerText); #endregion #region 接种耗材A methodCoating.coatingLabwareAText = xmlNode.SelectSingleNode("coatingLabware/text").InnerText; methodCoating.coatingLabwareAValue = xmlNode.SelectSingleNode("coatingLabware/value").InnerText; #endregion #region 接种耗材B //methodCoating.coatingLabwareBText = xmlNode.SelectSingleNode("coatingLabwareB/text").InnerText; //methodCoating.coatingLabwareBValue = xmlNode.SelectSingleNode("coatingLabwareB/value").InnerText; #endregion #region 自动开关盖 methodCoating.autoOpenCloseCover = Convert.ToInt32(xmlNode.SelectSingleNode("autoOpenCloseCover").InnerText); #endregion #region 涂布方式:上下相关 methodCoating.distanceFromBottom = float.Parse(xmlNode.SelectSingleNode("distanceFromBottom").InnerText); methodCoating.shakeDistanceValue = float.Parse(xmlNode.SelectSingleNode("shakeDistanceValue").InnerText); methodCoating.shakeCountValue = Convert.ToInt32(xmlNode.SelectSingleNode("shakeCountValue").InnerText); #endregion return methodCoating; } #region 检查所有属性设置是否满足要求 /// /// 检查所有属性设置是否满足要求 /// /// 涂布属性对象 /// 检查所有属性设置是否满足要求 public MethodPropertyInfo CheckProperty(MethodCoating methodCoating) { MethodPropertyInfo methodPropertyInfo = new MethodPropertyInfo(); if (strCurrentCulture == "zh-CN") { methodPropertyInfo.property_tips_info = CoatingResourceCHS.tipsInfo.ToString(); if (methodCoating.labwareText == null || methodCoating.labwareText == "") { methodPropertyInfo.property_name_info = CoatingResourceCHS.labwareText.ToString(); } if (methodCoating.positionText == null || methodCoating.positionText == "") { methodPropertyInfo.property_name_info = CoatingResourceCHS.positionText.ToString(); } if (methodCoating.armText == null || methodCoating.armText == "") { methodPropertyInfo.property_name_info = CoatingResourceCHS.armText.ToString(); } if (methodCoating.coatingmodeText == null || methodCoating.coatingmodeText == "") { methodPropertyInfo.property_name_info = CoatingResourceCHS.coatingmodeText.ToString(); } } else if (strCurrentCulture == "en-US") { methodPropertyInfo.property_tips_info = CoatingResourceENU.tipsInfo.ToString(); if (methodCoating.labwareText == null || methodCoating.labwareText == "") { methodPropertyInfo.property_name_info = CoatingResourceENU.labwareText.ToString(); } if (methodCoating.positionText == null || methodCoating.positionText == "") { methodPropertyInfo.property_name_info = CoatingResourceENU.positionText.ToString(); } if (methodCoating.armText == null || methodCoating.armText == "") { methodPropertyInfo.property_name_info = CoatingResourceENU.armText.ToString(); } if (methodCoating.coatingmodeText == null || methodCoating.coatingmodeText == "") { methodPropertyInfo.property_name_info = CoatingResourceENU.coatingmodeText.ToString(); } } return methodPropertyInfo; } #endregion #region 执行涂布,返回结果对象 /// /// 执行涂布,返回结果对象 /// /// 涂布参数对象 /// 是否虚拟运行 /// 涂布执行结果 public HxResult ExecuteCoating(CoatingMParam coatingMParam, bool isSimulator) { HxResult ret = new HxResult(); if (!isSimulator) { ret = MethodAction.Instance.Coating(coatingMParam); } else { ret.Result = ResultType.Success; } return ret; } #endregion #region 执行涂布,返回结果对象 /// /// 执行涂布,返回结果对象 /// /// 涂布参数对象 /// 是否虚拟运行 /// 涂布执行结果 public HxResult ExecuteCoating(CoatingMParamWH coatingMParam, bool isSimulator) { HxResult ret = new HxResult(); if (!isSimulator) { ret = MethodAction.Instance.Coating(coatingMParam); } else { ret.Result = ResultType.Success; } return ret; } #endregion #region 执行混合 /// /// 执行混合 /// /// 涂布参数对象 /// 是否虚拟运行 /// 涂布执行结果 public HxResult ExecuteMixing(MixMParam mixMParam, bool isSimulator) { HxResult ret = new HxResult(); if (!isSimulator) { ret = MethodAction.Instance.Mix(mixMParam); } else { ret.Result = ResultType.Success; } return ret; } public HxResult ExecuteMixing(MixMParamWH mixMParamWH, bool isSimulator) { HxResult ret = new HxResult(); if (!isSimulator) { ret = MethodAction.Instance.Mix(mixMParamWH); } else { ret.Result = ResultType.Success; } return ret; } #endregion } }