瀏覽代碼

refactor the SpecialGrayRangeParam loading mechanism which is the same as other parameter.

gsp 3 月之前
父節點
當前提交
cddce91cc4

+ 8 - 2
Bin/x64/Debug/Config/SysData/OTSProgMgrParam.pmf

@@ -1,12 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<XMLData RunMode="ProfessionalMode" SysType="IncA">
+<XMLData RunMode="ProfessionalMode" SysType="BatteryCleannessA">
   <Member RegName="GenParam" DefaultArea="100" DefaultSampleName="Sample" DefaultShape="1" EngineType="0:InclustionEngine" MeasParamFileFolderName=".\Config\ProData\" MeasSwitch="true" PartSTDLibFolderName=".\Config\SysData\" PropertyDisplayMode="0" StdLibFileName="MineralSpectrumSTDLib" SteelTechnology="0" />
   <Member RegName="ImageProcParam" AutoBGRemoveType="0:MIDDLE" BGRemoveType="1:MANUAL" MatrixStep="50" OverlapParam="0" ParticleSelectionCondition="">
     <Member RegName="BGGray" end="50" start="0" />
     <Member RegName="IncArea" end="2000" start="3" />
     <Member RegName="ParticleGray" end="255" start="0" />
   </Member>
-  <Member RegName="ImageScanParam" ImageResolution="4:_1536_1024" SatrtImageMode="1:Snake" ScanImageSpeed="0:low" StopMode="0:CoverMode,4:AreaMode" StopParamArea="30" StopParamFields="100" StopParamMeasTime="360" StopParamParticles="5000" />
+  <Member RegName="ImageScanParam" ImageResolution="3:_1024_768" SatrtImageMode="1:Snake" ScanImageSpeed="0:low" StopMode="0:CoverMode,4:AreaMode" StopParamArea="30" StopParamFields="100" StopParamMeasTime="360" StopParamParticles="5000" />
+  <Member RegName="SpecialGrayParam" ToRun="false">
+    <Collection RegName="GrayRangeList">
+      <Member collectXray="true" diameterEnd="200" diameterStart="6" end="146" rngName="rang1" start="58" />
+      <Member collectXray="true" diameterEnd="100" diameterStart="0" end="255" rngName="rang2" start="179" />
+    </Collection>
+  </Member>
   <Member RegName="StageData" ControlDelay="2000" MinMag="65" scanFieldSize="1270" xAxisDir="1:RIGHT_TOWARD" yAxisDir="0:UP_TOWARD">
     <Member RegName="XAxis" end="55000" start="-55000" />
     <Member RegName="YAxis" end="55000" start="-55000" />

+ 1 - 1
Bin/x64/Debug/Config/SysData/OTSReportMgrParam.rpf

@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<XMLData systype="IncA">
+<XMLData systype="BatteryCleannessA">
   <Member RegName="Scale" strValue="1000" />
   <Member RegName="DefaultComputedColName" strValue="ParticleCoordinate,Area,EquivalentCircleDiameter,MaxDiameter,MinDiameter,DiameterRatio,FerretDiameter,PERP,PERI,INSCR,MEAN,ELONG,ASPECT_ELONG,Orientation,XRayDataCount" />
   <Member RegName="ElementsColName" strValue="C,O,Al,Fe,F,Ti,Na,Mn,Mg" />

+ 1 - 1
Bin/x64/Debug/Config/SysData/OTSStage.stg

@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<XMLData Modify="true" PathName=".\Config\SysData\OTSStage.stg" WorkingStageId="0">
+<XMLData Modify="true" PathName=".\Config\SysData\OTSStage.stg" WorkingStageId="6">
   <Collection RegName="Stagelist">
     <Member strName="圆形九圆孔50mm">
       <Member RegName="boundary" PolygonPoint="" rectDomian="0,0,50000,0" shape="0:ROUND" />

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

@@ -42,7 +42,7 @@ namespace OTSDataType
         {
             m_strName = "";
             m_strHoleName = "";
-            //m_bParamLock = false;
+           
             m_bSwitch = true;
           
             m_poMsrParams = new CSampleParam();
@@ -50,7 +50,7 @@ namespace OTSDataType
             m_poSEMDataMsr = new CSEMDataMsr();
             m_Status = new CMsrSampleStatus();
             m_poMsrResults = new CMsrResultItems();
-            //m_membraneType = MEMBRANE_TYPE.Abrasive;
+           
             m_listFieldData = new List<COTSField>();
            
         }

+ 7 - 5
OTSIncAMeasureApp/0-OTSModel/OTSDataType/CSampleParam.cs

@@ -17,7 +17,7 @@ namespace OTSDataType
         private COTSImgScanPrm m_poImageScanParam;
         private COTSImageProcParam m_poImageProcessParam;
         private COTSXRayParam m_poXRayParam;
-        private CSpecialGrayRangeParam m_specialGrayRangeParam;
+        private CSpecialGrayRangeParam m_specialGrayRangeParam=new CSpecialGrayRangeParam();
         private STEEL_TECHNOLOGY m_SteelTech;
         private CSlopFocusParam m_SlopParam;
         // soft pack id
@@ -28,10 +28,10 @@ namespace OTSDataType
 
         public CSpecialGrayRangeParam GetSpecialGrayRangeParam()
         {
-            if (m_specialGrayRangeParam == null)
-            {
-                m_specialGrayRangeParam = new CSpecialGrayRangeParam();
-            }
+            //if (m_specialGrayRangeParam == null)
+            //{
+            //    m_specialGrayRangeParam = new CSpecialGrayRangeParam();
+            //}
            
             return m_specialGrayRangeParam;
         }
@@ -103,8 +103,10 @@ namespace OTSDataType
             slo.Register("STDName", xstrSTDName);
             slo.Register("SteelTech", xSteelTech);
             slo.Register("SysType", xSystype);
+            slo.Register("SlopFocusParam", m_SlopParam);
             slo.Register("ImageScanParam", m_poImageScanParam);
             slo.Register("ImageProcessParam", m_poImageProcessParam);
+            slo.Register("SpecialGrayParam", m_specialGrayRangeParam);
             slo.Register("XRayParam", m_poXRayParam);
 
             if (isStoring)

+ 67 - 2
OTSIncAMeasureApp/0-OTSModel/OTSDataType/CSlopFocusParam.cs

@@ -1,9 +1,11 @@
-using System;
+using OTSDataType;
+using System;
 using System.Collections.Generic;
 using System.Drawing;
 using System.Linq;
 using System.Text;
 using System.Threading.Tasks;
+using System.Xml;
 
 namespace OTSMeasureApp._0_OTSModel.OTSDataType
 {
@@ -27,7 +29,7 @@ namespace OTSMeasureApp._0_OTSModel.OTSDataType
         public double c;
 
     }
-    public class CSlopFocusParam
+    public class CSlopFocusParam : ISlo
     {
         private bool m_IsUsingSlopParam=false;
         private Point m_FirstPoint;
@@ -103,5 +105,68 @@ namespace OTSMeasureApp._0_OTSModel.OTSDataType
             return Math.Abs(a * pt.x + b * pt.y + c * pt.z + d) / Math.Sqrt(a * a + b * b + c * c);
 
         }
+
+        public override void Serialize(bool isStoring, XmlDocument classDoc, XmlNode rootNode)
+        {
+            xBool xtoRun = new xBool();
+            xInt xX1 = new xInt();      
+           
+            xInt xY1 = new xInt();
+
+            xInt xX2 = new xInt();
+            xInt xY2 = new xInt();
+         
+            xInt xX3 = new xInt();
+            xInt xY3 = new xInt();
+          
+            xDouble xWD1 = new xDouble();
+            xDouble xWD2 = new xDouble();
+            xDouble xWD3 = new xDouble();
+           
+                Slo slo = new Slo();
+            slo.Register("toRun",xtoRun);    
+            slo.Register("X1", xX1);
+            slo.Register("Y1", xY1);
+            slo.Register("X2", xX2);
+            slo.Register("Y2", xY2);
+            slo.Register("X3", xX3);
+            slo.Register("Y3", xY3);
+           
+            slo.Register("WD1", xWD1);
+            slo.Register("WD2", xWD2);
+            slo.Register("WD3", xWD3);
+            if (isStoring)
+            {
+                xtoRun.AssignValue(IsUsingSlopParam);
+                xX1.AssignValue(FirstPoint.X);
+                xY1.AssignValue(FirstPoint.Y);
+                xX2.AssignValue(SecondPoint.X);
+                xY2.AssignValue(SecondPoint.Y);
+                xX3.AssignValue(ThirdPoint.X);
+                xY3.AssignValue(ThirdPoint.Y);
+                xWD1.AssignValue(FirstWD);
+                xWD2.AssignValue(SecondWD);
+                xWD3.AssignValue(ThirdWD);
+               
+
+                slo.Serialize(true, classDoc, rootNode);
+            }
+            else
+            {
+                slo.Serialize(false, classDoc, rootNode);
+                IsUsingSlopParam = xtoRun.value();
+                m_FirstPoint.X = xX1.value();
+                m_FirstPoint.Y = xY1.value();
+                m_SecondPoint.X = xX2.value();
+                m_SecondPoint.Y = xY2.value();
+                m_ThirdPoint.X = xX3.value();
+                m_ThirdPoint.Y = xY3.value();
+                m_FirstWD=xWD1.value(); 
+                m_SecondWD=xWD2.value();    
+                m_ThirdWD=xWD3.value();
+
+
+            }
+        }
     }
 }

+ 32 - 43
OTSIncAMeasureApp/0-OTSModel/OTSDataType/CSpecialGrayRangeParam.cs

@@ -12,18 +12,21 @@ namespace OTSMeasureApp._0_OTSModel.OTSDataType
 {
   public  class CSpecialGrayRange:ISlo
     {
+        public string rngname;
         public  CIntRange range=new CIntRange();
         public CIntRange diameterRange = new CIntRange();
         public bool ifCollectXray;
      
         public override void Serialize(bool isStoring, XmlDocument classDoc, XmlNode rootNode)
         {
+            xString xname=new xString();
             xInt xStart = new xInt();
             xInt xEnd = new xInt();
             xInt xdiaStart = new xInt();
             xInt xdiaEnd = new xInt();
             xBool xIfXray = new xBool();
             Slo slo = new Slo();
+            slo.Register("rngName", xname);
             slo.Register("start", xStart);
             slo.Register("end", xEnd);
             slo.Register("diameterStart", xdiaStart);
@@ -31,6 +34,7 @@ namespace OTSMeasureApp._0_OTSModel.OTSDataType
             slo.Register("collectXray", xIfXray);
             if (isStoring)
             {
+                xname.AssignValue(rngname);
                 xStart.AssignValue(range.GetStart());
                 xEnd.AssignValue(range.GetEnd());
                 xdiaStart.AssignValue(diameterRange.GetStart());
@@ -42,6 +46,7 @@ namespace OTSMeasureApp._0_OTSModel.OTSDataType
             else
             {
                 slo.Serialize(false, classDoc, rootNode);
+                rngname = xname.value();
                 range.SetStart(xStart.value());
                 range.SetEnd(xEnd.value());
                 diameterRange.SetStart(xdiaStart.value());
@@ -53,26 +58,37 @@ namespace OTSMeasureApp._0_OTSModel.OTSDataType
     }
    public class CSpecialGrayRangeParam: ISlo
     {
-        const string STRSPECIALGRAYCONFIGFILE = "SpecialGrayConfig.xml";
+        
         private List<CSpecialGrayRange> Ranges=new List<CSpecialGrayRange>();
         private bool isToRun=false;
-        private bool isInited=false;
+      
         public CSpecialGrayRangeParam()
         {
         }
-        public static string GetParamFileFullName()
-        {
-            String path = ".\\" + DataPublic.STR_COFIGPATH + "\\" + DataPublic.STR_SYSTEM_DATA + "\\" + STRSPECIALGRAYCONFIGFILE;
-            return path;
-        }
         
-        public bool GetIsToRun()
-        {
-            if (isInited == false)
+        public CSpecialGrayRangeParam Duplicate()
+        { 
+           CSpecialGrayRangeParam param = new CSpecialGrayRangeParam();
+            param.isToRun=this.isToRun;
+            var rngs = param.GetSpecialGreyRanges();
+            foreach (var rng in this.Ranges)
             {
-                LoadParam();
-                isInited = true;
+                var newrng = new CSpecialGrayRange();
+                newrng.rngname = rng.rngname;
+                newrng.range.SetStart(rng.range.GetStart());    
+                newrng.range.SetEnd(rng.range.GetEnd());
+                newrng.diameterRange.SetStart(rng.diameterRange.GetStart());
+                newrng.diameterRange.SetEnd(rng.diameterRange.GetEnd());
+                newrng.ifCollectXray = rng.ifCollectXray;
+                rngs.Add(newrng);
             }
+            param.SetSpecailGrayRanges(rngs);
+            return param;
+        
+        }
+        public bool GetIsToRun()
+        {
+            
             return isToRun;
         }
 
@@ -81,15 +97,12 @@ namespace OTSMeasureApp._0_OTSModel.OTSDataType
             isToRun = value;
         }
 
-        public bool IsInited { get => isInited; set => isInited = value; }
+       
+        public bool IsToRun { get => isToRun; set => isToRun = value; }
 
         public List<CSpecialGrayRange> GetSpecialGreyRanges()
         {
-            if (isInited == false)
-            {
-                LoadParam();
-                isInited = true;
-            }
+            
             return Ranges;
         }
 
@@ -132,30 +145,6 @@ namespace OTSMeasureApp._0_OTSModel.OTSDataType
                 }
             }
         }
-        public bool LoadParam()
-        {
-          
-
-
-            String path = ".\\" + DataPublic.STR_COFIGPATH + "\\" + DataPublic.STR_SYSTEM_DATA + "\\"+ STRSPECIALGRAYCONFIGFILE;
-            // 5. check if the stage file exist 
-            if (File.Exists(path))
-            {// the stage file exist
-
-       
-
-                XmlDocument doc = new XmlDocument();
-                //载入xml文件
-                doc.Load(path);
-                XmlNode root = doc.SelectSingleNode("XMLData");
-                Serialize(false, doc, root);
-                isInited = true;
-                return true;
-            }
-
-
-
-            return false;
-        }
+        
     }
 }

+ 6 - 1
OTSIncAMeasureApp/1-OTSMeasure/Measure/ParamData/OTSDefaultParam.cs

@@ -6,6 +6,7 @@ using System.Text;
 using System.Threading.Tasks;
 using System.Xml;
 using OTSDataType;
+using OTSMeasureApp._0_OTSModel.OTSDataType;
 using static OTSDataType.otsdataconst;
 
 namespace OTSModelSharp
@@ -26,7 +27,7 @@ namespace OTSModelSharp
 
         // image scan parameter
         COTSImgScanPrm m_pImageScanParam;
-
+        CSpecialGrayRangeParam m_pSpecialGrayRangeParam;
         // image process parameter
         COTSImageProcParam m_pImageProcParam;
 
@@ -64,6 +65,7 @@ namespace OTSModelSharp
         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; }
 
         public COTSDefaultParam()
         {
@@ -219,6 +221,8 @@ namespace OTSModelSharp
             // X-Ray parameter
             m_pXRayParam = new COTSXRayParam();
 
+            m_pSpecialGrayRangeParam=new CSpecialGrayRangeParam();
+
             XmlDocument doc = new XmlDocument();
             //载入xml文件
             doc.Load(a_strPathName); 
@@ -271,6 +275,7 @@ namespace OTSModelSharp
             slo.Register("StageData", m_pStageDataParam);
             slo.Register("GenParam", m_GenParam);
             slo.Register("ImageScanParam", m_pImageScanParam);
+            slo.Register("SpecialGrayParam", m_pSpecialGrayRangeParam);
             slo.Register("ImageProcParam", m_pImageProcParam);
             slo.Register("XrayParam", m_pXRayParam);
             if (isStoring)

+ 11 - 11
OTSIncAMeasureApp/2-OTSMeasureParamManage/COTSMeasureParam.cs

@@ -73,7 +73,7 @@ namespace OTSMeasureApp
 
         NLog.Logger log ;
 
-        public CSpecialGrayRangeParam SpecialRanges { get => specialRanges; set => specialRanges = value; }
+        public CSpecialGrayRangeParam SpecialRanges { get => defaultParam.SpecialGrayRangeParam; set => defaultParam.SpecialGrayRangeParam = value; }
         public List<COTSSample> MeasureSampleList { get => m_MeasureSampleList; set => m_MeasureSampleList = value; }
 
         public CStageParam GetStageParam()
@@ -144,17 +144,17 @@ namespace OTSMeasureApp
            
         }
 
-        public bool LoadSpecialGrayRangeParamFile()
-        {
-            SpecialRanges = new CSpecialGrayRangeParam();
+        //public bool LoadSpecialGrayRangeParamFile()
+        //{
+        //    SpecialRanges = new CSpecialGrayRangeParam();
            
-            if (!SpecialRanges.LoadParam())
-            {
-                return false;
-            }
+        //    if (!SpecialRanges.LoadParam())
+        //    {
+        //        return false;
+        //    }
             
-            return true;
-        }
+        //    return true;
+        //}
 
         //获取系统文件是否存在和有效
 
@@ -363,7 +363,7 @@ namespace OTSMeasureApp
             String sSTDName = m_pParam.GetSTDSelect();
             poMsrParams.SetSTDName(sSTDName);
             poMsrParams.SetSteelTechnology((STEEL_TECHNOLOGY)m_pParam.GetSteelTechnology());
-            poMsrParams.SetSpecialGrayRangeParam(SpecialRanges);
+            poMsrParams.SetSpecialGrayRangeParam(defaultParam.SpecialGrayRangeParam.Duplicate());
             // set sample parameters
             pSample.SetName(strNewSampleName);
             pSample.SetSampleHoleName(pHole.GetName());

+ 1 - 0
OTSIncAMeasureApp/3-OTSDisplaySourceGridData/OTSPropertyWindow.cs

@@ -350,6 +350,7 @@ namespace OTSMeasureApp
             m_cotsprogmgrparamfile.SetImageProcParam(WSample.GetMsrParams().GetImageProcessParam());
             m_cotsprogmgrparamfile.SetImageScanParam(WSample.GetMsrParams().GetImageScanParam());
             m_cotsprogmgrparamfile.SetXRayParam(WSample.GetMsrParams().GetXRayParam());
+            m_cotsprogmgrparamfile.SpecialGrayRangeParam = WSample.GetMsrParams().GetSpecialGrayRangeParam().Duplicate();
             OTSModelSharp.COTSGeneralParam m_cgenparam = m_cotsprogmgrparamfile.GetGenParam();
             m_cgenparam.SetEngineType(WSample.GetMsrParams().GetEngineType());
             m_cgenparam.SetSteelTechnology((int)WSample.GetMsrParams().GetSteelTechnology());

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

@@ -1648,8 +1648,8 @@ namespace OTSMeasureApp
 
         private void toolStripMenuItem1_Click(object sender, EventArgs e)
         {
-
-            SpecialParticleForm specialParticleForm = new SpecialParticleForm(CSpecialGrayRangeParam.GetParamFileFullName(), m_MeasureAppForm, originalBseData, GetIWidth(), GetIHeight(), this);
+            COTSSample WSample = m_MeasureAppForm.m_ProjRstData.GetWorkingSample();
+            SpecialParticleForm specialParticleForm = new SpecialParticleForm( m_MeasureAppForm, originalBseData, GetIWidth(), GetIHeight(), WSample);
             DialogResult dialogResult = specialParticleForm.ShowDialog();
 
 

+ 98 - 17
OTSIncAMeasureApp/7-OTSProgMgrInfo/SpecialParticleForm.cs

@@ -1,4 +1,6 @@
 using OTSCommon;
+using OTSDataType;
+using OTSMeasureApp._0_OTSModel.OTSDataType;
 using OTSModelSharp.ServiceCenter;
 using System;
 using System.Collections;
@@ -6,25 +8,27 @@ using System.Collections.Generic;
 using System.ComponentModel;
 using System.Data;
 using System.Drawing;
+using System.IO;
 using System.Linq;
 using System.Text;
 using System.Threading;
 using System.Threading.Tasks;
 using System.Windows.Forms;
+using System.Xml;
 
 namespace OTSMeasureApp
 {
     public partial class SpecialParticleForm : Form
     {
-        private string xmlPath = "";
+        //private string xmlPath = "";
         private string str_RegName = "default";
         private string str_start = "0";
         private string str_end = "100";
         private string str_diameterStart = "0";
         private string str_diameterEnd = "100";
-       
+
         OTSIncAMeasureAppForm m_mainForm;
-         OTSMeasureStatusWindow m_measureStatuWindow;
+        OTSMeasureStatusWindow m_measureStatuWindow;
        byte[] m_BseData;
         int m_imageWidth;
         int m_imageHeight;
@@ -35,48 +39,95 @@ namespace OTSMeasureApp
         //the datasource of datagridview
         DataSet ds1;
        
+        public CSpecialGrayRangeParam specialGray=new CSpecialGrayRangeParam();
 
-
-        public SpecialParticleForm(string xmlPath, OTSIncAMeasureAppForm mainForm,byte[] bBseData,int width,int height, OTSMeasureStatusWindow measureStatuWindow)
+        public SpecialParticleForm(OTSIncAMeasureAppForm mainForm,byte[] bBseData,int width,int height,COTSSample cursample)
         {
             InitializeComponent();
-            this.xmlPath = xmlPath;
+            //this.xmlPath = xmlPath;
             m_mainForm = mainForm;
 
-            m_measureStatuWindow = measureStatuWindow;
+            m_measureStatuWindow = mainForm.m_MessureStatuWindow ;
 
             m_BseData = bBseData;
             m_imageWidth = width;
             m_imageHeight = height;
-
-            ShowXmlInfo();
+            specialGray = cursample.GetMsrParams().GetSpecialGrayRangeParam();
+            //ShowXmlInfo();
+            ShowparamInfo();
 
             //国际化
             lan = new OTSCommon.Language(this);
             table = lan.GetNameTable(this.Name);
         }
 
-        private void ShowXmlInfo()
+        //private void ShowXmlInfo()
+        //{
+
+        //     ds1 = XMLoperate.GetXMLRegList(xmlPath, "Member");
+        //    if (ds1.Tables.Count > 0)
+        //    {
+        //        dg1.DataSource = ds1.Tables[0];
+
+        //        var ds2 = XMLoperate.GetXMLRegList(xmlPath, "XMLData");
+
+        //        var ifrun = Convert.ToBoolean(ds2.Tables[0].Rows[0]["ToRun"]);
+
+        //        checkBox1.Checked = ifrun;
+
+        //    }
+            
+        //}
+        private void ShowparamInfo()
         {
 
-             ds1 = XMLoperate.GetXMLRegList(xmlPath, "Member");
+            ds1 = new DataSet();
+            ds1.Tables.Clear();
+            ds1.Tables.Add();
+            var t = ds1.Tables[0];
+            t.Columns.Add("RegName");
+            t.Columns.Add("start");
+            t.Columns.Add("end");
+            t.Columns.Add("diameterStart");
+            t.Columns.Add("diameterEnd");
+            t.Columns.Add("collectXray");
+            foreach (var rang in specialGray.GetSpecialGreyRanges())
+            {
+              var r= t.Rows.Add();
+               
+                r["RegName"]=rang.rngname;
+               r["start"]=rang.range.GetStart().ToString();
+                r["end"]=rang.range.GetEnd().ToString();
+                r["diameterStart"]=rang.diameterRange.GetStart().ToString();
+                r["diameterEnd"]=rang.diameterRange.GetEnd().ToString();
+                r["collectXray"]=rang.ifCollectXray.ToString();
+             
+            }
+
+
+
+
+
+             
             if (ds1.Tables.Count > 0)
             {
                 dg1.DataSource = ds1.Tables[0];
 
-                var ds2 = XMLoperate.GetXMLRegList(xmlPath, "XMLData");
+                //var ds2 = XMLoperate.GetXMLRegList(xmlPath, "XMLData");
 
-                var ifrun = Convert.ToBoolean(ds2.Tables[0].Rows[0]["ToRun"]);
+                //var ifrun = Convert.ToBoolean(ds2.Tables[0].Rows[0]["ToRun"]);
 
-                checkBox1.Checked = ifrun;
+               
 
             }
-            
+
+            checkBox1.Checked = specialGray.IsToRun;
+
         }
 
 
 
-    
+
 
         private void button1_Click(object sender, EventArgs e)
         {
@@ -146,7 +197,37 @@ namespace OTSMeasureApp
 
         private void confirm_Click(object sender, EventArgs e)
         {
-            XMLoperate.UpdateSpecialGrayXMLFile(xmlPath, dg1, checkBox1.Checked);
+            var rngs = specialGray.GetSpecialGreyRanges();
+            rngs.Clear();
+            for (int i = 0;i< dg1.Rows.Count; i++)
+            {
+
+                //设置参数
+                CSpecialGrayRange specialRng = new CSpecialGrayRange();
+                
+                specialRng.rngname = dg1.Rows[i].Cells["RegName"].Value.ToString();
+                specialRng.range.SetStart(Convert.ToInt32( dg1.Rows[i].Cells["start"].Value));
+                specialRng.range.SetEnd(Convert.ToInt32(dg1.Rows[i].Cells["end"].Value));
+                specialRng.diameterRange.SetStart(Convert.ToInt32(dg1.Rows[i].Cells["diameterStart"].Value));
+                specialRng.diameterRange.SetEnd(Convert.ToInt32(dg1.Rows[i].Cells["diameterEnd"].Value));
+                if (dg1.Rows[i].Cells["collectXray"].Value == DBNull.Value || dg1.Rows[i].Cells["collectXray"].Value.ToString().ToLower() == "false")
+                {
+                    specialRng.ifCollectXray =false;
+                }
+                else
+                {
+                    specialRng.ifCollectXray =true;
+                }
+
+               
+                rngs.Add(specialRng);    
+              
+
+            }
+            specialGray.SetSpecailGrayRanges(rngs);
+            specialGray.IsToRun=checkBox1.Checked;
+
+            //XMLoperate.UpdateSpecialGrayXMLFile(xmlPath, dg1, checkBox1.Checked);
             this.Close();
 
         }

+ 15 - 15
OTSIncAMeasureApp/OTSIncAMeasureAppForm.cs

@@ -97,7 +97,7 @@ namespace OTSMeasureApp
             m_MsrThreadWrapper.SetDoRunType(value);
         }
 
-        public FileSystemWatcher fileWatcher = new FileSystemWatcher(Application.StartupPath+ @"\Config\SysData");
+        //public FileSystemWatcher fileWatcher = new FileSystemWatcher(Application.StartupPath+ @"\Config\SysData");
          Form sp;
         
         public OTSIncAMeasureAppForm()
@@ -145,23 +145,23 @@ namespace OTSMeasureApp
             m_RibbonFun = new OTSRibbonFun(this);
             //初始化测量线程
             m_MsrThreadWrapper = new CMeasureThreadWrapper(this);//must be the last sentence of this procedure.
-            fileWatcher.Changed += FileWatcher_Changed;
+            //fileWatcher.Changed += FileWatcher_Changed;
           
-            fileWatcher.EnableRaisingEvents=true;
+            //fileWatcher.EnableRaisingEvents=true;
            
         }
 
-        private void FileWatcher_Changed(object sender, FileSystemEventArgs e)
-        {
-            if (e.Name == "SpecialGrayConfig.xml")
-            {
-                m_ProjParam.SpecialRanges.IsInited = false;
-                foreach (var s in this.m_ProjRstData.GetSampleList())
-                {
-                    s.GetMsrParams().GetSpecialGrayRangeParam().IsInited = false;
-                }
-            }
-        }
+        //private void FileWatcher_Changed(object sender, FileSystemEventArgs e)
+        //{
+        //    if (e.Name == "SpecialGrayConfig.xml")
+        //    {
+        //        m_ProjParam.SpecialRanges.IsInited = false;
+        //        foreach (var s in this.m_ProjRstData.GetSampleList())
+        //        {
+        //            s.GetMsrParams().GetSpecialGrayRangeParam().IsInited = false;
+        //        }
+        //    }
+        //}
 
         private void OTSIncAMeasureAppForm_Load(object sender, EventArgs e)
         {
@@ -175,7 +175,7 @@ namespace OTSMeasureApp
                
                 if (m_ProjParam.LoadParamFile() && m_ProjParam.LoadStageParamFile())
                 {
-                    m_ProjParam.LoadSpecialGrayRangeParamFile();
+                    //m_ProjParam.LoadSpecialGrayRangeParamFile();
                   
                     if (m_ProjParam.InitResultData())
                     {