Browse Source

fix the bug when classifying the Ca-Alumiume cause app broken problem.

CXS 3 years ago
parent
commit
5c99939bcb

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

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

+ 7 - 0
OTSCPP/OTSClassifyEngine/InclutionEngine/OTSClassifyEng.cpp

@@ -2094,6 +2094,13 @@ namespace OTSClassifyEngine
 		if (dKeyElMolar100 > ALUMINAT_KEY_ELEMENT_MOLAR_TOTAL_MIN && dKeyElMolar100 < ALUMINAT_KEY_ELEMENT_MOLAR_TOTAL_MAX)
 		if (dKeyElMolar100 > ALUMINAT_KEY_ELEMENT_MOLAR_TOTAL_MIN && dKeyElMolar100 < ALUMINAT_KEY_ELEMENT_MOLAR_TOTAL_MAX)
 		{
 		{
 			CElementChemistryPtr pKeyElChem2 = GetNamedElementChemistry(a_listElChems, ALUMINATE_KEY_ELEMENT_NAME[1]);
 			CElementChemistryPtr pKeyElChem2 = GetNamedElementChemistry(a_listElChems, ALUMINATE_KEY_ELEMENT_NAME[1]);
+
+			if (!pKeyElChem2)
+			{
+				strName = ALUMINATE_STR;
+				return TRUE;
+			}
+
 			double dFirstElMolar = pKeyElChem->GetMolarPercentage();//Al
 			double dFirstElMolar = pKeyElChem->GetMolarPercentage();//Al
 			double dSecondElMolar = pKeyElChem2->GetMolarPercentage();//Ca
 			double dSecondElMolar = pKeyElChem2->GetMolarPercentage();//Ca
 			double dRatio = dFirstElMolar/dSecondElMolar ;// Al/Ca
 			double dRatio = dFirstElMolar/dSecondElMolar ;// Al/Ca

+ 9 - 1
OTSCPP/OTSClrInterface/ClassificationClr/OTSClassifyEngineClr.cpp

@@ -40,7 +40,15 @@ namespace OTSCLRINTERFACE {
 	{
 	{
 		auto part = particle->GetOTSParticlePtr();
 		auto part = particle->GetOTSParticlePtr();
 		auto xraydata = part->GetXrayInfo();
 		auto xraydata = part->GetXrayInfo();
-		return engine->Classify(part, xraydata);
+		if (xraydata != nullptr)
+		{
+			return engine->Classify(part, xraydata);
+		}
+		else
+		{
+			return false;
+		}
+		
 		
 		
 	}
 	}