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 OTS_CLASSIFY_ENGINE_TYPE m_engineType; 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_engineType = OTS_CLASSIFY_ENGINE_TYPE.InclutionPlusExpressionParse; 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_engineType = a_oSource.m_engineType; 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_engineType.Equals(a_oSource.m_engineType); } public override void Serialize(bool isStoring, XmlDocument classDoc, XmlNode rootNode) { xString xEngineType = new xString(); xString xstrName = new xString(); xString xstrSTDName = new xString(); xString xSystype = new xString(); xInt xSteelTech = new xInt(); Slo slo = new Slo(); slo.Register("EngineType", xEngineType); 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) { xEngineType.AssignValue((int)m_engineType+":"+m_engineType.ToString()); 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); if (xEngineType.value().Split(':').Length > 1) { m_engineType = (OTS_CLASSIFY_ENGINE_TYPE)Convert.ToInt32(xEngineType.value().Split(':')[0]); } 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 OTS_CLASSIFY_ENGINE_TYPE GetEngineType() { return m_engineType; } public void SetEngineType(OTS_CLASSIFY_ENGINE_TYPE a_enginetype) { m_engineType = a_enginetype; } } }