using System;
|
using System.Collections.Generic;
|
using System.Linq;
|
using System.Text;
|
using System.Threading.Tasks;
|
using XImagingXhandler.XDAL;
|
using System.Data;
|
using XCoreBLL.Resource;
|
using System.Xml;
|
using XCommon;
|
using DataEntity.Share;
|
using DataRWDAL;
|
using DataEntity;
|
|
namespace XCoreBLL
|
{
|
public class FileMoveLiquidBll
|
{
|
WellFileCalc wellFileCalc = new WellFileCalc();
|
|
#region 获取DataTable的表头名称数据集合
|
/// <summary>
|
/// 获取DataTable的表头名称数据集合
|
/// </summary>
|
/// <param name="dataTable"></param>
|
/// <returns></returns>
|
public List<TransferFileHeader> GetTransferFileHeaders(DataTable dataTable)
|
{
|
List<TransferFileHeader> transferFileHeaders = new List<TransferFileHeader>();
|
|
TransferFileHeader transferFileHeader = new TransferFileHeader();
|
transferFileHeader.header_id = "0";
|
transferFileHeader.header_name = "请选择";
|
transferFileHeaders.Add(transferFileHeader);
|
|
for (int i = 0; i < dataTable.Columns.Count; i++)
|
{
|
transferFileHeader = new TransferFileHeader();
|
transferFileHeader.header_id = dataTable.Columns[i].ColumnName;
|
transferFileHeader.header_name = dataTable.Columns[i].ColumnName;
|
transferFileHeaders.Add(transferFileHeader);
|
}
|
return transferFileHeaders;
|
}
|
#endregion
|
|
public MethodFileMoveLiquid GenerateMethodFileMoveLiquidDataByXmlNode(XmlNode xmlNode)
|
{
|
MethodFileMoveLiquid methodFileMoveLiquid = new MethodFileMoveLiquid();
|
|
methodFileMoveLiquid.isrun = xmlNode.SelectSingleNode("isrun").InnerText;
|
methodFileMoveLiquid.status = xmlNode.SelectSingleNode("status").InnerText;
|
methodFileMoveLiquid.name = xmlNode.SelectSingleNode("name").InnerText;
|
methodFileMoveLiquid.comment = xmlNode.SelectSingleNode("comment").InnerText;
|
methodFileMoveLiquid.label = xmlNode.SelectSingleNode("label").InnerText;
|
methodFileMoveLiquid.strIndex = xmlNode.SelectSingleNode("strIndex").InnerText;
|
methodFileMoveLiquid.armText = xmlNode.SelectSingleNode("arm/text").InnerText;
|
methodFileMoveLiquid.armValue = xmlNode.SelectSingleNode("arm/value").InnerText;
|
methodFileMoveLiquid.headType = xmlNode.SelectSingleNode("headType").InnerText;
|
methodFileMoveLiquid.labwaretipText = xmlNode.SelectSingleNode("labwaretip/text").InnerText;
|
methodFileMoveLiquid.labwaretipValue = xmlNode.SelectSingleNode("labwaretip/value").InnerText;
|
|
string strchs = xmlNode.SelectSingleNode("channels").InnerText;
|
methodFileMoveLiquid.channels = ComUtility.GetChannelsFromXml(strchs);
|
|
methodFileMoveLiquid.filePath = xmlNode.SelectSingleNode("filePath").InnerText;
|
methodFileMoveLiquid.beginLine = Convert.ToInt32(xmlNode.SelectSingleNode("beginLine").InnerText);
|
methodFileMoveLiquid.transferDataTable = GenerateTransferFileDataTable(xmlNode);
|
methodFileMoveLiquid.sourceLabware = xmlNode.SelectSingleNode("sourceLabware").InnerText;
|
methodFileMoveLiquid.sourceWell = xmlNode.SelectSingleNode("sourceWell").InnerText;
|
methodFileMoveLiquid.aspVolume = xmlNode.SelectSingleNode("aspVolume").InnerText;
|
methodFileMoveLiquid.aspOpenLid = xmlNode.SelectSingleNode("aspOpenLid").InnerText;
|
methodFileMoveLiquid.aspCloseLid = xmlNode.SelectSingleNode("aspCloseLid").InnerText;
|
|
methodFileMoveLiquid.destinationLabware = xmlNode.SelectSingleNode("destinationLabware").InnerText;
|
methodFileMoveLiquid.destinationWell = xmlNode.SelectSingleNode("destinationWell").InnerText;
|
methodFileMoveLiquid.dpsOpenLid = xmlNode.SelectSingleNode("dpsOpenLid").InnerText;
|
methodFileMoveLiquid.dpsCloseLid = xmlNode.SelectSingleNode("dpsCloseLid").InnerText;
|
methodFileMoveLiquid.dpsVolume = xmlNode.SelectSingleNode("dpsVolume").InnerText;
|
methodFileMoveLiquid.tipSet = xmlNode.SelectSingleNode("tipSet").InnerText;
|
methodFileMoveLiquid.changeTipsMode = Convert.ToInt32(xmlNode.SelectSingleNode("changeTipsMode").InnerText);
|
methodFileMoveLiquid.changeToTipText = xmlNode.SelectSingleNode("changeToTipText").InnerText;
|
methodFileMoveLiquid.changeToTipValue = Convert.ToInt32(xmlNode.SelectSingleNode("changeToTipValue").InnerText);
|
methodFileMoveLiquid.jump0Volume = xmlNode.SelectSingleNode("jump0Volume").InnerText.ToLower() == "true" ? true : false;
|
|
methodFileMoveLiquid.liquididText = xmlNode.SelectSingleNode("liquidid/text").InnerText;
|
methodFileMoveLiquid.liquididValue = xmlNode.SelectSingleNode("liquidid/value").InnerText;
|
methodFileMoveLiquid.liquidrangeidText = xmlNode.SelectSingleNode("liquidrangeid/text").InnerText;
|
methodFileMoveLiquid.liquidrangeidValue = xmlNode.SelectSingleNode("liquidrangeid/value").InnerText;
|
methodFileMoveLiquid.liquidpidText = xmlNode.SelectSingleNode("liquidpid/text").InnerText;
|
methodFileMoveLiquid.liquidpidValue = xmlNode.SelectSingleNode("liquidpid/value").InnerText;
|
|
//吸液前混合
|
methodFileMoveLiquid.baspMix = xmlNode.SelectSingleNode("baspMix").InnerText.ToLower() == "true" ? true : false;
|
methodFileMoveLiquid.aspmixvolume = Convert.ToDouble(xmlNode.SelectSingleNode("aspmixvolume").InnerText);
|
methodFileMoveLiquid.aspmixcount = Convert.ToInt32(xmlNode.SelectSingleNode("aspmixcount").InnerText);
|
methodFileMoveLiquid.aspmixAspiratePositionText = xmlNode.SelectSingleNode("aspmixAspiratePosition/text").InnerText;
|
methodFileMoveLiquid.aspmixAspiratePositionValue = Convert.ToInt32(xmlNode.SelectSingleNode("aspmixAspiratePosition/value").InnerText);
|
methodFileMoveLiquid.aspmixAspirateDistance = Convert.ToDouble(xmlNode.SelectSingleNode("aspmixAspirateDistance").InnerText);
|
methodFileMoveLiquid.aspmixAspirateSpeed = Convert.ToDouble(xmlNode.SelectSingleNode("aspmixAspirateSpeed").InnerText);
|
methodFileMoveLiquid.aspmixDispensePositionText = xmlNode.SelectSingleNode("aspmixDispensePosition/text").InnerText;
|
methodFileMoveLiquid.aspmixDispensePositionValue = Convert.ToInt32(xmlNode.SelectSingleNode("aspmixDispensePosition/value").InnerText);
|
methodFileMoveLiquid.aspmixDispenseDistance = Convert.ToDouble(xmlNode.SelectSingleNode("aspmixDispenseDistance").InnerText);
|
methodFileMoveLiquid.aspmixDispenseSpeed = Convert.ToDouble(xmlNode.SelectSingleNode("aspmixDispenseSpeed").InnerText);
|
|
//排液后混合
|
methodFileMoveLiquid.bdpsMix = xmlNode.SelectSingleNode("bdpsMix").InnerText.ToLower() == "true" ? true : false;
|
methodFileMoveLiquid.dpsmixvolume = Convert.ToDouble(xmlNode.SelectSingleNode("dpsmixvolume").InnerText);
|
methodFileMoveLiquid.dpsmixcount = Convert.ToInt32(xmlNode.SelectSingleNode("dpsmixcount").InnerText);
|
methodFileMoveLiquid.dpsmixAspiratePositionText = xmlNode.SelectSingleNode("dpsmixAspiratePosition/text").InnerText;
|
methodFileMoveLiquid.dpsmixAspiratePositionValue = Convert.ToInt32(xmlNode.SelectSingleNode("dpsmixAspiratePosition/value").InnerText);
|
methodFileMoveLiquid.dpsmixAspirateDistance = Convert.ToDouble(xmlNode.SelectSingleNode("dpsmixAspirateDistance").InnerText);
|
methodFileMoveLiquid.dpsmixAspirateSpeed = Convert.ToDouble(xmlNode.SelectSingleNode("dpsmixAspirateSpeed").InnerText);
|
methodFileMoveLiquid.dpsmixDispensePositionText = xmlNode.SelectSingleNode("dpsmixDispensePosition/text").InnerText;
|
methodFileMoveLiquid.dpsmixDispensePositionValue = Convert.ToInt32(xmlNode.SelectSingleNode("dpsmixDispensePosition/value").InnerText);
|
methodFileMoveLiquid.dpsmixDispenseDistance = Convert.ToDouble(xmlNode.SelectSingleNode("dpsmixDispenseDistance").InnerText);
|
methodFileMoveLiquid.dpsmixDispenseSpeed = Convert.ToDouble(xmlNode.SelectSingleNode("dpsmixDispenseSpeed").InnerText);
|
|
|
methodFileMoveLiquid.enableLiquidSensor = xmlNode.SelectSingleNode("enableLiquidSensor").InnerText.ToLower() == "true" ? true : false;
|
methodFileMoveLiquid.liquidSensorCount = Convert.ToInt32(xmlNode.SelectSingleNode("liquidSensorCount").InnerText);
|
methodFileMoveLiquid.liquidSensorDistance = Convert.ToDouble(xmlNode.SelectSingleNode("liquidSensorDistance").InnerText);
|
methodFileMoveLiquid.liquidSensorEndDistance = Convert.ToDouble(xmlNode.SelectSingleNode("liquidSensorEndDistance").InnerText);
|
methodFileMoveLiquid.liquidSensorSpeed = Convert.ToDouble(xmlNode.SelectSingleNode("liquidSensorSpeed").InnerText);
|
methodFileMoveLiquid.liquidSensorRadio = Convert.ToDouble(xmlNode.SelectSingleNode("liquidSensorRadio").InnerText);
|
methodFileMoveLiquid.liquidSensorDisIdText = xmlNode.SelectSingleNode("liquidSensorDisId/text").InnerText;
|
methodFileMoveLiquid.liquidSensorDisIdValue = Convert.ToDouble(xmlNode.SelectSingleNode("liquidSensorDisId/value").InnerText);
|
methodFileMoveLiquid.enableLiquidFollow = xmlNode.SelectSingleNode("enableLiquidFollow").InnerText.ToLower() == "true" ? true : false;
|
methodFileMoveLiquid.liquidFollowType = Convert.ToInt32(xmlNode.SelectSingleNode("liquidFollowType/value").InnerText);
|
methodFileMoveLiquid.liquidFollowTypeName = xmlNode.SelectSingleNode("liquidFollowType/text").InnerText;
|
methodFileMoveLiquid.liquidFollowSpeed = Convert.ToDouble(xmlNode.SelectSingleNode("liquidFollowSpeed").InnerText);
|
methodFileMoveLiquid.liquidFollowDistance = Convert.ToDouble(xmlNode.SelectSingleNode("liquidFollowDistance").InnerText);
|
methodFileMoveLiquid.liquidFollowArea = Convert.ToDouble(xmlNode.SelectSingleNode("liquidFollowArea").InnerText);
|
methodFileMoveLiquid.enableMixFollow = xmlNode.SelectSingleNode("enableMixFollow").InnerText.ToLower() == "true" ? true : false;
|
|
methodFileMoveLiquid.enableSensorBlock = xmlNode.SelectSingleNode("enableSensorBlock").InnerText.ToLower() == "true" ? true : false;
|
//methodFileMoveLiquid.liquidSensorBlockDistance = Convert.ToDouble(xmlNode.SelectSingleNode("liquidSensorBlockDistance").InnerText);
|
methodFileMoveLiquid.aspirateBlockDisIdText = xmlNode.SelectSingleNode("aspirateBlockDisId/text").InnerText;
|
methodFileMoveLiquid.aspirateBlockDisIdValue = Convert.ToInt32(xmlNode.SelectSingleNode("aspirateBlockDisId/value").InnerText);
|
methodFileMoveLiquid.dispenseBlockDisIdText = xmlNode.SelectSingleNode("dispenseBlockDisId/text").InnerText;
|
methodFileMoveLiquid.dispenseBlockDisIdValue = Convert.ToInt32(xmlNode.SelectSingleNode("dispenseBlockDisId/value").InnerText);
|
methodFileMoveLiquid.aspirateAirDisIdText = xmlNode.SelectSingleNode("aspirateAirDisId/text").InnerText;
|
methodFileMoveLiquid.aspirateAirDisIdValue = Convert.ToInt32(xmlNode.SelectSingleNode("aspirateAirDisId/value").InnerText);
|
return methodFileMoveLiquid;
|
}
|
|
public DataTable GenerateTransferFileDataTable(XmlNode xmlNode)
|
{
|
XmlNode xmlNode2 = xmlNode.SelectSingleNode("transferDataTable");
|
DataTable dataTable = new DataTable();
|
foreach (XmlNode childNode in xmlNode2.ChildNodes)
|
{
|
DataColumn dataColumn = new DataColumn();
|
dataColumn.ColumnName = childNode.Attributes["columnname"].Value.ToString();
|
dataTable.Columns.Add(dataColumn);
|
}
|
if (xmlNode2.ChildNodes[0] != null)
|
{
|
for (int i = 0; i < xmlNode2.ChildNodes[0].ChildNodes.Count; i++)
|
{
|
DataRow dataRow = dataTable.NewRow();
|
for (int j = 0; j < xmlNode2.ChildNodes.Count; j++)
|
{
|
dataRow[j] = xmlNode2.ChildNodes[j].ChildNodes[i].InnerText;
|
}
|
|
dataTable.Rows.Add(dataRow);
|
}
|
}
|
|
return dataTable;
|
}
|
}
|
}
|