123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681 |
- //时间: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_Title;
- public Boolean Title
- {
- get { return this.m_Title; }
- set { this.m_Title = 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 FocusParam focusP;
- public FocusParam AutoFocus
- {
- get { return this.focusP; }
- set { this.focusP = value; }
- }
- //对焦参数, FIB
- private FocusParam focusF;
- public FocusParam FIBFocus
- {
- get { return this.focusF; }
- set { this.focusF = value; }
- }
- //消像散x参数
- private FocusParam StigX;
- public FocusParam AutoStigX
- {
- get { return this.StigX; }
- set { this.StigX = value; }
- }
- //消像散Y参数
- private FocusParam StigY;
- public FocusParam AutoStigY
- {
- get { return this.StigY; }
- set { this.StigY = value; }
- }
- //EDS参数
- private EDSParam EdsParam;
- public EDSParam EDSP
- {
- 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
- #endregion
- //构造函数
- public MeasureParam()
- {
- Init();
- }
- public void Init()
- {
- this.SampleName = @"";
- this.PT = false;
- this.FIBTemp = @"";
- this.PTTemp = @"";
- this.FocusMode = 2;
- this.AutoFocus = new FocusParam();
- this.AutoFocus.TYPE = 1;
- this.AutoStigX = new FocusParam();
- this.AutoStigX.TYPE = 2;
- this.AutoStigY = new FocusParam();
- this.AutoStigY.TYPE = 3;
- this.FIBFocus = new FocusParam();
- this.FIBFocus.TYPE = 4;
- this.Title = false;
- this.ZDistance = 0;
- this.EDS = false;
- this.EDSZ = 0.005f;
- this.EDSV = 10000;
- this.EDSA = 0.0000000005f;
- this.EDSP = 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.Title);
- 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.EDSP);
- //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.Title = 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());
- }
- }
- }
- }
|