123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314 |
- 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 static OTSDataType.otsdataconst;
- namespace OTSModelSharp
- {
- public class COTSDefaultParam : ISlo
- {
- protected static NLog.Logger logger = NLog.LogManager.GetCurrentClassLogger();
- // soft pack id
- public otsdataconst.OTS_SysType_ID m_nPackId;
- public otsdataconst.RunMode m_runmode;
- // SEM stage data
- CSEMStageData m_pStageDataParam;
- // general parameter
- COTSGeneralParam m_GenParam;
- // image scan parameter
- COTSImgScanPrm m_pImageScanParam;
- // image process parameter
- COTSImageProcParam m_pImageProcParam;
- // X-Ray parameter
- COTSXRayParam m_pXRayParam;
- // 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 COTSDefaultParam()
- {
- Init();
- }
- 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 COTSGeneralParam GetGenParam() { return m_GenParam; }
- 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;
- }
- }
-
- return true;
- }
- public string GetSysType()
- {
- return m_nPackId.ToString();
- }
- public RunMode GetRunMode()
- {
- return m_runmode;
- }
- // 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_GenParam = new COTSGeneralParam();
- // image scan parameter
- m_pImageScanParam = new COTSImgScanPrm();
- // image process parameter
- m_pImageProcParam = new COTSImageProcParam();
- // X-Ray parameter
- m_pXRayParam = new COTSXRayParam();
- 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_GenParam);
- slo.Register("ImageScanParam", m_pImageScanParam);
- slo.Register("ImageProcParam", m_pImageProcParam);
- slo.Register("XrayParam", m_pXRayParam);
- if (isStoring)
- {
- xSysType.AssignValue(m_nPackId.ToString());
- xRunMode.AssignValue(m_runmode.ToString());
- slo.Serialize(true, classDoc, rootNode);
- }
- else
- {
- slo.Serialize(false, classDoc, rootNode);
- switch (xSysType.value())
- {
- case "IncA":
- this.m_nPackId = OTS_SysType_ID.IncA;
- break;
- case "CleannessA":
- this.m_nPackId = OTS_SysType_ID.CleannessA;
- 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_GenParam = new COTSGeneralParam(a_oSource.m_GenParam);
- }
- }
- }
|