Browse Source

EDSController 改变获取EDS方式

zhongyongming 10 tháng trước cách đây
mục cha
commit
4affa862be

+ 1 - 1
Bin/x64/Debug/Config/ProData/HardwareConfig.xml

@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <XMLData PathName="HardwareConfig.xml" ID="1">
   <Member RegName="SemControllerName" Value="Coxm" ImageInputSources="SE" />
-  <Member RegName="EDSName" Value="Coxm" DelayQuantify="false" WeightPercentageToAtomicPercentage="false" />
+  <Member RegName="EDSName" Value="Bruker" DelayQuantify="false" WeightPercentageToAtomicPercentage="false" />
   <Member RegName="BrukerDllVersion" Version="Bruker.API.Esprit64.dll" />
   <Member RegName="FEIIP" Value="127.0.0.1" />
   <Member RegName="FEIPORT" Value="7321" />

+ 2 - 1
OTSIncAMeasureApp/1-OTSMeasure/Measure/3-MeasureFlow/CSmplMeasure.cs

@@ -66,7 +66,8 @@ namespace OTSModelSharp
             var ifautoid = m_Sample.GetMsrParams().GetXRayParam().IfAutoId;
             var knownelements = m_Sample.GetMsrParams().GetXRayParam().AnalysisElements;
             string deviceType = FileHelper.GetXMLInformations("EDSName");
-            m_EDSController = EDSController.GetEDSController(deviceType, imgwidth,imgheight,expC,ifautoid,knownelements);
+            var semtype = FileHelper.GetXMLInformations("SemControllerName");
+            m_EDSController = EDSController.GetEDSController(semtype,deviceType, imgwidth,imgheight,expC,ifautoid,knownelements);
             m_listHoleBSEImg = new CHoleBSEImgsList();
             m_Sample = a_pSample;
             m_ifAquireClearParticleImage = FileHelper.GetIfAquireClearParticleImage();

+ 2 - 1
OTSIncAMeasureApp/1-OTSMeasure/Measure/4-ReMeasure/SmplMeasureReMeasure.cs

@@ -55,7 +55,8 @@ namespace OTSMeasureApp._0_OTSModel.Measure._4_ReMeasure
             var ifautoid = m_Sample.GetMsrParams().GetXRayParam().IfAutoId;
             var knownelements = m_Sample.GetMsrParams().GetXRayParam().AnalysisElements;
             string deviceType = FileHelper.GetXMLInformations("EDSName");
-            eds = EDSController.GetEDSController(deviceType,imgwidth, imgheight, expC, ifautoid, knownelements);
+            var semtype = FileHelper.GetXMLInformations("SemControllerName");
+            eds = EDSController.GetEDSController(semtype,deviceType, imgwidth, imgheight, expC, ifautoid, knownelements);
 
             //eds = EDSController.GetEDSController(imgwidth,imgheight,expC);
             return a_pBSEImg.GetImageDataPtr();

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

@@ -1456,7 +1456,8 @@ namespace OTSMeasureApp
             var ifautoid = m_MeasureAppForm.m_ProjRstData.GetWorkingSample().GetMsrParams().GetXRayParam().IfAutoId;
             var knownelements = m_MeasureAppForm.m_ProjRstData.GetWorkingSample().GetMsrParams().GetXRayParam().AnalysisElements;
             string deviceType = FileHelper.GetXMLInformations("EDSName");
-            IEDSController m_EDSHardwareMgr = EDSController.GetEDSController(deviceType, m_iWidth, m_iHeight, expC,ifautoid,knownelements);
+            var semtype = FileHelper.GetXMLInformations("SemControllerName");
+            IEDSController m_EDSHardwareMgr = EDSController.GetEDSController(semtype,deviceType, m_iWidth, m_iHeight, expC,ifautoid,knownelements);
 
             //1.连接电镜
             if (m_EDSHardwareMgr.Connect())
@@ -1564,7 +1565,8 @@ namespace OTSMeasureApp
             var ifautoid = m_MeasureAppForm.m_ProjRstData.GetWorkingSample().GetMsrParams().GetXRayParam().IfAutoId;
             var knownelements = m_MeasureAppForm.m_ProjRstData.GetWorkingSample().GetMsrParams().GetXRayParam().AnalysisElements;
             string deviceType = FileHelper.GetXMLInformations("EDSName");
-            var eds = EDSController.GetEDSController(deviceType,m_iWidth, m_iHeight, expC,ifautoid,knownelements);
+            var semtype = FileHelper.GetXMLInformations("SemControllerName");
+            var eds = EDSController.GetEDSController(semtype, deviceType,m_iWidth, m_iHeight, expC,ifautoid,knownelements);
             var mode = m_MeasureAppForm.m_ProjRstData.GetWorkingSample().GetMsrParams().GetXRayParam().GetScanMode();
             var part = new COTSParticleClr();
             part.SetXRayPos(new Point(dMouseImgX, dMouseImgY));

+ 2 - 1
OTSIncAMeasureApp/BaseFunctionTest.cs

@@ -83,7 +83,8 @@ namespace OTSMeasureApp
            
             part.SetXRayPos(new Point(20, 20));
             string deviceType = FileHelper.GetXMLInformations("EDSName");
-            var eds = EDSController.GetEDSController(deviceType,1024, 768,5000,true,"");
+            var semtype = FileHelper.GetXMLInformations("SemControllerName");
+            var eds = EDSController.GetEDSController(semtype,deviceType,1024, 768,5000,true,"");
             List<COTSParticleClr> parts = new List<COTSParticleClr>();
             parts.Add(part);
             uint[] xrayData=new uint[2000];

+ 82 - 42
OTSIncAMeasureApp/ServiceCenter/CPP(Bruker)API/EDSController.cs

@@ -18,58 +18,98 @@ namespace OTSModelSharp.ServiceCenter
         private COTSControlFunExport eds;
         static IEDSController edsctrl = null;
         private List<String> keyElenamelist = new List<string>();
-        private bool delayQuant=false;
-
-       
-
-        public static IEDSController GetEDSController(string deviceType,int imgwidth,int imgheight,int expectCount,bool ifautoid,string knownelements)
+        public bool delayQuant=false;
+        /// <summary>
+        /// 
+        /// </summary>
+        /// <param name="SemType">sem type</param>
+        /// <param name="deviceType"> eds type</param>
+        /// <param name="imgwidth"></param>
+        /// <param name="imgheight"></param>
+        /// <param name="expectCount"></param>
+        /// <param name="ifautoid"></param>
+        /// <param name="knownelements"></param>
+        /// <returns></returns>
+        public static IEDSController GetEDSController(string SemType,string deviceType,int imgwidth,int imgheight,int expectCount,bool ifautoid,string knownelements)
         {
-           // string deviceType = FileHelper.GetXMLInformations("EDSName");
-         
+            // string deviceType = FileHelper.GetXMLInformations("EDSName");
+          
             if (edsctrl == null)
             {
-                if (deviceType == "FEI")
-                {
-                    edsctrl = new FEIEDSController(expectCount,ifautoid,knownelements);
-
-                }
-                else if (deviceType == "Oxford")
-                {
-                    edsctrl = new OxfordEDSController(expectCount,ifautoid,knownelements);
-
-                }
-                else if (deviceType == "Bruker")
+                switch (SemType)
                 {
-                    var ctrl = new EDSController("Bruker",expectCount,ifautoid,knownelements);
-                    //var delayQuant = Convert.ToBoolean(FileHelper.GetIfDelayQuantify());
-                   var delayQuant = false;//Now it has proved that this method won't increase the speed of xray analysis.So deactivate it here.
-                    ctrl.delayQuant = delayQuant;
-                    edsctrl = ctrl;
-
-                }
-                else if (deviceType == "OffLine")
-                {
-                    edsctrl = new EDSController("OffLine",expectCount,ifautoid,knownelements);
-                  
-
-                }
-                else if (deviceType == "PicoSmart")
-                {
-                    //edsctrl = new PicoSmartEDSController(deviceType, expectCount, ifautoid, knownelements);
-                    edsctrl = new PicoSmartEDSController(deviceType,  imgwidth,  imgheight, expectCount, ifautoid, knownelements);
-                }
-                else if (deviceType == "Coxm")
-                {
-                    edsctrl = new CoxmEDSController(deviceType, imgwidth,  imgheight, expectCount, ifautoid, knownelements);
+                    case "FEI":
+                        if (deviceType == "FEI")
+                        {
+                            edsctrl = new FEIEDSController(expectCount, ifautoid, knownelements);
+
+                        }
+                        else if (deviceType == "Oxford")
+                        {
+                            edsctrl = new OxfordEDSController(expectCount, ifautoid, knownelements);
+
+                        }
+                        else if (deviceType == "Bruker")
+                        {
+                            var ctrl = new EDSController("Bruker", expectCount, ifautoid, knownelements);
+                            //var delayQuant = Convert.ToBoolean(FileHelper.GetIfDelayQuantify());
+                            var delayQuant = false;//Now it has proved that this method won't increase the speed of xray analysis.So deactivate it here.
+                            ctrl.delayQuant = delayQuant;
+                            edsctrl = ctrl;
+
+                        }
+                        break;
+                    case "ZEISS":
+                        if (deviceType == "Oxford")
+                        {
+                            edsctrl = new OxfordEDSController(expectCount, ifautoid, knownelements);
+
+                        }
+                        else if (deviceType == "Bruker")
+                        {
+                            var ctrl = new EDSController("Bruker", expectCount, ifautoid, knownelements);
+                            //var delayQuant = Convert.ToBoolean(FileHelper.GetIfDelayQuantify());
+                            var delayQuant = false;//Now it has proved that this method won't increase the speed of xray analysis.So deactivate it here.
+                            ctrl.delayQuant = delayQuant;
+                            edsctrl = ctrl;
+
+                        }
+                        break;
+                    case "Coxm":
+                        edsctrl = new CoxmEDSController(SemType, deviceType, imgwidth, imgheight, expectCount, ifautoid, knownelements);
+                        break;
+                    case "PicoSmart":
+                        edsctrl = new PicoSmartEDSController(SemType, deviceType, imgwidth, imgheight, expectCount, ifautoid, knownelements);
+                        break;
+                    case "ComposeEds"://coxm picosmart ComposeEds;coxm picosmart 电镜组合eds
+                        if (deviceType == "Oxford")
+                        {
+                            edsctrl = new OxfordEDSController(expectCount, ifautoid, knownelements);
+
+                        }
+                        else if (deviceType == "Bruker")
+                        {
+                            var ctrl = new EDSController("Bruker", expectCount, ifautoid, knownelements);
+                            //var delayQuant = Convert.ToBoolean(FileHelper.GetIfDelayQuantify());
+                            var delayQuant = false;//Now it has proved that this method won't increase the speed of xray analysis.So deactivate it here.
+                            ctrl.delayQuant = delayQuant;
+                            edsctrl = ctrl;
+
+                        }
+                        break;
+                    case "OffLine":
+                        edsctrl = new EDSController("OffLine", expectCount, ifautoid, knownelements);
+                        break;
+                    default:
+                        edsctrl = new EDSController("OffLine", expectCount, ifautoid, knownelements);
+                        break;
                 }
                 edsctrl.SetResolution(imgwidth, imgheight);
-
-
             }
             return edsctrl;
         }
 
-        protected EDSController(string deviceType,int expectcount,bool ifautoid,string knownelements)
+        public EDSController(string deviceType,int expectcount,bool ifautoid,string knownelements)
         {
          
                 eds = COTSControlFunExport.GetControllerInstance(deviceType);

+ 1 - 1
OTSIncAMeasureApp/ServiceCenter/CPP(Bruker)API/SemController.cs

@@ -22,7 +22,7 @@ namespace OTSModelSharp.ServiceCenter
      
         public static ISemController GetSEMController()
         {
-            var semtype = FileHelper.GetXMLInformations("EDSName");
+            var semtype = FileHelper.GetXMLInformations("SemControllerName");
             if (sem == null)
             {
                 if (semtype== "FEI")

+ 22 - 3
OTSIncAMeasureApp/ServiceCenter/CoxmSem/CoxmEDSController.cs

@@ -18,12 +18,31 @@ namespace OTSMeasureApp.ServiceCenter.Coxm
         private IEDSController m_eds;
         static string eds_deviceType = "Bruker";//"Oxford"  "FEI"
         NSRestClient m_coxm_api;
-        public CoxmEDSController(string deviceType, int imgwidth, int imgheight ,int expectcount, bool ifautoid, string knownelements)
-        //(string deviceType, int expectcount, bool ifautoid, string knownelements)
+        public CoxmEDSController(string SemType,string deviceType, int imgwidth, int imgheight ,int expectcount, bool ifautoid, string knownelements)
         {
+            eds_deviceType = deviceType;
             CoxmEDSController.imgwidth = imgwidth;
             CoxmEDSController.imgheight = imgheight;
-            m_eds = EDSController.GetEDSController(eds_deviceType, imgwidth,  imgheight, expectcount,  ifautoid,  knownelements);
+            //get eds
+            switch (deviceType)
+            {
+                case "Oxford":
+                    m_eds = new OxfordEDSController(expectcount, ifautoid, knownelements);
+                    break;
+                case "Bruker":
+                    {
+                        var ctrl = new EDSController("Bruker", expectcount, ifautoid, knownelements);
+                        //var delayQuant = Convert.ToBoolean(FileHelper.GetIfDelayQuantify());
+                        var delayQuant = false;//Now it has proved that this method won't increase the speed of xray analysis.So deactivate it here.
+                        ctrl.delayQuant = delayQuant;
+                        m_eds = ctrl;
+
+                    }
+                    break;
+                default:
+                    m_eds = new EDSController("OffLine", expectcount, ifautoid, knownelements);
+                    break;
+            }            
             m_coxm_api = CoxmSemController.GetApiClassInstance();
         }
 

+ 22 - 3
OTSIncAMeasureApp/ServiceCenter/PicoSmart/PicoSmartEDSController.cs

@@ -30,16 +30,35 @@ namespace OTSMeasureApp.ServiceCenter.PicoSmart
         private int AnalyExpCount = 100000;
         private string strResolution = "";
  
-        public PicoSmartEDSController(string deviceType, int imgwidth, int imgheight, int expectcount, bool ifautoid, string knownelements)
+        public PicoSmartEDSController(string SemType,string deviceType, int imgwidth, int imgheight, int expectcount, bool ifautoid, string knownelements)
         {
+            EdsDeviceType= deviceType;
             m_api = PicoSmartSemController.GetApiClassInstance();
             AnalyExpCount = expectcount;
             Connect();
-            m_eds = EDSController.GetEDSController(EdsDeviceType, imgwidth, imgheight, expectcount, ifautoid, knownelements);
+            //get eds
+            switch (deviceType)
+            {
+                case "Oxford":
+                    m_eds = new OxfordEDSController(expectcount, ifautoid, knownelements);
+                    break;
+                case "Bruker":
+                    {
+                        var ctrl = new EDSController("Bruker", expectcount, ifautoid, knownelements);
+                        //var delayQuant = Convert.ToBoolean(FileHelper.GetIfDelayQuantify());
+                        var delayQuant = false;//Now it has proved that this method won't increase the speed of xray analysis.So deactivate it here.
+                        ctrl.delayQuant = delayQuant;
+                        m_eds = ctrl;
+
+                    }
+                    break;
+                default:
+                    m_eds = new EDSController("OffLine", expectcount, ifautoid, knownelements);
+                    break;
+            }
             this.imgwidth = imgwidth;
             this.imgheight = imgheight;
             //加载能谱
-
         }
 
         public bool CollectSpectrum(uint a_nXRayAQTime, ref uint[] a_XrayData)

+ 8 - 4
OTSSysMgrApp/ControllerSettingForm.cs

@@ -48,7 +48,8 @@ namespace OTSSysMgrApp
         {
             InitializeComponent();
             string deviceType = FileHelper.GetXMLInformations("EDSName");
-            m_EDSHardwareMgr = EDSController.GetEDSController(deviceType, Convert.ToInt32(tbRWidth.Text), Convert.ToInt32(tbRHeight.Text), 5000,true,"");
+            var semtype = FileHelper.GetXMLInformations("SemControllerName");
+            m_EDSHardwareMgr = EDSController.GetEDSController(semtype, deviceType, Convert.ToInt32(tbRWidth.Text), Convert.ToInt32(tbRHeight.Text), 5000,true,"");
 
             lan = new Language(this);
             table = lan.GetNameTable(this.Name);
@@ -147,7 +148,8 @@ namespace OTSSysMgrApp
             int width = Convert.ToInt32(tbRWidth.Text);
             int height = Convert.ToInt32(tbRHeight.Text);
             string deviceType = FileHelper.GetXMLInformations("EDSName");
-            m_EDSHardwareMgr = EDSController.GetEDSController(deviceType, width, height, 5000,true,"");
+            var semtype = FileHelper.GetXMLInformations("SemControllerName");
+            m_EDSHardwareMgr = EDSController.GetEDSController(semtype, deviceType, width, height, 5000,true,"");
 
             cb_Xdirection.Items.Add("LEFT_TOWARD");
             cb_Xdirection.Items.Add("RIGHT_TOWARD");
@@ -1029,7 +1031,8 @@ namespace OTSSysMgrApp
         {
 
             string deviceType = FileHelper.GetXMLInformations("EDSName");
-            var eds = EDSController.GetEDSController(deviceType, Convert.ToInt32(tbRWidth.Text),Convert.ToInt32(tbRHeight.Text),5000,true,"");
+            var semtype = FileHelper.GetXMLInformations("SemControllerName");
+            var eds = EDSController.GetEDSController(semtype, deviceType, Convert.ToInt32(tbRWidth.Text),Convert.ToInt32(tbRHeight.Text),5000,true,"");
             var part = new COTSParticleClr();
             part.SetFeature(fea);
             var parts = new List<COTSParticleClr>();
@@ -1170,7 +1173,8 @@ namespace OTSSysMgrApp
         {
 
             string deviceType = FileHelper.GetXMLInformations("EDSName");
-            var eds = EDSController.GetEDSController(deviceType, Convert.ToInt32(tbRWidth.Text), Convert.ToInt32(tbRHeight.Text), 5000,true,"");
+            var semtype = FileHelper.GetXMLInformations("SemControllerName");
+            var eds = EDSController.GetEDSController(semtype, deviceType, Convert.ToInt32(tbRWidth.Text), Convert.ToInt32(tbRHeight.Text), 5000,true,"");
             var part = new COTSParticleClr();
             var pos = new Point(10, 10);
             part.SetXRayPos(pos);