|
@@ -0,0 +1,165 @@
|
|
|
+using OTSMeasureApp._0_OTSModel.Measure.ParamData;
|
|
|
+using OTSMeasureApp._0_OTSModel.OTSDataType;
|
|
|
+using System;
|
|
|
+using System.Collections.Generic;
|
|
|
+using System.Linq;
|
|
|
+using System.Text;
|
|
|
+using System.Threading.Tasks;
|
|
|
+using System.Xml;
|
|
|
+using static OTSDataType.otsdataconst;
|
|
|
+
|
|
|
+namespace OTSDataType
|
|
|
+{
|
|
|
+ public class CSampleParam : ISlo
|
|
|
+ {
|
|
|
+ private string m_strName;
|
|
|
+ private bool m_bSysSTDSwitch;
|
|
|
+ private string m_strSTDName;
|
|
|
+ private COTSImgScanPrm m_poImageScanParam;
|
|
|
+ private COTSImageProcParam m_poImageProcessParam;
|
|
|
+ private COTSXRayParam m_poXRayParam;
|
|
|
+ private CSpecialGrayRangeParam m_specialGrayRangeParam;
|
|
|
+ private STEEL_TECHNOLOGY m_SteelTech;
|
|
|
+ private CSlopFocusParam m_SlopParam;
|
|
|
+ // soft pack id
|
|
|
+ public otsdataconst.OTS_SysType_ID m_nPackId;
|
|
|
+ public otsdataconst.RunMode m_runmode;
|
|
|
+
|
|
|
+ public CSlopFocusParam SlopParam { get => m_SlopParam; set => m_SlopParam = value; }
|
|
|
+
|
|
|
+ public CSpecialGrayRangeParam GetSpecialGrayRangeParam()
|
|
|
+ {
|
|
|
+ if (m_specialGrayRangeParam == null)
|
|
|
+ {
|
|
|
+ m_specialGrayRangeParam = new CSpecialGrayRangeParam();
|
|
|
+ }
|
|
|
+
|
|
|
+ return m_specialGrayRangeParam;
|
|
|
+ }
|
|
|
+
|
|
|
+ public void SetSpecialGrayRangeParam(CSpecialGrayRangeParam value)
|
|
|
+ {
|
|
|
+ m_specialGrayRangeParam = value;
|
|
|
+ m_poImageProcessParam.SetSpecialGreyRangeParam(value);
|
|
|
+ }
|
|
|
+
|
|
|
+ public CSampleParam()
|
|
|
+ {
|
|
|
+ // initialization
|
|
|
+ Init();
|
|
|
+ }
|
|
|
+ void Init()
|
|
|
+ {
|
|
|
+ // initialization
|
|
|
+ m_strName = "MsrParam";
|
|
|
+ m_bSysSTDSwitch = true;
|
|
|
+ m_strSTDName = "";
|
|
|
+ m_poImageScanParam = new COTSImgScanPrm();
|
|
|
+ m_poImageProcessParam = new COTSImageProcParam();
|
|
|
+ m_poXRayParam = new COTSXRayParam();
|
|
|
+ m_SlopParam = new CSlopFocusParam();
|
|
|
+ }
|
|
|
+ void Duplicate(CSampleParam a_oSource)
|
|
|
+ {
|
|
|
+ // initialization
|
|
|
+ //Init();
|
|
|
+
|
|
|
+ // copy data over
|
|
|
+ m_strName = a_oSource.m_strName;
|
|
|
+ m_bSysSTDSwitch = a_oSource.m_bSysSTDSwitch;
|
|
|
+ m_strSTDName = a_oSource.m_strSTDName;
|
|
|
+ m_SteelTech = a_oSource.m_SteelTech;
|
|
|
+ m_poImageScanParam = new COTSImgScanPrm(a_oSource.m_poImageScanParam);
|
|
|
+ m_poImageProcessParam = new COTSImageProcParam(a_oSource.m_poImageProcessParam);
|
|
|
+ m_poXRayParam = new COTSXRayParam(a_oSource.m_poXRayParam);
|
|
|
+ }
|
|
|
+ public CSampleParam(CSampleParam a_oSource)
|
|
|
+ {
|
|
|
+ // copy data over
|
|
|
+ Duplicate(a_oSource);
|
|
|
+ }
|
|
|
+
|
|
|
+ public bool Equals(CSampleParam a_oSource)
|
|
|
+ {
|
|
|
+ // members
|
|
|
+ return m_strName == a_oSource.m_strName &&
|
|
|
+ //*(m_poPartSTDData.get()) == *(a_oSource.m_poPartSTDData.get()) &&
|
|
|
+ m_strSTDName == a_oSource.m_strSTDName &&
|
|
|
+ m_poImageScanParam.Equals(a_oSource.m_poImageScanParam) &&
|
|
|
+ m_poImageProcessParam.Equals(a_oSource.m_poImageProcessParam) &&
|
|
|
+ m_poXRayParam.Equals(a_oSource.m_poXRayParam) &&
|
|
|
+ m_bSysSTDSwitch.Equals(a_oSource.m_bSysSTDSwitch);
|
|
|
+ }
|
|
|
+
|
|
|
+ public override void Serialize(bool isStoring, XmlDocument classDoc, XmlNode rootNode)
|
|
|
+ {
|
|
|
+ xBool xSysSTDSwitch = new xBool();
|
|
|
+ xString xstrName = new xString();
|
|
|
+ xString xstrSTDName = new xString();
|
|
|
+ xString xSystype = new xString();
|
|
|
+ xInt xSteelTech = new xInt();
|
|
|
+ Slo slo = new Slo();
|
|
|
+
|
|
|
+ slo.Register("UseSysSTD", xSysSTDSwitch);
|
|
|
+ slo.Register("STDName", xstrSTDName);
|
|
|
+ slo.Register("SteelTech", xSteelTech);
|
|
|
+ slo.Register("SysType", xSystype);
|
|
|
+ slo.Register("ImageScanParam", m_poImageScanParam);
|
|
|
+ slo.Register("ImageProcessParam", m_poImageProcessParam);
|
|
|
+ slo.Register("XRayParam", m_poXRayParam);
|
|
|
+
|
|
|
+ if (isStoring)
|
|
|
+ {
|
|
|
+ xSysSTDSwitch.AssignValue(m_bSysSTDSwitch);
|
|
|
+ xstrName.AssignValue(m_strName);
|
|
|
+ xSteelTech.AssignValue((int)m_SteelTech);
|
|
|
+ xstrSTDName.AssignValue(m_strSTDName);
|
|
|
+ xSystype.AssignValue((int)m_nPackId+":"+m_nPackId.ToString());
|
|
|
+ slo.Serialize(true, classDoc, rootNode);
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ slo.Serialize(false, classDoc, rootNode);
|
|
|
+
|
|
|
+ m_bSysSTDSwitch = xSysSTDSwitch.value();
|
|
|
+ m_strName = xstrName.value();
|
|
|
+ m_strSTDName = xstrSTDName.value();
|
|
|
+ m_SteelTech = (STEEL_TECHNOLOGY)xSteelTech.value();
|
|
|
+ var syst = xSystype.toString();
|
|
|
+ m_nPackId = (OTS_SysType_ID)Convert.ToInt32(syst.Split(':')[0]);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ public void SetImageScanParam(COTSImgScanPrm a_poImageScanParam)
|
|
|
+ {
|
|
|
+
|
|
|
+ m_poImageScanParam =new COTSImgScanPrm( a_poImageScanParam);
|
|
|
+ }
|
|
|
+
|
|
|
+ // image process parameter
|
|
|
+ public void SetImageProcessParam(COTSImageProcParam a_poImageProcessParam)
|
|
|
+ {
|
|
|
+ // make sure that image process parameter always valid
|
|
|
+ m_poImageProcessParam = new COTSImageProcParam( a_poImageProcessParam);
|
|
|
+
|
|
|
+ }
|
|
|
+ public string GetName() { return m_strName; }
|
|
|
+ public STEEL_TECHNOLOGY GetSteelTechnology() { return m_SteelTech; }
|
|
|
+ public void SetSteelTechnology(STEEL_TECHNOLOGY a_SteelTech) { m_SteelTech = a_SteelTech; }
|
|
|
+ public string GetSTDName() { return m_strSTDName; }
|
|
|
+ public void SetSTDName(string a_strName) { m_strSTDName = a_strName; }
|
|
|
+ // x-ray parameter
|
|
|
+ public void SetXRayParam(COTSXRayParam a_poXRayParam)
|
|
|
+ {
|
|
|
+ // make sure that x-ray parameter always valid
|
|
|
+ m_poXRayParam = new COTSXRayParam( a_poXRayParam);
|
|
|
+
|
|
|
+ }
|
|
|
+ public COTSImgScanPrm GetImageScanParam() { return m_poImageScanParam; }
|
|
|
+ public COTSImageProcParam GetImageProcessParam() { m_poImageProcessParam.SetSpecialGreyRangeParam(m_specialGrayRangeParam); return m_poImageProcessParam; }
|
|
|
+ public COTSXRayParam GetXRayParam() { return m_poXRayParam; }
|
|
|
+ // STDSwitch
|
|
|
+ public bool GetSysSTDSwitch() { return m_bSysSTDSwitch; }
|
|
|
+ public void SetSysSTDSwitch(bool a_bSysSTDSwitch) { m_bSysSTDSwitch = a_bSysSTDSwitch; }
|
|
|
+ }
|
|
|
+}
|