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 构建涂布方式数据
|
/// <summary>
|
/// 构建涂布方式数据
|
/// </summary>
|
/// <returns>涂布方式数据集合</returns>
|
public List<DropdownName> GenerateCoatingModeName()
|
{
|
List<DropdownName> dropdownNames= new List<DropdownName>();
|
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;
|
}
|
|
/// <summary>
|
/// 涂布
|
/// </summary>
|
/// <param name="xmlNode"></param>
|
/// <returns></returns>
|
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;
|
}
|
|
/// <summary>
|
/// 涂布转移
|
/// </summary>
|
/// <param name="xmlNode"></param>
|
/// <returns></returns>
|
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 检查所有属性设置是否满足要求
|
/// <summary>
|
/// 检查所有属性设置是否满足要求
|
/// </summary>
|
/// <param name="methodCoating">涂布属性对象</param>
|
/// <returns>检查所有属性设置是否满足要求</returns>
|
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 执行涂布,返回结果对象
|
/// <summary>
|
/// 执行涂布,返回结果对象
|
/// </summary>
|
/// <param name="coatingMParam">涂布参数对象</param>
|
/// <param name="isSimulator">是否虚拟运行</param>
|
/// <returns>涂布执行结果</returns>
|
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 执行涂布,返回结果对象
|
/// <summary>
|
/// 执行涂布,返回结果对象
|
/// </summary>
|
/// <param name="coatingMParam">涂布参数对象</param>
|
/// <param name="isSimulator">是否虚拟运行</param>
|
/// <returns>涂布执行结果</returns>
|
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 执行混合
|
/// <summary>
|
/// 执行混合
|
/// </summary>
|
/// <param name="mixMParam">涂布参数对象</param>
|
/// <param name="isSimulator">是否虚拟运行</param>
|
/// <returns>涂布执行结果</returns>
|
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
|
}
|
}
|