Ver Fonte

fix the bug of cleanliness classification.

gsp há 3 anos atrás
pai
commit
686ab68083

+ 4 - 0
OTSCPP/OTSControl/Bruker/OTSSEMBruker.h

@@ -25,6 +25,10 @@ namespace OTSController {
 			{
 				return m_pBrukerImplPtr->DisConnect();
 			}
+			else
+			{
+				return true;
+			}
 			
 			 
 		} ;// do nothing for this controller.

+ 27 - 3
OTSIncAMeasureApp/0-OTSModel/Measure/1-OTSInclution/SmplMeasureInclution.cs

@@ -59,7 +59,7 @@ namespace OTSModelSharp
             curFldData.CalParticleImageProp(analysisparts);//calculate particle image property such as feret diameter, DMAX etc.
 
             log.Info("Begin to classify particles! particle num:"+ curFldData.ListAnalysisParticles.Count);
-            ClassifyParticles(curFldData.ListAnalysisParticles);
+            ClassifyFieldParticles();
 
           
 
@@ -197,12 +197,13 @@ namespace OTSModelSharp
 
       
 
-        public override void  ClassifyParticles(List<COTSParticleClr> parts)
+        public override void  ClassifyFieldParticles()
         {
 
             try
             {
-                var quantifyparts = parts;
+                var curFld = (CFieldDataIncA)curFldData;
+                var quantifyparts = curFld.ListAnalysisParticles;
                 int nSize = quantifyparts.Count();
 
                 // go through all analysis particles
@@ -220,6 +221,29 @@ namespace OTSModelSharp
             }
 
 
+        }
+        public override void ClassifyMergedParticles(List<COTSParticleClr> mergedParts)
+        {
+            try
+            {
+               
+                var quantifyparts = mergedParts;
+                int nSize = quantifyparts.Count();
+
+                // go through all analysis particles
+                for (int i = 0; i < nSize; ++i)
+                {
+                    string libname = m_Sample.GetMsrParams().GetSTDName();
+                    ClassifyIncAParticle(quantifyparts[i], libname);
+                }
+
+
+            }
+            catch (Exception e)
+            {
+                log.Info(" classify failed. " + e.Message);
+            }
+
         }
         public bool ClassifyIncAParticle(COTSParticleClr particle, string libname)// classify particles
         {

+ 31 - 40
OTSIncAMeasureApp/0-OTSModel/Measure/2-OTSCleanliness/SmplMeasureCleanliness.cs

@@ -58,7 +58,7 @@ namespace OTSModelSharp
             curFldData.CalParticleImageProp(analysisparts);//calculate particle image property such as feret diameter, DMAX etc.
 
 
-            ClassifyParticles(curFldData.ListAnalysisParticles);
+            ClassifyFieldParticles();
 
   
 
@@ -154,39 +154,7 @@ namespace OTSModelSharp
                     bigparts.Add(part);
                 }
             }
-            // 3) according to the presettings,make sure we won't do the xray processing work for too many small particles.
-            //var fieldParam = m_Sample.GetMsrParams().GetImageScanParam();
-            //double smallPartnum;
-            // List<COTSParticleClr> smallPartList = new  List<COTSParticleClr>();
-            //double percentage = 100;
-            //switch (fieldParam.GetFieldStopMode())
-            //{
-            //    case otsdataconst.OTS_MEASURE_FIELD_STOP_MODE.ParticlesPercentage:
-            //        percentage = fieldParam.GetFieldSmallParticlesPercentage();
-            //        percentage = percentage / 100;// according to the percentage
-            //        smallPartnum = smallparts.Count() * percentage;
-            //        for (int i = 0; i < smallPartnum; i++)
-            //        {
-
-            //            smallPartList.Add(smallparts[i]);
-            //        }
-            //        break;
-            //    case otsdataconst.OTS_MEASURE_FIELD_STOP_MODE.Particles:
-            //        percentage = 1;
-            //        smallPartnum = fieldParam.GetFieldSmallParticleNum();//according to the numbers.
-            //        if (smallPartnum < smallparts.Count())
-            //        {
-            //            for (int i = 0; i < smallPartnum; i++)
-            //            {
-            //                smallPartList.Add(smallparts[i]);
-            //            }
-            //        }
-            //        break;
-            //    default:
-            //        percentage = 1;
-            //        smallPartList = smallparts;
-            //        break;
-            //}
+            
 
             fld.ListSmallParticles = smallparts;
             fld.ListBigParticles = bigparts;
@@ -270,19 +238,20 @@ namespace OTSModelSharp
             }
         }
 
-        public void ClassifyParticles(CFieldDataClean fld)
+        public override void ClassifyFieldParticles()
         {
            
             try
             {
-              
+                CFieldDataClean curFldDataCln = (CFieldDataClean)curFldData;
                 string libname = m_Sample.GetMsrParams().GetSTDName();
                 if (libname != "NoSTDDB")
                 {
                    log.Info("Begin to classify big particles!Using " + libname);
-                    var bigparts = fld.ListBigParticles;
+                    var bigparts = curFldDataCln.ListBigParticles;
                     ClassifyQuantifyParticles(bigparts,libname);
-                    ClassifySmallParticles(fld, libname);
+                    var smallParts = curFldDataCln.ListSmallParticles;
+                    ClassifySmallParticles(smallParts, libname);
                  
                 }
             }
@@ -293,7 +262,29 @@ namespace OTSModelSharp
 
 
         }
+        public override void ClassifyMergedParticles(List<COTSParticleClr> mergedParts)
+        {
+            try
+            {
+
+                var quantifyparts = mergedParts;
+                int nSize = quantifyparts.Count();
+
+                // go through all analysis particles
+                for (int i = 0; i < nSize; ++i)
+                {
+                    string libname = m_Sample.GetMsrParams().GetSTDName();
+                    ClassifyQuantifyParticles(quantifyparts, libname);
+                }
 
+
+            }
+            catch (Exception e)
+            {
+                log.Info(" classify failed. " + e.Message);
+            }
+
+        }
         public void SaveFieldParticlesData()
         {
             StartSaveFileThread(curFldData);
@@ -345,9 +336,9 @@ namespace OTSModelSharp
             // ok, return TRUE
             return true;
         }
-        public bool ClassifySmallParticles(CFieldDataClean fld, string libname)
+        public bool ClassifySmallParticles(List<COTSParticleClr> smallparts, string libname)
         {
-            List<COTSParticleClr> a_listAnalysisParticles = fld.ListSmallParticles;
+            List<COTSParticleClr> a_listAnalysisParticles = smallparts;
 
             int nSize = (int)a_listAnalysisParticles.Count();
 

+ 6 - 2
OTSIncAMeasureApp/0-OTSModel/Measure/GetBSEPic/CSmplMeasure.cs

@@ -412,7 +412,11 @@ namespace OTSModelSharp
             return true;
 
         }
-        public virtual void ClassifyParticles(List<COTSParticleClr> parts)
+        public virtual void ClassifyFieldParticles()
+        {
+            return;
+        }
+        public virtual void ClassifyMergedParticles(List<COTSParticleClr> parts)
         {
             return;
         }
@@ -682,7 +686,7 @@ namespace OTSModelSharp
 
                 
 
-                ClassifyParticles(mergedParticles);
+                ClassifyMergedParticles(mergedParticles);
                 log.Warn("begin particle data db saving...");