Ver Fonte

fix the bug of bruker driver (cann't do the quantification)

beijing há 3 meses atrás
pai
commit
1341a46d4a

+ 2 - 2
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="OffLine" ImageInputSources="SE" />
-  <Member RegName="EDSName" Value="OffLine" DelayQuantify="true" WeightPercentageToAtomicPercentage="false" />
+  <Member RegName="SemControllerName" Value="Bruker" ImageInputSources="SE" />
+  <Member RegName="EDSName" Value="Bruker" WeightPercentageToAtomicPercentage="false" />
   <Member RegName="BrukerDllVersion" Version="Bruker.API.Esprit64.dll" />
   <Member RegName="FEIIP" Value="192.168.0.1" />
   <Member RegName="FEIPORT" Value="7520" />

BIN
Bin/x64/Debug/Config/SysData/Cleanness_N.db


+ 5 - 5
Bin/x64/Debug/Config/SysData/OTSProgMgrParam.pmf

@@ -1,15 +1,15 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <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="OTSIncASTD - Perception - Al kill" SteelTechnology="0" />
+  <Member RegName="GenParam" DefaultArea="1400" DefaultSampleName="Sample" DefaultShape="0" EngineType="1:ExpressionParse" MeasParamFileFolderName=".\Config\ProData\" MeasSwitch="true" PartSTDLibFolderName=".\Config\SysData\" PropertyDisplayMode="0" StdLibFileName="Cleanness_F" SteelTechnology="0" />
   <Member RegName="ImageProcParam" AutoBGRemoveType="0:MIDDLE" BGRemoveType="1:MANUAL" MatrixStep="50" OverlapParam="0" ParticleSelectionCondition="">
-    <Member RegName="BGGray" end="255" start="160" />
-    <Member RegName="IncArea" end="200" start="3" />
+    <Member RegName="BGGray" end="26" start="0" />
+    <Member RegName="IncArea" end="200" start="25" />
     <Member RegName="ParticleGray" end="255" start="200" />
   </Member>
-  <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="ImageScanParam" ImageResolution="4:_1536_1024" SatrtImageMode="1:Snake" ScanImageSpeed="0:low" StopMode="0:CoverMode" StopParamArea="30" StopParamFields="100" StopParamMeasTime="360" StopParamParticles="5000" />
   <Member RegName="SpecialGrayParam" ToRun="true">
     <Collection RegName="GrayRangeList">
-      <Member collectXray="true" diameterEnd="200" diameterStart="0" end="171" rngName="rang1" start="26" />
+      <Member collectXray="true" diameterEnd="200" diameterStart="5" end="248" rngName="rang1" start="170" />
     </Collection>
   </Member>
   <Member RegName="StageData" ControlDelay="2000" MinMag="65" scanFieldSize="1270" xAxisDir="1:RIGHT_TOWARD" yAxisDir="0:UP_TOWARD">

+ 3 - 1
OTSCPP/OTSControl/Bruker/OTSBrukerImpl.cpp

@@ -165,7 +165,7 @@ namespace OTSController {
 	{
 		if (m_bConnected)
 		{
-			CloseClient();
+			//CloseClient();
 			m_bConnected = false;
 		}
 		return true;
@@ -2442,6 +2442,7 @@ BOOL COTSBrukerImpl::QuantifyPosXrayPointsOnLine(CPosXrayList& a_listXrayPois)
 			
 			char cResult[10000];
 			memset(cResult, 0, 10000);
+			a_listXrayPois[i]->SetIndex(i);
 			int xraySequence = a_listXrayPois[i]->GetIndex();
 			if (BrukerDll::QuantifyPointListSpectrum(m_nClientID, xraySequence, pcMethod, pcParams, cResult, 10000, (BrukerDll::PRTSpectrumHeaderRec)m_psRTSpectrumBuffer.get(), (int)BRUKER_PARAM::RT_SPECTRUM_BUFFER_SIZE) != 0)
 			{
@@ -2539,6 +2540,7 @@ BOOL COTSBrukerImpl::SetXRayPointsByFeature(CPosXrayList& a_vXPoints, const DWOR
 				pcParams = pcPara.GetBuffer();
 			}
 			char cResult[10000];
+			a_vXPoints[i]->SetIndex(i);
 			int index = a_vXPoints[i]->GetIndex();
 			memset(cResult, 0, 10000);
 			if (BrukerDll::QuantifyFeatureListSpectrum(m_nClientID, index, pcMethod, pcParams, cResult, 10000, (BrukerDll::PRTSpectrumHeaderRec)m_psRTSpectrumBuffer.get(), (int)BRUKER_PARAM::RT_SPECTRUM_BUFFER_SIZE) != 0)

+ 17 - 17
OTSCPP/OTSControl/Bruker/OTSBrukerImpl.h

@@ -113,23 +113,8 @@ namespace OTSController {
 		BOOL CollectOneXRayPoint(const CPoint& a_oPoi, DWORD a_nLifeTimeMilliSeconds, long* a_pnCounts, DWORD a_nBufferSize, bool a_bSetHeadStruc = FALSE);
 		//------------------
 	
-		
-
 		BOOL StopSpectrumMeasure(void);
 		
-
-		// get quantification method name
-		BOOL GetQuantificationMethods(std::vector<CString>& a_vMethods);
-		BOOL QuantifyXrayPoint(CPosXray* a_pXRayPoint, CString a_strMethodName);
-		BOOL QuantifySpectrumFile(LPCTSTR a_sFilePathName, CString a_strMethodName, CElementChemistriesList& a_vElementChemistry);
-		// collect spectrum data by timeB and quantify
-		BOOL QuantifySpectrumOut(DWORD a_nMilliSeconds, long* a_pCounts, DWORD a_nBufferSize, CElementChemistriesList& a_listElementChemistries);
-
-		// quantify spectrum
-		BOOL QuantifySpectrum(char* a_pcMethod, char* a_pcParams, char* a_pcResultBuffer, long a_nBufferSize);
-
-	
-
 		// if do x-ray quantification
 		BOOL GetQuantificationFlag() { return m_bDoQuantification; }
 		void SetQuantificationFlag(BOOL a_bDoQuantification) { m_bDoQuantification = a_bDoQuantification; }
@@ -139,12 +124,26 @@ namespace OTSController {
 		
 		BOOL GetXRayByFeatures(CPosXrayList& a_vXPoints, std::vector<BrukerFeature> a_vFeatures, SHORT a_nACTimeMS);
 	
+		void SetQuantificationParam(BOOL ifAuto, CString knownElements);
+	
+
+
+
+
+		BOOL QuantifySpectrumFile(LPCTSTR a_sFilePathName, CString a_strMethodName, CElementChemistriesList& a_vElementChemistry);
+		// collect spectrum data by timeB and quantify
+		BOOL QuantifySpectrumOut(DWORD a_nMilliSeconds, long* a_pCounts, DWORD a_nBufferSize, CElementChemistriesList& a_listElementChemistries);
+		// get quantification method name
+		BOOL GetQuantificationMethods(std::vector<CString>& a_vMethods);
 		BOOL QuantifyPosXrayPointsOnLine(CPosXrayList& a_vXRayParts);//delay quantifying 
-		
+
 		BOOL QuantifyPosXrayPointOnLine(CPosXrayPtr a_vXRayPart);//delay quantifying 
 
-		void SetQuantificationParam(BOOL ifAuto, CString knownElements);
 
+		BOOL QuantifyXrayPoint(CPosXray* a_pXRayPoint, CString a_strMethodName);
+
+		// quantify spectrum
+		BOOL QuantifySpectrum(char* a_pcMethod, char* a_pcParams, char* a_pcResultBuffer, long a_nBufferSize);
 	private:
 		BOOL GetXRayByPointsOnHardwareLimit(CPosXrayList& a_listXrayPois, DWORD a_nACTimeMS);
 
@@ -216,6 +215,7 @@ namespace OTSController {
 		//Get Load Dll Name
 		BOOL GetLoadDllName(CString& csDllName);
 
+
 		// spectrum header
 		RTSpectrumHeaderRec* m_pSpectrumHead;
 

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

@@ -144,17 +144,7 @@ namespace OTSMeasureApp
            
         }
 
-        //public bool LoadSpecialGrayRangeParamFile()
-        //{
-        //    SpecialRanges = new CSpecialGrayRangeParam();
-           
-        //    if (!SpecialRanges.LoadParam())
-        //    {
-        //        return false;
-        //    }
-            
-        //    return true;
-        //}
+ 
 
         //获取系统文件是否存在和有效
 

+ 10 - 18
OTSIncAMeasureApp/2-OTSMeasureParamManage/MeasureParam.cd

@@ -27,7 +27,7 @@
       <Compartment Name="Methods" Collapsed="true" />
     </Compartments>
     <TypeIdentifier>
-      <HashCode>CAChQCAFJBFQk0AoZAAGLADBAJDAAEARyIIEBAiEglI=</HashCode>
+      <HashCode>CAChQCIFJBFQE0AoYAAGLADAAJBAAGAByIIEBAiEglI=</HashCode>
       <FileName>2-OTSMeasureParamManage\COTSMeasureParam.cs</FileName>
     </TypeIdentifier>
     <ShowAsAssociation>
@@ -45,7 +45,7 @@
       <Compartment Name="Fields" Collapsed="true" />
     </Compartments>
     <TypeIdentifier>
-      <HashCode>ABCAgKMkAIIAgACGQEggFIAAACXFMAAAAQgCAAMABAA=</HashCode>
+      <HashCode>AhCYgKMkBIIAoACGQEggFIgAACXFMAAAAQgCAAMABAA=</HashCode>
       <FileName>1-OTSMeasure\Measure\ParamData\OTSDefaultParam.cs</FileName>
     </TypeIdentifier>
   </Class>
@@ -59,7 +59,7 @@
   <Class Name="OTSDataType.COTSSample" Collapsed="true">
     <Position X="8.5" Y="6.75" Width="2.5" />
     <TypeIdentifier>
-      <HashCode>ACAIgEIiY0AAgCgAoEiCAggAACIEBAABCIAHYEAATIg=</HashCode>
+      <HashCode>AAAAAEIiY0AAgCgAoEiCAAgAACIEBAABCIAnYEACTIg=</HashCode>
       <FileName>0-OTSModel\OTSDataType\COTSSample.cs</FileName>
     </TypeIdentifier>
     <ShowAsAssociation>
@@ -78,7 +78,7 @@
       </Path>
     </AssociationLine>
     <TypeIdentifier>
-      <HashCode>IAQggICCQZAEZACjBJIAKgYAwCSAiCAEITAqTUMQAIg=</HashCode>
+      <HashCode>IAQggICCAZAAZACjBIIAKiYAQCCAiCAEITAqTEMQAIg=</HashCode>
       <FileName>1-OTSMeasure\Measure\ParamData\COTSMsrPrjResultData.cs</FileName>
     </TypeIdentifier>
     <ShowAsAssociation>
@@ -90,41 +90,33 @@
   </Class>
   <Class Name="OTSMeasureApp.OTSIncAMeasureAppForm" Collapsed="true">
     <Position X="3.25" Y="7.5" Width="2.75" />
-    <AssociationLine Name="m_ProjData" Type="OTSModelSharp.COTSMsrPrjResultData" FixedFromPoint="true" FixedToPoint="true">
-      <Path>
-        <Point X="6" Y="7.833" />
-        <Point X="14.5" Y="7.833" />
-        <Point X="14.5" Y="4.048" />
-      </Path>
-    </AssociationLine>
     <TypeIdentifier>
-      <HashCode>dIGadVId6PENvQ5bYEOxLzq7DEgRCnwbFGMEIl+D4vk=</HashCode>
+      <HashCode>dIGadVId+PENnQ5LYkOxDzr7HUgRCXwbFCMFoh+D4Pk=</HashCode>
       <FileName>OTSIncAMeasureAppForm.cs</FileName>
     </TypeIdentifier>
     <ShowAsAssociation>
       <Field Name="m_ProjParam" />
-      <Field Name="m_ProjData" />
       <Field Name="m_MsrThreadWrapper" />
     </ShowAsAssociation>
   </Class>
   <Class Name="OTSMeasureApp.CMeasureThreadWrapper" Collapsed="true">
     <Position X="0.5" Y="6" Width="3.25" />
     <TypeIdentifier>
-      <HashCode>EAgIAgAgIIIAAECQBABAKI0gQAAAAAQAAQBiYAQACAI=</HashCode>
+      <HashCode>EAgAAgAgIIIAAECQBABAKI0gQAAAAAAAAQBiYAQACAI=</HashCode>
       <FileName>1-OTSMeasure\Measure\3-MeasureFlow\CMeasureThreadWrapper.cs</FileName>
     </TypeIdentifier>
   </Class>
   <Class Name="OTSModelSharp.COTSGeneralParam" Collapsed="true">
     <Position X="16" Y="2.25" Width="2.75" />
     <TypeIdentifier>
-      <HashCode>MAAAgEQEQhIAbYBCgAQQBIAmyGxAKAikJAFGECAAAQA=</HashCode>
+      <HashCode>sAAAgEQEQhIAbYBCgAQQBIAkyGxQKAilJAFGEAAAAQA=</HashCode>
       <FileName>1-OTSMeasure\Measure\ParamData\OTSGeneralParam.cs</FileName>
     </TypeIdentifier>
   </Class>
   <Class Name="OTSDataType.CSampleParam" Collapsed="true">
     <Position X="16" Y="6.5" Width="1.5" />
     <TypeIdentifier>
-      <HashCode>CACQQAAAAgAERABAgAKwAAwACCCFYAQgAEACAgIARAA=</HashCode>
+      <HashCode>iACQAAAAAgAABABAgAKwAAwACCCVYAQhAEACAgIARAA=</HashCode>
       <FileName>0-OTSModel\OTSDataType\CSampleParam.cs</FileName>
     </TypeIdentifier>
     <ShowAsAssociation>
@@ -135,7 +127,7 @@
   <Class Name="OTSDataType.CSEMDataMsr" Collapsed="true">
     <Position X="8" Y="5.5" Width="2.75" />
     <TypeIdentifier>
-      <HashCode>gCAACIAAggAIICAAgBAAAAAQACAAMAgQAAgLAAgEIAA=</HashCode>
+      <HashCode>gCAACIAAggAIICAIgBAAAAAQACAAMEgQASgLAAgEIIA=</HashCode>
       <FileName>0-OTSModel\OTSDataType\CSEMDataMsr.cs</FileName>
     </TypeIdentifier>
   </Class>
@@ -149,7 +141,7 @@
   <Class Name="OTSDataType.COTSImageProcParam">
     <Position X="18.25" Y="7.25" Width="2.5" />
     <TypeIdentifier>
-      <HashCode>QAFRAAgAAAABAAAAsQATgIAAACiU4AAAAQACAEAAAog=</HashCode>
+      <HashCode>QAFRAAgEQAABAEAAsQATgIAAACiU4EAACBBCAEAAAog=</HashCode>
       <FileName>0-OTSModel\OTSDataType\COTSImageProcParam.cs</FileName>
     </TypeIdentifier>
   </Class>

+ 20 - 15
OTSIncAMeasureApp/ServiceCenter/CPP(Bruker)API/EDSController.cs

@@ -16,7 +16,7 @@ namespace OTSModelSharp.ServiceCenter
         private COTSControlFunExport eds;
         static IEDSController edsctrl = null;
         private List<String> keyElenamelist = new List<string>();
-        private bool delayQuant=false;
+        //private bool delayQuant=false;
 
        
 
@@ -40,8 +40,8 @@ namespace OTSModelSharp.ServiceCenter
                 {
                     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;
+                   //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")
@@ -141,10 +141,10 @@ namespace OTSModelSharp.ServiceCenter
 
             COTSParticleClr[] parts = a_listParticles.ToArray();
 
-            if (delayQuant)
-            {
-                a_bElementInfo = false;
-            }
+            //if (delayQuant)
+            //{
+            //    a_bElementInfo = false;
+            //}
             result= eds.GetXRayByFeatures((uint)a_nXRayAQTime, parts, a_bElementInfo);
 
 
@@ -302,10 +302,10 @@ namespace OTSModelSharp.ServiceCenter
             return eds.GetExpectCount();
         }
 
-        public bool GetIfDelayQuantify()
-        {
-            return delayQuant;
-        }
+        //public bool GetIfDelayQuantify()
+        //{
+        //    return delayQuant;
+        //}
 
         public void SetQuantifiCationParam(bool IfAutoId, string knownElements)
         {
@@ -342,10 +342,10 @@ namespace OTSModelSharp.ServiceCenter
 
             COTSParticleClr[] parts = a_listParticles.ToArray();
 
-            if (delayQuant)
-            {
-                a_bElementInfo = false;
-            }
+            //if (delayQuant)
+            //{
+            //    a_bElementInfo = false;
+            //}
             result = eds.GetXRayByFeatures((uint)a_nXRayAQTime, parts, a_bElementInfo);
 
 
@@ -360,5 +360,10 @@ namespace OTSModelSharp.ServiceCenter
             }
             return result;
         }
+
+        public bool GetIfDelayQuantify()
+        {
+            return false;
+        }
     }
 }