using DataEntity.Device;
|
using DataEntity.Share;
|
using HxEnum;
|
using System;
|
using System.Collections.Generic;
|
using System.Collections.ObjectModel;
|
using System.Data;
|
using System.IO;
|
using System.Linq;
|
using System.Text.RegularExpressions;
|
using System.Xml;
|
using System.Xml.Linq;
|
using XCommon.Log;
|
using XImagingXhandler.XDAL;
|
using DataEntity;
|
|
namespace XCommon.Xml
|
{
|
public class XmlHelper
|
{
|
public XmlDocument xmlDoc = new XmlDocument();
|
XmlElement root;
|
|
#region 创建xml头部节点框架
|
public void CreateXMLHeader()
|
{
|
XmlDeclaration dec = xmlDoc.CreateXmlDeclaration("1.0", "utf-8", null);
|
xmlDoc.AppendChild(dec);
|
// <root>
|
root = xmlDoc.CreateElement("root");
|
xmlDoc.AppendChild(root);
|
}
|
#endregion
|
|
#region 创建xml台面布局环境
|
/// <summary>
|
/// 创建xml台面布局环境
|
/// </summary>
|
/// <param name="latticeRSLabwares">台面布局数据集合</param>
|
public void CreateEnvironmentPlatformXmlNode(List<LatticeRSLabware> latticeRSLabwares)
|
{
|
XmlElement xeKey = xmlDoc.CreateElement("env");//创建子节点,并且设置子节点的属性
|
|
foreach (LatticeRSLabware lr in latticeRSLabwares)
|
{
|
XmlElement xeformX = xmlDoc.CreateElement("platform");
|
|
XmlElement xeformX1 = xmlDoc.CreateElement("lattice_id");
|
xeformX1.InnerText = lr.lattice_id;
|
xeformX.AppendChild(xeformX1);
|
|
|
|
foreach (LabwareOnLattice l in lr.labwareOnLattices)
|
{
|
xeformX1 = xmlDoc.CreateElement("labware");
|
XmlAttribute xeType = xmlDoc.CreateAttribute("id");
|
xeType.InnerText = l.level.ToString();
|
xeformX1.SetAttributeNode(xeType);
|
xeformX.AppendChild(xeformX1);
|
|
XmlElement xeformN1 = xmlDoc.CreateElement("labware_id");
|
xeformN1.InnerText = l.labware_id;
|
xeformX1.AppendChild(xeformN1);
|
|
xeformN1 = xmlDoc.CreateElement("labware_sname");
|
xeformN1.InnerText = l.labware_sname;
|
xeformX1.AppendChild(xeformN1);
|
|
xeformN1 = xmlDoc.CreateElement("labware_barcode");
|
xeformN1.InnerText = l.labware_barcode;
|
xeformX1.AppendChild(xeformN1);
|
|
xeformN1 = xmlDoc.CreateElement("labware_withlid");
|
xeformN1.InnerText = l.labware_withlid;
|
xeformX1.AppendChild(xeformN1);
|
|
// 如果是Tip盒子、孔板的话,则该节点有值,否则为空
|
string validWells = this.SortWellNameByColumn(l.labware_tipwells);
|
xeformN1 = xmlDoc.CreateElement("allValidWells"); // 所有有效孔位
|
xeformN1.InnerText = validWells;
|
xeformX1.AppendChild(xeformN1);
|
|
xeformN1 = xmlDoc.CreateElement("residueValidWells"); // 剩余有效孔位
|
xeformN1.InnerText = validWells;
|
xeformX1.AppendChild(xeformN1);
|
|
//判断是否有孔位设置了液体,如果有则增加节点保存
|
foreach (PlateWellsLiquidData p in l.plateWellsLiquidData)
|
{
|
XmlElement xeformX2 = xmlDoc.CreateElement("platewell");
|
xeformX1.AppendChild(xeformX2);
|
XmlElement xeformX3 = xmlDoc.CreateElement("liquidTypeID");
|
xeformX3.InnerText = p.liquidTypeID;
|
xeformX2.AppendChild(xeformX3);
|
|
xeformX3 = xmlDoc.CreateElement("liquidTypeName");
|
xeformX3.InnerText = p.liquidTypeName;
|
xeformX2.AppendChild(xeformX3);
|
|
xeformX3 = xmlDoc.CreateElement("nIndex");
|
xeformX3.InnerText = p.nIndex.ToString();
|
xeformX2.AppendChild(xeformX3);
|
|
xeformX3 = xmlDoc.CreateElement("nVolume");
|
xeformX3.InnerText = p.nVolume.ToString();
|
xeformX2.AppendChild(xeformX3);
|
|
xeformX3 = xmlDoc.CreateElement("wells");
|
xeformX3.InnerText = p.wells.ToString();
|
xeformX2.AppendChild(xeformX3);
|
}
|
}
|
xeKey.AppendChild(xeformX);
|
}
|
|
root.AppendChild(xeKey);//挂载父节点
|
}
|
#endregion
|
|
#region 孔位名称按列排序
|
/// <summary>
|
/// 孔位名称按列排序
|
/// </summary>
|
/// <param name="strWells">待排序的孔名字符串</param>
|
/// <returns></returns>
|
public string SortWellNameByColumn(string strWells)
|
{
|
string strings = string.Empty;
|
|
if (!string.IsNullOrEmpty(strWells))
|
{
|
string[] strings1 = strWells.Split(',');
|
for (int i = 1; i < 24 + 1; i++)
|
{
|
for (int j = 1; j < 16 + 1; j++)
|
{
|
string columnChar = ComUtility.GetRowChar(j - 1);
|
|
string value = columnChar + i;
|
if (strings1.Contains(value))
|
{
|
strings += value + ",";
|
}
|
}
|
}
|
|
if (strings.Length > 1)
|
{
|
strings = strings.Substring(0, strings.Length - 1);
|
}
|
}
|
return strings;
|
}
|
#endregion
|
|
#region 孔位名称按行排序
|
/// <summary>
|
/// 孔位名称按行排序
|
/// </summary>
|
/// <param name="strWells">待排序的孔名字符串</param>
|
/// <returns></returns>
|
public string SortWellNameByRow(string strWells)
|
{
|
string strings = string.Empty;
|
|
if (!string.IsNullOrEmpty(strWells))
|
{
|
string[] strings1 = strWells.Split(',');
|
for (int i = 1; i < 16 + 1; i++)
|
{
|
string columnChar = ComUtility.GetRowChar(i - 1);
|
for (int j = 1; j < 24 + 1; j++)
|
{
|
|
|
string value = columnChar + j;
|
if (strings1.Contains(value))
|
{
|
strings += value + ",";
|
}
|
}
|
}
|
|
strings = strings.Substring(0, strings.Length - 1);
|
}
|
return strings;
|
}
|
#endregion
|
|
#region 创建开始的xml
|
public void CreateStartXmlNode(MethodStart methodStart,MethodEx mi)
|
{
|
XmlElement xeKey = xmlDoc.CreateElement("method");//创建子节点,并且设置子节点的属性
|
XmlAttribute xeType = xmlDoc.CreateAttribute("id");
|
xeType.InnerText = "1";
|
xeKey.SetAttributeNode(xeType);
|
|
XmlElement xeformX = xmlDoc.CreateElement("name");
|
xeformX.InnerText = "start";
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("label");
|
xeformX.InnerText = "start";
|
xeKey.AppendChild(xeformX);
|
xeformX = xmlDoc.CreateElement("isrun");
|
xeformX.InnerText = mi.method_isrun;// "运行起点";
|
xeKey.AppendChild(xeformX);
|
xeformX = xmlDoc.CreateElement("strIndex");
|
xeformX.InnerText = "1";
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("status");
|
xeformX.InnerText = methodStart.status;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("usehepa");
|
xeformX.InnerText = methodStart.useHEPA.ToString();
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("isreset");
|
xeformX.InnerText = methodStart.isReset.ToString();
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("isCheckTakePhotoPlate");
|
xeformX.InnerText = methodStart.isCheckTakePhotoPlate.ToString();
|
xeKey.AppendChild(xeformX);
|
|
root.AppendChild(xeKey);//挂载父节点
|
|
}
|
#endregion
|
|
#region 创建吸液方法的xml
|
public void CreateAspirateXmlNode(int index, MethodAspirate methodAspirate, MethodEx mi)
|
{
|
XmlElement xeKey = xmlDoc.CreateElement("method");//创建子节点,并且设置子节点的属性
|
XmlAttribute xeType = xmlDoc.CreateAttribute("id");
|
xeType.InnerText = index.ToString();
|
xeKey.SetAttributeNode(xeType);
|
|
XmlElement xeformX = xmlDoc.CreateElement("isrun");
|
xeformX.InnerText = mi.method_isrun;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("status");
|
//xeformX.InnerText = methodAspirate.status;
|
xeformX.InnerText = (mi.isEnabled ? "enable" : "disable");
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("name");
|
xeformX.InnerText = methodAspirate.name;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("label");
|
xeformX.InnerText = methodAspirate.label;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("strIndex");
|
//xeformX.InnerText = methodAspirate.strIndex;
|
xeformX.InnerText = mi.strIndex;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("labware");
|
xeKey.AppendChild(xeformX);
|
|
XmlElement xeformX1 = xmlDoc.CreateElement("text");
|
xeformX1.InnerText = methodAspirate.labwareText;
|
xeformX.AppendChild(xeformX1);
|
|
xeformX1 = xmlDoc.CreateElement("value");
|
xeformX1.InnerText = methodAspirate.labwareValue;
|
xeformX.AppendChild(xeformX1);
|
|
xeformX = xmlDoc.CreateElement("position");
|
xeKey.AppendChild(xeformX);
|
|
xeformX1 = xmlDoc.CreateElement("text");
|
xeformX1.InnerText = methodAspirate.positionText;
|
xeformX.AppendChild(xeformX1);
|
|
xeformX1 = xmlDoc.CreateElement("value");
|
xeformX1.InnerText = methodAspirate.positionValue;
|
xeformX.AppendChild(xeformX1);
|
|
xeformX = xmlDoc.CreateElement("arm");
|
xeKey.AppendChild(xeformX);
|
|
xeformX1 = xmlDoc.CreateElement("text");
|
xeformX1.InnerText = methodAspirate.armText;
|
xeformX.AppendChild(xeformX1);
|
|
xeformX1 = xmlDoc.CreateElement("value");
|
xeformX1.InnerText = methodAspirate.armValue;
|
xeformX.AppendChild(xeformX1);
|
|
xeformX = xmlDoc.CreateElement("headType");
|
xeformX.InnerText = methodAspirate.headType.ToString();
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("labwaretip");
|
xeKey.AppendChild(xeformX);
|
|
xeformX1 = xmlDoc.CreateElement("text");
|
xeformX1.InnerText = methodAspirate.labwaretipText;
|
xeformX.AppendChild(xeformX1);
|
|
xeformX1 = xmlDoc.CreateElement("value");
|
xeformX1.InnerText = methodAspirate.labwaretipValue;
|
xeformX.AppendChild(xeformX1);
|
|
xeformX = xmlDoc.CreateElement("channels");
|
string chs = string.Empty;
|
if (methodAspirate.channels.Length != 0)
|
{
|
for (int i = 0; i < methodAspirate.channels.Length; i++)
|
{
|
chs += methodAspirate.channels[i] + ",";
|
}
|
chs = chs.Substring(0, chs.Length - 1);
|
}
|
|
xeformX.InnerText = chs;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("wellarray");
|
xeformX.InnerText = methodAspirate.wellarray;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("enableSingleWellvolume");
|
xeformX.InnerText = methodAspirate.enableSingleWellvolume.ToString();
|
xeKey.AppendChild(xeformX);
|
|
foreach (DropdownName d in methodAspirate.singlewellvolume)
|
{
|
xeformX = xmlDoc.CreateElement("SingleWellvolume");
|
xeKey.AppendChild(xeformX);
|
|
xeformX1 = xmlDoc.CreateElement("channel");
|
xeformX1.InnerText = d.dropdown_id.ToString();
|
xeformX.AppendChild(xeformX1);
|
|
xeformX1 = xmlDoc.CreateElement("value");
|
xeformX1.InnerText = d.dropdown_name.ToString();
|
xeformX.AppendChild(xeformX1);
|
}
|
|
xeformX = xmlDoc.CreateElement("wellvolume");
|
xeformX.InnerText = methodAspirate.wellvolume.ToString();
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("liquidid");
|
xeKey.AppendChild(xeformX);
|
|
xeformX1 = xmlDoc.CreateElement("text");
|
xeformX1.InnerText = methodAspirate.liquididText;
|
xeformX.AppendChild(xeformX1);
|
|
xeformX1 = xmlDoc.CreateElement("value");
|
xeformX1.InnerText = methodAspirate.liquididValue;
|
xeformX.AppendChild(xeformX1);
|
|
xeformX = xmlDoc.CreateElement("liquidrangeid");
|
xeKey.AppendChild(xeformX);
|
|
xeformX1 = xmlDoc.CreateElement("text");
|
xeformX1.InnerText = methodAspirate.liquidrangeidText;
|
xeformX.AppendChild(xeformX1);
|
|
xeformX1 = xmlDoc.CreateElement("value");
|
xeformX1.InnerText = methodAspirate.liquidrangeidValue;
|
xeformX.AppendChild(xeformX1);
|
|
xeformX = xmlDoc.CreateElement("liquidpid");
|
xeKey.AppendChild(xeformX);
|
|
xeformX1 = xmlDoc.CreateElement("text");
|
xeformX1.InnerText = methodAspirate.liquidpidText;
|
xeformX.AppendChild(xeformX1);
|
|
xeformX1 = xmlDoc.CreateElement("value");
|
xeformX1.InnerText = methodAspirate.liquidpidValue;
|
xeformX.AppendChild(xeformX1);
|
|
#region 混合
|
xeformX = xmlDoc.CreateElement("enableMix");
|
xeformX.InnerText = methodAspirate.bMix.ToString();
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("enableMultiMix");
|
xeformX.InnerText = methodAspirate.bMultiMix.ToString();
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("mixvolume");
|
xeformX.InnerText = methodAspirate.mixvolume.ToString();
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("mixcount");
|
xeformX.InnerText = methodAspirate.mixcount.ToString();
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("mixAspiratePosition");
|
xeKey.AppendChild(xeformX);
|
|
xeformX1 = xmlDoc.CreateElement("text");
|
xeformX1.InnerText = methodAspirate.mixAspiratePositionText;
|
xeformX.AppendChild(xeformX1);
|
|
xeformX1 = xmlDoc.CreateElement("value");
|
xeformX1.InnerText = methodAspirate.mixAspiratePositionValue.ToString();
|
xeformX.AppendChild(xeformX1);
|
|
xeformX = xmlDoc.CreateElement("mixAspirateDistance");
|
xeformX.InnerText = methodAspirate.mixAspirateDistance.ToString();
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("mixAspirateSpeed");
|
xeformX.InnerText = methodAspirate.mixAspirateSpeed.ToString();
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("mixDispensePosition");
|
xeKey.AppendChild(xeformX);
|
|
xeformX1 = xmlDoc.CreateElement("text");
|
xeformX1.InnerText = methodAspirate.mixDispensePositionText;
|
xeformX.AppendChild(xeformX1);
|
|
xeformX1 = xmlDoc.CreateElement("value");
|
xeformX1.InnerText = methodAspirate.mixDispensePositionValue.ToString();
|
xeformX.AppendChild(xeformX1);
|
|
xeformX = xmlDoc.CreateElement("mixDispenseDistance");
|
xeformX.InnerText = methodAspirate.mixDispenseDistance.ToString();
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("mixDispenseSpeed");
|
xeformX.InnerText = methodAspirate.mixDispenseSpeed.ToString();
|
xeKey.AppendChild(xeformX);
|
#endregion
|
|
#region 液面探测
|
xeformX = xmlDoc.CreateElement("enableLiquidSensor");
|
xeformX.InnerText = methodAspirate.enableLiquidSensor.ToString();
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("liquidSensorCount");
|
xeformX.InnerText = methodAspirate.liquidSensorCount.ToString();
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("liquidSensorDistance");
|
xeformX.InnerText = methodAspirate.liquidSensorDistance.ToString();
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("liquidSensorEndDistance");
|
xeformX.InnerText = methodAspirate.liquidSensorEndDistance.ToString();
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("liquidSensorSpeed");
|
xeformX.InnerText = methodAspirate.liquidSensorSpeed.ToString();
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("liquidSensorRadio");
|
xeformX.InnerText = methodAspirate.liquidSensorRadio.ToString();
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("liquidSensorDisId");
|
xeKey.AppendChild(xeformX);
|
|
xeformX1 = xmlDoc.CreateElement("text");
|
xeformX1.InnerText = methodAspirate.liquidSensorDisIdText;
|
xeformX.AppendChild(xeformX1);
|
|
xeformX1 = xmlDoc.CreateElement("value");
|
xeformX1.InnerText = methodAspirate.liquidSensorDisIdValue.ToString();
|
xeformX.AppendChild(xeformX1);
|
|
xeformX = xmlDoc.CreateElement("enableLiquidFollow");
|
xeformX.InnerText = methodAspirate.enableLiquidFollow.ToString();
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("liquidFollowType");
|
xeKey.AppendChild(xeformX);
|
|
xeformX1 = xmlDoc.CreateElement("text");
|
xeformX1.InnerText = methodAspirate.liquidFollowTypeName.ToString();
|
xeformX.AppendChild(xeformX1);
|
|
xeformX1 = xmlDoc.CreateElement("value");
|
xeformX1.InnerText = methodAspirate.liquidFollowType.ToString();
|
xeformX.AppendChild(xeformX1);
|
|
xeformX = xmlDoc.CreateElement("liquidFollowSpeed");
|
xeformX.InnerText = methodAspirate.liquidFollowSpeed.ToString();
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("liquidFollowDistance");
|
xeformX.InnerText = methodAspirate.liquidFollowDistance.ToString();
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("liquidFollowArea");
|
xeformX.InnerText = methodAspirate.liquidFollowArea.ToString();
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("enableMixFollow");
|
xeformX.InnerText = methodAspirate.enableMixFollow.ToString();
|
xeKey.AppendChild(xeformX);
|
#endregion
|
|
#region 堵塞探测
|
xeformX = xmlDoc.CreateElement("enableSensorBlock");
|
xeformX.InnerText = methodAspirate.enableSensorBlock.ToString();
|
xeKey.AppendChild(xeformX);
|
|
//xeformX = xmlDoc.CreateElement("liquidSensorBlockDistance");
|
//xeformX.InnerText = methodAspirate.liquidSensorBlockDistance.ToString();
|
//xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("aspirateBlockDisId");
|
xeKey.AppendChild(xeformX);
|
|
xeformX1 = xmlDoc.CreateElement("text");
|
xeformX1.InnerText = methodAspirate.aspirateBlockDisIdText;
|
xeformX.AppendChild(xeformX1);
|
|
xeformX1 = xmlDoc.CreateElement("value");
|
xeformX1.InnerText = methodAspirate.aspirateBlockDisIdValue.ToString();
|
xeformX.AppendChild(xeformX1);
|
#endregion
|
|
#region 吸空
|
xeformX = xmlDoc.CreateElement("aspirateAirDisId");
|
xeKey.AppendChild(xeformX);
|
|
xeformX1 = xmlDoc.CreateElement("text");
|
xeformX1.InnerText = methodAspirate.aspirateAirDisIdText;
|
xeformX.AppendChild(xeformX1);
|
|
xeformX1 = xmlDoc.CreateElement("value");
|
xeformX1.InnerText = methodAspirate.aspirateAirDisIdValue.ToString();
|
xeformX.AppendChild(xeformX1);
|
#endregion
|
|
root.AppendChild(xeKey);//挂载父节点
|
}
|
#endregion
|
|
#region 创建排液方法的xml
|
public void CreateDispenseXmlNode(int index, MethodDispense methodDispense, MethodEx mi)
|
{
|
XmlElement xeKey = xmlDoc.CreateElement("method");//创建子节点,并且设置子节点的属性
|
XmlAttribute xeType = xmlDoc.CreateAttribute("id");
|
xeType.InnerText = index.ToString();
|
xeKey.SetAttributeNode(xeType);
|
|
XmlElement xeformX = xmlDoc.CreateElement("isrun");
|
xeformX.InnerText = mi.method_isrun;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("status");
|
//xeformX.InnerText = methodDispense.status;
|
xeformX.InnerText = (mi.isEnabled ? "enable" : "disable");
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("name");
|
xeformX.InnerText = methodDispense.name;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("label");
|
xeformX.InnerText = methodDispense.label;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("strIndex");
|
//xeformX.InnerText = methodDispense.strIndex;
|
xeformX.InnerText = mi.strIndex;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("labware");
|
xeKey.AppendChild(xeformX);
|
|
XmlElement xeformX1 = xmlDoc.CreateElement("text");
|
xeformX1.InnerText = methodDispense.labwareText;
|
xeformX.AppendChild(xeformX1);
|
|
xeformX1 = xmlDoc.CreateElement("value");
|
xeformX1.InnerText = methodDispense.labwareValue;
|
xeformX.AppendChild(xeformX1);
|
|
xeformX = xmlDoc.CreateElement("position");
|
xeKey.AppendChild(xeformX);
|
|
xeformX1 = xmlDoc.CreateElement("text");
|
xeformX1.InnerText = methodDispense.positionText;
|
xeformX.AppendChild(xeformX1);
|
|
xeformX1 = xmlDoc.CreateElement("value");
|
xeformX1.InnerText = methodDispense.positionValue;
|
xeformX.AppendChild(xeformX1);
|
|
xeformX = xmlDoc.CreateElement("arm");
|
xeKey.AppendChild(xeformX);
|
|
xeformX1 = xmlDoc.CreateElement("text");
|
xeformX1.InnerText = methodDispense.armText;
|
xeformX.AppendChild(xeformX1);
|
|
xeformX1 = xmlDoc.CreateElement("value");
|
xeformX1.InnerText = methodDispense.armValue;
|
xeformX.AppendChild(xeformX1);
|
|
xeformX = xmlDoc.CreateElement("headType");
|
xeformX.InnerText = methodDispense.headType;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("labwaretip");
|
xeKey.AppendChild(xeformX);
|
|
xeformX1 = xmlDoc.CreateElement("text");
|
xeformX1.InnerText = methodDispense.labwaretipText;
|
xeformX.AppendChild(xeformX1);
|
|
xeformX1 = xmlDoc.CreateElement("value");
|
xeformX1.InnerText = methodDispense.labwaretipValue;
|
xeformX.AppendChild(xeformX1);
|
|
xeformX = xmlDoc.CreateElement("channels");
|
string chs = string.Empty;
|
if (methodDispense.channels.Length != 0)
|
{
|
for (int i = 0; i < methodDispense.channels.Length; i++)
|
{
|
chs += methodDispense.channels[i] + ",";
|
}
|
|
chs = chs.Substring(0, chs.Length - 1);
|
}
|
xeformX.InnerText = chs;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("wellarray");
|
xeformX.InnerText = methodDispense.wellarray;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("enableSingleWellvolume");
|
xeformX.InnerText = methodDispense.enableSingleWellvolume.ToString();
|
xeKey.AppendChild(xeformX);
|
|
|
|
foreach (DropdownName d in methodDispense.singlewellvolume)
|
{
|
xeformX = xmlDoc.CreateElement("SingleWellvolume");
|
xeKey.AppendChild(xeformX);
|
|
xeformX1 = xmlDoc.CreateElement("channel");
|
xeformX1.InnerText = d.dropdown_id.ToString();
|
xeformX.AppendChild(xeformX1);
|
|
xeformX1 = xmlDoc.CreateElement("value");
|
xeformX1.InnerText = d.dropdown_name.ToString();
|
xeformX.AppendChild(xeformX1);
|
}
|
|
xeformX = xmlDoc.CreateElement("wellvolume");
|
xeformX.InnerText = methodDispense.wellvolume.ToString();
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("isNull");
|
xeformX.InnerText = methodDispense.isNull.ToString();
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("liquidid");
|
xeKey.AppendChild(xeformX);
|
|
xeformX1 = xmlDoc.CreateElement("text");
|
xeformX1.InnerText = methodDispense.liquididText;
|
xeformX.AppendChild(xeformX1);
|
|
xeformX1 = xmlDoc.CreateElement("value");
|
xeformX1.InnerText = methodDispense.liquididValue;
|
xeformX.AppendChild(xeformX1);
|
|
xeformX = xmlDoc.CreateElement("liquidrangeid");
|
xeKey.AppendChild(xeformX);
|
|
xeformX1 = xmlDoc.CreateElement("text");
|
xeformX1.InnerText = methodDispense.liquidrangeidText;
|
xeformX.AppendChild(xeformX1);
|
|
xeformX1 = xmlDoc.CreateElement("value");
|
xeformX1.InnerText = methodDispense.liquidrangeidValue;
|
xeformX.AppendChild(xeformX1);
|
|
xeformX = xmlDoc.CreateElement("liquidpid");
|
xeKey.AppendChild(xeformX);
|
|
xeformX1 = xmlDoc.CreateElement("text");
|
xeformX1.InnerText = methodDispense.liquidpidText;
|
xeformX.AppendChild(xeformX1);
|
|
xeformX1 = xmlDoc.CreateElement("value");
|
xeformX1.InnerText = methodDispense.liquidpidValue;
|
xeformX.AppendChild(xeformX1);
|
|
#region 混合
|
xeformX = xmlDoc.CreateElement("enableMix");
|
xeformX.InnerText = methodDispense.bMix.ToString();
|
xeKey.AppendChild(xeformX);
|
xeformX = xmlDoc.CreateElement("enableMultiMix");
|
xeformX.InnerText = methodDispense.bMultiMix.ToString();
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("mixvolume");
|
xeformX.InnerText = methodDispense.mixvolume.ToString();
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("mixcount");
|
xeformX.InnerText = methodDispense.mixcount.ToString();
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("mixAspiratePosition");
|
xeKey.AppendChild(xeformX);
|
|
xeformX1 = xmlDoc.CreateElement("text");
|
xeformX1.InnerText = methodDispense.mixAspiratePositionText;
|
xeformX.AppendChild(xeformX1);
|
|
xeformX1 = xmlDoc.CreateElement("value");
|
xeformX1.InnerText = methodDispense.mixAspiratePositionValue.ToString();
|
xeformX.AppendChild(xeformX1);
|
|
xeformX = xmlDoc.CreateElement("mixAspirateDistance");
|
xeformX.InnerText = methodDispense.mixAspirateDistance.ToString();
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("mixAspirateSpeed");
|
xeformX.InnerText = methodDispense.mixAspirateSpeed.ToString();
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("mixDispensePosition");
|
xeKey.AppendChild(xeformX);
|
|
xeformX1 = xmlDoc.CreateElement("text");
|
xeformX1.InnerText = methodDispense.mixDispensePositionText;
|
xeformX.AppendChild(xeformX1);
|
|
xeformX1 = xmlDoc.CreateElement("value");
|
xeformX1.InnerText = methodDispense.mixDispensePositionValue.ToString();
|
xeformX.AppendChild(xeformX1);
|
|
xeformX = xmlDoc.CreateElement("mixDispenseDistance");
|
xeformX.InnerText = methodDispense.mixDispenseDistance.ToString();
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("mixDispenseSpeed");
|
xeformX.InnerText = methodDispense.mixDispenseSpeed.ToString();
|
xeKey.AppendChild(xeformX);
|
#endregion
|
|
#region 液面探测
|
xeformX = xmlDoc.CreateElement("enableLiquidSensor");
|
xeformX.InnerText = methodDispense.enableLiquidSensor.ToString();
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("liquidSensorCount");
|
xeformX.InnerText = methodDispense.liquidSensorCount.ToString();
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("liquidSensorDistance");
|
xeformX.InnerText = methodDispense.liquidSensorDistance.ToString();
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("liquidSensorEndDistance");
|
xeformX.InnerText = methodDispense.liquidSensorEndDistance.ToString();
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("liquidSensorSpeed");
|
xeformX.InnerText = methodDispense.liquidSensorSpeed.ToString();
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("liquidSensorRadio");
|
xeformX.InnerText = methodDispense.liquidSensorRadio.ToString();
|
xeKey.AppendChild(xeformX);
|
|
|
xeformX = xmlDoc.CreateElement("liquidSensorDisId");
|
xeKey.AppendChild(xeformX);
|
|
xeformX1 = xmlDoc.CreateElement("text");
|
xeformX1.InnerText = methodDispense.liquidSensorDisIdText;
|
xeformX.AppendChild(xeformX1);
|
|
xeformX1 = xmlDoc.CreateElement("value");
|
xeformX1.InnerText = methodDispense.liquidSensorDisIdValue.ToString();
|
xeformX.AppendChild(xeformX1);
|
|
xeformX = xmlDoc.CreateElement("enableLiquidFollow");
|
xeformX.InnerText = methodDispense.enableLiquidFollow.ToString();
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("liquidFollowType");
|
xeKey.AppendChild(xeformX);
|
|
xeformX1 = xmlDoc.CreateElement("text");
|
xeformX1.InnerText = methodDispense.liquidFollowTypeName.ToString();
|
xeformX.AppendChild(xeformX1);
|
|
xeformX1 = xmlDoc.CreateElement("value");
|
xeformX1.InnerText = methodDispense.liquidFollowType.ToString();
|
xeformX.AppendChild(xeformX1);
|
|
xeformX = xmlDoc.CreateElement("liquidFollowSpeed");
|
xeformX.InnerText = methodDispense.liquidFollowSpeed.ToString();
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("liquidFollowDistance");
|
xeformX.InnerText = methodDispense.liquidFollowDistance.ToString();
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("liquidFollowArea");
|
xeformX.InnerText = methodDispense.liquidFollowArea.ToString();
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("enableMixFollow");
|
xeformX.InnerText = methodDispense.enableMixFollow.ToString();
|
xeKey.AppendChild(xeformX);
|
#endregion
|
|
#region 堵塞探测
|
xeformX = xmlDoc.CreateElement("enableSensorBlock");
|
xeformX.InnerText = methodDispense.enableSensorBlock.ToString();
|
xeKey.AppendChild(xeformX);
|
|
//xeformX = xmlDoc.CreateElement("liquidSensorBlockDistance");
|
//xeformX.InnerText = methodDispense.liquidSensorBlockDistance.ToString();
|
//xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("dispenseBlockDisId");
|
xeKey.AppendChild(xeformX);
|
|
xeformX1 = xmlDoc.CreateElement("text");
|
xeformX1.InnerText = methodDispense.dispenseBlockDisIdText;
|
xeformX.AppendChild(xeformX1);
|
|
xeformX1 = xmlDoc.CreateElement("value");
|
xeformX1.InnerText = methodDispense.dispenseBlockDisIdValue.ToString();
|
xeformX.AppendChild(xeformX1);
|
#endregion
|
|
root.AppendChild(xeKey);//挂载父节点
|
}
|
#endregion
|
|
#region 创建安装枪头方法的xml
|
public void CreateLoadTipsXmlNode(int index, MethodLoadTips methodLoadTips, MethodEx mi)
|
{
|
XmlElement xeKey = xmlDoc.CreateElement("method");//创建子节点,并且设置子节点的属性
|
XmlAttribute xeType = xmlDoc.CreateAttribute("id");
|
xeType.InnerText = index.ToString();
|
xeKey.SetAttributeNode(xeType);
|
|
XmlElement xeformX = xmlDoc.CreateElement("isrun");
|
xeformX.InnerText = mi.method_isrun;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("status");
|
//xeformX.InnerText = methodLoadTips.status;
|
xeformX.InnerText = (mi.isEnabled ? "enable" : "disable");
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("name");
|
xeformX.InnerText = methodLoadTips.name;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("strIndex");
|
//xeformX.InnerText = methodLoadTips.strIndex;
|
xeformX.InnerText = mi.strIndex;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("label");
|
xeformX.InnerText = methodLoadTips.label;
|
xeKey.AppendChild(xeformX);
|
|
//xeformX = xmlDoc.CreateElement("labware");
|
//xeKey.AppendChild(xeformX);
|
|
//XmlElement xeformX1 = xmlDoc.CreateElement("text");
|
//xeformX1.InnerText = methodLoadTips.labwareText;
|
//xeformX.AppendChild(xeformX1);
|
|
//xeformX1 = xmlDoc.CreateElement("value");
|
//xeformX1.InnerText = methodLoadTips.labwareValue;
|
//xeformX.AppendChild(xeformX1);
|
|
//xeformX = xmlDoc.CreateElement("position");
|
//xeKey.AppendChild(xeformX);
|
|
//xeformX1 = xmlDoc.CreateElement("text");
|
//xeformX1.InnerText = methodLoadTips.positionText;
|
//xeformX.AppendChild(xeformX1);
|
|
//xeformX1 = xmlDoc.CreateElement("value");
|
//xeformX1.InnerText = methodLoadTips.positionValue;
|
//xeformX.AppendChild(xeformX1);
|
|
xeformX = xmlDoc.CreateElement("arm");
|
xeKey.AppendChild(xeformX);
|
|
XmlElement xeformX1 = xmlDoc.CreateElement("text");
|
xeformX1.InnerText = methodLoadTips.armText;
|
xeformX.AppendChild(xeformX1);
|
|
xeformX1 = xmlDoc.CreateElement("value");
|
xeformX1.InnerText = methodLoadTips.armValue;
|
xeformX.AppendChild(xeformX1);
|
|
xeformX = xmlDoc.CreateElement("channels");
|
string chs = string.Empty;
|
if (methodLoadTips.channels.Length != 0)
|
{
|
for (int i = 0; i < methodLoadTips.channels.Length; i++)
|
{
|
chs += methodLoadTips.channels[i] + ",";
|
}
|
chs = chs.Substring(0, chs.Length - 1);
|
}
|
xeformX.InnerText = chs;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("labwaretip");
|
xeKey.AppendChild(xeformX);
|
|
xeformX1 = xmlDoc.CreateElement("text");
|
xeformX1.InnerText = methodLoadTips.labwaretipText;
|
xeformX.AppendChild(xeformX1);
|
|
xeformX1 = xmlDoc.CreateElement("value");
|
xeformX1.InnerText = methodLoadTips.labwaretipValue;
|
xeformX.AppendChild(xeformX1);
|
|
//xeformX = xmlDoc.CreateElement("wellarray");
|
//xeformX.InnerText = methodLoadTips.wellarray;
|
//xeKey.AppendChild(xeformX);
|
|
root.AppendChild(xeKey);//挂载父节点
|
}
|
#endregion
|
|
#region 创建卸载枪头方法的xml
|
public void CreateUnloadTipsXmlNode(int index, MethodUnloadTips methodUnloadTips, MethodEx mi)
|
{
|
XmlElement xeKey = xmlDoc.CreateElement("method");//创建子节点,并且设置子节点的属性
|
XmlAttribute xeType = xmlDoc.CreateAttribute("id");
|
xeType.InnerText = index.ToString();
|
xeKey.SetAttributeNode(xeType);
|
|
XmlElement xeformX = xmlDoc.CreateElement("isrun");
|
xeformX.InnerText = mi.method_isrun;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("status");
|
//xeformX.InnerText = methodUnloadTips.status;
|
xeformX.InnerText = (mi.isEnabled ? "enable" : "disable");
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("name");
|
xeformX.InnerText = methodUnloadTips.name;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("label");
|
xeformX.InnerText = methodUnloadTips.label;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("strIndex");
|
//xeformX.InnerText = methodUnloadTips.strIndex;
|
xeformX.InnerText = mi.strIndex;
|
xeKey.AppendChild(xeformX);
|
|
//xeformX = xmlDoc.CreateElement("labware");
|
//xeKey.AppendChild(xeformX);
|
|
//XmlElement xeformX1 = xmlDoc.CreateElement("text");
|
//xeformX1.InnerText = methodUnloadTips.labwareText;
|
//xeformX.AppendChild(xeformX1);
|
|
//xeformX1 = xmlDoc.CreateElement("value");
|
//xeformX1.InnerText = methodUnloadTips.labwareValue;
|
//xeformX.AppendChild(xeformX1);
|
|
xeformX = xmlDoc.CreateElement("position");
|
xeKey.AppendChild(xeformX);
|
|
XmlElement xeformX1 = xmlDoc.CreateElement("text");
|
xeformX1.InnerText = methodUnloadTips.positionText;
|
xeformX.AppendChild(xeformX1);
|
|
xeformX1 = xmlDoc.CreateElement("value");
|
xeformX1.InnerText = methodUnloadTips.positionValue;
|
xeformX.AppendChild(xeformX1);
|
|
xeformX = xmlDoc.CreateElement("arm");
|
xeKey.AppendChild(xeformX);
|
|
xeformX1 = xmlDoc.CreateElement("text");
|
xeformX1.InnerText = methodUnloadTips.armText;
|
xeformX.AppendChild(xeformX1);
|
|
xeformX1 = xmlDoc.CreateElement("value");
|
xeformX1.InnerText = methodUnloadTips.armValue;
|
xeformX.AppendChild(xeformX1);
|
|
xeformX = xmlDoc.CreateElement("channels");
|
string chs = string.Empty;
|
if (methodUnloadTips.channels.Length != 0)
|
{
|
for (int i = 0; i < methodUnloadTips.channels.Length; i++)
|
{
|
chs += methodUnloadTips.channels[i] + ",";
|
}
|
chs = chs.Substring(0, chs.Length - 1);
|
}
|
xeformX.InnerText = chs;
|
xeKey.AppendChild(xeformX);
|
|
|
|
//xeformX = xmlDoc.CreateElement("labwaretip");
|
//xeKey.AppendChild(xeformX);
|
|
//xeformX1 = xmlDoc.CreateElement("text");
|
//xeformX1.InnerText = methodUnloadTips.labwaretipText;
|
//xeformX.AppendChild(xeformX1);
|
|
//xeformX1 = xmlDoc.CreateElement("value");
|
//xeformX1.InnerText = methodUnloadTips.labwaretipValue;
|
//xeformX.AppendChild(xeformX1);
|
|
xeformX = xmlDoc.CreateElement("isputToSource");
|
xeformX.InnerText = methodUnloadTips.isputToSource.ToString();
|
xeKey.AppendChild(xeformX);
|
|
root.AppendChild(xeKey);//挂载父节点
|
}
|
#endregion
|
|
#region 创建泵加液方法的xml
|
public void CreatePumpDispenseXmlNode(int index, MethodPumpDispese methodPumpDispese, MethodEx mi)
|
{
|
XmlElement xeKey = xmlDoc.CreateElement("method");//创建子节点,并且设置子节点的属性
|
XmlAttribute xeType = xmlDoc.CreateAttribute("id");
|
xeType.InnerText = index.ToString();
|
xeKey.SetAttributeNode(xeType);
|
|
XmlElement xeformX = xmlDoc.CreateElement("isrun");
|
xeformX.InnerText = mi.method_isrun;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("status");
|
//xeformX.InnerText = methodAspirate.status;
|
xeformX.InnerText = (mi.isEnabled ? "enable" : "disable");
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("name");
|
xeformX.InnerText = methodPumpDispese.name;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("label");
|
xeformX.InnerText = methodPumpDispese.label;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("strIndex");
|
//xeformX.InnerText = methodAspirate.strIndex;
|
xeformX.InnerText = mi.strIndex;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("labware");
|
xeKey.AppendChild(xeformX);
|
|
XmlElement xeformX1 = xmlDoc.CreateElement("text");
|
xeformX1.InnerText = methodPumpDispese.labwareText;
|
xeformX.AppendChild(xeformX1);
|
|
xeformX1 = xmlDoc.CreateElement("value");
|
xeformX1.InnerText = methodPumpDispese.labwareValue;
|
xeformX.AppendChild(xeformX1);
|
|
xeformX = xmlDoc.CreateElement("position");
|
xeKey.AppendChild(xeformX);
|
|
xeformX1 = xmlDoc.CreateElement("text");
|
xeformX1.InnerText = methodPumpDispese.positionText;
|
xeformX.AppendChild(xeformX1);
|
|
xeformX1 = xmlDoc.CreateElement("value");
|
xeformX1.InnerText = methodPumpDispese.positionValue;
|
xeformX.AppendChild(xeformX1);
|
|
xeformX = xmlDoc.CreateElement("arm");
|
xeKey.AppendChild(xeformX);
|
|
xeformX1 = xmlDoc.CreateElement("text");
|
xeformX1.InnerText = methodPumpDispese.armText;
|
xeformX.AppendChild(xeformX1);
|
|
xeformX1 = xmlDoc.CreateElement("value");
|
xeformX1.InnerText = methodPumpDispese.armValue;
|
xeformX.AppendChild(xeformX1);
|
|
//xeformX = xmlDoc.CreateElement("headType");
|
//xeformX.InnerText = methodPumpDispese.headType.ToString();
|
//xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("wellarray");
|
xeformX.InnerText = methodPumpDispese.wellarray;
|
xeKey.AppendChild(xeformX);
|
|
foreach (Pump pump in methodPumpDispese.pumpParams)
|
{
|
xeformX = xmlDoc.CreateElement("pump");
|
xeKey.AppendChild(xeformX);
|
|
xeformX1 = xmlDoc.CreateElement("name");
|
xeformX1.InnerText = pump.name.ToString();
|
xeformX.AppendChild(xeformX1);
|
|
xeformX1 = xmlDoc.CreateElement("volume");
|
xeformX1.InnerText = pump.volume.ToString();
|
xeformX.AppendChild(xeformX1);
|
|
xeformX1 = xmlDoc.CreateElement("liquidid");
|
xeformX.AppendChild(xeformX1);
|
XmlElement xeformX2 = xmlDoc.CreateElement("text");
|
xeformX2.InnerText = pump.liquidText;
|
xeformX1.AppendChild(xeformX2);
|
|
xeformX2 = xmlDoc.CreateElement("value");
|
xeformX2.InnerText = pump.liquidValue;
|
xeformX1.AppendChild(xeformX2);
|
|
xeformX1 = xmlDoc.CreateElement("liquidrangeid");
|
xeformX.AppendChild(xeformX1);
|
|
xeformX2 = xmlDoc.CreateElement("text");
|
xeformX2.InnerText = pump.liquidRSText;
|
xeformX1.AppendChild(xeformX2);
|
|
xeformX2 = xmlDoc.CreateElement("value");
|
xeformX2.InnerText = pump.liquidRSValue;
|
xeformX1.AppendChild(xeformX2);
|
|
xeformX1 = xmlDoc.CreateElement("liquidtypeid");
|
xeformX.AppendChild(xeformX1);
|
|
xeformX2 = xmlDoc.CreateElement("text");
|
xeformX2.InnerText = pump.liquidTypeText;
|
xeformX1.AppendChild(xeformX2);
|
|
xeformX2 = xmlDoc.CreateElement("value");
|
xeformX2.InnerText = pump.liquidTypeValue;
|
xeformX1.AppendChild(xeformX2);
|
}
|
|
root.AppendChild(xeKey);//挂载父节点
|
}
|
#endregion
|
|
#region 创建振荡方法的xml
|
public void CreateShakeXmlNode(int index, MethodShake methodShake, MethodEx mi)
|
{
|
XmlElement xeKey = xmlDoc.CreateElement("method");//创建子节点,并且设置子节点的属性
|
XmlAttribute xeType = xmlDoc.CreateAttribute("id");
|
xeType.InnerText = index.ToString();
|
xeKey.SetAttributeNode(xeType);
|
|
XmlElement xeformX = xmlDoc.CreateElement("isrun");
|
xeformX.InnerText = mi.method_isrun;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("status");
|
//xeformX.InnerText = methodAspirate.status;
|
xeformX.InnerText = (mi.isEnabled ? "enable" : "disable");
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("name");
|
xeformX.InnerText = methodShake.name;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("label");
|
xeformX.InnerText = methodShake.label;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("strIndex");
|
//xeformX.InnerText = methodShake.strIndex;
|
xeformX.InnerText = mi.strIndex;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("modeVal");
|
xeformX.InnerText = methodShake.modeVal.ToString();
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("shakeSpeed");
|
xeformX.InnerText = methodShake.shakeSpeed.ToString();
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("shakeDuringTime");
|
xeformX.InnerText = methodShake.shakeDuringTime.ToString();
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("shakeMoveSpeed");
|
xeformX.InnerText = methodShake.shakeMoveSpeed.ToString();
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("shakeMoveAngle");
|
xeformX.InnerText = methodShake.shakeMoveAngle.ToString();
|
xeKey.AppendChild(xeformX);
|
|
root.AppendChild(xeKey);//挂载父节点
|
}
|
#endregion
|
|
#region 创建开关盖方法的xml
|
public void CreateSwitchLidXmlNode(int index, MethodSwitchLid methodSwitchLid, MethodEx mi)
|
{
|
XmlElement xeKey = xmlDoc.CreateElement("method");//创建子节点,并且设置子节点的属性
|
XmlAttribute xeType = xmlDoc.CreateAttribute("id");
|
xeType.InnerText = index.ToString();
|
xeKey.SetAttributeNode(xeType);
|
|
XmlElement xeformX = xmlDoc.CreateElement("isrun");
|
xeformX.InnerText = mi.method_isrun;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("status");
|
//xeformX.InnerText = methodAspirate.status;
|
xeformX.InnerText = (mi.isEnabled ? "enable" : "disable");
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("name");
|
xeformX.InnerText = methodSwitchLid.name;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("label");
|
xeformX.InnerText = methodSwitchLid.label;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("strIndex");
|
//xeformX.InnerText = methodAspirate.strIndex;
|
xeformX.InnerText = mi.strIndex;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("labware");
|
xeKey.AppendChild(xeformX);
|
|
XmlElement xeformX1 = xmlDoc.CreateElement("text");
|
xeformX1.InnerText = methodSwitchLid.labwareText;
|
xeformX.AppendChild(xeformX1);
|
|
xeformX1 = xmlDoc.CreateElement("value");
|
xeformX1.InnerText = methodSwitchLid.labwareValue;
|
xeformX.AppendChild(xeformX1);
|
|
xeformX = xmlDoc.CreateElement("position");
|
xeKey.AppendChild(xeformX);
|
|
xeformX1 = xmlDoc.CreateElement("text");
|
xeformX1.InnerText = methodSwitchLid.positionText;
|
xeformX.AppendChild(xeformX1);
|
|
xeformX1 = xmlDoc.CreateElement("value");
|
xeformX1.InnerText = methodSwitchLid.positionValue;
|
xeformX.AppendChild(xeformX1);
|
|
xeformX = xmlDoc.CreateElement("arm");
|
xeKey.AppendChild(xeformX);
|
|
xeformX1 = xmlDoc.CreateElement("text");
|
xeformX1.InnerText = methodSwitchLid.armText;
|
xeformX.AppendChild(xeformX1);
|
|
xeformX1 = xmlDoc.CreateElement("value");
|
xeformX1.InnerText = methodSwitchLid.armValue;
|
xeformX.AppendChild(xeformX1);
|
|
xeformX = xmlDoc.CreateElement("wellarray");
|
xeformX.InnerText = methodSwitchLid.wellarray;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("switchState");
|
xeformX.InnerText = methodSwitchLid.switchState.ToString();
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("switchSpeed");
|
xeformX.InnerText = methodSwitchLid.switchSpeed.ToString();
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("numOfCircle");
|
xeformX.InnerText = methodSwitchLid.numOfCircle.ToString();
|
xeKey.AppendChild(xeformX);
|
|
root.AppendChild(xeKey);//挂载父节点
|
}
|
#endregion
|
|
#region 创建设置通道方法的xml
|
public void CreateSetChannelXmlNode(int index, MethodSetChannel methodSetChannel, MethodEx mi)
|
{
|
XmlElement xeKey = xmlDoc.CreateElement("method");//创建子节点,并且设置子节点的属性
|
XmlAttribute xeType = xmlDoc.CreateAttribute("id");
|
xeType.InnerText = index.ToString();
|
xeKey.SetAttributeNode(xeType);
|
|
XmlElement xeformX = xmlDoc.CreateElement("isrun");
|
xeformX.InnerText = mi.method_isrun;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("status");
|
//xeformX.InnerText = methodSetChannel.status;
|
xeformX.InnerText = (mi.isEnabled ? "enable" : "disable");
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("name");
|
xeformX.InnerText = methodSetChannel.name;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("label");
|
xeformX.InnerText = methodSetChannel.label;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("arm");
|
xeKey.AppendChild(xeformX);
|
|
XmlElement xeformX1 = xmlDoc.CreateElement("text");
|
xeformX1.InnerText = methodSetChannel.armText;
|
xeformX.AppendChild(xeformX1);
|
|
xeformX1 = xmlDoc.CreateElement("value");
|
xeformX1.InnerText = methodSetChannel.armValue;
|
xeformX.AppendChild(xeformX1);
|
|
xeformX = xmlDoc.CreateElement("labwaretip");
|
xeKey.AppendChild(xeformX);
|
|
xeformX1 = xmlDoc.CreateElement("text");
|
xeformX1.InnerText = methodSetChannel.labwaretipText;
|
xeformX.AppendChild(xeformX1);
|
|
xeformX1 = xmlDoc.CreateElement("value");
|
xeformX1.InnerText = methodSetChannel.labwaretipValue;
|
xeformX.AppendChild(xeformX1);
|
|
|
xeformX = xmlDoc.CreateElement("ChannelArray");
|
xeformX.InnerText = methodSetChannel.ChannelText;
|
xeKey.AppendChild(xeformX);
|
|
root.AppendChild(xeKey);//挂载父节点
|
}
|
#endregion
|
|
#region 创建循环方法的xml
|
public void CreateLoopXmlNode(int index, MethodLoop methodLoop, MethodEx mi)
|
{
|
XmlElement xeKey = xmlDoc.CreateElement("method");//创建子节点,并且设置子节点的属性
|
XmlAttribute xeType = xmlDoc.CreateAttribute("id");
|
xeType.InnerText = index.ToString();
|
xeKey.SetAttributeNode(xeType);
|
|
XmlElement xeformX = xmlDoc.CreateElement("isrun");
|
xeformX.InnerText = mi.method_isrun;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("status");
|
//xeformX.InnerText = methodLoop.status;
|
xeformX.InnerText = (mi.isEnabled ? "enable" : "disable");
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("name");
|
xeformX.InnerText = methodLoop.name;
|
xeKey.AppendChild(xeformX);
|
xeformX = xmlDoc.CreateElement("strIndex");
|
//xeformX.InnerText = methodLoop.strIndex;
|
xeformX.InnerText = mi.strIndex;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("endIndex");
|
xeformX.InnerText = methodLoop.endIndex;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("label");
|
xeformX.InnerText = methodLoop.label;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("variableName");
|
xeformX.InnerText = methodLoop.variableName;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("variablesValue");
|
xeformX.InnerText = methodLoop.variablesValue;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("variableeValue");
|
xeformX.InnerText = methodLoop.variableeValue;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("incrementValue");
|
xeformX.InnerText = methodLoop.incrementValue;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("content");
|
xeformX.InnerText = methodLoop.content;
|
xeKey.AppendChild(xeformX);
|
|
root.AppendChild(xeKey);//挂载父节点
|
}
|
#endregion
|
|
#region 创建循环结束的xml
|
public void CreateEndLoopXmlNode(int index, string strIndex)
|
{
|
XmlElement xeKey = xmlDoc.CreateElement("method");//创建子节点,并且设置子节点的属性
|
XmlAttribute xeType = xmlDoc.CreateAttribute("id");
|
xeType.InnerText = index.ToString();
|
xeKey.SetAttributeNode(xeType);
|
|
XmlElement xeformX = xmlDoc.CreateElement("name");
|
xeformX.InnerText = "Method_EndLoop";
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("strIndex");
|
xeformX.InnerText = strIndex;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("label");
|
xeformX.InnerText = "Method_EndLoop";
|
xeKey.AppendChild(xeformX);
|
|
//xeformX = xmlDoc.CreateElement("id");
|
//xeformX.InnerText = endIndex.ToString();
|
//xeKey.AppendChild(xeformX);
|
|
root.AppendChild(xeKey);//挂载父节点
|
}
|
#endregion
|
|
#region 创建组合的xml
|
public void CreateGroupXmlNode(int index, MethodCombination methodCombination, MethodEx mi)
|
{
|
XmlElement xeKey = xmlDoc.CreateElement("method");//创建子节点,并且设置子节点的属性
|
XmlAttribute xeType = xmlDoc.CreateAttribute("id");
|
xeType.InnerText = index.ToString();
|
xeKey.SetAttributeNode(xeType);
|
|
XmlElement xeformX = xmlDoc.CreateElement("isrun");
|
xeformX.InnerText = mi.method_isrun;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("status");
|
//xeformX.InnerText = methodCombination.status;
|
xeformX.InnerText = (mi.isEnabled ? "enable" : "disable");
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("label");
|
xeformX.InnerText = methodCombination.label;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("name");
|
xeformX.InnerText = methodCombination.name;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("strIndex");
|
//xeformX.InnerText = methodCombination.strIndex;
|
xeformX.InnerText = mi.strIndex;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("title");
|
xeformX.InnerText = methodCombination.title;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("remark");
|
xeformX.InnerText = methodCombination.remark;
|
xeKey.AppendChild(xeformX);
|
|
root.AppendChild(xeKey);//挂载父节点
|
}
|
#endregion
|
|
#region 创建组合结束的xml
|
public void CreateEndGroupXmlNode(int index, string strIndex)
|
{
|
XmlElement xeKey = xmlDoc.CreateElement("method");//创建子节点,并且设置子节点的属性
|
XmlAttribute xeType = xmlDoc.CreateAttribute("id");
|
xeType.InnerText = index.ToString();
|
xeKey.SetAttributeNode(xeType);
|
|
XmlElement xeformX = xmlDoc.CreateElement("name");
|
xeformX.InnerText = "Method_EndGroup";
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("strIndex");
|
xeformX.InnerText = strIndex;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("label");
|
xeformX.InnerText = "Method_EndGroup";
|
xeKey.AppendChild(xeformX);
|
root.AppendChild(xeKey);//挂载父节点
|
}
|
#endregion
|
|
#region 创建文件移液方法的xml
|
public void CreateTransferFileXmlNode(int index, MethodTransferFile methodTransferFile, MethodEx mi)
|
{
|
XmlElement xeKey = xmlDoc.CreateElement("method");//创建子节点,并且设置子节点的属性
|
XmlAttribute xeType = xmlDoc.CreateAttribute("id");
|
xeType.InnerText = index.ToString();
|
xeKey.SetAttributeNode(xeType);
|
|
XmlElement xeformX = xmlDoc.CreateElement("isrun");
|
xeformX.InnerText = mi.method_isrun;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("status");
|
//xeformX.InnerText = methodTransferFile.status;
|
xeformX.InnerText = (mi.isEnabled ? "enable" : "disable");
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("name");
|
xeformX.InnerText = methodTransferFile.name;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("label");
|
xeformX.InnerText = methodTransferFile.label;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("strIndex");
|
//xeformX.InnerText = methodTransferFile.strIndex;
|
xeformX.InnerText = mi.strIndex;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("arm");
|
xeKey.AppendChild(xeformX);
|
|
XmlElement xeformX1 = xmlDoc.CreateElement("text");
|
xeformX1.InnerText = methodTransferFile.armText;
|
xeformX.AppendChild(xeformX1);
|
|
xeformX1 = xmlDoc.CreateElement("value");
|
xeformX1.InnerText = methodTransferFile.armValue;
|
xeformX.AppendChild(xeformX1);
|
|
xeformX = xmlDoc.CreateElement("headType");
|
xeformX.InnerText = methodTransferFile.headType;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("labwaretip");
|
xeKey.AppendChild(xeformX);
|
|
xeformX1 = xmlDoc.CreateElement("text");
|
xeformX1.InnerText = methodTransferFile.labwaretipText;
|
xeformX.AppendChild(xeformX1);
|
|
xeformX1 = xmlDoc.CreateElement("value");
|
xeformX1.InnerText = methodTransferFile.labwaretipValue;
|
xeformX.AppendChild(xeformX1);
|
|
xeformX = xmlDoc.CreateElement("channels");
|
string chs = string.Empty;
|
if (methodTransferFile.channels != null)
|
{
|
if (methodTransferFile.channels.Length != 0)
|
{
|
for (int i = 0; i < methodTransferFile.channels.Length; i++)
|
{
|
chs += methodTransferFile.channels[i] + ",";
|
}
|
chs = chs.Substring(0, chs.Length - 1);
|
}
|
}
|
|
xeformX.InnerText = chs;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("filePath");
|
xeformX.InnerText = methodTransferFile.filePath;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("beginLine");
|
xeformX.InnerText = methodTransferFile.beginLine.ToString();
|
xeKey.AppendChild(xeformX);
|
|
//DataTable转化成节点
|
CreateTransferFileDataTable(methodTransferFile, xeKey);
|
|
xeformX = xmlDoc.CreateElement("sourceLabware");
|
xeformX.InnerText = methodTransferFile.sourceLabware;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("sourceWell");
|
xeformX.InnerText = methodTransferFile.sourceWell;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("destinationLabware");
|
xeformX.InnerText = methodTransferFile.destinationLabware;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("destinationWell");
|
xeformX.InnerText = methodTransferFile.destinationWell;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("destVolume");
|
xeformX.InnerText = methodTransferFile.destVolume;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("tipSet");
|
xeformX.InnerText = methodTransferFile.tipSet;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("changeTipsMode");
|
xeformX.InnerText = methodTransferFile.changeTipsMode.ToString();
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("changeToTipText");
|
xeformX.InnerText = methodTransferFile.changeToTipText;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("changeToTipValue");
|
xeformX.InnerText = methodTransferFile.changeToTipValue.ToString();
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("jump0Volume");
|
xeformX.InnerText = methodTransferFile.jump0Volume.ToString();
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("liquidid");
|
xeKey.AppendChild(xeformX);
|
|
xeformX1 = xmlDoc.CreateElement("text");
|
xeformX1.InnerText = methodTransferFile.liquididText;
|
xeformX.AppendChild(xeformX1);
|
|
xeformX1 = xmlDoc.CreateElement("value");
|
xeformX1.InnerText = methodTransferFile.liquididValue;
|
xeformX.AppendChild(xeformX1);
|
|
xeformX = xmlDoc.CreateElement("liquidrangeid");
|
xeKey.AppendChild(xeformX);
|
|
xeformX1 = xmlDoc.CreateElement("text");
|
xeformX1.InnerText = methodTransferFile.liquidrangeidText;
|
xeformX.AppendChild(xeformX1);
|
|
xeformX1 = xmlDoc.CreateElement("value");
|
xeformX1.InnerText = methodTransferFile.liquidrangeidValue;
|
xeformX.AppendChild(xeformX1);
|
|
xeformX = xmlDoc.CreateElement("liquidpid");
|
xeKey.AppendChild(xeformX);
|
|
xeformX1 = xmlDoc.CreateElement("text");
|
xeformX1.InnerText = methodTransferFile.liquidpidText;
|
xeformX.AppendChild(xeformX1);
|
|
xeformX1 = xmlDoc.CreateElement("value");
|
xeformX1.InnerText = methodTransferFile.liquidpidValue;
|
xeformX.AppendChild(xeformX1);
|
|
#region 混合
|
xeformX = xmlDoc.CreateElement("enableMix");
|
xeformX.InnerText = methodTransferFile.bMix.ToString();
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("mixvolume");
|
xeformX.InnerText = methodTransferFile.mixvolume.ToString();
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("mixcount");
|
xeformX.InnerText = methodTransferFile.mixcount.ToString();
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("mixAspiratePosition");
|
xeKey.AppendChild(xeformX);
|
|
xeformX1 = xmlDoc.CreateElement("text");
|
xeformX1.InnerText = methodTransferFile.mixAspiratePositionText;
|
xeformX.AppendChild(xeformX1);
|
|
xeformX1 = xmlDoc.CreateElement("value");
|
xeformX1.InnerText = methodTransferFile.mixAspiratePositionValue.ToString();
|
xeformX.AppendChild(xeformX1);
|
|
xeformX = xmlDoc.CreateElement("mixAspirateDistance");
|
xeformX.InnerText = methodTransferFile.mixAspirateDistance.ToString();
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("mixAspirateSpeed");
|
xeformX.InnerText = methodTransferFile.mixAspirateSpeed.ToString();
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("mixDispensePosition");
|
xeKey.AppendChild(xeformX);
|
|
xeformX1 = xmlDoc.CreateElement("text");
|
xeformX1.InnerText = methodTransferFile.mixDispensePositionText;
|
xeformX.AppendChild(xeformX1);
|
|
xeformX1 = xmlDoc.CreateElement("value");
|
xeformX1.InnerText = methodTransferFile.mixDispensePositionValue.ToString();
|
xeformX.AppendChild(xeformX1);
|
|
xeformX = xmlDoc.CreateElement("mixDispenseDistance");
|
xeformX.InnerText = methodTransferFile.mixDispenseDistance.ToString();
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("mixDispenseSpeed");
|
xeformX.InnerText = methodTransferFile.mixDispenseSpeed.ToString();
|
xeKey.AppendChild(xeformX);
|
#endregion
|
|
#region 液面探测
|
xeformX = xmlDoc.CreateElement("enableLiquidSensor");
|
xeformX.InnerText = methodTransferFile.enableLiquidSensor.ToString();
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("liquidSensorCount");
|
xeformX.InnerText = methodTransferFile.liquidSensorCount.ToString();
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("liquidSensorDistance");
|
xeformX.InnerText = methodTransferFile.liquidSensorDistance.ToString();
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("liquidSensorEndDistance");
|
xeformX.InnerText = methodTransferFile.liquidSensorEndDistance.ToString();
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("liquidSensorSpeed");
|
xeformX.InnerText = methodTransferFile.liquidSensorSpeed.ToString();
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("liquidSensorRadio");
|
xeformX.InnerText = methodTransferFile.liquidSensorRadio.ToString();
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("liquidSensorDisId");
|
xeKey.AppendChild(xeformX);
|
|
xeformX1 = xmlDoc.CreateElement("text");
|
xeformX1.InnerText = methodTransferFile.liquidSensorDisIdText;
|
xeformX.AppendChild(xeformX1);
|
|
xeformX1 = xmlDoc.CreateElement("value");
|
xeformX1.InnerText = methodTransferFile.liquidSensorDisIdValue.ToString();
|
xeformX.AppendChild(xeformX1);
|
|
xeformX = xmlDoc.CreateElement("enableLiquidFollow");
|
xeformX.InnerText = methodTransferFile.enableLiquidFollow.ToString();
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("liquidFollowType");
|
xeKey.AppendChild(xeformX);
|
|
xeformX1 = xmlDoc.CreateElement("text");
|
xeformX1.InnerText = methodTransferFile.liquidFollowTypeName.ToString();
|
xeformX.AppendChild(xeformX1);
|
|
xeformX1 = xmlDoc.CreateElement("value");
|
xeformX1.InnerText = methodTransferFile.liquidFollowType.ToString();
|
xeformX.AppendChild(xeformX1);
|
|
xeformX = xmlDoc.CreateElement("liquidFollowSpeed");
|
xeformX.InnerText = methodTransferFile.liquidFollowSpeed.ToString();
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("liquidFollowDistance");
|
xeformX.InnerText = methodTransferFile.liquidFollowDistance.ToString();
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("liquidFollowArea");
|
xeformX.InnerText = methodTransferFile.liquidFollowArea.ToString();
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("enableMixFollow");
|
xeformX.InnerText = methodTransferFile.enableMixFollow.ToString();
|
xeKey.AppendChild(xeformX);
|
#endregion
|
|
#region 堵塞探测
|
xeformX = xmlDoc.CreateElement("enableSensorBlock");
|
xeformX.InnerText = methodTransferFile.enableSensorBlock.ToString();
|
xeKey.AppendChild(xeformX);
|
|
//xeformX = xmlDoc.CreateElement("liquidSensorBlockDistance");
|
//xeformX.InnerText = methodTransferFile.liquidSensorBlockDistance.ToString();
|
//xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("aspirateBlockDisId");
|
xeKey.AppendChild(xeformX);
|
|
xeformX1 = xmlDoc.CreateElement("text");
|
xeformX1.InnerText = methodTransferFile.aspirateBlockDisIdText;
|
xeformX.AppendChild(xeformX1);
|
|
xeformX1 = xmlDoc.CreateElement("value");
|
xeformX1.InnerText = methodTransferFile.aspirateBlockDisIdValue.ToString();
|
xeformX.AppendChild(xeformX1);
|
|
xeformX = xmlDoc.CreateElement("dispenseBlockDisId");
|
xeKey.AppendChild(xeformX);
|
|
xeformX1 = xmlDoc.CreateElement("text");
|
xeformX1.InnerText = methodTransferFile.dispenseBlockDisIdText;
|
xeformX.AppendChild(xeformX1);
|
|
xeformX1 = xmlDoc.CreateElement("value");
|
xeformX1.InnerText = methodTransferFile.dispenseBlockDisIdValue.ToString();
|
xeformX.AppendChild(xeformX1);
|
|
xeformX = xmlDoc.CreateElement("aspirateAirDisId");
|
xeKey.AppendChild(xeformX);
|
|
xeformX1 = xmlDoc.CreateElement("text");
|
xeformX1.InnerText = methodTransferFile.aspirateAirDisIdText;
|
xeformX.AppendChild(xeformX1);
|
|
xeformX1 = xmlDoc.CreateElement("value");
|
xeformX1.InnerText = methodTransferFile.aspirateAirDisIdValue.ToString();
|
xeformX.AppendChild(xeformX1);
|
#endregion
|
|
|
root.AppendChild(xeKey);//挂载父节点
|
}
|
|
#region 判断是否以数字开头,如果是则后台加上前缀T_
|
public bool NumberStartOfString(string strContent)
|
{
|
bool result = false;
|
Regex regNum = new Regex("^[0-9]");
|
result= regNum.IsMatch(strContent);
|
return result;
|
}
|
#endregion
|
|
public void CreateTransferFileDataTable(MethodTransferFile methodTransferFile, XmlElement xeKey)
|
{
|
XmlElement xeformXBase = xmlDoc.CreateElement("transferDataTable");
|
DataTable dt = methodTransferFile.transferDataTable;
|
if (dt != null)
|
{
|
for (int i = 0; i < dt.Columns.Count; i++)
|
{
|
XmlElement xeformX = xmlDoc.CreateElement("subnode");
|
XmlAttribute xeType = xmlDoc.CreateAttribute("columnname");
|
xeType.InnerText = dt.Columns[i].ColumnName.ToString();
|
xeformX.SetAttributeNode(xeType);
|
|
xeformXBase.AppendChild(xeformX);
|
|
for (int j = 0; j < dt.Rows.Count; j++)
|
{
|
XmlElement xeformX1 = xmlDoc.CreateElement("node");
|
xeformX1.InnerText = dt.Rows[j][i].ToString();
|
xeformX.AppendChild(xeformX1);
|
}
|
}
|
}
|
xeKey.AppendChild(xeformXBase);
|
}
|
#endregion
|
|
#region 创建文件开关盖移液方法的xml
|
public void CreateFileMoveLiquidXmlNode(int index, MethodFileMoveLiquid methodFileMoveLiquid, MethodEx mi)
|
{
|
XmlElement xeKey = xmlDoc.CreateElement("method");//创建子节点,并且设置子节点的属性
|
XmlAttribute xeType = xmlDoc.CreateAttribute("id");
|
xeType.InnerText = index.ToString();
|
xeKey.SetAttributeNode(xeType);
|
|
XmlElement xeformX = xmlDoc.CreateElement("isrun");
|
xeformX.InnerText = mi.method_isrun;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("status");
|
xeformX.InnerText = (mi.isEnabled ? "enable" : "disable");
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("name");
|
xeformX.InnerText = methodFileMoveLiquid.name;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("comment");
|
xeformX.InnerText = methodFileMoveLiquid.comment;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("label");
|
xeformX.InnerText = methodFileMoveLiquid.label;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("strIndex");
|
xeformX.InnerText = mi.strIndex;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("arm");
|
xeKey.AppendChild(xeformX);
|
|
XmlElement xeformX1 = xmlDoc.CreateElement("text");
|
xeformX1.InnerText = methodFileMoveLiquid.armText;
|
xeformX.AppendChild(xeformX1);
|
|
xeformX1 = xmlDoc.CreateElement("value");
|
xeformX1.InnerText = methodFileMoveLiquid.armValue;
|
xeformX.AppendChild(xeformX1);
|
|
xeformX = xmlDoc.CreateElement("headType");
|
xeformX.InnerText = methodFileMoveLiquid.headType;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("labwaretip");
|
xeKey.AppendChild(xeformX);
|
|
xeformX1 = xmlDoc.CreateElement("text");
|
xeformX1.InnerText = methodFileMoveLiquid.labwaretipText;
|
xeformX.AppendChild(xeformX1);
|
|
xeformX1 = xmlDoc.CreateElement("value");
|
xeformX1.InnerText = methodFileMoveLiquid.labwaretipValue;
|
xeformX.AppendChild(xeformX1);
|
|
xeformX = xmlDoc.CreateElement("channels");
|
string chs = string.Empty;
|
if (methodFileMoveLiquid.channels != null)
|
{
|
if (methodFileMoveLiquid.channels.Length != 0)
|
{
|
for (int i = 0; i < methodFileMoveLiquid.channels.Length; i++)
|
{
|
chs += methodFileMoveLiquid.channels[i] + ",";
|
}
|
chs = chs.Substring(0, chs.Length - 1);
|
}
|
}
|
|
xeformX.InnerText = chs;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("filePath");
|
xeformX.InnerText = methodFileMoveLiquid.filePath;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("beginLine");
|
xeformX.InnerText = methodFileMoveLiquid.beginLine.ToString();
|
xeKey.AppendChild(xeformX);
|
|
//DataTable转化成节点
|
CreateTransferFileDataTable(methodFileMoveLiquid, xeKey);
|
|
xeformX = xmlDoc.CreateElement("sourceLabware");
|
xeformX.InnerText = methodFileMoveLiquid.sourceLabware;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("sourceWell");
|
xeformX.InnerText = methodFileMoveLiquid.sourceWell;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("aspVolume");
|
xeformX.InnerText = methodFileMoveLiquid.aspVolume;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("aspOpenLid");
|
xeformX.InnerText = methodFileMoveLiquid.aspOpenLid;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("aspCloseLid");
|
xeformX.InnerText = methodFileMoveLiquid.aspCloseLid;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("destinationLabware");
|
xeformX.InnerText = methodFileMoveLiquid.destinationLabware;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("destinationWell");
|
xeformX.InnerText = methodFileMoveLiquid.destinationWell;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("dpsVolume");
|
xeformX.InnerText = methodFileMoveLiquid.dpsVolume;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("dpsOpenLid");
|
xeformX.InnerText = methodFileMoveLiquid.dpsOpenLid;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("dpsCloseLid");
|
xeformX.InnerText = methodFileMoveLiquid.dpsCloseLid;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("tipSet");
|
xeformX.InnerText = methodFileMoveLiquid.tipSet;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("changeTipsMode");
|
xeformX.InnerText = methodFileMoveLiquid.changeTipsMode.ToString();
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("changeToTipText");
|
xeformX.InnerText = methodFileMoveLiquid.changeToTipText;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("changeToTipValue");
|
xeformX.InnerText = methodFileMoveLiquid.changeToTipValue.ToString();
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("jump0Volume");
|
xeformX.InnerText = methodFileMoveLiquid.jump0Volume.ToString();
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("liquidid");
|
xeKey.AppendChild(xeformX);
|
|
xeformX1 = xmlDoc.CreateElement("text");
|
xeformX1.InnerText = methodFileMoveLiquid.liquididText;
|
xeformX.AppendChild(xeformX1);
|
|
xeformX1 = xmlDoc.CreateElement("value");
|
xeformX1.InnerText = methodFileMoveLiquid.liquididValue;
|
xeformX.AppendChild(xeformX1);
|
|
xeformX = xmlDoc.CreateElement("liquidrangeid");
|
xeKey.AppendChild(xeformX);
|
|
xeformX1 = xmlDoc.CreateElement("text");
|
xeformX1.InnerText = methodFileMoveLiquid.liquidrangeidText;
|
xeformX.AppendChild(xeformX1);
|
|
xeformX1 = xmlDoc.CreateElement("value");
|
xeformX1.InnerText = methodFileMoveLiquid.liquidrangeidValue;
|
xeformX.AppendChild(xeformX1);
|
|
xeformX = xmlDoc.CreateElement("liquidpid");
|
xeKey.AppendChild(xeformX);
|
|
xeformX1 = xmlDoc.CreateElement("text");
|
xeformX1.InnerText = methodFileMoveLiquid.liquidpidText;
|
xeformX.AppendChild(xeformX1);
|
|
xeformX1 = xmlDoc.CreateElement("value");
|
xeformX1.InnerText = methodFileMoveLiquid.liquidpidValue;
|
xeformX.AppendChild(xeformX1);
|
|
#region 吸液前混合
|
xeformX = xmlDoc.CreateElement("baspMix");
|
xeformX.InnerText = methodFileMoveLiquid.baspMix.ToString();
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("aspmixvolume");
|
xeformX.InnerText = methodFileMoveLiquid.aspmixvolume.ToString();
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("aspmixcount");
|
xeformX.InnerText = methodFileMoveLiquid.aspmixcount.ToString();
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("aspmixAspiratePosition");
|
xeKey.AppendChild(xeformX);
|
|
xeformX1 = xmlDoc.CreateElement("text");
|
xeformX1.InnerText = methodFileMoveLiquid.aspmixAspiratePositionText;
|
xeformX.AppendChild(xeformX1);
|
|
xeformX1 = xmlDoc.CreateElement("value");
|
xeformX1.InnerText = methodFileMoveLiquid.aspmixAspiratePositionValue.ToString();
|
xeformX.AppendChild(xeformX1);
|
|
xeformX = xmlDoc.CreateElement("aspmixAspirateDistance");
|
xeformX.InnerText = methodFileMoveLiquid.aspmixAspirateDistance.ToString();
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("aspmixAspirateSpeed");
|
xeformX.InnerText = methodFileMoveLiquid.aspmixAspirateSpeed.ToString();
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("aspmixDispensePosition");
|
xeKey.AppendChild(xeformX);
|
|
xeformX1 = xmlDoc.CreateElement("text");
|
xeformX1.InnerText = methodFileMoveLiquid.aspmixDispensePositionText;
|
xeformX.AppendChild(xeformX1);
|
|
xeformX1 = xmlDoc.CreateElement("value");
|
xeformX1.InnerText = methodFileMoveLiquid.aspmixDispensePositionValue.ToString();
|
xeformX.AppendChild(xeformX1);
|
|
xeformX = xmlDoc.CreateElement("aspmixDispenseDistance");
|
xeformX.InnerText = methodFileMoveLiquid.aspmixDispenseDistance.ToString();
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("aspmixDispenseSpeed");
|
xeformX.InnerText = methodFileMoveLiquid.aspmixDispenseSpeed.ToString();
|
xeKey.AppendChild(xeformX);
|
#endregion
|
|
#region 排液后混合
|
xeformX = xmlDoc.CreateElement("bdpsMix");
|
xeformX.InnerText = methodFileMoveLiquid.bdpsMix.ToString();
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("dpsmixvolume");
|
xeformX.InnerText = methodFileMoveLiquid.dpsmixvolume.ToString();
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("dpsmixcount");
|
xeformX.InnerText = methodFileMoveLiquid.dpsmixcount.ToString();
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("dpsmixAspiratePosition");
|
xeKey.AppendChild(xeformX);
|
|
xeformX1 = xmlDoc.CreateElement("text");
|
xeformX1.InnerText = methodFileMoveLiquid.dpsmixAspiratePositionText;
|
xeformX.AppendChild(xeformX1);
|
|
xeformX1 = xmlDoc.CreateElement("value");
|
xeformX1.InnerText = methodFileMoveLiquid.dpsmixAspiratePositionValue.ToString();
|
xeformX.AppendChild(xeformX1);
|
|
xeformX = xmlDoc.CreateElement("dpsmixAspirateDistance");
|
xeformX.InnerText = methodFileMoveLiquid.dpsmixAspirateDistance.ToString();
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("dpsmixAspirateSpeed");
|
xeformX.InnerText = methodFileMoveLiquid.dpsmixAspirateSpeed.ToString();
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("dpsmixDispensePosition");
|
xeKey.AppendChild(xeformX);
|
|
xeformX1 = xmlDoc.CreateElement("text");
|
xeformX1.InnerText = methodFileMoveLiquid.dpsmixDispensePositionText;
|
xeformX.AppendChild(xeformX1);
|
|
xeformX1 = xmlDoc.CreateElement("value");
|
xeformX1.InnerText = methodFileMoveLiquid.dpsmixDispensePositionValue.ToString();
|
xeformX.AppendChild(xeformX1);
|
|
xeformX = xmlDoc.CreateElement("dpsmixDispenseDistance");
|
xeformX.InnerText = methodFileMoveLiquid.dpsmixDispenseDistance.ToString();
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("dpsmixDispenseSpeed");
|
xeformX.InnerText = methodFileMoveLiquid.dpsmixDispenseSpeed.ToString();
|
xeKey.AppendChild(xeformX);
|
#endregion
|
|
#region 液面探测
|
xeformX = xmlDoc.CreateElement("enableLiquidSensor");
|
xeformX.InnerText = methodFileMoveLiquid.enableLiquidSensor.ToString();
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("liquidSensorCount");
|
xeformX.InnerText = methodFileMoveLiquid.liquidSensorCount.ToString();
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("liquidSensorDistance");
|
xeformX.InnerText = methodFileMoveLiquid.liquidSensorDistance.ToString();
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("liquidSensorEndDistance");
|
xeformX.InnerText = methodFileMoveLiquid.liquidSensorEndDistance.ToString();
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("liquidSensorSpeed");
|
xeformX.InnerText = methodFileMoveLiquid.liquidSensorSpeed.ToString();
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("liquidSensorRadio");
|
xeformX.InnerText = methodFileMoveLiquid.liquidSensorRadio.ToString();
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("liquidSensorDisId");
|
xeKey.AppendChild(xeformX);
|
|
xeformX1 = xmlDoc.CreateElement("text");
|
xeformX1.InnerText = methodFileMoveLiquid.liquidSensorDisIdText;
|
xeformX.AppendChild(xeformX1);
|
|
xeformX1 = xmlDoc.CreateElement("value");
|
xeformX1.InnerText = methodFileMoveLiquid.liquidSensorDisIdValue.ToString();
|
xeformX.AppendChild(xeformX1);
|
|
xeformX = xmlDoc.CreateElement("enableLiquidFollow");
|
xeformX.InnerText = methodFileMoveLiquid.enableLiquidFollow.ToString();
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("liquidFollowType");
|
xeKey.AppendChild(xeformX);
|
|
xeformX1 = xmlDoc.CreateElement("text");
|
xeformX1.InnerText = methodFileMoveLiquid.liquidFollowTypeName.ToString();
|
xeformX.AppendChild(xeformX1);
|
|
xeformX1 = xmlDoc.CreateElement("value");
|
xeformX1.InnerText = methodFileMoveLiquid.liquidFollowType.ToString();
|
xeformX.AppendChild(xeformX1);
|
|
xeformX = xmlDoc.CreateElement("liquidFollowSpeed");
|
xeformX.InnerText = methodFileMoveLiquid.liquidFollowSpeed.ToString();
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("liquidFollowDistance");
|
xeformX.InnerText = methodFileMoveLiquid.liquidFollowDistance.ToString();
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("liquidFollowArea");
|
xeformX.InnerText = methodFileMoveLiquid.liquidFollowArea.ToString();
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("enableMixFollow");
|
xeformX.InnerText = methodFileMoveLiquid.enableMixFollow.ToString();
|
xeKey.AppendChild(xeformX);
|
#endregion
|
|
#region 堵塞探测
|
xeformX = xmlDoc.CreateElement("enableSensorBlock");
|
xeformX.InnerText = methodFileMoveLiquid.enableSensorBlock.ToString();
|
xeKey.AppendChild(xeformX);
|
|
//xeformX = xmlDoc.CreateElement("liquidSensorBlockDistance");
|
//xeformX.InnerText = methodFileMoveLiquid.liquidSensorBlockDistance.ToString();
|
//xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("aspirateBlockDisId");
|
xeKey.AppendChild(xeformX);
|
|
xeformX1 = xmlDoc.CreateElement("text");
|
xeformX1.InnerText = methodFileMoveLiquid.aspirateBlockDisIdText;
|
xeformX.AppendChild(xeformX1);
|
|
xeformX1 = xmlDoc.CreateElement("value");
|
xeformX1.InnerText = methodFileMoveLiquid.aspirateBlockDisIdValue.ToString();
|
xeformX.AppendChild(xeformX1);
|
|
xeformX = xmlDoc.CreateElement("dispenseBlockDisId");
|
xeKey.AppendChild(xeformX);
|
|
xeformX1 = xmlDoc.CreateElement("text");
|
xeformX1.InnerText = methodFileMoveLiquid.dispenseBlockDisIdText;
|
xeformX.AppendChild(xeformX1);
|
|
xeformX1 = xmlDoc.CreateElement("value");
|
xeformX1.InnerText = methodFileMoveLiquid.dispenseBlockDisIdValue.ToString();
|
xeformX.AppendChild(xeformX1);
|
|
xeformX = xmlDoc.CreateElement("aspirateAirDisId");
|
xeKey.AppendChild(xeformX);
|
|
xeformX1 = xmlDoc.CreateElement("text");
|
xeformX1.InnerText = methodFileMoveLiquid.aspirateAirDisIdText;
|
xeformX.AppendChild(xeformX1);
|
|
xeformX1 = xmlDoc.CreateElement("value");
|
xeformX1.InnerText = methodFileMoveLiquid.aspirateAirDisIdValue.ToString();
|
xeformX.AppendChild(xeformX1);
|
#endregion
|
|
root.AppendChild(xeKey);//挂载父节点
|
}
|
|
public void CreateTransferFileDataTable(MethodFileMoveLiquid methodFileMoveLiquid, XmlElement xeKey)
|
{
|
XmlElement xeformXBase = xmlDoc.CreateElement("transferDataTable");
|
DataTable dt = methodFileMoveLiquid.transferDataTable;
|
if (dt != null)
|
{
|
for (int i = 0; i < dt.Columns.Count; i++)
|
{
|
XmlElement xeformX = xmlDoc.CreateElement("subnode");
|
XmlAttribute xeType = xmlDoc.CreateAttribute("columnname");
|
xeType.InnerText = dt.Columns[i].ColumnName.ToString();
|
xeformX.SetAttributeNode(xeType);
|
|
xeformXBase.AppendChild(xeformX);
|
|
for (int j = 0; j < dt.Rows.Count; j++)
|
{
|
XmlElement xeformX1 = xmlDoc.CreateElement("node");
|
xeformX1.InnerText = dt.Rows[j][i].ToString();
|
xeformX.AppendChild(xeformX1);
|
}
|
}
|
}
|
xeKey.AppendChild(xeformXBase);
|
}
|
#endregion
|
|
#region 创建文件转板方法的xml
|
public void CreateFileMoveLabwareXmlNode(int index, MethodFileMoveLabware methodFileMoveLabware, MethodEx mi)
|
{
|
XmlElement xeKey = xmlDoc.CreateElement("method");//创建子节点,并且设置子节点的属性
|
XmlAttribute xeType = xmlDoc.CreateAttribute("id");
|
xeType.InnerText = index.ToString();
|
xeKey.SetAttributeNode(xeType);
|
|
XmlElement xeformX = xmlDoc.CreateElement("isrun");
|
xeformX.InnerText = mi.method_isrun;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("status");
|
xeformX.InnerText = (mi.isEnabled ? "enable" : "disable");
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("name");
|
xeformX.InnerText = methodFileMoveLabware.name;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("comment");
|
xeformX.InnerText = methodFileMoveLabware.comment;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("label");
|
xeformX.InnerText = methodFileMoveLabware.label;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("strIndex");
|
xeformX.InnerText = mi.strIndex;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("arm");
|
xeKey.AppendChild(xeformX);
|
|
XmlElement xeformX1 = xmlDoc.CreateElement("text");
|
xeformX1.InnerText = methodFileMoveLabware.armText;
|
xeformX.AppendChild(xeformX1);
|
|
xeformX1 = xmlDoc.CreateElement("value");
|
xeformX1.InnerText = methodFileMoveLabware.armValue;
|
xeformX.AppendChild(xeformX1);
|
|
xeformX = xmlDoc.CreateElement("filePath");
|
xeformX.InnerText = methodFileMoveLabware.filePath;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("beginLine");
|
xeformX.InnerText = methodFileMoveLabware.beginLine.ToString();
|
xeKey.AppendChild(xeformX);
|
|
//DataTable转化成节点
|
CreateTransferFileDataTable(methodFileMoveLabware, xeKey);
|
|
xeformX = xmlDoc.CreateElement("pickLattice");
|
xeformX.InnerText = methodFileMoveLabware.pickLattice;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("pickColumn");
|
xeformX.InnerText = methodFileMoveLabware.pickColumn;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("pickWell");
|
xeformX.InnerText = methodFileMoveLabware.pickWell;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("pickPart");
|
xeformX.InnerText = methodFileMoveLabware.pickPart;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("pickDirect");
|
xeformX.InnerText = methodFileMoveLabware.pickDirect;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("placeLattice");
|
xeformX.InnerText = methodFileMoveLabware.placeLattice;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("placeColumn");
|
xeformX.InnerText = methodFileMoveLabware.placeColumn;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("placeWell");
|
xeformX.InnerText = methodFileMoveLabware.placeWell;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("placeDirect");
|
xeformX.InnerText = methodFileMoveLabware.placeDirect;
|
xeKey.AppendChild(xeformX);
|
|
#region 移动板位的方式
|
xeformX = xmlDoc.CreateElement("transportMode");
|
xeformX.InnerText = methodFileMoveLabware.transportMode.ToString();
|
xeKey.AppendChild(xeformX);
|
xeformX = xmlDoc.CreateElement("transportCount");
|
xeformX.InnerText = methodFileMoveLabware.transportCount.ToString();
|
xeKey.AppendChild(xeformX);
|
#endregion
|
|
root.AppendChild(xeKey);//挂载父节点
|
}
|
|
public void CreateTransferFileDataTable(MethodFileMoveLabware methodFileMoveLabware, XmlElement xeKey)
|
{
|
XmlElement xeformXBase = xmlDoc.CreateElement("transferDataTable");
|
DataTable dt = methodFileMoveLabware.transferDataTable;
|
if (dt != null)
|
{
|
for (int i = 0; i < dt.Columns.Count; i++)
|
{
|
XmlElement xeformX = xmlDoc.CreateElement("subnode");
|
XmlAttribute xeType = xmlDoc.CreateAttribute("columnname");
|
xeType.InnerText = dt.Columns[i].ColumnName.ToString();
|
xeformX.SetAttributeNode(xeType);
|
|
xeformXBase.AppendChild(xeformX);
|
|
for (int j = 0; j < dt.Rows.Count; j++)
|
{
|
XmlElement xeformX1 = xmlDoc.CreateElement("node");
|
xeformX1.InnerText = dt.Rows[j][i].ToString();
|
xeformX.AppendChild(xeformX1);
|
}
|
}
|
}
|
xeKey.AppendChild(xeformXBase);
|
}
|
#endregion
|
|
#region 创建数据导入方法的xml
|
public void CreateDataImportXmlNode(int index, MethodDataImport methodDataImport, MethodEx mi)
|
{
|
XmlElement xeKey = xmlDoc.CreateElement("method");//创建子节点,并且设置子节点的属性
|
XmlAttribute xeType = xmlDoc.CreateAttribute("id");
|
xeType.InnerText = index.ToString();
|
xeKey.SetAttributeNode(xeType);
|
|
XmlElement xeformX = xmlDoc.CreateElement("isrun");
|
xeformX.InnerText = mi.method_isrun;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("status");
|
//xeformX.InnerText = methodDataImport.status;
|
xeformX.InnerText = (mi.isEnabled ? "enable" : "disable");
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("name");
|
xeformX.InnerText = methodDataImport.name;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("label");
|
xeformX.InnerText = methodDataImport.label;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("strIndex");
|
//xeformX.InnerText = methodDataImport.strIndex;
|
xeformX.InnerText = mi.strIndex;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("filePath");
|
xeformX.InnerText = methodDataImport.filePath;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("beginLine");
|
xeformX.InnerText = methodDataImport.beginLine.ToString();
|
xeKey.AppendChild(xeformX);
|
|
//DataTable转化成节点
|
CreateTransferFileDataTable(methodDataImport, xeKey);
|
|
xeformX = xmlDoc.CreateElement("sourceLabware");
|
xeformX.InnerText = methodDataImport.sourceLabware;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("sourceWell");
|
xeformX.InnerText = methodDataImport.sourceWell;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("sourceLabwareCode");
|
xeformX.InnerText = methodDataImport.sourceLabwareCode;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("destVolume");
|
xeformX.InnerText = methodDataImport.destVolume;
|
xeKey.AppendChild(xeformX);
|
|
//xeformX = xmlDoc.CreateElement("tipSet");
|
//xeformX.InnerText = methodDataImport.tipSet;
|
//xeKey.AppendChild(xeformX);
|
|
|
root.AppendChild(xeKey);//挂载父节点
|
}
|
|
public void CreateTransferFileDataTable(MethodDataImport methodDataImport, XmlElement xeKey)
|
{
|
XmlElement xeformXBase = xmlDoc.CreateElement("transferDataTable");
|
DataTable dt = methodDataImport.transferDataTable;
|
if (dt != null)
|
{
|
for (int i = 0; i < dt.Columns.Count; i++)
|
{
|
XmlElement xeformX = xmlDoc.CreateElement(dt.Columns[i].ColumnName);
|
xeformXBase.AppendChild(xeformX);
|
|
for (int j = 0; j < dt.Rows.Count; j++)
|
{
|
XmlElement xeformX1 = xmlDoc.CreateElement("node");
|
xeformX1.InnerText = dt.Rows[j][i].ToString();
|
xeformX.AppendChild(xeformX1);
|
}
|
}
|
}
|
xeKey.AppendChild(xeformXBase);
|
}
|
#endregion
|
|
#region 创建数据导出方法的xml
|
public void CreateDataExportXmlNode(int index, MethodDataExport methodDataExport, MethodEx mi)
|
{
|
XmlElement xeKey = xmlDoc.CreateElement("method");//创建子节点,并且设置子节点的属性
|
XmlAttribute xeType = xmlDoc.CreateAttribute("id");
|
xeType.InnerText = index.ToString();
|
xeKey.SetAttributeNode(xeType);
|
|
XmlElement xeformX = xmlDoc.CreateElement("isrun");
|
xeformX.InnerText = mi.method_isrun;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("status");
|
//xeformX.InnerText = methodDataExport.status;
|
xeformX.InnerText = (mi.isEnabled ? "enable" : "disable");
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("name");
|
xeformX.InnerText = methodDataExport.name;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("label");
|
xeformX.InnerText = methodDataExport.label;
|
xeKey.AppendChild(xeformX);
|
|
|
xeformX = xmlDoc.CreateElement("strIndex");
|
//xeformX.InnerText = methodDataExport.strIndex;
|
xeformX.InnerText = mi.strIndex;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("filePath");
|
xeformX.InnerText = methodDataExport.filePath;
|
xeKey.AppendChild(xeformX);
|
|
//DataTable转化成节点
|
CreateReportColumnDataTable(methodDataExport, xeKey, out xeKey);
|
|
xeformX = xmlDoc.CreateElement("filePostfix");
|
xeformX.InnerText = methodDataExport.filePostfix;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("fileName");
|
xeformX.InnerText = methodDataExport.fileName;
|
xeKey.AppendChild(xeformX);
|
|
root.AppendChild(xeKey);//挂载父节点
|
}
|
|
public void CreateReportColumnDataTable(MethodDataExport methodDataExport, XmlElement xeKeyR, out XmlElement xeKey)
|
{
|
XmlElement xeformXBase = xmlDoc.CreateElement("transferDataTable");
|
List<ReportColumn> dt = methodDataExport.reportColumns;
|
if (dt != null)
|
{
|
XmlElement xeformX = xmlDoc.CreateElement("序号");
|
xeformXBase.AppendChild(xeformX);
|
|
for (int j = 0; j < dt.Count; j++)
|
{
|
XmlElement xeformX1 = xmlDoc.CreateElement("node");
|
xeformX1.InnerText = dt[j].reportcolumn_id.ToString();
|
xeformX.AppendChild(xeformX1);
|
}
|
|
xeformX = xmlDoc.CreateElement("字段名");
|
xeformXBase.AppendChild(xeformX);
|
|
for (int j = 0; j < dt.Count; j++)
|
{
|
XmlElement xeformX1 = xmlDoc.CreateElement("node");
|
xeformX1.InnerText = dt[j].reportcolumn_name.ToString();
|
xeformX.AppendChild(xeformX1);
|
}
|
|
xeformX = xmlDoc.CreateElement("列名");
|
xeformXBase.AppendChild(xeformX);
|
|
for (int j = 0; j < dt.Count; j++)
|
{
|
XmlElement xeformX1 = xmlDoc.CreateElement("node");
|
xeformX1.InnerText = dt[j].reportcolumn_sname.ToString();
|
xeformX.AppendChild(xeformX1);
|
}
|
}
|
xeKey = xeKeyR;
|
xeKey.AppendChild(xeformXBase);
|
}
|
#endregion
|
|
#region 创建抓板转移方法的xml
|
public void CreateGripTransportXmlNode(int index, MethodGripTransport methodGripTransport, MethodEx mi)
|
{
|
XmlElement xeKey = xmlDoc.CreateElement("method");//创建子节点,并且设置子节点的属性
|
XmlAttribute xeType = xmlDoc.CreateAttribute("id");
|
xeType.InnerText = index.ToString();
|
xeKey.SetAttributeNode(xeType);
|
|
XmlElement xeformX = xmlDoc.CreateElement("isrun");
|
xeformX.InnerText = mi.method_isrun;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("status");
|
xeformX.InnerText = (mi.isEnabled ? "enable" : "disable");
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("name");
|
xeformX.InnerText = methodGripTransport.name;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("strIndex");
|
xeformX.InnerText = mi.strIndex;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("label");
|
xeformX.InnerText = methodGripTransport.label;
|
xeKey.AppendChild(xeformX);
|
|
#region 机械臂
|
xeformX = xmlDoc.CreateElement("arm");
|
xeKey.AppendChild(xeformX);
|
XmlElement xeformX1 = xmlDoc.CreateElement("text");
|
xeformX1.InnerText = methodGripTransport.armText;
|
xeformX.AppendChild(xeformX1);
|
xeformX1 = xmlDoc.CreateElement("value");
|
xeformX1.InnerText = methodGripTransport.armValue;
|
xeformX.AppendChild(xeformX1);
|
#endregion
|
|
#region 来源点位
|
xeformX = xmlDoc.CreateElement("sourceLattice");
|
xeKey.AppendChild(xeformX);
|
xeformX1 = xmlDoc.CreateElement("text");
|
xeformX1.InnerText = methodGripTransport.srcPositionText;
|
xeformX.AppendChild(xeformX1);
|
xeformX1 = xmlDoc.CreateElement("value");
|
xeformX1.InnerText = methodGripTransport.srcPositionValue;
|
xeformX.AppendChild(xeformX1);
|
xeformX1 = xmlDoc.CreateElement("type");
|
xeformX1.InnerText = methodGripTransport.srcPositionType.ToString();
|
xeformX.AppendChild(xeformX1);
|
#endregion
|
|
#region 抓板方向
|
xeformX = xmlDoc.CreateElement("gripModel");
|
xeKey.AppendChild(xeformX);
|
xeformX1 = xmlDoc.CreateElement("text");
|
xeformX1.InnerText = methodGripTransport.gripModelText;
|
xeformX.AppendChild(xeformX1);
|
xeformX1 = xmlDoc.CreateElement("value");
|
xeformX1.InnerText = methodGripTransport.gripModelValue.ToString();
|
xeformX.AppendChild(xeformX1);
|
#endregion
|
|
#region 抓取耗材
|
xeformX = xmlDoc.CreateElement("gripPickObject");
|
xeKey.AppendChild(xeformX);
|
xeformX1 = xmlDoc.CreateElement("text");
|
xeformX1.InnerText = methodGripTransport.gripPickLabwareText;
|
xeformX.AppendChild(xeformX1);
|
xeformX1 = xmlDoc.CreateElement("value");
|
xeformX1.InnerText = methodGripTransport.gripPickLabwareValue.ToString();
|
xeformX.AppendChild(xeformX1);
|
#endregion
|
|
#region 抓板位置
|
xeformX = xmlDoc.CreateElement("gripModelPos");
|
xeKey.AppendChild(xeformX);
|
xeformX1 = xmlDoc.CreateElement("text");
|
xeformX1.InnerText = methodGripTransport.gripModelPosText;
|
xeformX.AppendChild(xeformX1);
|
xeformX1 = xmlDoc.CreateElement("value");
|
xeformX1.InnerText = methodGripTransport.gripModelPosValue.ToString();
|
xeformX.AppendChild(xeformX1);
|
#endregion
|
|
xeformX = xmlDoc.CreateElement("pickPosMode");
|
xeformX.InnerText = methodGripTransport.pickPosMode.ToString();
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("pickPosValue");
|
xeformX.InnerText = methodGripTransport.pickPosValue.ToString();
|
xeKey.AppendChild(xeformX);
|
|
#region 目标点位
|
xeformX = xmlDoc.CreateElement("destinationLattice");
|
xeKey.AppendChild(xeformX);
|
xeformX1 = xmlDoc.CreateElement("text");
|
xeformX1.InnerText = methodGripTransport.desPositionText;
|
xeformX.AppendChild(xeformX1);
|
xeformX1 = xmlDoc.CreateElement("value");
|
xeformX1.InnerText = methodGripTransport.desPositionValue;
|
xeformX.AppendChild(xeformX1);
|
xeformX1 = xmlDoc.CreateElement("type");
|
xeformX1.InnerText = methodGripTransport.desPositionType.ToString();
|
xeformX.AppendChild(xeformX1);
|
#endregion
|
|
#region 放板方向
|
xeformX = xmlDoc.CreateElement("gripModelSet");
|
xeKey.AppendChild(xeformX);
|
xeformX1 = xmlDoc.CreateElement("text");
|
xeformX1.InnerText = methodGripTransport.gripModelSetText;
|
xeformX.AppendChild(xeformX1);
|
xeformX1 = xmlDoc.CreateElement("value");
|
xeformX1.InnerText = methodGripTransport.gripModelSetValue.ToString();
|
xeformX.AppendChild(xeformX1);
|
#endregion
|
|
#region 放板耗材
|
xeformX = xmlDoc.CreateElement("gripPlaceObject");
|
xeKey.AppendChild(xeformX);
|
xeformX1 = xmlDoc.CreateElement("text");
|
xeformX1.InnerText = methodGripTransport.gripPlaceLabwareText;
|
xeformX.AppendChild(xeformX1);
|
xeformX1 = xmlDoc.CreateElement("value");
|
xeformX1.InnerText = methodGripTransport.gripPlaceLabwareValue.ToString();
|
xeformX.AppendChild(xeformX1);
|
#endregion
|
|
xeformX = xmlDoc.CreateElement("placePosMode");
|
xeformX.InnerText = methodGripTransport.placePosMode.ToString();
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("placePosValue");
|
xeformX.InnerText = methodGripTransport.placePosValue.ToString();
|
xeKey.AppendChild(xeformX);
|
|
#region 移动板位的方式
|
xeformX = xmlDoc.CreateElement("transportMode");
|
xeformX.InnerText = methodGripTransport.transportMode.ToString();
|
xeKey.AppendChild(xeformX);
|
xeformX = xmlDoc.CreateElement("transportCount");
|
xeformX.InnerText = methodGripTransport.transportCount.ToString();
|
xeKey.AppendChild(xeformX);
|
#endregion
|
|
root.AppendChild(xeKey);//挂载父节点
|
}
|
#endregion
|
|
#region 创建移动夹爪方法的xml
|
public void CreateGripMoveXmlNode(int index, MethodGripMove methodGripMove, MethodEx mi)
|
{
|
XmlElement xeKey = xmlDoc.CreateElement("method");//创建子节点,并且设置子节点的属性
|
XmlAttribute xeType = xmlDoc.CreateAttribute("id");
|
xeType.InnerText = index.ToString();
|
xeKey.SetAttributeNode(xeType);
|
|
XmlElement xeformX = xmlDoc.CreateElement("isrun");
|
xeformX.InnerText = mi.method_isrun;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("status");
|
//xeformX.InnerText = methodGripMove.status;
|
xeformX.InnerText = (mi.isEnabled ? "enable" : "disable");
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("name");
|
xeformX.InnerText = methodGripMove.name;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("label");
|
xeformX.InnerText = methodGripMove.label;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("strIndex");
|
//xeformX.InnerText = methodGripMove.strIndex;
|
xeformX.InnerText = mi.strIndex;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("arm");
|
xeKey.AppendChild(xeformX);
|
|
XmlElement xeformX1 = xmlDoc.CreateElement("text");
|
xeformX1.InnerText = methodGripMove.armText;
|
xeformX.AppendChild(xeformX1);
|
|
xeformX1 = xmlDoc.CreateElement("value");
|
xeformX1.InnerText = methodGripMove.armValue;
|
xeformX.AppendChild(xeformX1);
|
|
xeformX = xmlDoc.CreateElement("lattice");
|
xeKey.AppendChild(xeformX);
|
|
xeformX1 = xmlDoc.CreateElement("text");
|
xeformX1.InnerText = methodGripMove.latticeText;
|
xeformX.AppendChild(xeformX1);
|
|
xeformX1 = xmlDoc.CreateElement("value");
|
xeformX1.InnerText = methodGripMove.latticeValue;
|
xeformX.AppendChild(xeformX1);
|
root.AppendChild(xeKey);//挂载父节点
|
}
|
#endregion
|
|
#region 创建夹爪保持开始方法的xml
|
public void CreateBeginHoldingLabwareXmlNode(int index, MethodHoldingLabware methodHoldingLabware, MethodEx mi)
|
{
|
XmlElement xeKey = xmlDoc.CreateElement("method");//创建子节点,并且设置子节点的属性
|
XmlAttribute xeType = xmlDoc.CreateAttribute("id");
|
xeType.InnerText = index.ToString();
|
xeKey.SetAttributeNode(xeType);
|
|
XmlElement xeformX = xmlDoc.CreateElement("isrun");
|
xeformX.InnerText = mi.method_isrun;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("status");
|
xeformX.InnerText = (mi.isEnabled ? "enable" : "disable");
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("name");
|
xeformX.InnerText = methodHoldingLabware.name;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("strIndex");
|
xeformX.InnerText = mi.strIndex;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("label");
|
xeformX.InnerText = methodHoldingLabware.label;
|
xeKey.AppendChild(xeformX);
|
|
|
#region 机械臂
|
xeformX = xmlDoc.CreateElement("arm");
|
xeKey.AppendChild(xeformX);
|
XmlElement xeformX1 = xmlDoc.CreateElement("text");
|
xeformX1.InnerText = methodHoldingLabware.armText;
|
xeformX.AppendChild(xeformX1);
|
xeformX1 = xmlDoc.CreateElement("value");
|
xeformX1.InnerText = methodHoldingLabware.armValue;
|
xeformX.AppendChild(xeformX1);
|
#endregion
|
|
#region 来源点位
|
xeformX = xmlDoc.CreateElement("sourceLattice");
|
xeKey.AppendChild(xeformX);
|
xeformX1 = xmlDoc.CreateElement("text");
|
xeformX1.InnerText = methodHoldingLabware.srcPositionText;
|
xeformX.AppendChild(xeformX1);
|
xeformX1 = xmlDoc.CreateElement("value");
|
xeformX1.InnerText = methodHoldingLabware.srcPositionValue;
|
xeformX.AppendChild(xeformX1);
|
xeformX1 = xmlDoc.CreateElement("type");
|
xeformX1.InnerText = methodHoldingLabware.srcPositionType.ToString();
|
xeformX.AppendChild(xeformX1);
|
#endregion
|
|
#region 抓板方向
|
xeformX = xmlDoc.CreateElement("gripModel");
|
xeKey.AppendChild(xeformX);
|
xeformX1 = xmlDoc.CreateElement("text");
|
xeformX1.InnerText = methodHoldingLabware.gripModelText;
|
xeformX.AppendChild(xeformX1);
|
xeformX1 = xmlDoc.CreateElement("value");
|
xeformX1.InnerText = methodHoldingLabware.gripModelValue.ToString();
|
xeformX.AppendChild(xeformX1);
|
#endregion
|
|
#region 抓取耗材
|
xeformX = xmlDoc.CreateElement("gripPickObject");
|
xeKey.AppendChild(xeformX);
|
xeformX1 = xmlDoc.CreateElement("text");
|
xeformX1.InnerText = methodHoldingLabware.gripPickLabwareText;
|
xeformX.AppendChild(xeformX1);
|
xeformX1 = xmlDoc.CreateElement("value");
|
xeformX1.InnerText = methodHoldingLabware.gripPickLabwareValue;
|
xeformX.AppendChild(xeformX1);
|
#endregion
|
|
#region 抓板位置
|
xeformX = xmlDoc.CreateElement("gripModelPos");
|
xeKey.AppendChild(xeformX);
|
xeformX1 = xmlDoc.CreateElement("text");
|
xeformX1.InnerText = methodHoldingLabware.gripModelPosText;
|
xeformX.AppendChild(xeformX1);
|
xeformX1 = xmlDoc.CreateElement("value");
|
xeformX1.InnerText = methodHoldingLabware.gripModelPosValue.ToString();
|
xeformX.AppendChild(xeformX1);
|
#endregion
|
|
#region 移动板位的方式
|
xeformX = xmlDoc.CreateElement("transportMode");
|
xeformX.InnerText = methodHoldingLabware.transportMode.ToString();
|
xeKey.AppendChild(xeformX);
|
xeformX = xmlDoc.CreateElement("transportCount");
|
xeformX.InnerText = methodHoldingLabware.transportCount.ToString();
|
xeKey.AppendChild(xeformX);
|
#endregion
|
|
root.AppendChild(xeKey);//挂载父节点
|
}
|
#endregion
|
|
#region 创建夹爪保持结束方法的xml
|
public void CreateEndHoldingLabwareXmlNode(int index, MethodHoldingLabware methodHoldingLabware, MethodEx mi)
|
{
|
XmlElement xeKey = xmlDoc.CreateElement("method"); // 创建子节点,并且设置子节点的属性
|
XmlAttribute xeType = xmlDoc.CreateAttribute("id");
|
xeType.InnerText = index.ToString();
|
xeKey.SetAttributeNode(xeType);
|
|
XmlElement xeformX = xmlDoc.CreateElement("isrun");
|
xeformX.InnerText = mi.method_isrun;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("status");
|
xeformX.InnerText = (mi.isEnabled ? "enable" : "disable");
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("name");
|
xeformX.InnerText = methodHoldingLabware.name;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("strIndex");
|
xeformX.InnerText = mi.strIndex;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("label");
|
xeformX.InnerText = methodHoldingLabware.label;
|
xeKey.AppendChild(xeformX);
|
|
#region 机械臂
|
xeformX = xmlDoc.CreateElement("arm");
|
xeKey.AppendChild(xeformX);
|
XmlElement xeformX1 = xmlDoc.CreateElement("text");
|
xeformX1.InnerText = methodHoldingLabware.armText;
|
xeformX.AppendChild(xeformX1);
|
xeformX1 = xmlDoc.CreateElement("value");
|
xeformX1.InnerText = methodHoldingLabware.armValue;
|
xeformX.AppendChild(xeformX1);
|
#endregion
|
|
#region 目标点位
|
xeformX = xmlDoc.CreateElement("destinationLattice");
|
xeKey.AppendChild(xeformX);
|
xeformX1 = xmlDoc.CreateElement("text");
|
xeformX1.InnerText = methodHoldingLabware.desPositionText;
|
xeformX.AppendChild(xeformX1);
|
xeformX1 = xmlDoc.CreateElement("value");
|
xeformX1.InnerText = methodHoldingLabware.desPositionValue;
|
xeformX.AppendChild(xeformX1);
|
xeformX1 = xmlDoc.CreateElement("type");
|
xeformX1.InnerText = methodHoldingLabware.desPositionType.ToString();
|
xeformX.AppendChild(xeformX1);
|
#endregion
|
|
#region 放板方向
|
xeformX = xmlDoc.CreateElement("gripModelSet");
|
xeKey.AppendChild(xeformX);
|
xeformX1 = xmlDoc.CreateElement("text");
|
xeformX1.InnerText = methodHoldingLabware.gripModelSetText;
|
xeformX.AppendChild(xeformX1);
|
xeformX1 = xmlDoc.CreateElement("value");
|
xeformX1.InnerText = methodHoldingLabware.gripModelSetValue.ToString();
|
xeformX.AppendChild(xeformX1);
|
#endregion
|
|
#region 放板耗材
|
xeformX = xmlDoc.CreateElement("gripPlaceObject");
|
xeKey.AppendChild(xeformX);
|
xeformX1 = xmlDoc.CreateElement("text");
|
xeformX1.InnerText = methodHoldingLabware.gripPlaceLabwareText;
|
xeformX.AppendChild(xeformX1);
|
xeformX1 = xmlDoc.CreateElement("value");
|
xeformX1.InnerText = methodHoldingLabware.gripPlaceLabwareValue.ToString();
|
xeformX.AppendChild(xeformX1);
|
#endregion
|
|
root.AppendChild(xeKey);//挂载父节点
|
}
|
#endregion
|
|
#region 创建混合方法的xml
|
public void CreateMixingXmlNode(int index, MethodMixing methodMixing, MethodEx mi)
|
{
|
XmlElement xeKey = xmlDoc.CreateElement("method");//创建子节点,并且设置子节点的属性
|
XmlAttribute xeType = xmlDoc.CreateAttribute("id");
|
xeType.InnerText = index.ToString();
|
xeKey.SetAttributeNode(xeType);
|
|
XmlElement xeformX = xmlDoc.CreateElement("isrun");
|
xeformX.InnerText = mi.method_isrun;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("status");
|
//xeformX.InnerText = methodMixing.status;
|
xeformX.InnerText = (mi.isEnabled ? "enable" : "disable");
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("name");
|
xeformX.InnerText = methodMixing.name;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("label");
|
xeformX.InnerText = methodMixing.label;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("strIndex");
|
//xeformX.InnerText = methodMixing.strIndex;
|
xeformX.InnerText = mi.strIndex;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("labware");
|
xeKey.AppendChild(xeformX);
|
|
XmlElement xeformX1 = xmlDoc.CreateElement("text");
|
xeformX1.InnerText = methodMixing.labwareText;
|
xeformX.AppendChild(xeformX1);
|
|
xeformX1 = xmlDoc.CreateElement("value");
|
xeformX1.InnerText = methodMixing.labwareValue;
|
xeformX.AppendChild(xeformX1);
|
|
xeformX = xmlDoc.CreateElement("position");
|
xeKey.AppendChild(xeformX);
|
|
xeformX1 = xmlDoc.CreateElement("text");
|
xeformX1.InnerText = methodMixing.positionText;
|
xeformX.AppendChild(xeformX1);
|
|
xeformX1 = xmlDoc.CreateElement("value");
|
xeformX1.InnerText = methodMixing.positionValue;
|
xeformX.AppendChild(xeformX1);
|
|
xeformX = xmlDoc.CreateElement("arm");
|
xeKey.AppendChild(xeformX);
|
|
xeformX1 = xmlDoc.CreateElement("text");
|
xeformX1.InnerText = methodMixing.armText;
|
xeformX.AppendChild(xeformX1);
|
|
xeformX1 = xmlDoc.CreateElement("value");
|
xeformX1.InnerText = methodMixing.armValue;
|
xeformX.AppendChild(xeformX1);
|
|
xeformX = xmlDoc.CreateElement("headType");
|
xeformX.InnerText = methodMixing.headType;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("labwaretip");
|
xeKey.AppendChild(xeformX);
|
|
xeformX1 = xmlDoc.CreateElement("text");
|
xeformX1.InnerText = methodMixing.labwaretipText;
|
xeformX.AppendChild(xeformX1);
|
|
xeformX1 = xmlDoc.CreateElement("value");
|
xeformX1.InnerText = methodMixing.labwaretipValue;
|
xeformX.AppendChild(xeformX1);
|
|
xeformX = xmlDoc.CreateElement("channels");
|
string chs = string.Empty;
|
if (methodMixing.channels.Length != 0)
|
{
|
for (int i = 0; i < methodMixing.channels.Length; i++)
|
{
|
chs += methodMixing.channels[i] + ",";
|
}
|
chs = chs.Substring(0, chs.Length - 1);
|
}
|
xeformX.InnerText = chs;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("wellarray");
|
xeformX.InnerText = methodMixing.wellarray;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("enableSingleWellvolume");
|
xeformX.InnerText = methodMixing.enableSingleWellvolume.ToString();
|
xeKey.AppendChild(xeformX);
|
|
|
|
foreach (DropdownName d in methodMixing.singlewellvolume)
|
{
|
xeformX = xmlDoc.CreateElement("SingleWellvolume");
|
xeKey.AppendChild(xeformX);
|
|
xeformX1 = xmlDoc.CreateElement("channel");
|
xeformX1.InnerText = d.dropdown_id.ToString();
|
xeformX.AppendChild(xeformX1);
|
|
xeformX1 = xmlDoc.CreateElement("value");
|
xeformX1.InnerText = d.dropdown_name.ToString();
|
xeformX.AppendChild(xeformX1);
|
}
|
|
|
|
xeformX = xmlDoc.CreateElement("liquidid");
|
xeKey.AppendChild(xeformX);
|
|
xeformX1 = xmlDoc.CreateElement("text");
|
xeformX1.InnerText = methodMixing.liquididText;
|
xeformX.AppendChild(xeformX1);
|
|
xeformX1 = xmlDoc.CreateElement("value");
|
xeformX1.InnerText = methodMixing.liquididValue;
|
xeformX.AppendChild(xeformX1);
|
|
xeformX = xmlDoc.CreateElement("liquidrangeid");
|
xeKey.AppendChild(xeformX);
|
|
xeformX1 = xmlDoc.CreateElement("text");
|
xeformX1.InnerText = methodMixing.liquidrangeidText;
|
xeformX.AppendChild(xeformX1);
|
|
xeformX1 = xmlDoc.CreateElement("value");
|
xeformX1.InnerText = methodMixing.liquidrangeidValue;
|
xeformX.AppendChild(xeformX1);
|
|
xeformX = xmlDoc.CreateElement("liquidpid");
|
xeKey.AppendChild(xeformX);
|
|
xeformX1 = xmlDoc.CreateElement("text");
|
xeformX1.InnerText = methodMixing.liquidpidText;
|
xeformX.AppendChild(xeformX1);
|
|
xeformX1 = xmlDoc.CreateElement("value");
|
xeformX1.InnerText = methodMixing.liquidpidValue;
|
xeformX.AppendChild(xeformX1);
|
|
xeformX = xmlDoc.CreateElement("mixvolume");
|
xeformX.InnerText = methodMixing.mixvolume.ToString();
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("mixcount");
|
xeformX.InnerText = methodMixing.mixcount.ToString();
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("mixAspiratePosition");
|
xeKey.AppendChild(xeformX);
|
|
xeformX1 = xmlDoc.CreateElement("text");
|
xeformX1.InnerText = methodMixing.mixAspiratePositionText;
|
xeformX.AppendChild(xeformX1);
|
|
xeformX1 = xmlDoc.CreateElement("value");
|
xeformX1.InnerText = methodMixing.mixAspiratePositionValue.ToString();
|
xeformX.AppendChild(xeformX1);
|
|
xeformX = xmlDoc.CreateElement("mixAspirateDistance");
|
xeformX.InnerText = methodMixing.mixAspirateDistance.ToString();
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("mixAspirateSpeed");
|
xeformX.InnerText = methodMixing.mixAspirateSpeed.ToString();
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("mixDispensePosition");
|
xeKey.AppendChild(xeformX);
|
|
xeformX1 = xmlDoc.CreateElement("text");
|
xeformX1.InnerText = methodMixing.mixDispensePositionText;
|
xeformX.AppendChild(xeformX1);
|
|
xeformX1 = xmlDoc.CreateElement("value");
|
xeformX1.InnerText = methodMixing.mixDispensePositionValue.ToString();
|
xeformX.AppendChild(xeformX1);
|
|
xeformX = xmlDoc.CreateElement("mixDispenseDistance");
|
xeformX.InnerText = methodMixing.mixDispenseDistance.ToString();
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("mixDispenseSpeed");
|
xeformX.InnerText = methodMixing.mixDispenseSpeed.ToString();
|
xeKey.AppendChild(xeformX);
|
|
#region 液面探测
|
xeformX = xmlDoc.CreateElement("enableLiquidSensor");
|
xeformX.InnerText = methodMixing.enableLiquidSensor.ToString();
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("liquidSensorCount");
|
xeformX.InnerText = methodMixing.liquidSensorCount.ToString();
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("liquidSensorDistance");
|
xeformX.InnerText = methodMixing.liquidSensorDistance.ToString();
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("liquidSensorEndDistance");
|
xeformX.InnerText = methodMixing.liquidSensorEndDistance.ToString();
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("liquidSensorSpeed");
|
xeformX.InnerText = methodMixing.liquidSensorSpeed.ToString();
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("liquidSensorRadio");
|
xeformX.InnerText = methodMixing.liquidSensorRadio.ToString();
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("liquidSensorDisId");
|
xeKey.AppendChild(xeformX);
|
|
xeformX1 = xmlDoc.CreateElement("text");
|
xeformX1.InnerText = methodMixing.liquidSensorDisIdText;
|
xeformX.AppendChild(xeformX1);
|
|
xeformX1 = xmlDoc.CreateElement("value");
|
xeformX1.InnerText = methodMixing.liquidSensorDisIdValue.ToString();
|
xeformX.AppendChild(xeformX1);
|
|
xeformX = xmlDoc.CreateElement("enableLiquidFollow");
|
xeformX.InnerText = methodMixing.enableLiquidFollow.ToString();
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("liquidFollowType");
|
xeKey.AppendChild(xeformX);
|
|
xeformX1 = xmlDoc.CreateElement("text");
|
xeformX1.InnerText = methodMixing.liquidFollowTypeName.ToString();
|
xeformX.AppendChild(xeformX1);
|
|
xeformX1 = xmlDoc.CreateElement("value");
|
xeformX1.InnerText = methodMixing.liquidFollowType.ToString();
|
xeformX.AppendChild(xeformX1);
|
|
xeformX = xmlDoc.CreateElement("liquidFollowSpeed");
|
xeformX.InnerText = methodMixing.liquidFollowSpeed.ToString();
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("liquidFollowDistance");
|
xeformX.InnerText = methodMixing.liquidFollowDistance.ToString();
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("liquidFollowArea");
|
xeformX.InnerText = methodMixing.liquidFollowArea.ToString();
|
xeKey.AppendChild(xeformX);
|
#endregion
|
|
#region 堵塞探测
|
xeformX = xmlDoc.CreateElement("enableSensorBlock");
|
xeformX.InnerText = methodMixing.enableSensorBlock.ToString();
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("liquidSensorBlockDistance");
|
xeformX.InnerText = methodMixing.liquidSensorBlockDistance.ToString();
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("liquidSensorBlockDisId");
|
xeKey.AppendChild(xeformX);
|
|
xeformX1 = xmlDoc.CreateElement("text");
|
xeformX1.InnerText = methodMixing.liquidSensorBlockDisIdText;
|
xeformX.AppendChild(xeformX1);
|
|
xeformX1 = xmlDoc.CreateElement("value");
|
xeformX1.InnerText = methodMixing.liquidSensorBlockDisIdValue.ToString();
|
xeformX.AppendChild(xeformX1);
|
#endregion
|
|
root.AppendChild(xeKey);//挂载父节点
|
}
|
#endregion
|
|
#region 创建暂停方法的xml
|
public void CreatePauseMoveXmlNode(int index, MethodPauseMove methodPauseMove, MethodEx mi)
|
{
|
XmlElement xeKey = xmlDoc.CreateElement("method");//创建子节点,并且设置子节点的属性
|
XmlAttribute xeType = xmlDoc.CreateAttribute("id");
|
xeType.InnerText = index.ToString();
|
xeKey.SetAttributeNode(xeType);
|
|
XmlElement xeformX = xmlDoc.CreateElement("isrun");
|
xeformX.InnerText = mi.method_isrun;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("status");
|
//xeformX.InnerText = methodPauseMove.status;
|
xeformX.InnerText = (mi.isEnabled ? "enable" : "disable");
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("name");
|
xeformX.InnerText = methodPauseMove.name;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("label");
|
xeformX.InnerText = methodPauseMove.label;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("strIndex");
|
//xeformX.InnerText = methodPauseMove.strIndex;
|
xeformX.InnerText = mi.strIndex;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("pauseMode");
|
xeformX.InnerText = methodPauseMove.pauseMode.ToString();
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("pauseTime");
|
xeformX.InnerText = methodPauseMove.pauseTime;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("pauseTipInfo");
|
xeformX.InnerText = methodPauseMove.pauseTipInfo;
|
xeKey.AppendChild(xeformX);
|
|
root.AppendChild(xeKey);//挂载父节点
|
}
|
#endregion
|
|
#region 创建计时器方法的xml
|
public void CreateTimerXmlNode(int index, MethodTimer methodTimer, MethodEx mi)
|
{
|
XmlElement xeKey = xmlDoc.CreateElement("method");
|
XmlAttribute xeType = xmlDoc.CreateAttribute("id");
|
xeType.InnerText = index.ToString();
|
xeKey.SetAttributeNode(xeType);
|
|
XmlElement xeformX = xmlDoc.CreateElement("isrun");
|
xeformX.InnerText = mi.method_isrun;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("status");
|
//xeformX.InnerText = methodTimer.status;
|
xeformX.InnerText = (mi.isEnabled ? "enable" : "disable");
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("name");
|
xeformX.InnerText = methodTimer.name;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("label");
|
xeformX.InnerText = methodTimer.label;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("strIndex");
|
//xeformX.InnerText = methodTimer.strIndex;
|
xeformX.InnerText = mi.strIndex;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("duringTime");
|
xeformX.InnerText = methodTimer.duringTime.ToString();
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("duringTimeInfo");
|
xeformX.InnerText = methodTimer.duringTimeInfo;
|
xeKey.AppendChild(xeformX);
|
|
root.AppendChild(xeKey);
|
}
|
#endregion
|
|
#region 创建等待计时器方法的xml
|
public void CreateWaitForXmlNode(int index, MethodWaitFor methodWaitFor, MethodEx mi)
|
{
|
XmlElement xeKey = xmlDoc.CreateElement("method");
|
XmlAttribute xeType = xmlDoc.CreateAttribute("id");
|
xeType.InnerText = index.ToString();
|
xeKey.SetAttributeNode(xeType);
|
|
XmlElement xeformX = xmlDoc.CreateElement("isrun");
|
xeformX.InnerText = mi.method_isrun;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("status");
|
//xeformX.InnerText = methodTimer.status;
|
xeformX.InnerText = (mi.isEnabled ? "enable" : "disable");
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("name");
|
xeformX.InnerText = methodWaitFor.name;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("label");
|
xeformX.InnerText = methodWaitFor.label;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("strIndex");
|
//xeformX.InnerText = methodWaitFor.strIndex;
|
xeformX.InnerText = mi.strIndex;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("duringTimeText");
|
xeformX.InnerText = methodWaitFor.duringTimeText.ToString();
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("duringTimeTextStrIndex");
|
xeformX.InnerText = methodWaitFor.duringTimeTextStrIndex;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("enableEndWaitfor");
|
xeformX.InnerText = methodWaitFor.enableEndWaitfor==true?"true":"false";
|
xeKey.AppendChild(xeformX);
|
|
root.AppendChild(xeKey);
|
}
|
#endregion
|
|
#region 创建振荡方法的xml
|
public void CreateShakerXmlNode(int index, MethodShaker methodShaker, MethodEx mi)
|
{
|
XmlElement xeKey = xmlDoc.CreateElement("method");//创建子节点,并且设置子节点的属性
|
XmlAttribute xeType = xmlDoc.CreateAttribute("id");
|
xeType.InnerText = index.ToString();
|
xeKey.SetAttributeNode(xeType);
|
|
XmlElement xeformX = xmlDoc.CreateElement("isrun");
|
xeformX.InnerText = mi.method_isrun;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("status");
|
//xeformX.InnerText = methodShaker.status;
|
xeformX.InnerText = (mi.isEnabled ? "enable" : "disable");
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("name");
|
xeformX.InnerText = methodShaker.name;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("turnOnShaker");
|
xeformX.InnerText = methodShaker.turnOnShaker;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("shakerSpeed");
|
xeformX.InnerText = methodShaker.shakerSpeed;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("shakerDirection");
|
xeKey.AppendChild(xeformX);
|
|
XmlElement xeformX1 = xmlDoc.CreateElement("text");
|
xeformX1.InnerText = methodShaker.shakerDirectionText;
|
xeformX.AppendChild(xeformX1);
|
|
xeformX1 = xmlDoc.CreateElement("value");
|
xeformX1.InnerText = methodShaker.shakerDirectionValue;
|
xeformX.AppendChild(xeformX1);
|
|
xeformX = xmlDoc.CreateElement("shakerTime");
|
xeformX.InnerText = methodShaker.shakerTime;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("turnOnWarm");
|
xeformX.InnerText = methodShaker.turnOnWarm;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("warmTemperature");
|
xeformX.InnerText = methodShaker.warmTemperature;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("warmTime");
|
xeformX.InnerText = methodShaker.warmTime;
|
xeKey.AppendChild(xeformX);
|
|
root.AppendChild(xeKey);//挂载父节点
|
}
|
#endregion
|
|
#region 创建复位方法的xml
|
public void CreateHomeXmlNode(int index, MethodHome methodHome, MethodEx mi)
|
{
|
XmlElement xeKey = xmlDoc.CreateElement("method");//创建子节点,并且设置子节点的属性
|
XmlAttribute xeType = xmlDoc.CreateAttribute("id");
|
xeType.InnerText = index.ToString();
|
xeKey.SetAttributeNode(xeType);
|
|
XmlElement xeformX = xmlDoc.CreateElement("isrun");
|
xeformX.InnerText = mi.method_isrun;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("status");
|
//xeformX.InnerText = methodHome.status;
|
xeformX.InnerText = (mi.isEnabled ? "enable" : "disable");
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("name");
|
xeformX.InnerText = methodHome.name;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("label");
|
xeformX.InnerText = methodHome.label;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("strIndex");
|
//xeformX.InnerText = methodHome.strIndex;
|
xeformX.InnerText = mi.strIndex;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("arm");
|
xeKey.AppendChild(xeformX);
|
|
XmlElement xeformX1 = xmlDoc.CreateElement("text");
|
xeformX1.InnerText = methodHome.armText;
|
xeformX.AppendChild(xeformX1);
|
|
xeformX1 = xmlDoc.CreateElement("value");
|
xeformX1.InnerText = methodHome.armValue;
|
xeformX.AppendChild(xeformX1);
|
|
|
root.AppendChild(xeKey);//挂载父节点
|
}
|
#endregion
|
|
#region 创建备注方法的xml
|
public void CreateRemarkXmlNode(int index, MethodRemark methodRemark, MethodEx mi)
|
{
|
XmlElement xeKey = xmlDoc.CreateElement("method");//创建子节点,并且设置子节点的属性
|
XmlAttribute xeType = xmlDoc.CreateAttribute("id");
|
xeType.InnerText = index.ToString();
|
xeKey.SetAttributeNode(xeType);
|
|
XmlElement xeformX = xmlDoc.CreateElement("isrun");
|
xeformX.InnerText = mi.method_isrun;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("status");
|
//xeformX.InnerText = methodRemark.status;
|
xeformX.InnerText = (mi.isEnabled ? "enable" : "disable");
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("label");
|
xeformX.InnerText = methodRemark.label;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("name");
|
xeformX.InnerText = methodRemark.name;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("strIndex");
|
//xeformX.InnerText = methodRemark.strIndex;
|
xeformX.InnerText = mi.strIndex;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("title");
|
xeformX.InnerText = methodRemark.title;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("remark");
|
xeformX.InnerText = methodRemark.remark;
|
xeKey.AppendChild(xeformX);
|
|
root.AppendChild(xeKey);//挂载父节点
|
}
|
#endregion
|
|
#region 创建结束的xml
|
public void CreateEndXmlNode(int index, MethodEnd methodEnd, MethodEx mi)
|
{
|
XmlElement xeKey = xmlDoc.CreateElement("method");//创建子节点,并且设置子节点的属性
|
XmlAttribute xeType = xmlDoc.CreateAttribute("id");
|
xeType.InnerText = index.ToString();
|
xeKey.SetAttributeNode(xeType);
|
|
XmlElement xeformX = xmlDoc.CreateElement("isrun");
|
xeformX.InnerText = mi.method_isrun;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("status");
|
//xeformX.InnerText = methodEnd.status;
|
xeformX.InnerText = (mi.isEnabled ? "enable" : "disable");
|
xeKey.AppendChild(xeformX);
|
|
|
xeformX = xmlDoc.CreateElement("name");
|
xeformX.InnerText = methodEnd.name; //"Method_End";
|
xeKey.AppendChild(xeformX);
|
xeformX = xmlDoc.CreateElement("strIndex");
|
//xeformX.InnerText = methodEnd.strIndex;
|
xeformX.InnerText = mi.strIndex;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("label");
|
xeformX.InnerText = methodEnd.label; //"Method_End";
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("isGoHome");
|
xeformX.InnerText = methodEnd.isGoHome.ToString();
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("isTipsOff");
|
xeformX.InnerText = methodEnd.isTipsOff.ToString();
|
xeKey.AppendChild(xeformX);
|
|
root.AppendChild(xeKey);//挂载父节点
|
}
|
#endregion
|
|
#region 创建拍照方法的xml
|
public void CreateTakePhotoXmlNode(int index, MethodTakePhoto methodTakePhoto, MethodEx mi)
|
{
|
XmlElement xeKey = xmlDoc.CreateElement("method");//创建子节点,并且设置子节点的属性
|
XmlAttribute xeType = xmlDoc.CreateAttribute("id");
|
xeType.InnerText = index.ToString();
|
xeKey.SetAttributeNode(xeType);
|
|
XmlElement xeformX = xmlDoc.CreateElement("isrun");
|
xeformX.InnerText = mi.method_isrun;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("status");
|
//xeformX.InnerText = methodTakePhoto.status;
|
xeformX.InnerText = (mi.isEnabled ? "enable" : "disable");
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("name");
|
xeformX.InnerText = methodTakePhoto.name;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("label");
|
xeformX.InnerText = methodTakePhoto.label;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("strIndex");
|
//xeformX.InnerText = methodTakePhoto.strIndex;
|
xeformX.InnerText = mi.strIndex;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("ismanualconfig");
|
xeformX.InnerText = methodTakePhoto.ismanualconfig.ToString();
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("bacteriaids");
|
if (methodTakePhoto.bacteriaids != null)
|
{
|
xeformX.InnerText = methodTakePhoto.bacteriaids.ToString();
|
}
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("gapValue");
|
xeformX.InnerText = methodTakePhoto.gapValue.ToString();
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("bacteriacolor");
|
xeKey.AppendChild(xeformX);
|
|
XmlElement xeformX1 = xmlDoc.CreateElement("text");
|
xeformX1.InnerText = methodTakePhoto.colorText;
|
xeformX.AppendChild(xeformX1);
|
|
xeformX1 = xmlDoc.CreateElement("value");
|
xeformX1.InnerText = methodTakePhoto.colorValue;
|
xeformX.AppendChild(xeformX1);
|
|
// 识别方法:0:成像系统自动挑选菌落; 1:人工挑选菌落
|
xeformX = xmlDoc.CreateElement("identification");
|
xeformX.InnerText = methodTakePhoto.identification.ToString();
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("choiceTimes");
|
xeformX.InnerText = methodTakePhoto.choiceTimes.ToString();
|
xeKey.AppendChild(xeformX);
|
|
//xeformX = xmlDoc.CreateElement("barcode");
|
//xeformX.InnerText = methodTakePhoto.barcode.ToString();
|
//xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("labware");
|
xeKey.AppendChild(xeformX);
|
|
xeformX1 = xmlDoc.CreateElement("text");
|
xeformX1.InnerText = methodTakePhoto.coatingLabwareText;
|
xeformX.AppendChild(xeformX1);
|
|
xeformX1 = xmlDoc.CreateElement("value");
|
xeformX1.InnerText = methodTakePhoto.coatingLabwareValue;
|
xeformX.AppendChild(xeformX1);
|
|
root.AppendChild(xeKey);//挂载父节点
|
}
|
|
public void CreateTakePhotoForElectroXmlNode(int index, MethodTakePhotoForElectro methodTakePhotoForElectro, MethodEx mi)
|
{
|
XmlElement xeKey = xmlDoc.CreateElement("method");//创建子节点,并且设置子节点的属性
|
XmlAttribute xeType = xmlDoc.CreateAttribute("id");
|
xeType.InnerText = index.ToString();
|
xeKey.SetAttributeNode(xeType);
|
|
XmlElement xeformX = xmlDoc.CreateElement("isrun");
|
xeformX.InnerText = mi.method_isrun;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("status");
|
//xeformX.InnerText = methodTakePhoto.status;
|
xeformX.InnerText = (mi.isEnabled ? "enable" : "disable");
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("name");
|
xeformX.InnerText = methodTakePhotoForElectro.name;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("label");
|
xeformX.InnerText = methodTakePhotoForElectro.label;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("strIndex");
|
//xeformX.InnerText = methodTakePhoto.strIndex;
|
xeformX.InnerText = mi.strIndex;
|
xeKey.AppendChild(xeformX);
|
|
// 识别方法:0:成像系统自动挑选菌落; 1:人工挑选菌落
|
xeformX = xmlDoc.CreateElement("identification");
|
xeformX.InnerText = methodTakePhotoForElectro.identification.ToString();
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("labware");
|
xeKey.AppendChild(xeformX);
|
|
XmlElement xeformX1 = xmlDoc.CreateElement("text");
|
xeformX1.InnerText = methodTakePhotoForElectro.gumLabwareText;
|
xeformX.AppendChild(xeformX1);
|
|
xeformX1 = xmlDoc.CreateElement("value");
|
xeformX1.InnerText = methodTakePhotoForElectro.gumLabwareValue;
|
xeformX.AppendChild(xeformX1);
|
|
root.AppendChild(xeKey);//挂载父节点
|
}
|
#endregion
|
|
#region 创建挑选方法的xml
|
public void CreateChoiceXmlNode(int index, MethodChoice methodChoice, MethodEx mi)
|
{
|
XmlElement xeKey = xmlDoc.CreateElement("method");//创建子节点,并且设置子节点的属性
|
XmlAttribute xeType = xmlDoc.CreateAttribute("id");
|
xeType.InnerText = index.ToString();
|
xeKey.SetAttributeNode(xeType);
|
|
XmlElement xeformX = xmlDoc.CreateElement("isrun");
|
xeformX.InnerText = mi.method_isrun;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("status");
|
//xeformX.InnerText = methodChoice.status;
|
xeformX.InnerText = (mi.isEnabled ? "enable" : "disable");
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("name");
|
xeformX.InnerText = methodChoice.name;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("label");
|
xeformX.InnerText = methodChoice.label;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("strIndex");
|
//xeformX.InnerText = methodChoice.strIndex;
|
xeformX.InnerText = mi.strIndex;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("channels");
|
string chs = string.Empty;
|
if (methodChoice.channels != null)
|
{
|
if (methodChoice.channels.Length != 0)
|
{
|
for (int i = 0; i < methodChoice.channels.Length; i++)
|
{
|
chs += methodChoice.channels[i] + ",";
|
}
|
chs = chs.Substring(0, chs.Length - 1);
|
}
|
}
|
xeformX.InnerText = chs;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("position");
|
xeKey.AppendChild(xeformX);
|
|
XmlElement xeformX1 = xmlDoc.CreateElement("text");
|
xeformX1.InnerText = methodChoice.positionText;
|
xeformX.AppendChild(xeformX1);
|
|
xeformX1 = xmlDoc.CreateElement("value");
|
xeformX1.InnerText = methodChoice.positionValue;
|
xeformX.AppendChild(xeformX1);
|
|
xeformX = xmlDoc.CreateElement("arm");
|
xeKey.AppendChild(xeformX);
|
|
xeformX1 = xmlDoc.CreateElement("text");
|
xeformX1.InnerText = methodChoice.armText;
|
xeformX.AppendChild(xeformX1);
|
|
xeformX1 = xmlDoc.CreateElement("value");
|
xeformX1.InnerText = methodChoice.armValue;
|
xeformX.AppendChild(xeformX1);
|
|
xeformX = xmlDoc.CreateElement("headType");
|
xeformX.InnerText = methodChoice.headType;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("labwaretip");
|
xeKey.AppendChild(xeformX);
|
|
xeformX1 = xmlDoc.CreateElement("text");
|
xeformX1.InnerText = methodChoice.labwaretipText;
|
xeformX.AppendChild(xeformX1);
|
|
xeformX1 = xmlDoc.CreateElement("value");
|
xeformX1.InnerText = methodChoice.labwaretipValue;
|
xeformX.AppendChild(xeformX1);
|
|
xeformX = xmlDoc.CreateElement("bacteria");
|
xeKey.AppendChild(xeformX);
|
|
xeformX1 = xmlDoc.CreateElement("text");
|
xeformX1.InnerText = methodChoice.bacteriaText;
|
xeformX.AppendChild(xeformX1);
|
|
xeformX1 = xmlDoc.CreateElement("value");
|
xeformX1.InnerText = methodChoice.bacteriaValue;
|
xeformX.AppendChild(xeformX1);
|
|
xeformX = xmlDoc.CreateElement("filePath");
|
xeformX.InnerText = methodChoice.filePath;
|
xeKey.AppendChild(xeformX);
|
|
//DataTable转化成节点
|
CreateTransferFileDataTable(methodChoice, xeKey, out xeKey);
|
|
xeformX = xmlDoc.CreateElement("sourceLabware");
|
xeformX.InnerText = methodChoice.sourceLabware;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("sourceWell");
|
xeformX.InnerText = methodChoice.sourceWell;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("beginLine");
|
xeformX.InnerText = methodChoice.beginLine;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("startPos");
|
xeformX.InnerText = methodChoice.startPos;
|
xeKey.AppendChild(xeformX);
|
|
root.AppendChild(xeKey);//挂载父节点
|
}
|
|
public void CreateTransferFileDataTable(MethodChoice methodChoice, XmlElement xeKeyR, out XmlElement xeKey)
|
{
|
XmlElement xeformXBase = xmlDoc.CreateElement("transferDataTable");
|
DataTable dt = methodChoice.transferDataTable;
|
if (dt != null)
|
{
|
for (int i = 0; i < dt.Columns.Count; i++)
|
{
|
XmlElement xeformX = xmlDoc.CreateElement(dt.Columns[i].ColumnName);
|
xeformXBase.AppendChild(xeformX);
|
|
for (int j = 0; j < dt.Rows.Count; j++)
|
{
|
XmlElement xeformX1 = xmlDoc.CreateElement("node");
|
xeformX1.InnerText = dt.Rows[j][i].ToString();
|
xeformX.AppendChild(xeformX1);
|
}
|
}
|
}
|
xeKey = xeKeyR;
|
xeKey.AppendChild(xeformXBase);
|
}
|
#endregion
|
|
#region 创建涂布方法的xml
|
public void CreateCoatingXmlNode(int index, MethodCoating methodCoating, MethodEx mi)
|
{
|
XmlElement xeKey = xmlDoc.CreateElement("method");//创建子节点,并且设置子节点的属性
|
XmlAttribute xeType = xmlDoc.CreateAttribute("id");
|
xeType.InnerText = index.ToString();
|
xeKey.SetAttributeNode(xeType);
|
|
XmlElement xeformX = xmlDoc.CreateElement("isrun");
|
xeformX.InnerText = mi.method_isrun;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("status");
|
//xeformX.InnerText = methodCoating.status;
|
xeformX.InnerText = (mi.isEnabled ? "enable" : "disable");
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("name");
|
xeformX.InnerText = methodCoating.name;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("label");
|
xeformX.InnerText = methodCoating.label;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("strIndex");
|
//xeformX.InnerText = methodCoating.strIndex;
|
xeformX.InnerText = mi.strIndex;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("labware");
|
xeKey.AppendChild(xeformX);
|
|
XmlElement xeformX1 = xmlDoc.CreateElement("text");
|
xeformX1.InnerText = methodCoating.labwareText;
|
xeformX.AppendChild(xeformX1);
|
|
xeformX1 = xmlDoc.CreateElement("value");
|
xeformX1.InnerText = methodCoating.labwareValue;
|
xeformX.AppendChild(xeformX1);
|
|
xeformX = xmlDoc.CreateElement("position");
|
xeKey.AppendChild(xeformX);
|
|
xeformX1 = xmlDoc.CreateElement("text");
|
xeformX1.InnerText = methodCoating.positionText;
|
xeformX.AppendChild(xeformX1);
|
|
xeformX1 = xmlDoc.CreateElement("value");
|
xeformX1.InnerText = methodCoating.positionValue;
|
xeformX.AppendChild(xeformX1);
|
|
xeformX = xmlDoc.CreateElement("arm");
|
xeKey.AppendChild(xeformX);
|
|
xeformX1 = xmlDoc.CreateElement("text");
|
xeformX1.InnerText = methodCoating.armText;
|
xeformX.AppendChild(xeformX1);
|
|
xeformX1 = xmlDoc.CreateElement("value");
|
xeformX1.InnerText = methodCoating.armValue;
|
xeformX.AppendChild(xeformX1);
|
|
xeformX = xmlDoc.CreateElement("headType");
|
xeformX.InnerText = methodCoating.headType;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("channels");
|
string chs = string.Empty;
|
if (methodCoating.channels != null)
|
{
|
if (methodCoating.channels.Length != 0)
|
{
|
for (int i = 0; i < methodCoating.channels.Length; i++)
|
{
|
chs += methodCoating.channels[i] + ",";
|
}
|
chs = chs.Substring(0, chs.Length - 1);
|
}
|
}
|
xeformX.InnerText = chs;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("coatingmode");
|
xeKey.AppendChild(xeformX);
|
|
xeformX1 = xmlDoc.CreateElement("text");
|
xeformX1.InnerText = methodCoating.coatingmodeText;
|
xeformX.AppendChild(xeformX1);
|
|
xeformX1 = xmlDoc.CreateElement("value");
|
xeformX1.InnerText = methodCoating.coatingmodeValue.ToString();
|
xeformX.AppendChild(xeformX1);
|
|
xeformX = xmlDoc.CreateElement("wellarray");
|
xeformX.InnerText = methodCoating.wellarray;
|
xeKey.AppendChild(xeformX);
|
|
root.AppendChild(xeKey);//挂载父节点
|
}
|
#endregion
|
|
#region 创建涂布文件移液方法的xml
|
public void CreateCoatingFileXmlNode(int index, MethodCoatingFile methodCoatingFile, MethodEx mi)
|
{
|
XmlElement xeKey = xmlDoc.CreateElement("method");//创建子节点,并且设置子节点的属性
|
XmlAttribute xeType = xmlDoc.CreateAttribute("id");
|
xeType.InnerText = index.ToString();
|
xeKey.SetAttributeNode(xeType);
|
|
XmlElement xeformX = xmlDoc.CreateElement("isrun");
|
xeformX.InnerText = mi.method_isrun;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("status");
|
xeformX.InnerText = (mi.isEnabled ? "enable" : "disable");
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("name");
|
xeformX.InnerText = methodCoatingFile.name;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("label");
|
xeformX.InnerText = methodCoatingFile.label;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("strIndex");
|
xeformX.InnerText = mi.strIndex;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("arm");
|
xeKey.AppendChild(xeformX);
|
|
XmlElement xeformX1 = xmlDoc.CreateElement("text");
|
xeformX1.InnerText = methodCoatingFile.armText;
|
xeformX.AppendChild(xeformX1);
|
|
xeformX1 = xmlDoc.CreateElement("value");
|
xeformX1.InnerText = methodCoatingFile.armValue;
|
xeformX.AppendChild(xeformX1);
|
|
xeformX = xmlDoc.CreateElement("labwaretip");
|
xeKey.AppendChild(xeformX);
|
|
xeformX1 = xmlDoc.CreateElement("text");
|
xeformX1.InnerText = methodCoatingFile.labwaretipText;
|
xeformX.AppendChild(xeformX1);
|
|
xeformX1 = xmlDoc.CreateElement("value");
|
xeformX1.InnerText = methodCoatingFile.labwaretipValue;
|
xeformX.AppendChild(xeformX1);
|
|
xeformX = xmlDoc.CreateElement("channels");
|
string chs = string.Empty;
|
if (methodCoatingFile.channels != null)
|
{
|
if (methodCoatingFile.channels.Length != 0)
|
{
|
for (int i = 0; i < methodCoatingFile.channels.Length; i++)
|
{
|
chs += methodCoatingFile.channels[i] + ",";
|
}
|
chs = chs.Substring(0, chs.Length - 1);
|
}
|
}
|
xeformX.InnerText = chs;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("filePath");
|
xeformX.InnerText = methodCoatingFile.filePath;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("beginLine");
|
xeformX.InnerText = methodCoatingFile.beginLine.ToString();
|
xeKey.AppendChild(xeformX);
|
|
//DataTable转化成节点
|
CreateTransferFileDataTable(methodCoatingFile, xeKey);
|
|
xeformX = xmlDoc.CreateElement("sourceLabware");
|
xeformX.InnerText = methodCoatingFile.sourceLabware;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("sourceWell");
|
xeformX.InnerText = methodCoatingFile.sourceWell;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("destinationLabware");
|
xeformX.InnerText = methodCoatingFile.destinationLabware;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("destinationWell");
|
xeformX.InnerText = methodCoatingFile.destinationWell;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("bacteria");
|
xeKey.AppendChild(xeformX);
|
|
xeformX1 = xmlDoc.CreateElement("text");
|
xeformX1.InnerText = methodCoatingFile.bacteriaText;
|
xeformX.AppendChild(xeformX1);
|
|
xeformX1 = xmlDoc.CreateElement("value");
|
xeformX1.InnerText = methodCoatingFile.bacteriaValue;
|
xeformX.AppendChild(xeformX1);
|
|
// 涂布方式
|
xeformX = xmlDoc.CreateElement("coatingmodeValue");
|
xeformX.InnerText = methodCoatingFile.coatingModeValue.ToString();
|
xeKey.AppendChild(xeformX);
|
|
// 涂布方式为上下移动时的距离
|
xeformX = xmlDoc.CreateElement("shakeDistanceValue");
|
xeformX.InnerText = methodCoatingFile.shakeDistanceValue.ToString();
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("shakeCountValue");
|
xeformX.InnerText = methodCoatingFile.shakeCountValue.ToString();
|
xeKey.AppendChild(xeformX);
|
|
// 挑选类别:1:单选; 2:穿刺; 3:吸液;
|
xeformX = xmlDoc.CreateElement("choiceCategory");
|
xeformX.InnerText = methodCoatingFile.choiceCategory.ToString();
|
xeKey.AppendChild(xeformX);
|
|
// 多块目标板涂布前要挑菌
|
xeformX = xmlDoc.CreateElement("pickEveryTime");
|
xeformX.InnerText = methodCoatingFile.pickEveryTime.ToString().ToLower();
|
xeKey.AppendChild(xeformX);
|
// 多块目标板挑菌前要换枪头
|
xeformX = xmlDoc.CreateElement("pickAgoChangeTipEveryTime");
|
xeformX.InnerText = methodCoatingFile.pickAgoChangeTipEveryTime.ToString().ToLower();
|
xeKey.AppendChild(xeformX);
|
|
// 同时挑菌的通道数量
|
xeformX = xmlDoc.CreateElement("coatingCount");
|
xeformX.InnerText = methodCoatingFile.coatingCount.ToString();
|
xeKey.AppendChild(xeformX);
|
|
// 涂布自动开关盖
|
xeformX = xmlDoc.CreateElement("autoOpenCloseCoverCoating");
|
xeformX.InnerText = methodCoatingFile.autoOpenCloseCoverCoating.ToString().ToLower();
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("liquidid");
|
xeKey.AppendChild(xeformX);
|
|
xeformX1 = xmlDoc.CreateElement("text");
|
xeformX1.InnerText = methodCoatingFile.liquididText;
|
xeformX.AppendChild(xeformX1);
|
|
xeformX1 = xmlDoc.CreateElement("value");
|
xeformX1.InnerText = methodCoatingFile.liquididValue;
|
xeformX.AppendChild(xeformX1);
|
|
xeformX = xmlDoc.CreateElement("liquidrangeid");
|
xeKey.AppendChild(xeformX);
|
|
xeformX1 = xmlDoc.CreateElement("text");
|
xeformX1.InnerText = methodCoatingFile.liquidrangeidText;
|
xeformX.AppendChild(xeformX1);
|
|
xeformX1 = xmlDoc.CreateElement("value");
|
xeformX1.InnerText = methodCoatingFile.liquidrangeidValue;
|
xeformX.AppendChild(xeformX1);
|
|
xeformX = xmlDoc.CreateElement("liquidpid");
|
xeKey.AppendChild(xeformX);
|
|
xeformX1 = xmlDoc.CreateElement("text");
|
xeformX1.InnerText = methodCoatingFile.liquidpidText;
|
xeformX.AppendChild(xeformX1);
|
|
xeformX1 = xmlDoc.CreateElement("value");
|
xeformX1.InnerText = methodCoatingFile.liquidpidValue;
|
xeformX.AppendChild(xeformX1);
|
|
#region 超声探测
|
xeformX = xmlDoc.CreateElement("enableUltrasonic");
|
xeformX.InnerText = methodCoatingFile.isEnableultrasonic.ToString().ToLower();
|
xeKey.AppendChild(xeformX);
|
|
if (methodCoatingFile.isEnableultrasonic)
|
{
|
// 构建圆形皿
|
CreateUltrasonicDishObjectDataTable(methodCoatingFile, xeKey);
|
|
// 构建非圆形皿
|
CreateUltrasonicObjectDataTable(methodCoatingFile, xeKey);
|
}
|
#endregion
|
|
#region 吸液
|
// 创建创建挑菌前环境设置的xml
|
CreateChoiceAgoAspirateChildXmlNode(xmlDoc, xeKey, methodCoatingFile.choiceAgoAspirateData);
|
#endregion
|
|
#region 混合
|
// 吸液是否开启混合
|
xeformX = xmlDoc.CreateElement("enableMix");
|
xeformX.InnerText = methodCoatingFile.bMix.ToString();
|
xeKey.AppendChild(xeformX);
|
|
// 混合体积
|
xeformX = xmlDoc.CreateElement("mixvolume");
|
xeformX.InnerText = methodCoatingFile.mixvolume.ToString();
|
xeKey.AppendChild(xeformX);
|
|
// 混合次数
|
xeformX = xmlDoc.CreateElement("mixcount");
|
xeformX.InnerText = methodCoatingFile.mixcount.ToString();
|
xeKey.AppendChild(xeformX);
|
|
#region 混合时,吸液参数
|
xeformX = xmlDoc.CreateElement("mixAspiratePosition");
|
xeKey.AppendChild(xeformX);
|
// 混合时,吸液距离类型名称
|
xeformX1 = xmlDoc.CreateElement("text");
|
xeformX1.InnerText = methodCoatingFile.mixAspiratePositionText;
|
xeformX.AppendChild(xeformX1);
|
// 混合时,吸液距离类型Id
|
xeformX1 = xmlDoc.CreateElement("value");
|
xeformX1.InnerText = methodCoatingFile.mixAspiratePositionValue.ToString();
|
xeformX.AppendChild(xeformX1);
|
// 混合时,吸液距离
|
xeformX = xmlDoc.CreateElement("mixAspirateDistance");
|
xeformX.InnerText = methodCoatingFile.mixAspirateDistance.ToString();
|
xeKey.AppendChild(xeformX);
|
// 混合时,吸液速度
|
xeformX = xmlDoc.CreateElement("mixAspirateSpeed");
|
xeformX.InnerText = methodCoatingFile.mixAspirateSpeed.ToString();
|
xeKey.AppendChild(xeformX);
|
#endregion
|
|
#region 混合时,排液参数
|
xeformX = xmlDoc.CreateElement("mixDispensePosition");
|
xeKey.AppendChild(xeformX);
|
// 混合时,排液距离类型
|
xeformX1 = xmlDoc.CreateElement("text");
|
xeformX1.InnerText = methodCoatingFile.mixDispensePositionText;
|
xeformX.AppendChild(xeformX1);
|
// 混合时,排液距离类型
|
xeformX1 = xmlDoc.CreateElement("value");
|
xeformX1.InnerText = methodCoatingFile.mixDispensePositionValue.ToString();
|
xeformX.AppendChild(xeformX1);
|
// 混合时,排液距离
|
xeformX = xmlDoc.CreateElement("mixDispenseDistance");
|
xeformX.InnerText = methodCoatingFile.mixDispenseDistance.ToString();
|
xeKey.AppendChild(xeformX);
|
// 混合时,排液速度
|
xeformX = xmlDoc.CreateElement("mixDispenseSpeed");
|
xeformX.InnerText = methodCoatingFile.mixDispenseSpeed.ToString();
|
xeKey.AppendChild(xeformX);
|
#endregion
|
|
#endregion
|
|
// 涂布调节高度
|
xeformX = xmlDoc.CreateElement("coatingOffset");
|
xeformX.InnerText = methodCoatingFile.coatingOffset.ToString();
|
xeKey.AppendChild(xeformX);
|
|
root.AppendChild(xeKey);//挂载父节点
|
}
|
|
|
#region 创建设置变量方法的xml
|
public void CreateSetVariableXmlNode(int index, MethodSetVariable methodSetVariable, MethodEx mi)
|
{
|
XmlElement xeKey = xmlDoc.CreateElement("method");//创建子节点,并且设置子节点的属性
|
XmlAttribute xeType = xmlDoc.CreateAttribute("id");
|
xeType.InnerText = index.ToString();
|
xeKey.SetAttributeNode(xeType);
|
|
XmlElement xeformX = xmlDoc.CreateElement("isrun");
|
xeformX.InnerText = mi.method_isrun;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("status");
|
//xeformX.InnerText = methodPauseMove.status;
|
xeformX.InnerText = (mi.isEnabled ? "enable" : "disable");
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("name");
|
xeformX.InnerText = methodSetVariable.name;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("label");
|
xeformX.InnerText = methodSetVariable.label;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("strIndex");
|
//xeformX.InnerText = methodPauseMove.strIndex;
|
xeformX.InnerText = mi.strIndex;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("enablepopwin");
|
xeformX.InnerText = methodSetVariable.enablepopwin.ToString();
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("variablename");
|
xeformX.InnerText = methodSetVariable.variablename;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("variablevalue");
|
xeformX.InnerText = methodSetVariable.variablevalue;
|
xeKey.AppendChild(xeformX);
|
|
root.AppendChild(xeKey);//挂载父节点
|
}
|
#endregion
|
|
#region 创建变量计算方法的xml
|
public void CreateVarCalcXmlNode(int index, MethodVarCalc method, MethodEx mi)
|
{
|
#region 共有
|
XmlElement xeKey = xmlDoc.CreateElement("method");//创建子节点,并且设置子节点的属性
|
XmlAttribute xeType = xmlDoc.CreateAttribute("id");
|
xeType.InnerText = index.ToString();
|
xeKey.SetAttributeNode(xeType);
|
|
XmlElement xeformX = xmlDoc.CreateElement("isrun");
|
xeformX.InnerText = mi.method_isrun;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("status");
|
//xeformX.InnerText = method.status;
|
xeformX.InnerText = (mi.isEnabled ? "enable" : "disable");
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("name");
|
xeformX.InnerText = method.name;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("label");
|
xeformX.InnerText = method.label;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("strIndex");
|
//xeformX.InnerText = method.strIndex;
|
xeformX.InnerText = mi.strIndex;
|
xeKey.AppendChild(xeformX);
|
#endregion
|
|
// 计算结果
|
xeformX = xmlDoc.CreateElement("calcResult");
|
xeformX.InnerText = method.calcResult.ToString();
|
xeKey.AppendChild(xeformX);
|
|
// 计算值1
|
xeformX = xmlDoc.CreateElement("calcValue1");
|
xeformX.InnerText = method.calcValue1.ToString();
|
xeKey.AppendChild(xeformX);
|
|
// 计算值2
|
xeformX = xmlDoc.CreateElement("calcValue2");
|
xeformX.InnerText = method.calcValue2.ToString();
|
xeKey.AppendChild(xeformX);
|
|
// 计算符
|
xeformX = xmlDoc.CreateElement("calcOperator");
|
xeformX.InnerText = method.calcOperator.ToString();
|
xeKey.AppendChild(xeformX);
|
|
root.AppendChild(xeKey);//挂载父节点
|
}
|
#endregion
|
|
#region 创建子方法 方法的xml
|
public void CreateSubMethodXmlNode(int index, MethodSubMethod method, MethodEx mi)
|
{
|
#region 共有
|
XmlElement xeKey = xmlDoc.CreateElement("method");
|
XmlAttribute xeType = xmlDoc.CreateAttribute("id");
|
xeType.InnerText = index.ToString();
|
xeKey.SetAttributeNode(xeType);
|
|
XmlElement xeformX = xmlDoc.CreateElement("isrun");
|
xeformX.InnerText = mi.method_isrun;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("status");
|
xeformX.InnerText = (mi.isEnabled ? "enable" : "disable");
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("name");
|
xeformX.InnerText = method.name;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("label");
|
xeformX.InnerText = method.label;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("strIndex");
|
xeformX.InnerText = mi.strIndex;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("comment");
|
xeformX.InnerText = method.comment;
|
xeKey.AppendChild(xeformX);
|
#endregion
|
|
// 文件路径
|
xeformX = xmlDoc.CreateElement("filePath");
|
xeformX.InnerText = method.filePath.ToString();
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("isConcurrence");
|
xeformX.InnerText = method.isConcurrence.ToString();
|
xeKey.AppendChild(xeformX);
|
|
root.AppendChild(xeKey);//挂载父节点
|
}
|
#endregion
|
|
#region 创建文件变量导入方法的xml
|
public void CreateVariableImportXmlNode(int index, MethodVariableImport methodVariableImport, MethodEx mi)
|
{
|
XmlElement xeKey = xmlDoc.CreateElement("method");//创建子节点,并且设置子节点的属性
|
XmlAttribute xeType = xmlDoc.CreateAttribute("id");
|
xeType.InnerText = index.ToString();
|
xeKey.SetAttributeNode(xeType);
|
|
XmlElement xeformX = xmlDoc.CreateElement("isrun");
|
xeformX.InnerText = mi.method_isrun;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("status");
|
xeformX.InnerText = (mi.isEnabled ? "enable" : "disable");
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("name");
|
xeformX.InnerText = methodVariableImport.name;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("label");
|
xeformX.InnerText = methodVariableImport.label;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("strIndex");
|
xeformX.InnerText = mi.strIndex;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("filePath");
|
xeformX.InnerText = methodVariableImport.filePath;
|
xeKey.AppendChild(xeformX);
|
|
//DataTable转化成节点
|
CreateTransferFileDataTable(methodVariableImport, xeKey);
|
|
root.AppendChild(xeKey);//挂载父节点
|
}
|
|
public void CreateTransferFileDataTable(MethodVariableImport methodVariableImport, XmlElement xeKey)
|
{
|
XmlElement xeformXBase = xmlDoc.CreateElement("transferDataTable");
|
DataTable dt = methodVariableImport.transferDataTable;
|
if (dt != null)
|
{
|
for (int i = 0; i < dt.Columns.Count; i++)
|
{
|
XmlElement xeformX = xmlDoc.CreateElement(dt.Columns[i].ColumnName);
|
xeformXBase.AppendChild(xeformX);
|
|
for (int j = 0; j < dt.Rows.Count; j++)
|
{
|
XmlElement xeformX1 = xmlDoc.CreateElement("node");
|
xeformX1.InnerText = dt.Rows[j][i].ToString();
|
xeformX.AppendChild(xeformX1);
|
}
|
}
|
}
|
xeKey.AppendChild(xeformXBase);
|
}
|
#endregion
|
|
#region 创建IfStart方法的xml
|
public void CreateIfStartXmlNode(int index, MethodIfElse methodIfElse, MethodEx mi)
|
{
|
XmlElement xeKey = xmlDoc.CreateElement("method");//创建子节点,并且设置子节点的属性
|
XmlAttribute xeType = xmlDoc.CreateAttribute("id");
|
xeType.InnerText = index.ToString();
|
xeKey.SetAttributeNode(xeType);
|
|
XmlElement xeformX = xmlDoc.CreateElement("isrun");
|
xeformX.InnerText = mi.method_isrun;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("status");
|
//xeformX.InnerText = methodLoop.status;
|
xeformX.InnerText = (mi.isEnabled ? "enable" : "disable");
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("name");
|
xeformX.InnerText = methodIfElse.name;
|
xeKey.AppendChild(xeformX);
|
xeformX = xmlDoc.CreateElement("strIndex");
|
//xeformX.InnerText = methodLoop.strIndex;
|
xeformX.InnerText = mi.strIndex;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("endIndex");
|
xeformX.InnerText = methodIfElse.endIndex;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("label");
|
xeformX.InnerText = methodIfElse.label;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("variableName");
|
xeformX.InnerText = methodIfElse.variableName;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("variableValue");
|
xeformX.InnerText = methodIfElse.variableValue;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("logicCondition");
|
xeformX.InnerText = ((int)methodIfElse.logicCondition).ToString();
|
xeKey.AppendChild(xeformX);
|
root.AppendChild(xeKey);//挂载父节点
|
}
|
#endregion
|
|
#region 创建IfEnd结束的xml
|
public void CreateIfEndXmlNode(int index, string strIndex)
|
{
|
XmlElement xeKey = xmlDoc.CreateElement("method");//创建子节点,并且设置子节点的属性
|
XmlAttribute xeType = xmlDoc.CreateAttribute("id");
|
xeType.InnerText = index.ToString();
|
xeKey.SetAttributeNode(xeType);
|
|
XmlElement xeformX = xmlDoc.CreateElement("name");
|
xeformX.InnerText = "Method_ifend";
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("strIndex");
|
xeformX.InnerText = strIndex;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("label");
|
xeformX.InnerText = "if结束";
|
xeKey.AppendChild(xeformX);
|
|
root.AppendChild(xeKey);//挂载父节点
|
}
|
#endregion
|
|
#region 创建循环结束的xml
|
public void CreateElseEndXmlNode(int index, string strIndex)
|
{
|
XmlElement xeKey = xmlDoc.CreateElement("method");//创建子节点,并且设置子节点的属性
|
XmlAttribute xeType = xmlDoc.CreateAttribute("id");
|
xeType.InnerText = index.ToString();
|
xeKey.SetAttributeNode(xeType);
|
|
XmlElement xeformX = xmlDoc.CreateElement("name");
|
xeformX.InnerText = "Method_elseend";
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("strIndex");
|
xeformX.InnerText = strIndex;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("label");
|
xeformX.InnerText = "else结束";
|
xeKey.AppendChild(xeformX);
|
|
root.AppendChild(xeKey);//挂载父节点
|
}
|
#endregion
|
|
/// <summary>
|
/// 创建吸液的xml
|
/// </summary>
|
/// <param name="xmlDoc"></param>
|
/// <param name="xeKey"></param>
|
/// <param name="choiceAgoAspirateData"></param>
|
private void CreateChoiceAgoAspirateChildXmlNode(XmlDocument xmlDoc, XmlElement xeKey, MethodChoiceAgoAspirateChild choiceAgoAspirateData)
|
{
|
XmlElement xeformX = xmlDoc.CreateElement("bEnableBeforeAspirate");
|
xeformX.InnerText = choiceAgoAspirateData.bEnableBeforeAspirate.ToString();
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("wellarray");
|
xeformX.InnerText = choiceAgoAspirateData.wellarray;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("labwareAspirate");
|
xeKey.AppendChild(xeformX);
|
|
XmlElement xeformX1 = xmlDoc.CreateElement("text");
|
xeformX1.InnerText = choiceAgoAspirateData.labwareText;
|
xeformX.AppendChild(xeformX1);
|
|
xeformX1 = xmlDoc.CreateElement("value");
|
xeformX1.InnerText = choiceAgoAspirateData.labwareValue;
|
xeformX.AppendChild(xeformX1);
|
|
xeformX = xmlDoc.CreateElement("positionAspirate");
|
xeKey.AppendChild(xeformX);
|
|
xeformX1 = xmlDoc.CreateElement("text");
|
xeformX1.InnerText = choiceAgoAspirateData.positionText;
|
xeformX.AppendChild(xeformX1);
|
|
xeformX1 = xmlDoc.CreateElement("value");
|
xeformX1.InnerText = choiceAgoAspirateData.positionValue;
|
xeformX.AppendChild(xeformX1);
|
|
xeformX = xmlDoc.CreateElement("wellvolume");
|
xeformX.InnerText = choiceAgoAspirateData.wellvolume.ToString();
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("liquidid1");
|
xeKey.AppendChild(xeformX);
|
|
xeformX1 = xmlDoc.CreateElement("text");
|
xeformX1.InnerText = choiceAgoAspirateData.liquididText1;
|
xeformX.AppendChild(xeformX1);
|
|
xeformX1 = xmlDoc.CreateElement("value");
|
xeformX1.InnerText = choiceAgoAspirateData.liquididValue1;
|
xeformX.AppendChild(xeformX1);
|
|
xeformX = xmlDoc.CreateElement("liquidrangeid1");
|
xeKey.AppendChild(xeformX);
|
|
xeformX1 = xmlDoc.CreateElement("text");
|
xeformX1.InnerText = choiceAgoAspirateData.liquidrangeidText1;
|
xeformX.AppendChild(xeformX1);
|
|
xeformX1 = xmlDoc.CreateElement("value");
|
xeformX1.InnerText = choiceAgoAspirateData.liquidrangeidValue1;
|
xeformX.AppendChild(xeformX1);
|
|
xeformX = xmlDoc.CreateElement("liquidpid1");
|
xeKey.AppendChild(xeformX);
|
|
xeformX1 = xmlDoc.CreateElement("text");
|
xeformX1.InnerText = choiceAgoAspirateData.liquidpidText1;
|
xeformX.AppendChild(xeformX1);
|
|
xeformX1 = xmlDoc.CreateElement("value");
|
xeformX1.InnerText = choiceAgoAspirateData.liquidpidValue1;
|
xeformX.AppendChild(xeformX1);
|
}
|
|
/// <summary>
|
/// 构建非圆形皿
|
/// </summary>
|
/// <param name="methodTransferFile"></param>
|
/// <param name="xeKeyR"></param>
|
/// <param name="xeKey"></param>
|
public void CreateUltrasonicObjectDataTable(MethodCoatingFile methodTransferFile, XmlElement xeKey)
|
{
|
XmlElement xeformXBase = xmlDoc.CreateElement("ultrasonicObject");
|
List<UltrasonicObject> dt = methodTransferFile.ultrasonicObjectList;
|
if (dt != null)
|
{
|
for (int i = 0; i < dt.Count; i++)
|
{
|
XmlElement xeformX = xmlDoc.CreateElement("Dish" + dt[i].labwareText);
|
xeformXBase.AppendChild(xeformX);
|
|
XmlElement xeformX1 = xmlDoc.CreateElement("labwareText");
|
xeformX1.InnerText = dt[i].labwareText.ToString();
|
xeformX.AppendChild(xeformX1);
|
|
xeformX1 = xmlDoc.CreateElement("labwareValue");
|
xeformX1.InnerText = dt[i].labwareValue.ToString();
|
xeformX.AppendChild(xeformX1);
|
|
xeformX1 = xmlDoc.CreateElement("rowNum");
|
xeformX1.InnerText = dt[i].rowNum.ToString();
|
xeformX.AppendChild(xeformX1);
|
|
xeformX1 = xmlDoc.CreateElement("columnNum");
|
xeformX1.InnerText = dt[i].columnNum.ToString();
|
xeformX.AppendChild(xeformX1);
|
|
xeformX1 = xmlDoc.CreateElement("closeTopVal");
|
xeformX1.InnerText = dt[i].closeTopVal.ToString();
|
xeformX.AppendChild(xeformX1);
|
|
xeformX1 = xmlDoc.CreateElement("closeLeftVal");
|
xeformX1.InnerText = dt[i].closeLeftVal.ToString();
|
xeformX.AppendChild(xeformX1);
|
|
xeformX1 = xmlDoc.CreateElement("xAxisVal");
|
xeformX1.InnerText = dt[i].xAxisVal.ToString();
|
xeformX.AppendChild(xeformX1);
|
|
xeformX1 = xmlDoc.CreateElement("yAxisVal");
|
xeformX1.InnerText = dt[i].yAxisVal.ToString();
|
xeformX.AppendChild(xeformX1);
|
}
|
}
|
xeKey.AppendChild(xeformXBase);
|
}
|
|
/// <summary>
|
/// 构建圆形皿
|
/// </summary>
|
/// <param name="methodTransferFile"></param>
|
/// <param name="xeKey"></param>
|
private void CreateUltrasonicDishObjectDataTable(MethodCoatingFile methodTransferFile, XmlElement xeKey)
|
{
|
XmlElement xeformXBase = xmlDoc.CreateElement("ultrasonicDishObject");
|
List<UltrasonicDishObject> dt = methodTransferFile.ultrasonicDishObjectList;
|
if (dt != null)
|
{
|
for (int i = 0; i < dt.Count; i++)
|
{
|
XmlElement xeformX = xmlDoc.CreateElement("Lab" + dt[i].labwareText);
|
xeformXBase.AppendChild(xeformX);
|
|
XmlElement xeformX1 = xmlDoc.CreateElement("labwareText");
|
xeformX1.InnerText = dt[i].labwareText.ToString();
|
xeformX.AppendChild(xeformX1);
|
|
xeformX1 = xmlDoc.CreateElement("labwareValue");
|
xeformX1.InnerText = dt[i].labwareValue.ToString();
|
xeformX.AppendChild(xeformX1);
|
|
XmlElement xeformPoint = xmlDoc.CreateElement("pointList");
|
for (int j = 0; j < dt[i].pointList.Count; j++)
|
{
|
XmlElement xeformNew = xmlDoc.CreateElement("point");
|
xeformPoint.AppendChild(xeformNew);
|
|
XmlElement xeformX2 = xmlDoc.CreateElement("xAxisVal");
|
xeformX2.InnerText = dt[i].pointList[j].dropdown_id.ToString();
|
xeformNew.AppendChild(xeformX2);
|
|
xeformX2 = xmlDoc.CreateElement("yAxisVal");
|
xeformX2.InnerText = dt[i].pointList[j].dropdown_name.ToString();
|
xeformNew.AppendChild(xeformX2);
|
}
|
xeformX.AppendChild(xeformPoint);
|
xeformXBase.AppendChild(xeformX);
|
}
|
}
|
xeKey.AppendChild(xeformXBase);
|
}
|
|
private void CreateTransferFileDataTable(MethodCoatingFile methodTransferFile, XmlElement xeKey)
|
{
|
XmlElement xeformXBase = xmlDoc.CreateElement("transferDataTable");
|
DataTable dt = methodTransferFile.transferDataTable;
|
if (dt != null)
|
{
|
for (int i = 0; i < dt.Columns.Count; i++)
|
{
|
XmlElement xeformX = xmlDoc.CreateElement(dt.Columns[i].ColumnName);
|
xeformXBase.AppendChild(xeformX);
|
|
for (int j = 0; j < dt.Rows.Count; j++)
|
{
|
XmlElement xeformX1 = xmlDoc.CreateElement("node");
|
xeformX1.InnerText = dt.Rows[j][i].ToString();
|
xeformX.AppendChild(xeformX1);
|
}
|
}
|
}
|
xeKey.AppendChild(xeformXBase);
|
}
|
#endregion
|
|
#region 创建涂布报告移液方法的xml
|
public void CreateCoatingReportXmlNode(int index, MethodCoatingReport methodCoatingReport, MethodEx mi)
|
{
|
XmlElement xeKey = xmlDoc.CreateElement("method");//创建子节点,并且设置子节点的属性
|
XmlAttribute xeType = xmlDoc.CreateAttribute("id");
|
xeType.InnerText = index.ToString();
|
xeKey.SetAttributeNode(xeType);
|
|
XmlElement xeformX = xmlDoc.CreateElement("isrun");
|
xeformX.InnerText = mi.method_isrun;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("status");
|
//xeformX.InnerText = methodCoatingReport.status;
|
xeformX.InnerText = (mi.isEnabled ? "enable" : "disable");
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("name");
|
xeformX.InnerText = methodCoatingReport.name;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("label");
|
xeformX.InnerText = methodCoatingReport.label;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("strIndex");
|
//xeformX.InnerText = methodCoatingReport.strIndex;
|
xeformX.InnerText = mi.strIndex;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("filePath");
|
xeformX.InnerText = methodCoatingReport.filePath;
|
xeKey.AppendChild(xeformX);
|
|
//DataTable转化成节点
|
CreateReportColumnDataTable(methodCoatingReport, xeKey, out xeKey);
|
|
xeformX = xmlDoc.CreateElement("filePostfix");
|
xeformX.InnerText = methodCoatingReport.filePostfix;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("fileName");
|
xeformX.InnerText = methodCoatingReport.fileName;
|
xeKey.AppendChild(xeformX);
|
|
root.AppendChild(xeKey);//挂载父节点
|
}
|
|
public void CreateReportColumnDataTable(MethodCoatingReport methodTransferFile, XmlElement xeKeyR, out XmlElement xeKey)
|
{
|
XmlElement xeformXBase = xmlDoc.CreateElement("transferDataTable");
|
List<ReportColumn> dt = methodTransferFile.reportColumns;
|
if (dt != null)
|
{
|
XmlElement xeformX = xmlDoc.CreateElement("序号");
|
xeformXBase.AppendChild(xeformX);
|
|
for (int j = 0; j < dt.Count; j++)
|
{
|
XmlElement xeformX1 = xmlDoc.CreateElement("node");
|
xeformX1.InnerText = dt[j].reportcolumn_id.ToString();
|
xeformX.AppendChild(xeformX1);
|
}
|
|
xeformX = xmlDoc.CreateElement("字段名");
|
xeformXBase.AppendChild(xeformX);
|
|
for (int j = 0; j < dt.Count; j++)
|
{
|
XmlElement xeformX1 = xmlDoc.CreateElement("node");
|
xeformX1.InnerText = dt[j].reportcolumn_name.ToString();
|
xeformX.AppendChild(xeformX1);
|
}
|
|
xeformX = xmlDoc.CreateElement("列名");
|
xeformXBase.AppendChild(xeformX);
|
|
for (int j = 0; j < dt.Count; j++)
|
{
|
XmlElement xeformX1 = xmlDoc.CreateElement("node");
|
xeformX1.InnerText = dt[j].reportcolumn_name.ToString();
|
xeformX.AppendChild(xeformX1);
|
}
|
}
|
xeKey = xeKeyR;
|
xeKey.AppendChild(xeformXBase);
|
}
|
#endregion
|
|
#region 创建挑选转板方法的xml
|
public void CreateChoiceAndTransferXmlNode(int index, MethodChoiceAndTransfer methodChoice, MethodEx mi)
|
{
|
#region Common
|
XmlElement xeKey = xmlDoc.CreateElement("method");//创建子节点,并且设置子节点的属性
|
XmlAttribute xeType = xmlDoc.CreateAttribute("id");
|
xeType.InnerText = index.ToString();
|
xeKey.SetAttributeNode(xeType);
|
XmlElement xeformX = xmlDoc.CreateElement("isrun");
|
xeformX.InnerText = mi.method_isrun;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("status");
|
xeformX.InnerText = (mi.isEnabled ? "enable" : "disable");
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("label");
|
xeformX.InnerText = methodChoice.label;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("name");
|
xeformX.InnerText = methodChoice.name;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("strIndex");
|
xeformX.InnerText = mi.strIndex;
|
xeKey.AppendChild(xeformX);
|
#endregion
|
|
#region 机械臂
|
xeformX = xmlDoc.CreateElement("arm");
|
xeKey.AppendChild(xeformX);
|
|
XmlElement xeformX1 = xmlDoc.CreateElement("text");
|
xeformX1.InnerText = methodChoice.armText;
|
xeformX.AppendChild(xeformX1);
|
|
xeformX1 = xmlDoc.CreateElement("value");
|
xeformX1.InnerText = methodChoice.armValue;
|
xeformX.AppendChild(xeformX1);
|
#endregion
|
|
#region 通道
|
xeformX = xmlDoc.CreateElement("channels");
|
if (methodChoice.channels != null)
|
{
|
xeformX.InnerText = string.Join(",", methodChoice.channels);
|
}
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("headType");
|
xeformX.InnerText = methodChoice.headType;
|
xeKey.AppendChild(xeformX);
|
#endregion
|
|
#region 菌落信息
|
xeformX = xmlDoc.CreateElement("bacteria");
|
xeKey.AppendChild(xeformX);
|
|
xeformX1 = xmlDoc.CreateElement("text");
|
xeformX1.InnerText = methodChoice.bacteriaText;
|
xeformX.AppendChild(xeformX1);
|
|
xeformX1 = xmlDoc.CreateElement("value");
|
xeformX1.InnerText = methodChoice.bacteriaValue;
|
xeformX.AppendChild(xeformX1);
|
#endregion
|
|
#region 挑菌方式
|
xeformX = xmlDoc.CreateElement("choiceMode");
|
xeformX.InnerText = methodChoice.choiceMode.ToString();
|
xeKey.AppendChild(xeformX);
|
#endregion
|
|
#region 挑菌耗材
|
xeformX = xmlDoc.CreateElement("choiceLabware");
|
xeKey.AppendChild(xeformX);
|
|
xeformX1 = xmlDoc.CreateElement("text");
|
xeformX1.InnerText = methodChoice.choiceLabwareText;
|
xeformX.AppendChild(xeformX1);
|
|
xeformX1 = xmlDoc.CreateElement("value");
|
xeformX1.InnerText = methodChoice.choiceLabwareValue;
|
xeformX.AppendChild(xeformX1);
|
#endregion
|
|
#region 枪头耗材
|
xeformX = xmlDoc.CreateElement("labwaretip");
|
xeKey.AppendChild(xeformX);
|
|
xeformX1 = xmlDoc.CreateElement("text");
|
xeformX1.InnerText = methodChoice.tipsLabwareText;
|
xeformX.AppendChild(xeformX1);
|
|
xeformX1 = xmlDoc.CreateElement("value");
|
xeformX1.InnerText = methodChoice.tipsLabwareValue;
|
xeformX.AppendChild(xeformX1);
|
#endregion
|
|
#region 自动开关盖
|
xeformX = xmlDoc.CreateElement("autoOpenCloseCover");
|
xeformX.InnerText = methodChoice.autoOpenCloseCover.ToString();
|
xeKey.AppendChild(xeformX);
|
#endregion
|
|
#region 挑菌调节高度
|
xeformX = xmlDoc.CreateElement("choiceOffset");
|
xeformX.InnerText = methodChoice.choiceOffset.ToString();
|
xeKey.AppendChild(xeformX);
|
#endregion
|
|
#region 超声探测
|
xeformX = xmlDoc.CreateElement("isEnableultrasonic");
|
xeformX.InnerText = methodChoice.isEnableultrasonic.ToString().ToLower();
|
xeKey.AppendChild(xeformX);
|
|
// 创建超声子页面数据
|
CreateUltrasonicChildXmlNode(xmlDoc, xeKey, methodChoice.ultrasonicData);
|
#endregion
|
|
#region 挑菌前吸液
|
// 创建创建挑菌前环境设置的xml
|
CreateChoiceAgoAspirateChildXmlNode(xmlDoc, xeKey, methodChoice.choiceAgoAspirateData);
|
#endregion
|
|
root.AppendChild(xeKey);//挂载父节点
|
}
|
#endregion
|
|
#region 创建涂布转板方法的xml
|
public void CreateCoatingAndTransferXmlNode(int index, MethodCoatingAndTransfer methodCoating, MethodEx mi)
|
{
|
#region Common
|
XmlElement xeKey = xmlDoc.CreateElement("method");//创建子节点,并且设置子节点的属性
|
XmlAttribute xeType = xmlDoc.CreateAttribute("id");
|
xeType.InnerText = index.ToString();
|
xeKey.SetAttributeNode(xeType);
|
|
XmlElement xeformX = xmlDoc.CreateElement("isrun");
|
xeformX.InnerText = mi.method_isrun;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("status");
|
xeformX.InnerText = (mi.isEnabled ? "enable" : "disable");
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("label");
|
xeformX.InnerText = methodCoating.label;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("name");
|
xeformX.InnerText = methodCoating.name;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("strIndex");
|
xeformX.InnerText = mi.strIndex;
|
xeKey.AppendChild(xeformX);
|
#endregion
|
|
#region 机械臂
|
xeformX = xmlDoc.CreateElement("arm");
|
xeKey.AppendChild(xeformX);
|
|
XmlElement xeformX1 = xmlDoc.CreateElement("text");
|
xeformX1.InnerText = methodCoating.armText;
|
xeformX.AppendChild(xeformX1);
|
|
xeformX1 = xmlDoc.CreateElement("value");
|
xeformX1.InnerText = methodCoating.armValue;
|
xeformX.AppendChild(xeformX1);
|
#endregion
|
|
#region 通道
|
xeformX = xmlDoc.CreateElement("channels");
|
if (methodCoating.channels != null)
|
{
|
xeformX.InnerText = string.Join(",", methodCoating.channels);
|
}
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("headType");
|
xeformX.InnerText = methodCoating.headType;
|
xeKey.AppendChild(xeformX);
|
#endregion
|
|
#region 涂布方式
|
xeformX = xmlDoc.CreateElement("coatingMode");
|
xeformX.InnerText = methodCoating.coatingModeValue.ToString();
|
xeKey.AppendChild(xeformX);
|
#endregion
|
|
#region 涂布数量
|
xeformX = xmlDoc.CreateElement("coatingCount");
|
xeformX.InnerText = methodCoating.coatingCount.ToString();
|
xeKey.AppendChild(xeformX);
|
#endregion
|
|
#region 接种耗材A
|
xeformX = xmlDoc.CreateElement("coatingLabware");
|
xeKey.AppendChild(xeformX);
|
|
xeformX1 = xmlDoc.CreateElement("text");
|
xeformX1.InnerText = methodCoating.coatingLabwareAText;
|
xeformX.AppendChild(xeformX1);
|
|
xeformX1 = xmlDoc.CreateElement("value");
|
xeformX1.InnerText = methodCoating.coatingLabwareAValue;
|
xeformX.AppendChild(xeformX1);
|
#endregion
|
|
#region 接种耗材B
|
//xeformX = xmlDoc.CreateElement("coatingLabwareB");
|
//xeKey.AppendChild(xeformX);
|
|
//xeformX1 = xmlDoc.CreateElement("text");
|
//xeformX1.InnerText = methodCoating.coatingLabwareBText;
|
//xeformX.AppendChild(xeformX1);
|
|
//xeformX1 = xmlDoc.CreateElement("value");
|
//xeformX1.InnerText = methodCoating.coatingLabwareBValue;
|
//xeformX.AppendChild(xeformX1);
|
#endregion
|
|
#region 自动开关盖
|
xeformX = xmlDoc.CreateElement("autoOpenCloseCover");
|
xeformX.InnerText = methodCoating.autoOpenCloseCover.ToString();
|
xeKey.AppendChild(xeformX);
|
#endregion
|
|
#region 涂布方式:上下相关
|
// 距底距离:mm
|
xeformX = xmlDoc.CreateElement("distanceFromBottom");
|
xeformX.InnerText = methodCoating.distanceFromBottom.ToString();
|
xeKey.AppendChild(xeformX);
|
|
// 上下移动时的距离:mm
|
xeformX = xmlDoc.CreateElement("shakeDistanceValue");
|
xeformX.InnerText = methodCoating.shakeDistanceValue.ToString();
|
xeKey.AppendChild(xeformX);
|
|
// 上下移动时次数
|
xeformX = xmlDoc.CreateElement("shakeCountValue");
|
xeformX.InnerText = methodCoating.shakeCountValue.ToString();
|
xeKey.AppendChild(xeformX);
|
#endregion
|
|
root.AppendChild(xeKey);//挂载父节点
|
}
|
#endregion
|
|
#region 创建超声探测方法的xml
|
public void CreateUltrasonicXmlNode(int index, MethodUltrasonic methodUltrasonic, MethodEx mi)
|
{
|
XmlElement xeKey = xmlDoc.CreateElement("method");//创建子节点,并且设置子节点的属性
|
XmlAttribute xeType = xmlDoc.CreateAttribute("id");
|
xeType.InnerText = index.ToString();
|
xeKey.SetAttributeNode(xeType);
|
|
XmlElement xeformX = xmlDoc.CreateElement("isrun");
|
xeformX.InnerText = mi.method_isrun;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("status");
|
//xeformX.InnerText = methodCoatingFile.status;
|
xeformX.InnerText = (mi.isEnabled ? "enable" : "disable");
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("name");
|
xeformX.InnerText = methodUltrasonic.name;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("label");
|
xeformX.InnerText = methodUltrasonic.label;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("strIndex");
|
xeformX.InnerText = mi.strIndex;
|
xeKey.AppendChild(xeformX);
|
|
// 创建超声子页面数据
|
CreateUltrasonicChildXmlNode(xmlDoc, xeKey, methodUltrasonic.ultrasonicData);
|
|
root.AppendChild(xeKey);//挂载父节点
|
}
|
|
/// <summary>
|
/// 创建超声子页面数据
|
/// </summary>
|
/// <param name="xmlDoc"></param>
|
/// <param name="xeKey"></param>
|
/// <param name="ultrasonicData"></param>
|
private void CreateUltrasonicChildXmlNode(XmlDocument xmlDoc, XmlElement xeKey, MethodUltrasonicChild ultrasonicData)
|
{
|
#region 耗材信息
|
XmlElement xeformX = xmlDoc.CreateElement("labware");
|
xeKey.AppendChild(xeformX);
|
|
XmlElement xeformX1 = xmlDoc.CreateElement("text");
|
xeformX1.InnerText = ultrasonicData.labwareText;
|
xeformX.AppendChild(xeformX1);
|
|
xeformX1 = xmlDoc.CreateElement("value");
|
xeformX1.InnerText = ultrasonicData.labwareValue;
|
xeformX.AppendChild(xeformX1);
|
#endregion
|
|
#region 板位信息
|
xeformX = xmlDoc.CreateElement("position");
|
xeKey.AppendChild(xeformX);
|
|
xeformX1 = xmlDoc.CreateElement("text");
|
xeformX1.InnerText = ultrasonicData.positionText;
|
xeformX.AppendChild(xeformX1);
|
|
xeformX1 = xmlDoc.CreateElement("value");
|
xeformX1.InnerText = ultrasonicData.positionValue;
|
xeformX.AppendChild(xeformX1);
|
#endregion
|
|
#region 圆形皿
|
xeformX = xmlDoc.CreateElement("xDishAxisVal");
|
xeformX.InnerText = ultrasonicData.xDishAxisVal.ToString();
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("yDishAxisVal");
|
xeformX.InnerText = ultrasonicData.yDishAxisVal.ToString();
|
xeKey.AppendChild(xeformX);
|
|
// 获取圆形皿多个探测点
|
CreateUltrasonicDishDataTable(ultrasonicData, xeKey);
|
#endregion
|
|
#region 非圆形皿
|
xeformX = xmlDoc.CreateElement("rowNum");
|
xeformX.InnerText = ultrasonicData.rowNum.ToString();
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("columnNum");
|
xeformX.InnerText = ultrasonicData.columnNum.ToString();
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("closeTopVal");
|
xeformX.InnerText = ultrasonicData.closeTopVal.ToString();
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("closeLeftVal");
|
xeformX.InnerText = ultrasonicData.closeLeftVal.ToString();
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("xAxisVal");
|
xeformX.InnerText = ultrasonicData.xAxisVal.ToString();
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("yAxisVal");
|
xeformX.InnerText = ultrasonicData.yAxisVal.ToString();
|
xeKey.AppendChild(xeformX);
|
#endregion
|
}
|
|
// 获取圆形皿多个探测点
|
private void CreateUltrasonicDishDataTable(MethodUltrasonicChild ultrasonicData, XmlElement xeKey)
|
{
|
XmlElement xeformXBase = xmlDoc.CreateElement("pointList");
|
ObservableCollection<DropdownName> dt = ultrasonicData.pointList;
|
if (dt != null)
|
{
|
for (int i = 0; i < 2; i++)
|
{
|
XmlElement xeformX;
|
if (i == 0)
|
{
|
xeformX = xmlDoc.CreateElement("xOffset");
|
xeformXBase.AppendChild(xeformX);
|
}
|
else
|
{
|
xeformX = xmlDoc.CreateElement("yOffset");
|
xeformXBase.AppendChild(xeformX);
|
}
|
|
for (int j = 0; j < dt.Count; j++)
|
{
|
XmlElement xeformX1 = xmlDoc.CreateElement("node");
|
if (i == 0) // 距中心点X轴偏移
|
{
|
xeformX1.InnerText = dt[j].dropdown_id.ToString();
|
}
|
// 距中心点Y轴偏移
|
else
|
{
|
xeformX1.InnerText = dt[j].dropdown_name.ToString();
|
}
|
xeformX.AppendChild(xeformX1);
|
}
|
}
|
}
|
xeKey.AppendChild(xeformXBase);
|
}
|
#endregion
|
|
#region 创建第三设备方法的xml
|
public void CreateThirdPartXmlNode(int index, MethodThirdPart methodThirdPart, MethodEx mEx)
|
{
|
#region Base
|
XmlElement xeKey = xmlDoc.CreateElement("method"); // 创建子节点,并且设置子节点的属性
|
XmlAttribute xeType = xmlDoc.CreateAttribute("id");
|
xeType.InnerText = index.ToString();
|
xeKey.SetAttributeNode(xeType);
|
|
XmlElement xeformX = xmlDoc.CreateElement("isrun");
|
xeformX.InnerText = mEx.method_isrun;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("status");
|
xeformX.InnerText = (mEx.isEnabled ? "enable" : "disable");
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("name");
|
xeformX.InnerText = methodThirdPart.name;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("label");
|
xeformX.InnerText = methodThirdPart.label;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("strIndex");
|
xeformX.InnerText = mEx.strIndex;
|
xeKey.AppendChild(xeformX);
|
#endregion
|
|
xeformX = xmlDoc.CreateElement("isThirdPart");
|
xeformX.InnerText = true.ToString();
|
xeKey.AppendChild(xeformX);
|
|
#region Device
|
XmlElement xeformPoint = xmlDoc.CreateElement("device");
|
|
XmlElement xmlElt = xmlDoc.CreateElement("id");
|
xmlElt.InnerText = methodThirdPart.device==null?"": methodThirdPart.device.Id;
|
xeformPoint.AppendChild(xmlElt);
|
|
xmlElt = xmlDoc.CreateElement("name");
|
xmlElt.InnerText = methodThirdPart.device.Name;
|
xeformPoint.AppendChild(xmlElt);
|
|
xmlElt = xmlDoc.CreateElement("communicateType");
|
xmlElt.InnerText = methodThirdPart.device.CommunicateType.ToString();
|
xeformPoint.AppendChild(xmlElt);
|
|
xeKey.AppendChild(xeformPoint);
|
#endregion
|
|
#region DeviceMethod
|
xeformPoint = xmlDoc.CreateElement("method");
|
|
xmlElt = xmlDoc.CreateElement("id");
|
xmlElt.InnerText = methodThirdPart.deviceMethodValue;
|
xeformPoint.AppendChild(xmlElt);
|
|
xmlElt = xmlDoc.CreateElement("name");
|
xmlElt.InnerText = methodThirdPart.deviceMethodText;
|
xeformPoint.AppendChild(xmlElt);
|
|
xeKey.AppendChild(xeformPoint);
|
#endregion
|
|
// Socket-TCP标准协议
|
if (mEx.device.CommunicateType == EnumManagement.GetEnumValue(CommunicateTypeEnum.Socket))
|
{
|
// 创建Socket-TCP标准协议数据
|
CreateThirdPartSocketXmlNode(xmlDoc, xeKey, methodThirdPart);
|
}
|
else
|
{
|
}
|
|
root.AppendChild(xeKey);//挂载父节点
|
}
|
|
/// <summary>
|
/// 创建Socket-TCP标准协议数据
|
/// </summary>
|
/// <param name="xmlDoc"></param>
|
/// <param name="xeKey"></param>
|
/// <param name="methodThirdPart"></param>
|
private void CreateThirdPartSocketXmlNode(XmlDocument xmlDoc, XmlElement xeKey, MethodThirdPart methodThirdPart)
|
{
|
XmlElement xeformPoint = xmlDoc.CreateElement("paramtersSocket");
|
foreach (var ParametersItem in methodThirdPart.methodParametersData)
|
{
|
XmlElement xeformNew = xmlDoc.CreateElement("paramtersGroup");
|
xeformPoint.AppendChild(xeformNew);
|
|
XmlElement xmlElt = xmlDoc.CreateElement("id");
|
xmlElt.InnerText = ParametersItem.Id;
|
xeformNew.AppendChild(xmlElt);
|
|
xmlElt = xmlDoc.CreateElement("name");
|
xmlElt.InnerText = ParametersItem.ParameterName;
|
xeformNew.AppendChild(xmlElt);
|
|
xmlElt = xmlDoc.CreateElement("value");
|
xmlElt.InnerText = ParametersItem.Value;
|
xeformNew.AppendChild(xmlElt);
|
}
|
|
xeKey.AppendChild(xeformPoint);
|
}
|
#endregion
|
|
#region 创建梯度稀释方法的xml
|
public void CreateDilutionXmlNode(int index, MethodDilution methodDilution, MethodEx mi)
|
{
|
XmlElement xeKey = xmlDoc.CreateElement("method");//创建子节点,并且设置子节点的属性
|
XmlAttribute xeType = xmlDoc.CreateAttribute("id");
|
xeType.InnerText = index.ToString();
|
xeKey.SetAttributeNode(xeType);
|
|
XmlElement xeformX = xmlDoc.CreateElement("isrun");
|
xeformX.InnerText = mi.method_isrun;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("status");
|
xeformX.InnerText = (mi.isEnabled ? "enable" : "disable");
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("name");
|
xeformX.InnerText = methodDilution.name;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("label");
|
xeformX.InnerText = methodDilution.label;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("strIndex");
|
xeformX.InnerText = mi.strIndex;
|
xeKey.AppendChild(xeformX);
|
|
#region 机械臂
|
xeformX = xmlDoc.CreateElement("arm");
|
xeKey.AppendChild(xeformX);
|
XmlElement xeformX1 = xmlDoc.CreateElement("text");
|
xeformX1.InnerText = methodDilution.armText;
|
xeformX.AppendChild(xeformX1);
|
xeformX1 = xmlDoc.CreateElement("value");
|
xeformX1.InnerText = methodDilution.armValue;
|
xeformX.AppendChild(xeformX1);
|
|
xeformX = xmlDoc.CreateElement("headType");
|
xeformX.InnerText = methodDilution.headType;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("channels");
|
xeformX.InnerText = string.Join(",", methodDilution.channels);
|
xeKey.AppendChild(xeformX);
|
#endregion
|
|
#region 吸头盒
|
xeformX = xmlDoc.CreateElement("labwaretip");
|
xeKey.AppendChild(xeformX);
|
|
xeformX1 = xmlDoc.CreateElement("text");
|
xeformX1.InnerText = methodDilution.labwaretipText;
|
xeformX.AppendChild(xeformX1);
|
|
xeformX1 = xmlDoc.CreateElement("value");
|
xeformX1.InnerText = methodDilution.labwaretipValue;
|
xeformX.AppendChild(xeformX1);
|
#endregion
|
|
#region 选择目标板 相关
|
xeformX = xmlDoc.CreateElement("position");
|
xeKey.AppendChild(xeformX);
|
xeformX1 = xmlDoc.CreateElement("text");
|
xeformX1.InnerText = methodDilution.positionTextGradientDilution;
|
xeformX.AppendChild(xeformX1);
|
xeformX1 = xmlDoc.CreateElement("value");
|
xeformX1.InnerText = methodDilution.positionValueGradientDilution;
|
xeformX.AppendChild(xeformX1);
|
|
xeformX = xmlDoc.CreateElement("labware");
|
xeKey.AppendChild(xeformX);
|
xeformX1 = xmlDoc.CreateElement("text");
|
xeformX1.InnerText = methodDilution.labwareTextGradientDilution;
|
xeformX.AppendChild(xeformX1);
|
xeformX1 = xmlDoc.CreateElement("value");
|
xeformX1.InnerText = methodDilution.labwareValueGradientDilution;
|
xeformX.AppendChild(xeformX1);
|
|
xeformX = xmlDoc.CreateElement("wellarray");
|
xeformX.InnerText = methodDilution.wellarrayGradientDilution;
|
xeKey.AppendChild(xeformX);
|
|
// 体积
|
xeformX = xmlDoc.CreateElement("volume");
|
xeformX.InnerText = methodDilution.volume.ToString();
|
xeKey.AppendChild(xeformX);
|
|
#region 液体
|
// 液体类型
|
xeformX = xmlDoc.CreateElement("liquidType");
|
xeKey.AppendChild(xeformX);
|
xeformX1 = xmlDoc.CreateElement("text");
|
xeformX1.InnerText = methodDilution.liquidTypeTextGradientDilution;
|
xeformX.AppendChild(xeformX1);
|
xeformX1 = xmlDoc.CreateElement("value");
|
xeformX1.InnerText = methodDilution.liquidTypeValueGradientDilution;
|
xeformX.AppendChild(xeformX1);
|
|
// 液体范围
|
xeformX = xmlDoc.CreateElement("liquidRange");
|
xeKey.AppendChild(xeformX);
|
xeformX1 = xmlDoc.CreateElement("text");
|
xeformX1.InnerText = methodDilution.liquidRangeTextGradientDilution;
|
xeformX.AppendChild(xeformX1);
|
xeformX1 = xmlDoc.CreateElement("value");
|
xeformX1.InnerText = methodDilution.liquidRangeValueGradientDilution;
|
xeformX.AppendChild(xeformX1);
|
|
// 液体
|
xeformX = xmlDoc.CreateElement("liquid");
|
xeKey.AppendChild(xeformX);
|
xeformX1 = xmlDoc.CreateElement("text");
|
xeformX1.InnerText = methodDilution.liquidTextGradientDilution;
|
xeformX.AppendChild(xeformX1);
|
xeformX1 = xmlDoc.CreateElement("value");
|
xeformX1.InnerText = methodDilution.liquidValueGradientDilution;
|
xeformX.AppendChild(xeformX1);
|
#endregion
|
|
// 稀释方向
|
xeformX = xmlDoc.CreateElement("dilutionDirection");
|
xeKey.AppendChild(xeformX);
|
xeformX1 = xmlDoc.CreateElement("text");
|
xeformX1.InnerText = methodDilution.dilutionDirectionText;
|
xeformX.AppendChild(xeformX1);
|
xeformX1 = xmlDoc.CreateElement("value");
|
xeformX1.InnerText = EnumManagement.GetEnumValue(methodDilution.dilutionDirectionValue).ToString();
|
xeformX.AppendChild(xeformX1);
|
|
// 更换Tip
|
xeformX = xmlDoc.CreateElement("changeTipsValue");
|
xeformX.InnerText = methodDilution.changeTipsValueGradientDilution;
|
xeKey.AppendChild(xeformX);
|
|
// 舍弃选中范围最后一行或最后一列多余的体积
|
xeformX = xmlDoc.CreateElement("isDiscardLastVolume");
|
xeformX.InnerText = methodDilution.isDiscardLastVolume.ToString();
|
xeKey.AppendChild(xeformX);
|
#endregion
|
|
#region 梯度稀释设置 相关
|
xeformX = xmlDoc.CreateElement("positionDilution");
|
xeKey.AppendChild(xeformX);
|
xeformX1 = xmlDoc.CreateElement("text");
|
xeformX1.InnerText = methodDilution.positionTextAddDiluent;
|
xeformX.AppendChild(xeformX1);
|
xeformX1 = xmlDoc.CreateElement("value");
|
xeformX1.InnerText = methodDilution.positionValueAddDiluent;
|
xeformX.AppendChild(xeformX1);
|
|
xeformX = xmlDoc.CreateElement("labwareDilution");
|
xeKey.AppendChild(xeformX);
|
xeformX1 = xmlDoc.CreateElement("text");
|
xeformX1.InnerText = methodDilution.labwareTextAddDiluent;
|
xeformX.AppendChild(xeformX1);
|
xeformX1 = xmlDoc.CreateElement("value");
|
xeformX1.InnerText = methodDilution.labwareValueAddDiluent;
|
xeformX.AppendChild(xeformX1);
|
|
xeformX = xmlDoc.CreateElement("wellarrayDilution");
|
xeformX.InnerText = methodDilution.wellarrayAddDiluent;
|
xeKey.AppendChild(xeformX);
|
|
// 稀释倍数
|
xeformX = xmlDoc.CreateElement("dilutionFactor");
|
xeformX.InnerText = methodDilution.dilutionFactor.ToString();
|
xeKey.AppendChild(xeformX);
|
|
#region 液体
|
// 液体类型
|
xeformX = xmlDoc.CreateElement("liquidTypeDilution");
|
xeKey.AppendChild(xeformX);
|
xeformX1 = xmlDoc.CreateElement("text");
|
xeformX1.InnerText = methodDilution.liquidTypeTextAddDiluent;
|
xeformX.AppendChild(xeformX1);
|
xeformX1 = xmlDoc.CreateElement("value");
|
xeformX1.InnerText = methodDilution.liquidTypeValueAddDiluent;
|
xeformX.AppendChild(xeformX1);
|
|
// 液体范围
|
xeformX = xmlDoc.CreateElement("liquidRangeDilution");
|
xeKey.AppendChild(xeformX);
|
xeformX1 = xmlDoc.CreateElement("text");
|
xeformX1.InnerText = methodDilution.liquidRangeTextAddDiluent;
|
xeformX.AppendChild(xeformX1);
|
xeformX1 = xmlDoc.CreateElement("value");
|
xeformX1.InnerText = methodDilution.liquidRangeValueAddDiluent;
|
xeformX.AppendChild(xeformX1);
|
|
// 液体
|
xeformX = xmlDoc.CreateElement("liquidDilution");
|
xeKey.AppendChild(xeformX);
|
xeformX1 = xmlDoc.CreateElement("text");
|
xeformX1.InnerText = methodDilution.liquidTextAddDiluent;
|
xeformX.AppendChild(xeformX1);
|
xeformX1 = xmlDoc.CreateElement("value");
|
xeformX1.InnerText = methodDilution.liquidValueAddDiluent;
|
xeformX.AppendChild(xeformX1);
|
#endregion
|
|
#region 混合
|
xeformX = xmlDoc.CreateElement("enableMix");
|
xeformX.InnerText = methodDilution.bMix.ToString();
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("mixvolume");
|
xeformX.InnerText = methodDilution.mixvolume.ToString();
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("mixcount");
|
xeformX.InnerText = methodDilution.mixcount.ToString();
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("mixAspiratePosition");
|
xeKey.AppendChild(xeformX);
|
|
xeformX1 = xmlDoc.CreateElement("text");
|
xeformX1.InnerText = methodDilution.mixAspiratePositionText;
|
xeformX.AppendChild(xeformX1);
|
|
xeformX1 = xmlDoc.CreateElement("value");
|
xeformX1.InnerText = methodDilution.mixAspiratePositionValue.ToString();
|
xeformX.AppendChild(xeformX1);
|
|
xeformX = xmlDoc.CreateElement("mixAspirateDistance");
|
xeformX.InnerText = methodDilution.mixAspirateDistance.ToString();
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("mixAspirateSpeed");
|
xeformX.InnerText = methodDilution.mixAspirateSpeed.ToString();
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("mixDispensePosition");
|
xeKey.AppendChild(xeformX);
|
xeformX1 = xmlDoc.CreateElement("text");
|
xeformX1.InnerText = methodDilution.mixDispensePositionText;
|
xeformX.AppendChild(xeformX1);
|
xeformX1 = xmlDoc.CreateElement("value");
|
xeformX1.InnerText = methodDilution.mixDispensePositionValue.ToString();
|
xeformX.AppendChild(xeformX1);
|
|
xeformX = xmlDoc.CreateElement("mixDispenseDistance");
|
xeformX.InnerText = methodDilution.mixDispenseDistance.ToString();
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("mixDispenseSpeed");
|
xeformX.InnerText = methodDilution.mixDispenseSpeed.ToString();
|
xeKey.AppendChild(xeformX);
|
#endregion
|
|
// 更换Tip
|
xeformX = xmlDoc.CreateElement("changeTipsValueDilution");
|
xeformX.InnerText = methodDilution.changeTipsValueAddDiluent;
|
xeKey.AppendChild(xeformX);
|
|
// 目标板选中范围的首行或首列加入稀释液
|
xeformX = xmlDoc.CreateElement("isTargetSelectRangeFirstAddDiluent");
|
xeformX.InnerText = methodDilution.isTargetSelectRangeFirstAddDiluent.ToString();
|
xeKey.AppendChild(xeformX);
|
#endregion
|
|
root.AppendChild(xeKey);//挂载父节点
|
}
|
#endregion
|
|
#region 创建文件切胶方法的xml
|
public void CreateFileElectroCutGumXmlNode(int index, MethodElectroFile methodElectroFile, MethodEx mi)
|
{
|
XmlElement xeKey = xmlDoc.CreateElement("method");//创建子节点,并且设置子节点的属性
|
XmlAttribute xeType = xmlDoc.CreateAttribute("id");
|
xeType.InnerText = index.ToString();
|
xeKey.SetAttributeNode(xeType);
|
|
XmlElement xeformX = xmlDoc.CreateElement("isrun");
|
xeformX.InnerText = mi.method_isrun;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("status");
|
xeformX.InnerText = (mi.isEnabled ? "enable" : "disable");
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("name");
|
xeformX.InnerText = methodElectroFile.name;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("comment");
|
xeformX.InnerText = methodElectroFile.comment;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("label");
|
xeformX.InnerText = methodElectroFile.label;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("strIndex");
|
xeformX.InnerText = mi.strIndex;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("arm");
|
xeKey.AppendChild(xeformX);
|
|
XmlElement xeformX1 = xmlDoc.CreateElement("text");
|
xeformX1.InnerText = methodElectroFile.armText;
|
xeformX.AppendChild(xeformX1);
|
|
xeformX1 = xmlDoc.CreateElement("value");
|
xeformX1.InnerText = methodElectroFile.armValue;
|
xeformX.AppendChild(xeformX1);
|
|
xeformX = xmlDoc.CreateElement("headType");
|
xeformX.InnerText = methodElectroFile.headType;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("labwaretip");
|
xeKey.AppendChild(xeformX);
|
|
xeformX1 = xmlDoc.CreateElement("text");
|
xeformX1.InnerText = methodElectroFile.labwaretipText;
|
xeformX.AppendChild(xeformX1);
|
|
xeformX1 = xmlDoc.CreateElement("value");
|
xeformX1.InnerText = methodElectroFile.labwaretipValue;
|
xeformX.AppendChild(xeformX1);
|
|
xeformX = xmlDoc.CreateElement("channels");
|
string chs = string.Empty;
|
if (methodElectroFile.channels != null)
|
{
|
if (methodElectroFile.channels.Length != 0)
|
{
|
for (int i = 0; i < methodElectroFile.channels.Length; i++)
|
{
|
chs += methodElectroFile.channels[i] + ",";
|
}
|
chs = chs.Substring(0, chs.Length - 1);
|
}
|
}
|
|
xeformX.InnerText = chs;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("filePath");
|
xeformX.InnerText = methodElectroFile.filePath;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("beginLine");
|
xeformX.InnerText = methodElectroFile.beginLine.ToString();
|
xeKey.AppendChild(xeformX);
|
|
//DataTable转化成节点
|
CreateTransferFileDataTable(methodElectroFile, xeKey);
|
|
xeformX = xmlDoc.CreateElement("sourceLabware");
|
xeformX.InnerText = methodElectroFile.sourceLabware;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("sourceWell");
|
xeformX.InnerText = methodElectroFile.sourceWell;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("destinationLabware");
|
xeformX.InnerText = methodElectroFile.destinationLabware;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("destinationWell");
|
xeformX.InnerText = methodElectroFile.destinationWell;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("dpsVolume");
|
xeformX.InnerText = methodElectroFile.destVolume;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("tipSet");
|
xeformX.InnerText = methodElectroFile.tipSet;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("changeTipsMode");
|
xeformX.InnerText = methodElectroFile.changeTipsMode.ToString();
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("changeToTipText");
|
xeformX.InnerText = methodElectroFile.changeToTipText;
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("changeToTipValue");
|
xeformX.InnerText = methodElectroFile.changeToTipValue.ToString();
|
xeKey.AppendChild(xeformX);
|
|
xeformX = xmlDoc.CreateElement("liquidid");
|
xeKey.AppendChild(xeformX);
|
|
xeformX1 = xmlDoc.CreateElement("text");
|
xeformX1.InnerText = methodElectroFile.liquididText;
|
xeformX.AppendChild(xeformX1);
|
|
xeformX1 = xmlDoc.CreateElement("value");
|
xeformX1.InnerText = methodElectroFile.liquididValue;
|
xeformX.AppendChild(xeformX1);
|
|
xeformX = xmlDoc.CreateElement("liquidrangeid");
|
xeKey.AppendChild(xeformX);
|
|
xeformX1 = xmlDoc.CreateElement("text");
|
xeformX1.InnerText = methodElectroFile.liquidrangeidText;
|
xeformX.AppendChild(xeformX1);
|
|
xeformX1 = xmlDoc.CreateElement("value");
|
xeformX1.InnerText = methodElectroFile.liquidrangeidValue;
|
xeformX.AppendChild(xeformX1);
|
|
xeformX = xmlDoc.CreateElement("liquidpid");
|
xeKey.AppendChild(xeformX);
|
|
xeformX1 = xmlDoc.CreateElement("text");
|
xeformX1.InnerText = methodElectroFile.liquidpidText;
|
xeformX.AppendChild(xeformX1);
|
|
xeformX1 = xmlDoc.CreateElement("value");
|
xeformX1.InnerText = methodElectroFile.liquidpidValue;
|
xeformX.AppendChild(xeformX1);
|
|
root.AppendChild(xeKey);//挂载父节点
|
}
|
|
public void CreateTransferFileDataTable(MethodElectroFile methodElectroFile, XmlElement xeKey)
|
{
|
XmlElement xeformXBase = xmlDoc.CreateElement("transferDataTable");
|
DataTable dt = methodElectroFile.transferDataTable;
|
if (dt != null)
|
{
|
for (int i = 0; i < dt.Columns.Count; i++)
|
{
|
XmlElement xeformX = xmlDoc.CreateElement("subnode");
|
XmlAttribute xeType = xmlDoc.CreateAttribute("columnname");
|
xeType.InnerText = dt.Columns[i].ColumnName.ToString();
|
xeformX.SetAttributeNode(xeType);
|
|
xeformXBase.AppendChild(xeformX);
|
|
for (int j = 0; j < dt.Rows.Count; j++)
|
{
|
XmlElement xeformX1 = xmlDoc.CreateElement("node");
|
xeformX1.InnerText = dt.Rows[j][i].ToString();
|
xeformX.AppendChild(xeformX1);
|
}
|
}
|
}
|
xeKey.AppendChild(xeformXBase);
|
}
|
#endregion
|
|
#region 保存方法xml对象
|
public bool SaveXml(string filePath)
|
{
|
bool bIsOk = false;
|
try
|
{
|
if (xmlDoc.SelectNodes("root/method").Count > 0)
|
{
|
xmlDoc.Save(filePath);
|
bIsOk = true;
|
}
|
}
|
catch (Exception e)
|
{
|
LoggerHelper.ErrorLog("ERROR:", e);
|
bIsOk = false;
|
}
|
|
return bIsOk;
|
}
|
#endregion
|
|
#region 读取方法序列xml对象文件返回xmlDoc对象
|
/// <summary>
|
/// 读取方法序列xml对象文件返回xmlDoc对象
|
/// </summary>
|
/// <param name="fileName">文件路径</param>
|
/// <returns>xmlDoc对象</returns>
|
public XmlDocument ReadMethodFile(string fileName)
|
{
|
XmlDocument xmlDocument = new XmlDocument();
|
xmlDocument.Load(fileName);
|
return xmlDocument;
|
}
|
#endregion
|
}
|
}
|