فهرست منبع

add missing files(rename cmeasureparam back to CSampleParam)

gsp 2 سال پیش
والد
کامیت
ee79d038d1

+ 1 - 1
OTSIncAMeasureApp/0-OTSModel/Measure/3-MeasureFlow/CMeasure.cs

@@ -568,7 +568,7 @@ namespace OTSModelSharp
             poImageScanParam.SetScanImageSpeed(OTS_IMAGE_SCANSPEED_OPTIONS.low);
             //poImageScanParam.SetImagePixelSize(OTS_FIVE_TIES_OPTIONS.TIE1);
 
-            CMeasureParam poMsrParams = pHoleSample.GetMsrParams();
+            CSampleParam poMsrParams = pHoleSample.GetMsrParams();
             poImageScanParam.SetImageResulotion(GetListMeasurableSamples()[0].GetMsrParams().GetImageScanParam().GetImageResulotion());//由于各样品分辨率应该一致,故此处没有读取选取的特定样品孔样品
             poMsrParams.SetImageScanParam(poImageScanParam);
             pHoleSample.SetMsrParams(poMsrParams);

+ 4 - 4
OTSIncAMeasureApp/0-OTSModel/Measure/3-MeasureFlow/CSmplMeasure.cs

@@ -269,7 +269,7 @@ namespace OTSModelSharp
         {
 
             // sample measure parameters
-            CMeasureParam pMsrParam = sample.GetMsrParams();
+            CSampleParam pMsrParam = sample.GetMsrParams();
             COTSImgScanPrm poImageScanParam = pMsrParam.GetImageScanParam();
             COTSImageProcParam pImgProcParam = pMsrParam.GetImageProcessParam();
             CSEMDataMsr poSEMDataMsr = m_Sample.GetSEMDataMsr();
@@ -438,7 +438,7 @@ namespace OTSModelSharp
                 log.Error("MoveSEMToPoint: failed to call MoveSEMToPoint method.");
                 return false;
             }
-            CMeasureParam pMsrParam = m_Sample.GetMsrParams();
+            CSampleParam pMsrParam = m_Sample.GetMsrParams();
             if (pMsrParam.SlopParam.IsUsingSlopParam)
             {
                 double wd = pMsrParam.SlopParam.GetWD(a_SEMpt);
@@ -911,7 +911,7 @@ namespace OTSModelSharp
             //CMsrSampleStatus pStatus = m_Sample.GetMsrStatus();
 
             // get image process parameter
-            CMeasureParam pMsrParam = m_Sample.GetMsrParams();
+            CSampleParam pMsrParam = m_Sample.GetMsrParams();
             COTSImageProcParam pImgProcessParam = pMsrParam.GetImageProcessParam();
             var specialPartsparam = pMsrParam.GetSpecialGrayRangeParam();
             var pixelsize = m_Sample.CalculatePixelSize();
@@ -946,7 +946,7 @@ namespace OTSModelSharp
                 log.Warn("There's no analysis particles!");
                 return;
             }
-            CMeasureParam pMsrParam = m_Sample.GetMsrParams();
+            CSampleParam pMsrParam = m_Sample.GetMsrParams();
             COTSImageProcParam pImgProcessParam = pMsrParam.GetImageProcessParam();
             double dPixelSize = m_Sample.CalculatePixelSize();
             curFldData.InitParticles(pImgProcessParam, dPixelSize);

+ 1 - 1
OTSIncAMeasureApp/0-OTSModel/Measure/ParamData/COTSMsrPrjResultData.cs

@@ -1458,7 +1458,7 @@ namespace OTSModelSharp
             {
 
                 //get the parameter MsrParam object
-                CMeasureParam pMsrParam = spl.GetMsrParams();
+                CSampleParam pMsrParam = spl.GetMsrParams();
                 string stdFileName = pMsrParam.GetSTDName();
                 if (!stdFileName.Contains(".db"))
                 {

+ 4 - 4
OTSIncAMeasureApp/0-OTSModel/Measure/ParamData/CSampleParamMgr.cs

@@ -30,7 +30,7 @@ namespace OTSModelSharp
         // file pathname
         string m_strPathName;
         // measurement parameters 
-        CMeasureParam m_poMsrParams;
+        CSampleParam m_poMsrParams;
       
         
         //----------------public------------------
@@ -186,11 +186,11 @@ namespace OTSModelSharp
             m_strPathName = a_strPathName;
         }
         // measurement parameters file
-        public CMeasureParam GetMsrParams()
+        public CSampleParam GetMsrParams()
         {
             return m_poMsrParams;
         }
-        public bool SetMsrParamFile(CMeasureParam a_poMsrParams)
+        public bool SetMsrParamFile(CSampleParam a_poMsrParams)
         {
             m_poMsrParams = a_poMsrParams;
             return true;
@@ -199,7 +199,7 @@ namespace OTSModelSharp
         // initialization
         protected void Init()
         {
-            m_poMsrParams = new CMeasureParam();
+            m_poMsrParams = new CSampleParam();
         }
         // duplication
         public void Duplicate( CSampleParamMgr a_oSource)

+ 5 - 5
OTSIncAMeasureApp/0-OTSModel/OTSDataType/COTSSample.cs

@@ -23,7 +23,7 @@ namespace OTSDataType
      
         private bool m_bSwitch;
     
-        private CMeasureParam m_poMsrParams;
+        private CSampleParam m_poMsrParams;
         private CDomain m_poMsrArea;
         private CSEMDataMsr m_poSEMDataMsr;
         private CMsrSampleStatus m_Status;
@@ -43,7 +43,7 @@ namespace OTSDataType
             m_bParamLock = false;
             m_bSwitch = true;
           
-            m_poMsrParams = new CMeasureParam();
+            m_poMsrParams = new CSampleParam();
             m_poMsrArea = new CDomain();
             m_poSEMDataMsr = new CSEMDataMsr();
             m_Status = new CMsrSampleStatus();
@@ -76,7 +76,7 @@ namespace OTSDataType
         public bool GetBSESize(out int a_nWidth, out int a_nHeight)
         {
             // scan parameters
-            CMeasureParam pMsrParam = GetMsrParams();
+            CSampleParam pMsrParam = GetMsrParams();
 
             COTSImgScanPrm pImgScanParam = pMsrParam.GetImageScanParam();
 
@@ -109,8 +109,8 @@ namespace OTSDataType
         public void SetSwitch(bool a_bSwitch) { m_bSwitch = a_bSwitch; }
 
         // measurement parameter 
-        public CMeasureParam GetMsrParams() { return m_poMsrParams; }
-        public void SetMsrParams(CMeasureParam a_poMsrParams)
+        public CSampleParam GetMsrParams() { return m_poMsrParams; }
+        public void SetMsrParams(CSampleParam a_poMsrParams)
         {
             m_poMsrParams = a_poMsrParams;
         }

+ 165 - 0
OTSIncAMeasureApp/0-OTSModel/OTSDataType/CSampleParam.cs

@@ -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; }
+    }
+}

+ 1 - 14
OTSIncAMeasureApp/2-OTSMeasureParamManage/COTSMeasureParam.cs

@@ -17,20 +17,7 @@ using OTSMeasureApp._0_OTSModel.Measure.ParamData;
 namespace OTSMeasureApp
 {
 
-    public enum OTS_SOFT_PACKAGE_ID
-    {
-        OTSIncA = 0,             //夹杂物分析
-        OTSPartA = 1,            //颗粒度分析
-    };
 
-    //文件保存返回的结果,DataMgr返回
-    public enum OTS_SAVE_FILE_REV
-    {
-        SaveFile_Success = 0,
-        SaveFile_Cancel = 1,
-        SaveFile_Failed = 2,
-        SaveFile_NoNedd = 3      //文件不需要保存
-    }
 
  
 
@@ -365,7 +352,7 @@ namespace OTSMeasureApp
             // measurement area 	
             CDomain pMsrArea = CalculateDefaultArea(pHole);
             // measure data parameters containing particle analysis std, image scan parameter, image process parameter and x-ray parameter 
-            CMeasureParam poMsrParams = new CMeasureParam();
+            CSampleParam poMsrParams = new CSampleParam();
             poMsrParams.m_nPackId = GetDefaultParam().m_systemTypeId;
             poMsrParams.m_runmode = GetDefaultParam().m_runmode;
             var m_pParam = GetDefaultParam().GetGenParam();

+ 2 - 2
OTSIncAMeasureApp/3-OTSDisplaySourceGridData/OTSSampleVisualPropertyInfo.cs

@@ -702,7 +702,7 @@ namespace OTSMeasureApp
             a_nPos = -1;
 
             String sCurrentSTD;
-            CMeasureParam pCurrentParam;
+            CSampleParam pCurrentParam;
             COTSSample pSample = m_Sample;
            
                 pCurrentParam = pSample.GetMsrParams();
@@ -797,7 +797,7 @@ namespace OTSMeasureApp
             COTSSample pSample = m_Sample;
 
 
-            CMeasureParam pParam = pSample.GetMsrParams();
+            CSampleParam pParam = pSample.GetMsrParams();
 
             pParam.SetSTDName(STDName);
             pSample.SetMsrParams(pParam);

+ 2 - 0
OTSIncAMeasureApp/4-OTSSamplespaceGraphicsPanel/SEMDATAFieldManage.cs

@@ -213,6 +213,8 @@ namespace OTSMeasureApp
                 //鼠标在样品台中移动获取坐标
                 OTSLocation = stage.GetMouseOTSLocation(mousePoint);
 
+          
+
                 PointF SEMPoint =m_ProjData.ConvertOTSToSemCoord(OTSLocation);
 
                

+ 9 - 2
OTSIncAMeasureApp/5-OTSMeasureStatuImageFun/OTSMeasureStatusWindow.cs

@@ -180,9 +180,16 @@ namespace OTSMeasureApp
         /// <param name="bBseData"></param>
         public void ShowImage(int m_iWidth, int m_iHeigh, byte[] bBseData)
         {
-           
+            try
+            {
                 Bitmap bitmap = CImageHandler.ToGrayBitmap(bBseData, m_iWidth, m_iHeigh);
-            ShowBitmap(m_iWidth, m_iHeigh, bitmap);
+                ShowBitmap(m_iWidth, m_iHeigh, bitmap);
+            }
+            catch(Exception e)
+            {
+                NLog.LogManager.GetCurrentClassLogger().Error(e.Message);
+            }
+               
           
         }
         public void ShowBitmap(int m_iWidth, int m_iHeigh, Bitmap coloredImage)

+ 1 - 1
OTSIncAMeasureApp/OTSIncAMeasureApp.csproj

@@ -320,7 +320,7 @@
     <Compile Include="0-OTSModel\OTSDataType\COTSImageScanParam.cs" />
     <Compile Include="0-OTSModel\OTSDataType\COTSSample.cs" />
     <Compile Include="0-OTSModel\OTSDataType\COTSXRayParam.cs" />
-    <Compile Include="0-OTSModel\OTSDataType\CMeasureParam.cs" />
+    <Compile Include="0-OTSModel\OTSDataType\CSampleParam.cs" />
     <Compile Include="0-OTSModel\OTSDataType\CSEMDataGnr.cs" />
     <Compile Include="0-OTSModel\OTSDataType\CSEMDataMsr.cs" />
     <Compile Include="0-OTSModel\OTSDataType\CSize.cs" />

+ 200 - 0
OTSIncAReportApp/2-CommonFunction/CommonClass/XmlOperateUtil.cs

@@ -0,0 +1,200 @@
+using System;
+using System.IO;
+using System.Linq;
+using System.Xml;
+
+namespace OTSIncAReportApp.Controls
+{
+    /// <summary>
+    /// XML操作类
+    /// </summary>
+    public class XmlOperateUtil
+    {
+        #region 全局变量
+        string _xmlPath;        //文件所在路径
+        #endregion
+
+        #region 构造函数
+        /// <summary>
+        /// 初始化一个配置
+        /// </summary>
+        /// <param name="xmlPath">配置所在路径</param>
+        public XmlOperateUtil(string xmlPath)
+        {
+            _xmlPath = Path.GetFullPath(xmlPath);
+        }
+        #endregion
+
+        #region 公有方法
+        /// <summary>
+        /// 写入配置,也可以用来修改
+        /// </summary>
+        /// <param name="value">写入的值</param>
+        /// <param name="nodes">节点</param>
+        public void Write(string value, params string[] nodes)
+        {
+            //初始化xml
+            XmlDocument xmlDoc = new XmlDocument();
+            if (File.Exists(_xmlPath))
+                xmlDoc.Load(_xmlPath);
+            else
+                xmlDoc.LoadXml("<XmlConfig />");
+            XmlNode xmlRoot = xmlDoc.ChildNodes[0];
+
+            //新增、编辑 节点
+            string xpath = string.Join("/", nodes);
+            XmlNode node = xmlDoc.SelectSingleNode(xpath);
+            if (node == null)    //新增节点
+            {
+                node = makeXPath(xmlDoc, xmlRoot, xpath);
+            }
+            node.InnerText = value;
+
+            //保存
+            xmlDoc.Save(_xmlPath);
+        }
+
+        /// <summary>
+        /// 设置节点上属性的值
+        /// </summary>
+        /// <param name="AttributeName">属性名</param>
+        /// <param name="AttributeValue">属性值</param>
+        /// <param name="nodes">选择节点</param>
+        public void SetAttribute(string AttributeName, string AttributeValue, params string[] nodes)
+        {
+            //初始化xml
+            XmlDocument xmlDoc = new XmlDocument();
+            if (File.Exists(_xmlPath))
+                xmlDoc.Load(_xmlPath);
+            else
+                xmlDoc.LoadXml("<XmlConfig />");
+            XmlNode xmlRoot = xmlDoc.ChildNodes[0];
+
+            //新增、编辑 节点
+            string xpath = string.Join("/", nodes);
+            XmlElement element = (XmlElement)xmlDoc.SelectSingleNode(xpath);
+            if (element == null)    //新增节点
+            {
+                element = (XmlElement)makeXPath(xmlDoc, xmlRoot, xpath);
+            }
+
+            //设置节点上属性的值
+            element.SetAttribute(AttributeName, AttributeValue);
+            //保存
+            xmlDoc.Save(_xmlPath);
+        }
+
+        public string GetAttribute(string AttributeName, params string[] nodes)
+        {
+            //初始化xml
+            XmlDocument xmlDoc = new XmlDocument();
+            if (File.Exists(_xmlPath))
+                xmlDoc.Load(_xmlPath);
+            else
+                xmlDoc.LoadXml("<XmlConfig />");
+            XmlNode xmlRoot = xmlDoc.ChildNodes[0];
+
+            //新增、编辑 节点
+            string xpath = string.Join("/", nodes);
+            XmlElement element = (XmlElement)xmlDoc.SelectSingleNode(xpath);
+            if (element == null)    //新增节点
+            {
+                element = (XmlElement)makeXPath(xmlDoc, xmlRoot, xpath);
+            }
+
+            //设置节点上属性的值
+            string retstr = element.GetAttribute(AttributeName);
+            //保存
+            xmlDoc.Save(_xmlPath);
+
+            return retstr;
+        }
+
+
+        /// <summary>
+        /// 读取配置
+        /// </summary>
+        /// <param name="nodes">节点</param>
+        /// <returns></returns>
+        public string Read(params string[] nodes)
+        {
+            XmlDocument xmlDoc = new XmlDocument();
+            if (File.Exists(_xmlPath) == false)
+                return null;
+            else
+                xmlDoc.Load(_xmlPath);
+
+            string xpath = string.Join("/", nodes);
+            XmlNode node = xmlDoc.SelectSingleNode("/XmlConfig/" + xpath);
+            if (node == null)
+                return null;
+
+            return node.InnerText;
+        }
+
+        /// <summary>
+        /// 删除节点
+        /// </summary>
+        /// <param name="nodes"></param>
+        public void RemoveNode(params string[] nodes)
+        {
+            XmlDocument xmlDoc = new XmlDocument();
+            if (File.Exists(_xmlPath) == false)
+                return;
+            else
+                xmlDoc.Load(_xmlPath);
+
+            string xpath = string.Join("/", nodes);
+            XmlNode node = xmlDoc.SelectSingleNode("/XmlConfig/" + xpath);
+
+            //取得父节点
+            string[] father_nodes = new string[nodes.Count() - 1];
+
+            //对父节点进行初始化
+            for (int i = 0; i < nodes.Count() - 1; i++)
+            {
+                father_nodes[i] = (string)nodes[i].Clone();
+            }
+
+
+            string fast_xpath = string.Join("/", father_nodes);
+            XmlNode fastnode = xmlDoc.SelectSingleNode("/XmlConfig/" + fast_xpath);
+
+            if (node == null)
+                return;
+            if (fastnode == null)
+                return;
+
+            //使用父节点删除子节点
+            fastnode.RemoveChild(node);
+
+            //保存
+            xmlDoc.Save(_xmlPath);
+        }
+
+
+        #endregion
+
+        #region 私有方法
+        //递归根据 xpath 的方式进行创建节点
+        static private XmlNode makeXPath(XmlDocument doc, XmlNode parent, string xpath)
+        {
+
+            // 在XPath抓住下一个节点的名称;父级如果是空的则返回
+            string[] partsOfXPath = xpath.Trim('/').Split('/');
+            string nextNodeInXPath = partsOfXPath.First();
+            if (string.IsNullOrEmpty(nextNodeInXPath))
+                return parent;
+
+            // 获取或从名称创建节点
+            XmlNode node = parent.SelectSingleNode(nextNodeInXPath);
+            if (node == null)
+                node = parent.AppendChild(doc.CreateElement(nextNodeInXPath));
+
+            // 加入的阵列作为一个XPath表达式和递归余数
+            string rest = String.Join("/", partsOfXPath.Skip(1).ToArray());
+            return makeXPath(doc, node, rest);
+        }
+        #endregion
+    }
+}