using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Xml; using System.IO; using FileManager; namespace MeasureData { public class ConfigFile : ISlo { #region 内容 //是否仅拍照 private Boolean is_Photograph; public Boolean Is_Photograph { get { return this.is_Photograph; } set { this.is_Photograph = value; } } //是否PT沉积 private Boolean pt_Depostion; public Boolean PT_Depostion { get { return this.pt_Depostion; } set { this.pt_Depostion = value; } } //PT使用的ELY文件 private String pt_ELYFile; public String PT_ELYFile { get { return this.pt_ELYFile; } set { this.pt_ELYFile = value; } } //FIB使用的ELY文件 private String fib_ELYFile; public String FIB_ELYFile { get { return this.fib_ELYFile; } set { this.fib_ELYFile = value; } } //拉直操作需要的放大倍数 private double stretch_Magnification; public double Stretch_Magnification { get { return this.stretch_Magnification; } set { this.stretch_Magnification = value; } } //定位切割位置的放大倍数 private double location_Magnification; public double Location_Magnification { get { return this.location_Magnification; } set { this.location_Magnification = value; } } //定位切割位置的工作电压 private double location_Voltage; public double Location_Voltage { get { return this.location_Voltage; } set { this.location_Voltage = value; } } //拍照的放大倍数 private double photograph_Magnification; public double Photograph_Magnification { get { return this.photograph_Magnification; } set { this.photograph_Magnification = value; } } //拍照的工作电压 private double photograph_Voltage; public double Photograph_Voltage { get { return this.photograph_Voltage; } set { this.photograph_Voltage = value; } } //校正角度选择 private double correction_Angle; public double Correction_Angle { get { return this.correction_Angle; } set { this.correction_Angle = value; } } //样品类型 private String sample_Type; public String Sample_Type { get { return this.sample_Type; } set { this.sample_Type = value; } } //厂商 private String firm; public String Firm { get { return this.firm; } set { this.firm = value; } } //对焦参数 //能谱参数 #endregion public ConfigFile() { } /// /// 创建XML文件 /// /// 创建XML文件的全路径 /// 0:失败;1:成功;2:文件已存在 public int CreateXml(String filename) { if (!File.Exists(filename)) { if (XmlManager.CreateXmlFile(filename)) { return 1; } else { return 0; } } else { XmlManager.CreateXmlFile(filename); return 2; } } //保存 public bool Save(String filename) { CreateXml(filename); XmlDocument doc = new XmlDocument(); if (File.Exists(filename)) { doc.Load(filename);//载入xml文件 } else { return false; //当前路径不存在 } XmlNode root = doc.SelectSingleNode("XMLData"); Serialize(true, doc, root); doc.Save(filename); return true; } //读取 public bool Read(String filename) { XmlDocument doc = new XmlDocument(); if (File.Exists(filename)) { doc.Load(filename);//载入xml文件 } else { return false; //当前路径不存在 } XmlNode root = doc.SelectSingleNode("XMLData"); Serialize(false, doc, root); //doc.Save(filename); return true; } //XML文件保存 //样品孔存储xml文档 public override void Serialize(bool isStoring, XmlDocument xml, XmlNode rootNode) { Slo sFile = new Slo(); xBool isPhotograph = new xBool(); xBool ptDepostion = new xBool(); isPhotograph.AssignValue(this.is_Photograph); ptDepostion.AssignValue(this.pt_Depostion); sFile.Register("Is_Photograph", isPhotograph); sFile.Register("PT_Depostion", ptDepostion); xString ptELYFile = new xString(); xString fibELYFile = new xString(); ptELYFile.AssignValue(this.pt_ELYFile); fibELYFile.AssignValue(this.fib_ELYFile); sFile.Register("PT_ELYFile", ptELYFile); sFile.Register("FIB_ELYFile", fibELYFile); xDouble stretchMagnification = new xDouble(); xDouble locationMagnification = new xDouble(); xDouble locationVoltage = new xDouble(); xDouble photographMagnification = new xDouble(); xDouble photographVoltage = new xDouble(); stretchMagnification.AssignValue(this.stretch_Magnification); locationMagnification.AssignValue(this.location_Magnification); locationVoltage.AssignValue(this.location_Voltage); photographMagnification.AssignValue(this.photograph_Magnification); photographVoltage.AssignValue(this.photograph_Voltage); sFile.Register("Strectch_Magnification", stretchMagnification); sFile.Register("Locatio_Magnification", locationMagnification); sFile.Register("Location_Voltage", locationVoltage); sFile.Register("Photograph_Magnification", photographMagnification); sFile.Register("Photograph_Voltage", photographVoltage); xDouble correctionAngle = new xDouble(); correctionAngle.AssignValue(this.correction_Angle); sFile.Register("Correction_Angle", correctionAngle); xString sampleType = new xString(); xString _firm = new xString(); sampleType.AssignValue(this.sample_Type); _firm.AssignValue(this.firm); sFile.Register("Sample_Type", sampleType); sFile.Register("Firm", _firm); if (isStoring) { sFile.Serialize(true, xml, rootNode); } else { sFile.Serialize(false, xml, rootNode); this.is_Photograph = isPhotograph.value(); this.pt_Depostion = ptDepostion.value(); this.pt_ELYFile = ptELYFile.value(); this.fib_ELYFile = fibELYFile.value(); this.stretch_Magnification = stretchMagnification.value(); this.location_Magnification = locationMagnification.value(); this.location_Voltage = locationVoltage.value(); this.photograph_Magnification = photographMagnification.value(); this.photograph_Voltage = photographVoltage.value(); this.correction_Angle = correctionAngle.value(); this.sample_Type = sampleType.value(); this.firm = _firm.value(); } } } }