| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365 | using System;using System.Collections.Generic;using System.IO;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Xml;using OTSDataType;using OTSMeasureApp._0_OTSModel.OTSDataType;using static OTSDataType.otsdataconst;namespace OTSModelSharp{   public  class COTSDefaultParam : ISlo    {        protected static NLog.Logger logger = NLog.LogManager.GetCurrentClassLogger();        // soft pack id        private otsdataconst.OTS_SysType_ID systemTypeId;        public otsdataconst.RunMode m_runmode;        // SEM stage data        CSEMStageData m_pStageDataParam;        // general parameter        COTSCommonParam m_CommonParam;        // image scan parameter        COTSImgScanPrm m_pImageScanParam;        CSpecialGrayRangeParam m_pSpecialGrayRangeParam;        // image process parameter        COTSImageProcParam m_pImageProcParam;        // X-Ray parameter        COTSXRayParam m_pXRayParam;        CBrightnessContrastRegulateParam m_pBrightnessContrastRegulateParam;            // file pathname        protected string m_strPathName;        const int SCREEN_WIDTH_MAG100 = 1142;        const long STAGE_DATA_X_AXIS_START = -100000;        const long STAGE_DATA_X_AXIS_END = 100000;        //stage data y start        const long STAGE_DATA_Y_AXIS_START = -100000;        //stage data y end        const long STAGE_DATA_Y_AXIS_END = 100000;           const String STR_MEASURE_PREFERENCE_FILE_NAME = "OTSProgMgrParam.pmf";        // sample name        const String SAMPLE_NAME = "Sample";        // measure switch        const bool MEASURE_SWITCH = true;        const String STR_COFIGPATH = "Config";        const String STR_PROG_DATA = "ProData";        const String STR_SYSTEM_DATA = "SysData";        public OTS_SysType_ID SystemTypeId { get => systemTypeId; set => systemTypeId = value; }        public CSpecialGrayRangeParam SpecialGrayRangeParam { get => m_pSpecialGrayRangeParam; set => m_pSpecialGrayRangeParam = value; }        internal CBrightnessContrastRegulateParam BrightnessContrastRegulationParam { get => m_pBrightnessContrastRegulateParam; set => m_pBrightnessContrastRegulateParam = value; }        public COTSDefaultParam()        {            Init();        }        //样品台文件(读取样品台数据等)                                    private CStageHolderParam stageHolderParam = null;        public COTSImgScanPrm GetImageScanParam() { return m_pImageScanParam; }        public COTSImageProcParam GetImageProcParam() { return m_pImageProcParam; }        public COTSXRayParam GetXRayParam() { return m_pXRayParam; }        public CSEMStageData GetStageDataParam() { return m_pStageDataParam; }        public COTSCommonParam GetCommonParam() { return m_CommonParam; }                public void SetCommonParam(COTSCommonParam a_cOTSGeneralParam) { m_CommonParam=a_cOTSGeneralParam; }        public void SetImageScanParam(COTSImgScanPrm a_cOTSImgScanPrm) { m_pImageScanParam= a_cOTSImgScanPrm; }        public void SetImageProcParam(COTSImageProcParam a_cOTSImageProcParam) { m_pImageProcParam=a_cOTSImageProcParam; }        public void SetXRayParam(COTSXRayParam a_cOTSXRayParam) { m_pXRayParam=a_cOTSXRayParam; }        public void SetStageDataParam(CSEMStageData a_cSEMStageData) { m_pStageDataParam=a_cSEMStageData; }        public CStageHolderParam GetStageHolderParam()        {            return stageHolderParam;        }        public void SetStageHolderParam(CStageHolderParam value)        {            stageHolderParam = value;        }        public bool LoadInfoFromProgMgrFile()        {            // get software pack measure preference file pathname            string strProgMgrParamFileName = GetOTSMeasurePrefFileName();               // program manager param file exists?            if (File.Exists(strProgMgrParamFileName))            {                // tried to load it                if (!Load(strProgMgrParamFileName))                {                    // failed to load the license info file                    logger.Info("LoadLicenseInfoFile: failed to load license info file. pathname:"+strProgMgrParamFileName+".");  //LogErrorTrace(__FILE__, __LINE__, _T("LoadLicenseInfoFile: failed to load license info file. pathname: %s"), strProgMgrParamFilePathName);                    return false;                }            }            LoadStageParamFile();            return true;        }        //检查参数样品台文件是否存在        public bool LoadStageParamFile()        {            SetStageHolderParam(new CStageHolderParam());            // 加载样品台文件;  \Config\SysData\OTSStage.stg            if (!GetStageHolderParam().Load(true, false))            {                return false;            }            return true;        }        public string GetSysTypeName()        {            return systemTypeId.ToString();        }        public OTS_SysType_ID GetSysType()        {            return systemTypeId;        }        public RunMode GetRunMode()        {            return m_runmode;        }        public static string GetMsrParamFileFolderName()        {            return ".\\Config\\SysData\\";        }        public static string GetPartSTDLibFolderName()        {            return ".\\Config\\SysData\\";        }        // get software pack preference file path name        public String GetOTSMeasurePrefFileName()        {            // get software package system data pathname            String strOTSPackSysDataPathName = GetOTSSysDataPathName();            String strOTSPackProgMgrPathName = strOTSPackSysDataPathName + STR_MEASURE_PREFERENCE_FILE_NAME;            // return software package license file pathname             return strOTSPackProgMgrPathName;        }        // get software pack system data path        private  String GetOTSSysDataPathName()//deprecated,since we have build one new solution for the particle system.        {            // get common data pathname string            String strCommonDataPathName = GetOSCommonDataPathName();                  // software package system data pathname                     String strOTSSysDataPathName = strCommonDataPathName + STR_COFIGPATH + "\\" + STR_SYSTEM_DATA + "\\";            // return software package system data path            return strOTSSysDataPathName;        }        // get system common data folder pathname        // return "" if failed       private String GetOSCommonDataPathName()        {            return ".\\";        }        // safe parameters into program preference file        public bool SaveInfoToProgMgrFile()        {            // get software pack measure preference file pathname            string strProgMgrParamFileFullName = GetOTSMeasurePrefFileName();          // save parameters into program preference file            if (!Save(strProgMgrParamFileFullName))            {                // failed to save program preference file, return FALSE                logger.Info("SaveInfoToProgMgrFile: failed to save program preference file.");  //LogErrorTrace(__FILE__, __LINE__, _T("SaveInfoToProgMgrFile: failed to save program preference file."));                return false;            }            // ok, return TRUE            return true;        }            // NOTE: be sure a_strPathName is a valid file pathname        private bool Load(string a_strPathName)        {            // file pathname            m_strPathName = a_strPathName;            m_pStageDataParam = new CSEMStageData();            m_CommonParam = new COTSCommonParam();            // image scan parameter            m_pImageScanParam = new COTSImgScanPrm();            // image process parameter            m_pImageProcParam = new COTSImageProcParam();            // X-Ray parameter            m_pXRayParam = new COTSXRayParam();            m_pSpecialGrayRangeParam=new CSpecialGrayRangeParam();            m_pBrightnessContrastRegulateParam = new CBrightnessContrastRegulateParam();                XmlDocument doc = new XmlDocument();            //载入xml文件            doc.Load(a_strPathName);             XmlNode root = doc.SelectSingleNode("XMLData");            Serialize(false, doc, root);                        return true;        }        // save program manager file         private bool Save(string a_strPathName)        {            //ASSERT(m_pStageData);            //Debug.Assert(m_pParam);            XmlDocument doc = new XmlDocument();            doc.Load(a_strPathName);            doc.RemoveAll();            //添加xml文件头申明            XmlDeclaration xmldecl = doc.CreateXmlDeclaration("1.0", "UTF-8", null);            doc.AppendChild(xmldecl);            XmlElement rootNode = doc.CreateElement("XMLData");            doc.AppendChild(rootNode);            Serialize(true, doc, rootNode);            try            {                doc.Save(a_strPathName);            }            catch            {                return false;            }            // file pathname            m_strPathName = a_strPathName;            // ok, return TRUE            return true;        }        // serialization        public override void Serialize(bool isStoring, XmlDocument classDoc, XmlNode rootNode)        {                       xString xSysType = new xString();            xString xRunMode = new xString();            Slo slo = new Slo();                      slo.Register("SysType", xSysType);            slo.Register("RunMode", xRunMode);            slo.Register("StageData", m_pStageDataParam);            slo.Register("GenParam", m_CommonParam);            slo.Register("ImageScanParam", m_pImageScanParam);            slo.Register("SpecialGrayParam", m_pSpecialGrayRangeParam);            slo.Register("BrightnessContrastRegulateParam", m_pBrightnessContrastRegulateParam);            slo.Register("ImageProcParam", m_pImageProcParam);            slo.Register("XrayParam", m_pXRayParam);            if (isStoring)            {                xSysType.AssignValue(systemTypeId.ToString());                xRunMode.AssignValue(m_runmode.ToString());                slo.Serialize(true, classDoc, rootNode);            }            else            {                slo.Serialize(false, classDoc, rootNode);                switch (xSysType.value())                {                    case "IncA":                        this.systemTypeId = OTS_SysType_ID.IncA;                        break;                    case "TCCleannessA":                        this.systemTypeId = OTS_SysType_ID.TCCleannessA;                        break;                    case "BatteryCleannessA":                        this.systemTypeId = OTS_SysType_ID.BatteryCleannessA;                        break;                    default:                        break;                                                }                switch (xRunMode.value())                {                    case "ProfessionalMode":                        this.m_runmode = otsdataconst.RunMode.ProfessionalMode;                        break;                    case "PlainMode":                        this.m_runmode = RunMode.PlainMode;                        break;                    default:                        break;                }            }        }        protected void Init()        {            m_strPathName = "";        }        // duplication        protected void Duplicate(COTSDefaultParam a_oSource)        {            // initialization            Init();            // copy data over            m_strPathName = a_oSource.m_strPathName;            m_CommonParam = new COTSCommonParam(a_oSource.m_CommonParam);        }    }}
 |