소스 검색

修改去背景图单点采集无xray的bug

cxs 1 주 전
부모
커밋
9353f792f0

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

@@ -207,7 +207,8 @@ namespace OTSModelSharp.ServiceCenter
                 partsTemp[m] = a_listParticles[m];
                 allpoints[m] = Ps[m];
             }
-            if (!eds.GetXRayByPoints(a_nXRayAQTime, allpoints, partsTemp, a_bElementInfo))
+            result = eds.GetXRayByPoints(a_nXRayAQTime, allpoints, partsTemp, a_bElementInfo);
+            if (!result)
             {
                 NLog.LogManager.GetCurrentClassLogger().Error("GetXRayByPoints: failed to get element.");
                 return false;

+ 10 - 21
OTSIncAReportApp/1-UI/Control_Grids/ParticlesGridDevidePage/ListOfSimilarParticles.cs

@@ -107,6 +107,7 @@ namespace OTSIncAReportApp._1_UI.Control_Grids.ParticlesGridDevidePage
                 }
                 DataTable XRayData = _particlesGridDevidePage.Particledata.GetXRayData();
                 particlesAll.Columns.Add("XRayDataCount");
+                particles = particlesAll.Clone();
                 for (int i = 0; i < particlesAll.Rows.Count; i++)
                 {
                     if (int.Parse(particlesAll.Rows[i]["particleId"].ToString()) > -1)
@@ -129,30 +130,18 @@ namespace OTSIncAReportApp._1_UI.Control_Grids.ParticlesGridDevidePage
                                     xraycount += Analysis_xray[j];
                                 }
                                 particlesAll.Rows[i]["XRayDataCount"] = xraycount;
+                                CPosXrayClr Xrayclr = new CPosXrayClr();
+                                Xrayclr.SetXrayData(Analysis_xray);
+                                particlesAll.Rows[i]["SimilarRatio"] = GetCosValue(SelXrayclr, Xrayclr);
+                                if ((double)particlesAll.Rows[i]["SimilarRatio"] >= val / 100)
+                                {
+                                    particles.ImportRow(particlesAll.Rows[i]);
+                                }
                             }
                         }
                     }
                 }
-                particles = particlesAll.Clone();
-                foreach (DataRow row in particlesAll.Rows)
-                {
-                    var tmpPart = _particlesGridDevidePage.Particledata.GetParticleXrayDataByFidAndPid(row["fieldid"].ToString(), row["xrayid"].ToString());
-                    if (tmpPart != null)
-                    {
-                        uint[] Search_xray = new uint[2000];
-                        for (int i = 0; i < 2000; i++)
-                        {
-                            Search_xray[i] = BitConverter.ToUInt32(tmpPart.XRayData, i * 4);
-                        }
-                        CPosXrayClr Xrayclr = new CPosXrayClr();
-                        Xrayclr.SetXrayData(Search_xray);
-                        row["SimilarRatio"] = GetCosValue(SelXrayclr, Xrayclr);
-                        if ((double)row["SimilarRatio"] >= val/100)
-                        {
-                            particles.ImportRow(row);
-                        }
-                    }
-                }
+
                 particles.DefaultView.Sort = "SimilarRatio DESC";
                 particles = particles.DefaultView.ToTable();
                 BindDataGridView();
@@ -206,12 +195,12 @@ namespace OTSIncAReportApp._1_UI.Control_Grids.ParticlesGridDevidePage
                 dgV_SimilarParticles.Rows[0].Frozen = true;
             }
         }
+
         private void BindDataGridView()
         {
             dgV_SimilarParticles.Visible = false;
             dgV_SimilarParticles.Rows.Clear();
             dgV_SimilarParticles.Columns.Clear();
-
             string str_DefaultComputedColName = "", str_ElementsColName = "";
             DataSet ds = XMLoperate.GetXmlData(Application.StartupPath + RptConfigFile.m_ReportMgrParamFile, "XMLData");
             DataTable dt = ds.Tables["Member"];