//时间:20200618 //作者:郝爽 //功能:测量参数 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using FileManager; using System.Xml; using System.IO; namespace MeasureData { public class MeasureParam : ISlo { #region 内容 //工作条件,一次测量的全部切孔都是一类的 // 样品类型 private string m_SampleName; public string SampleName { get { return this.m_SampleName; } set { this.m_SampleName = value; } } //是否仅拍照 private Boolean is_Photograph; public Boolean Is_Photograph { get { return this.is_Photograph; } set { this.is_Photograph = value; } } //是否有pt工序 private Boolean m_pt; public Boolean PT { get { return this.m_pt; } set { this.m_pt = value; } } //倾斜样品台 private Boolean m_Tilt; public Boolean Tilt { get { return this.m_Tilt; } set { this.m_Tilt = value; } } //是否有EDS private Boolean m_EDS; public Boolean EDS { get { return this.m_EDS; } set { this.m_EDS = value; } } //能谱Z轴移动的位置 private float edsZ; public float EDSZ { get { return this.edsZ; } set { this.edsZ = value; } } //能谱电压设定值 private float edsV; public float EDSV { get { return this.edsV; } set { this.edsV = value; } } //能谱电压设定值 private float edsA; public float EDSA { get { return this.edsA; } set { this.edsA = value; } } //Z轴移动的范围 private float m_dZ; public float ZDistance { get { return this.m_dZ; } set { this.m_dZ = value; } } //FIB使用的ELY文件 private string m_fibTemp; public string FIBTemp { get { return this.m_fibTemp; } set { this.m_fibTemp = value; } } //PT使用的ELY文件 private string m_ptTemp; public string PTTemp { get { return this.m_ptTemp; } set { this.m_ptTemp = value; } } //对焦方式,自动对焦还是手动对焦,手动对焦是1,自有自动对焦2,客户自动对焦3 private int m_fMode; public int FocusMode { get { return m_fMode; } set { m_fMode = value; } } //拉直操作需要的放大位数 private float stretch_Magnification; public float Stretch_Magnification { get { return this.stretch_Magnification; } set { this.stretch_Magnification = value; } } //定位切割位置的放大倍数 private float location_Magnification; public float Location_Magnification { get { return this.location_Magnification; } set { this.location_Magnification = value; } } //定位切割位置的工作电压 private float location_Voltage; public float Location_Voltage { get { return this.location_Voltage; } set { this.location_Voltage = value; } } //拍照的放大倍数 private float photograph_Magnification; public float Photograph_Magnification { get { return this.photograph_Magnification; } set { this.photograph_Magnification = value; } } //拍照的工作电压 private float photograph_Voltage; public float Photograph_Voltage { get { return this.photograph_Voltage; } set { this.photograph_Voltage = value; } } //FIB拍照时的放大倍数 private float fib_Magnification; public float FIB_Magnification { get { return this.fib_Magnification; } set { this.fib_Magnification = value; } } //校正角度选择 private float correction_Angle; public float Correction_Angle { get { return this.correction_Angle; } set { this.correction_Angle = value; } } //厂商 private String firm; public String Firm { get { return this.firm; } set { this.firm = value; } } //对焦参数, SEM private FocusParamold focusP; public FocusParamold AutoFocus { get { return this.focusP; } set { this.focusP = value; } } //对焦参数, FIB private FocusParamold focusF; public FocusParamold FIBFocus { get { return this.focusF; } set { this.focusF = value; } } //消像散x参数 private FocusParamold StigX; public FocusParamold AutoStigX { get { return this.StigX; } set { this.StigX = value; } } //消像散Y参数 private FocusParamold StigY; public FocusParamold AutoStigY { get { return this.StigY; } set { this.StigY = value; } } //EDS参数 private EDSParam EdsParam; public EDSParam EDSParam { get { return this.EdsParam; } set { this.EdsParam = value; } } #region 放大倍数档位切换功能 //档位阈值4个,4个偏差补偿值 private bool bMagComp; public bool MagComp { get { return this.bMagComp; } set { this.bMagComp = value; } } private float fMagRange1; public float MagRange1 { get { return this.fMagRange1; } set { if (value < this.fMagRange2) this.fMagRange1 = value; } } private float fMagCompX1; public float MagCompX1 { get { return this.fMagCompX1; } set { this.fMagCompX1 = value; } } private float fMagCompY1; public float MagCompY1 { get { return this.fMagCompY1; } set { this.fMagCompY1 = value; } } private float fMagRange2; public float MagRange2 { get { return this.fMagRange2; } set { if ((value > this.fMagRange1) && (value < this.fMagRange3)) this.fMagRange2 = value; } } private float fMagCompX2; public float MagCompX2 { get { return this.fMagCompX2; } set { this.fMagCompX2 = value; } } private float fMagCompY2; public float MagCompY2 { get { return this.fMagCompY2; } set { this.fMagCompY2 = value; } } private float fMagRange3; public float MagRange3 { get { return this.fMagRange3; } set { if ((value > this.fMagRange2) && (value < this.fMagRange4)) this.fMagRange3 = value; } } private float fMagCompX3; public float MagCompX3 { get { return this.fMagCompX3; } set { this.fMagCompX3 = value; } } private float fMagCompY3; public float MagCompY3 { get { return this.fMagCompY3; } set { this.fMagCompY3 = value; } } private float fMagRange4; public float MagRange4 { get { return this.fMagRange4; } set { if (value > this.fMagRange3) this.fMagRange4 = value; } } private float fMagCompX4; public float MagCompX4 { get { return this.fMagCompX4; } set { this.fMagCompX4 = value; } } private float fMagCompY4; public float MagCompY4 { get { return this.fMagCompY4; } set { this.fMagCompY4 = value; } } #endregion #region FIB自动亮度对比度调整 //是否调节FIB private bool IsFIBDo; public bool FIBDo { get { return this.IsFIBDo; } set { this.IsFIBDo = value; } } //是否开启亮度对比度自动调节 private bool IsFIBAutoBC; public bool FIBAutoBC { get { return this.IsFIBAutoBC; } set { this.IsFIBAutoBC = value; } } //关闭亮度对比度时,亮度和对比度的设置值 private float FIBBright; public float FIBB { get { return this.FIBBright; } set { this.FIBBright = value; } } private float FIBContrast; public float FIBC { get { return this.FIBContrast; } set { this.FIBContrast = value; } } //是否开启在其他位置调节亮度对比度功能,再挪回原来位置 #endregion //ScanRotation修正角度 private float scanRotCor; public float ScanRotCor { get { return this.scanRotCor; } set { this.scanRotCor = value; } } //ScanRotation修正角度 private float pixelSizeCor; public float PixelSizeCor { get { return this.pixelSizeCor; } set { this.pixelSizeCor = value; } } //能谱参数 #region add by sun 2020-12-15 增加不同样品扫描速度参数 //正常情况下默认扫描速度 private String m_ScanSpeedNormal; public String ScanSpeedNormal { get { return this.m_ScanSpeedNormal; } set { this.m_ScanSpeedNormal = value; } } //对焦拍照扫描速度 private String m_ScanSpeedFocus; public String ScanSpeedFocus { get { return this.m_ScanSpeedFocus; } set { this.m_ScanSpeedFocus = value; } } //高倍拍照扫描速度 private String m_ScanSpeedHigh; public String ScanSpeedHigh { get { return this.m_ScanSpeedHigh; } set { this.m_ScanSpeedHigh = value; } } #endregion add by sun 2020-12-15 增加不同样品扫描速度参数end //add by sun 2020-12-17 增加调试时是否切割开关 private bool m_IsCutingForDebug; public bool IsCutingForDebug { get { return this.m_IsCutingForDebug; } set { this.m_IsCutingForDebug = value; } } //add by sun 2020-12-17 增加调试时是否切割开关 end //add by zjx 2020-12-18 为了测试只做能谱部分 private bool m_IsonlyEDSForDebug; public bool IsonlyEDSForDebug { get { return this.m_IsonlyEDSForDebug; } set { this.m_IsonlyEDSForDebug = value; } } //add by zjx 2020-12-18 为了测试只做能谱部分 end #endregion #region 初始化样品的默认参数 // add by zjx 2020-12-20 厂商名字 #region 厂商 private String m_VendorType0; public String VendorType0 { get { return this.m_VendorType0; } set { this.m_VendorType0 = value; } } private String m_VendorType1; public String VendorType1 { get { return this.m_VendorType1; } set { this.m_VendorType1 = value; } } private String m_VendorType2; public String VendorType2 { get { return this.m_VendorType2; } set { this.m_VendorType2 = value; } } private String m_VendorType3; public String VendorType3 { get { return this.m_VendorType3; } set { this.m_VendorType3 = value; } } private String m_VendorType4; public String VendorType4 { get { return this.m_VendorType4; } set { this.m_VendorType4 = value; } } private String m_VendorType5; public String VendorType5 { get { return this.m_VendorType5; } set { this.m_VendorType5 = value; } } #endregion // add by zjx 2020-12-20 厂商名字 end // add by zjx 2020-12-20 校正角度 #region 校正角度 private String m_CorrectionType0; public String CorrectionType0 { get { return this.m_CorrectionType0; } set { this.m_CorrectionType0 = value; } } private String m_CorrectionType1; public String CorrectionType1 { get { return this.m_CorrectionType1; } set { this.m_CorrectionType1 = value; } } private String m_CorrectionType2; public String CorrectionType2 { get { return this.m_CorrectionType2; } set { this.m_CorrectionType2 = value; } } private String m_CorrectionType3; public String CorrectionType3 { get { return this.m_CorrectionType3; } set { this.m_CorrectionType3 = value; } } private String m_CorrectionType4; public String CorrectionType4 { get { return this.m_CorrectionType4; } set { this.m_CorrectionType4 = value; } } private String m_CorrectionType5; public String CorrectionType5 { get { return this.m_CorrectionType5; } set { this.m_CorrectionType5 = value; } } #endregion //add by zjx 2020-12-20 校正角度 end //add by zjx 2020-12-20 拉直操作放大倍数 #region 拉直操作放大倍数 private String m_StraightenTimesType0; public String StraightenTimesType0 { get { return this.m_StraightenTimesType0; } set { this.m_StraightenTimesType0 = value; } } private String m_StraightenTimesType1; public String StraightenTimesType1 { get { return this.m_StraightenTimesType1; } set { this.m_StraightenTimesType1 = value; } } private String m_StraightenTimesType2; public String StraightenTimesType2 { get { return this.m_StraightenTimesType2; } set { this.m_StraightenTimesType2 = value; } } private String m_StraightenTimesType3; public String StraightenTimesType3 { get { return this.m_StraightenTimesType3; } set { this.m_StraightenTimesType3 = value; } } private String m_StraightenTimesType4; public String StraightenTimesType4 { get { return this.m_StraightenTimesType4; } set { this.m_StraightenTimesType4 = value; } } private String m_StraightenTimesType5; public String StraightenTimesType5 { get { return this.m_StraightenTimesType5; } set { this.m_StraightenTimesType5 = value; } } #endregion //add by zjx 2020-12-20 拉直操作放大倍数 end //add by zjx 2020-12-20 样品类型的定位电压 #region 样品类型的定位电压 private String m_PositioningVoltageeType0; public String PositioningVoltageeType0 { get { return this.m_PositioningVoltageeType0; } set { this.m_PositioningVoltageeType0 = value; } } private String m_PositioningVoltageeType1; public String PositioningVoltageeType1 { get { return this.m_PositioningVoltageeType1; } set { this.m_PositioningVoltageeType1 = value; } } private String m_PositioningVoltageeType2; public String PositioningVoltageeType2 { get { return this.m_PositioningVoltageeType2; } set { this.m_PositioningVoltageeType2 = value; } } private String m_PositioningVoltageeType3; public String PositioningVoltageeType3 { get { return this.m_PositioningVoltageeType3; } set { this.m_PositioningVoltageeType3 = value; } } private String m_PositioningVoltageeType4; public String PositioningVoltageeType4 { get { return this.m_PositioningVoltageeType4; } set { this.m_PositioningVoltageeType4 = value; } } private String m_PositioningVoltageeType5; public String PositioningVoltageeType5 { get { return this.m_PositioningVoltageeType5; } set { this.m_PositioningVoltageeType5 = value; } } #endregion //add by zjx 2020-12-20 样品类型的定位电压 end //add by zjx 2020-12-20 样品类型的定位放大倍数 #region 定位放大倍数 private String m_PositioningTimesType0; public String PositioningTimesType0 { get { return this.m_PositioningTimesType0; } set { this.m_PositioningTimesType0 = value; } } private String m_PositioningTimesType1; public String PositioningTimesType1 { get { return this.m_PositioningTimesType1; } set { this.m_PositioningTimesType1 = value; } } private String m_PositioningTimesType2; public String PositioningTimesType2 { get { return this.m_PositioningTimesType2; } set { this.m_PositioningTimesType2 = value; } } private String m_PositioningTimesType3; public String PositioningTimesType3 { get { return this.m_PositioningTimesType3; } set { this.m_PositioningTimesType3 = value; } } private String m_PositioningTimesType4; public String PositioningTimesType4 { get { return this.m_PositioningTimesType4; } set { this.m_PositioningTimesType4 = value; } } private String m_PositioningTimesType5; public String PositioningTimesType5 { get { return this.m_PositioningTimesType5; } set { this.m_PositioningTimesType5 = value; } } #endregion //add by zjx 2020-12-20 样品类型的定位放大倍数 end //add by zjx 2020-12-20 样品类型的拍照电压 #region 拍照电压 private String m_PhotoVoltageeType0; public String PhotoVoltageeType0 { get { return this.m_PhotoVoltageeType0; } set { this.m_PhotoVoltageeType0 = value; } } private String m_PhotoVoltageeType1; public String PhotoVoltageeType1 { get { return this.m_PhotoVoltageeType1; } set { this.m_PhotoVoltageeType1 = value; } } private String m_PhotoVoltageeType2; public String PhotoVoltageeType2 { get { return this.m_PhotoVoltageeType2; } set { this.m_PhotoVoltageeType2 = value; } } private String m_PhotoVoltageeType3; public String PhotoVoltageeType3 { get { return this.m_PhotoVoltageeType3; } set { this.m_PhotoVoltageeType3 = value; } } private String m_PhotoVoltageeType4; public String PhotoVoltageeType4 { get { return this.m_PhotoVoltageeType4; } set { this.m_PhotoVoltageeType4 = value; } } private String m_PhotoVoltageeType5; public String PhotoVoltageeType5 { get { return this.m_PhotoVoltageeType5; } set { this.m_PhotoVoltageeType5 = value; } } #endregion //add by zjx 2020-12-20 样品类型的拍照电压 end //add by zjx 2020-12-20 样品类型的拍照放大倍数 #region 拍照放大倍数 private String m_PhotoTimesType0; public String PhotoTimesType0 { get { return this.m_PhotoTimesType0; } set { this.m_PhotoTimesType0 = value; } } private String m_PhotoTimesType1; public String PhotoTimesType1 { get { return this.m_PhotoTimesType1; } set { this.m_PhotoTimesType1 = value; } } private String m_PhotoTimesType2; public String PhotoTimesType2 { get { return this.m_PhotoTimesType2; } set { this.m_PhotoTimesType2 = value; } } private String m_PhotoTimesType3; public String PhotoTimesType3 { get { return this.m_PhotoTimesType3; } set { this.m_PhotoTimesType3 = value; } } private String m_PhotoTimesType4; public String PhotoTimesType4 { get { return this.m_PhotoTimesType4; } set { this.m_PhotoTimesType4 = value; } } private String m_PhotoTimesType5; public String PhotoTimesType5 { get { return this.m_PhotoTimesType5; } set { this.m_PhotoTimesType5 = value; } } #endregion //add by zjx 2020-12-20 样品类型的拍照放大倍数 end //add by zjx 2020-12-20 样品类型的ScanRotate修正参数 #region ScanRotate修正参数 private String m_ScanRotateType0; public String ScanRotateType0 { get { return this.m_ScanRotateType0; } set { this.m_ScanRotateType0 = value; } } private String m_ScanRotateType1; public String ScanRotateType1 { get { return this.m_ScanRotateType1; } set { this.m_ScanRotateType1 = value; } } private String m_ScanRotateType2; public String ScanRotateType2 { get { return this.m_ScanRotateType2; } set { this.m_ScanRotateType2 = value; } } private String m_ScanRotateType3; public String ScanRotateType3 { get { return this.m_ScanRotateType3; } set { this.m_ScanRotateType3 = value; } } private String m_ScanRotateType4; public String ScanRotateType4 { get { return this.m_ScanRotateType4; } set { this.m_ScanRotateType4 = value; } } private String m_ScanRotateType5; public String ScanRotateType5 { get { return this.m_ScanRotateType5; } set { this.m_ScanRotateType5 = value; } } #endregion //add by zjx 2020-12-20 样品类型的ScanRotate修正参数 end //add by zjx 2020-12-20 样品类型的Y轴方向PixelSize修正值 #region Y轴方向PixelSize修正值 private String m_PixelSizeType0; public String PixelSizeType0 { get { return this.m_PixelSizeType0; } set { this.m_PixelSizeType0 = value; } } private String m_PixelSizeType1; public String PixelSizeType1 { get { return this.m_PixelSizeType1; } set { this.m_PixelSizeType1 = value; } } private String m_PixelSizeType2; public String PixelSizeType2 { get { return this.m_PixelSizeType2; } set { this.m_PixelSizeType2 = value; } } private String m_PixelSizeType3; public String PixelSizeType3 { get { return this.m_PixelSizeType3; } set { this.m_PixelSizeType3 = value; } } private String m_PixelSizeType4; public String PixelSizeType4 { get { return this.m_PixelSizeType4; } set { this.m_PixelSizeType4 = value; } } private String m_PixelSizeType5; public String PixelSizeType5 { get { return this.m_PixelSizeType5; } set { this.m_PixelSizeType5 = value; } } #endregion //add by zjx 2020-12-20 样品类型的Y轴方向PixelSize修正值 end //add by zjx 2020-12-20 样品类型的能谱Z轴移动位置 #region 能谱Z轴移动位置 private String m_SEMAxis_ZType0; public String SEMAxis_ZType0 { get { return this.m_SEMAxis_ZType0; } set { this.m_SEMAxis_ZType0 = value; } } private String m_SEMAxis_ZType1; public String SEMAxis_ZType1 { get { return this.m_SEMAxis_ZType1; } set { this.m_SEMAxis_ZType1 = value; } } private String m_SEMAxis_ZType2; public String SEMAxis_ZType2 { get { return this.m_SEMAxis_ZType2; } set { this.m_SEMAxis_ZType2 = value; } } private String m_SEMAxis_ZType3; public String SEMAxis_ZType3 { get { return this.m_SEMAxis_ZType3; } set { this.m_SEMAxis_ZType3 = value; } } private String m_SEMAxis_ZType4; public String SEMAxis_ZType4 { get { return this.m_SEMAxis_ZType4; } set { this.m_SEMAxis_ZType4 = value; } } private String m_SEMAxis_ZType5; public String SEMAxis_ZType5 { get { return this.m_SEMAxis_ZType5; } set { this.m_SEMAxis_ZType5 = value; } } #endregion //add by zjx 2020-12-20 样品类型的能谱Z轴移动位置 end //add by zjx 2020-12-20 样品类型的能谱电压值 #region 能谱电压值 private String m_SEMVoltageeType0; public String SEMVoltageeType0 { get { return this.m_SEMVoltageeType0; } set { this.m_SEMVoltageeType0 = value; } } private String m_SEMVoltageeType1; public String SEMVoltageeType1 { get { return this.m_SEMVoltageeType1; } set { this.m_SEMVoltageeType1 = value; } } private String m_SEMVoltageeType2; public String SEMVoltageeType2 { get { return this.m_SEMVoltageeType2; } set { this.m_SEMVoltageeType2 = value; } } private String m_SEMVoltageeType3; public String SEMVoltageeType3 { get { return this.m_SEMVoltageeType3; } set { this.m_SEMVoltageeType3 = value; } } private String m_SEMVoltageeType4; public String SEMVoltageeType4 { get { return this.m_SEMVoltageeType4; } set { this.m_SEMVoltageeType4 = value; } } private String m_SEMVoltageeType5; public String SEMVoltageeType5 { get { return this.m_SEMVoltageeType5; } set { this.m_SEMVoltageeType5 = value; } } #endregion //add by zjx 2020-12-20 样品类型的能谱电压值 end //add by zjx 2020-12-20 样品类型的能谱电流值 #region 能谱电流值 private String m_SEMCurrentType0; public String SEMCurrentType0 { get { return this.m_SEMCurrentType0; } set { this.m_SEMCurrentType0 = value; } } private String m_SEMCurrentType1; public String SEMCurrentType1 { get { return this.m_SEMCurrentType1; } set { this.m_SEMCurrentType1 = value; } } private String m_SEMCurrentType2; public String SEMCurrentType2 { get { return this.m_SEMCurrentType2; } set { this.m_SEMCurrentType2 = value; } } private String m_SEMCurrentType3; public String SEMCurrentType3 { get { return this.m_SEMCurrentType3; } set { this.m_SEMCurrentType3 = value; } } private String m_SEMCurrentType4; public String SEMCurrentType4 { get { return this.m_SEMCurrentType4; } set { this.m_SEMCurrentType4 = value; } } private String m_SEMCurrentType5; public String SEMCurrentType5 { get { return this.m_SEMCurrentType5; } set { this.m_SEMCurrentType5 = value; } } #endregion //add by zjx 2020-12-20 样品类型的能谱电流值 end #endregion //构造函数 public MeasureParam() { Init(); } public void Init() { this.SampleName = @""; this.PT = false; this.FIBTemp = @""; this.PTTemp = @""; this.FocusMode = 2; this.AutoFocus = new FocusParamold(); this.AutoFocus.TYPE = 1; this.AutoStigX = new FocusParamold(); this.AutoStigX.TYPE = 2; this.AutoStigY = new FocusParamold(); this.AutoStigY.TYPE = 3; this.FIBFocus = new FocusParamold(); this.FIBFocus.TYPE = 4; this.Tilt = false; this.ZDistance = 0; this.EDS = false; this.EDSZ = 0.005f; this.EDSV = 10000; this.EDSA = 0.0000000005f; this.EDSParam = new EDSParam(); //FIB自动亮度对比度 this.FIBDo = false; this.FIBAutoBC = false; this.FIBB = 51; this.FIBC = 33; //档位阈值4个,4个偏差补偿值 this.MagComp = false; this.MagRange1 = 300; this.MagCompX1 = 0; this.MagCompY1 = 0; this.MagRange2 = 700; this.MagCompX2 = 0; this.MagCompY2 = 0; this.MagRange3 = 2000; this.MagCompX3 = 0; this.MagCompY3 = 0; this.MagRange4 = 6000; this.fMagCompX4 = 0; this.fMagCompY4 = 0; this.ScanRotCor = 1; this.PixelSizeCor = 1; //add by sun 2020-12-15 增加不同样品扫描速度参数 this.ScanSpeedNormal = "CMD_SCANRATE4"; this.ScanSpeedFocus = "CMD_SCANRATE5"; this.ScanSpeedHigh = "CMD_SCANRATE7"; //add by sun 2020-12-15 增加不同样品扫描速度参数 end } //XML文件保存测量参数 public override void Serialize(bool isStoring, XmlDocument xml, XmlNode rootNode) { Slo sFile = new Slo(); //是否拍照和PT xBool isPhotograph = new xBool(); xBool ptDepostion = new xBool(); xBool isTilt = new xBool(); xBool isEDS = new xBool(); isTilt.AssignValue(this.Tilt); isEDS.AssignValue(this.EDS); isPhotograph.AssignValue(this.is_Photograph); ptDepostion.AssignValue(this.m_pt); sFile.Register("Is_Title", isTilt); sFile.Register("Is_Photograph", isPhotograph); sFile.Register("PT_Depostion", ptDepostion); sFile.Register("Is_EDS", isEDS); //ELY文件 xString ptELYFile = new xString(); xString fibELYFile = new xString(); ptELYFile.AssignValue(this.m_ptTemp); fibELYFile.AssignValue(this.m_fibTemp); sFile.Register("PT_ELYFile", ptELYFile); sFile.Register("FIB_ELYFile", fibELYFile); //对焦方式 xInt focusmode = new xInt(); focusmode.AssignValue(this.m_fMode); sFile.Register("FocusMode", focusmode); //放大倍数和电压参数 xDouble stretchMagnification = new xDouble(); xDouble locationMagnification = new xDouble(); xDouble locationVoltage = new xDouble(); xDouble photographMagnification = new xDouble(); xDouble photographVoltage = new xDouble(); xDouble fibMagnification = new xDouble(); xDouble ZDistance = new xDouble(); xDouble xEDSZ = new xDouble(); xDouble xEDSV = new xDouble(); xDouble xEDSA = new xDouble(); xEDSZ.AssignValue(this.edsZ); xEDSV.AssignValue(this.edsV); xEDSA.AssignValue(this.edsA); ZDistance.AssignValue(this.ZDistance); 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); fibMagnification.AssignValue(this.fib_Magnification); 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); sFile.Register("FIB_Magnification", fibMagnification); sFile.Register("ZDistance", ZDistance); sFile.Register("EDSZ", xEDSZ); sFile.Register("EDSV", xEDSV); sFile.Register("EDSA", xEDSA); //校正角度 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.m_SampleName); _firm.AssignValue(this.firm); sFile.Register("Sample_Type", sampleType); sFile.Register("Firm", _firm); //对焦参数 sFile.Register("Focus_Param", this.focusP); sFile.Register("FIBFocus_Param", this.FIBFocus); sFile.Register("StigX_Param", this.AutoStigX); sFile.Register("StigY_Param", this.AutoStigY); sFile.Register("EDS_Param", this.EDSParam); //FIB亮度对比 xBool isFIBDo = new xBool(); xBool isFIBAutoBC = new xBool(); xDouble xFIBB = new xDouble(); xDouble xFIBC = new xDouble(); xBool isMagComp = new xBool(); xDouble xMagRange1 = new xDouble(); xDouble xMagCompX1 = new xDouble(); xDouble xMagCompY1 = new xDouble(); xDouble xMagRange2 = new xDouble(); xDouble xMagCompX2 = new xDouble(); xDouble xMagCompY2 = new xDouble(); xDouble xMagRange3 = new xDouble(); xDouble xMagCompX3 = new xDouble(); xDouble xMagCompY3 = new xDouble(); xDouble xMagRange4 = new xDouble(); xDouble xMagCompX4 = new xDouble(); xDouble xMagCompY4 = new xDouble(); isFIBDo.AssignValue(this.FIBDo); isFIBAutoBC.AssignValue(this.FIBAutoBC); xFIBB.AssignValue(this.FIBB); xFIBC.AssignValue(this.FIBC); isMagComp.AssignValue(this.MagComp); xMagRange1.AssignValue(this.MagRange1); xMagCompX1.AssignValue(this.MagCompX1); xMagCompY1.AssignValue(this.MagCompY1); xMagRange2.AssignValue(this.MagRange2); xMagCompX2.AssignValue(this.MagCompX2); xMagCompY2.AssignValue(this.MagCompY2); xMagRange3.AssignValue(this.MagRange3); xMagCompX3.AssignValue(this.MagCompX3); xMagCompY3.AssignValue(this.MagCompY3); xMagRange4.AssignValue(this.MagRange4); xMagCompX4.AssignValue(this.MagCompX4); xMagCompY4.AssignValue(this.MagCompY4); sFile.Register("Is_FIBDo", isFIBDo); sFile.Register("Is_FIBAutoBC", isFIBAutoBC); sFile.Register("FIB_B", xFIBB); sFile.Register("FIB_C", xFIBC); sFile.Register("Mag_Comp", isMagComp); sFile.Register("Mag_Range1", xMagRange1); sFile.Register("Mag_CompX1", xMagCompX1); sFile.Register("Mag_CompY1", xMagCompY1); sFile.Register("Mag_Range2", xMagRange2); sFile.Register("Mag_CompX2", xMagCompX2); sFile.Register("Mag_CompY2", xMagCompY2); sFile.Register("Mag_Range3", xMagRange3); sFile.Register("Mag_CompX3", xMagCompX3); sFile.Register("Mag_CompY3", xMagCompY3); sFile.Register("Mag_Range4", xMagRange4); sFile.Register("Mag_CompX4", xMagCompX4); sFile.Register("Mag_CompY4", xMagCompY4); //ScanRotate修正 xDouble scanRotate = new xDouble(); scanRotate.AssignValue(this.scanRotCor); sFile.Register("ScanRotateCorrect", scanRotate); //PixelSize_Y轴补偿 xDouble pscor = new xDouble(); pscor.AssignValue(this.pixelSizeCor); sFile.Register("PixelSizeYCorrect", pscor); if (isStoring) { sFile.Serialize(true, xml, rootNode); } else { sFile.Serialize(false, xml, rootNode); this.is_Photograph = isPhotograph.value(); this.m_pt = ptDepostion.value(); this.Tilt = isTilt.value(); this.EDS = isEDS.value(); this.m_ptTemp = ptELYFile.value(); this.m_fibTemp = fibELYFile.value(); this.m_fMode = focusmode.value(); this.stretch_Magnification = Convert.ToSingle(stretchMagnification.value()); this.location_Magnification = Convert.ToSingle(locationMagnification.value()); this.location_Voltage = Convert.ToSingle(locationVoltage.value()); this.photograph_Magnification = Convert.ToSingle(photographMagnification.value()); this.photograph_Voltage = Convert.ToSingle(photographVoltage.value()); this.correction_Angle = Convert.ToSingle(correctionAngle.value()); this.m_SampleName = sampleType.value(); this.firm = _firm.value(); this.ZDistance = Convert.ToSingle(ZDistance.value()); this.EDSZ = Convert.ToSingle(xEDSZ.value()); this.EDSV = Convert.ToSingle(xEDSV.value()); this.EDSA = Convert.ToSingle(xEDSA.value()); this.IsFIBDo = isFIBDo.value(); this.IsFIBAutoBC = isFIBAutoBC.value(); this.FIBB = Convert.ToSingle(xFIBB.value()); this.FIBC = Convert.ToSingle(xFIBC.value()); this.MagComp = isMagComp.value(); this.MagRange1 = Convert.ToSingle(xMagRange1.value()); this.MagCompX1 = Convert.ToSingle(xMagCompX1.value()); this.MagCompY1 = Convert.ToSingle(xMagCompY1.value()); this.MagRange2 = Convert.ToSingle(xMagRange2.value()); this.MagCompX2 = Convert.ToSingle(xMagCompX2.value()); this.MagCompY2 = Convert.ToSingle(xMagCompY2.value()); this.MagRange3 = Convert.ToSingle(xMagRange3.value()); this.MagCompX3 = Convert.ToSingle(xMagCompX3.value()); this.MagCompY3 = Convert.ToSingle(xMagCompY3.value()); this.MagRange4 = Convert.ToSingle(xMagRange4.value()); this.fMagCompX4 = Convert.ToSingle(xMagCompX4.value()); this.MagCompY4 = Convert.ToSingle(xMagCompY4.value()); this.ScanRotCor = Convert.ToSingle(scanRotate.value()); this.PixelSizeCor = Convert.ToSingle(pscor.value()); } } } }